/*! elementor - v3.27.0 - 03-02-2025 */
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
/***/ "../assets/dev/js/utils/react.js":
/*!***************************************!*\
!*** ../assets/dev/js/utils/react.js ***!
\***************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var ReactDOM = _interopRequireWildcard(__webpack_require__(/*! react-dom */ "react-dom"));
var _client = __webpack_require__(/*! react-dom/client */ "../node_modules/react-dom/client.js");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/**
* Support conditional rendering of a React App to the DOM, based on the React version.
* We use `createRoot` when available, but fallback to `ReactDOM.render` for older versions.
*
* @param { React.ReactElement } app The app to render.
* @param { HTMLElement } domElement The DOM element to render the app into.
*
* @return {{ unmount: () => void }} The unmount function.
*/
function render(app, domElement) {
var unmountFunction;
try {
var root = (0, _client.createRoot)(domElement);
root.render(app);
unmountFunction = function unmountFunction() {
root.unmount();
};
} catch (e) {
// eslint-disable-next-line react/no-deprecated
ReactDOM.render(app, domElement);
unmountFunction = function unmountFunction() {
// eslint-disable-next-line react/no-deprecated
ReactDOM.unmountComponentAtNode(domElement);
};
}
return {
unmount: unmountFunction
};
}
var _default = exports["default"] = {
render: render
};
/***/ }),
/***/ "../modules/home/assets/js/components/addons-section.js":
/*!**************************************************************!*\
!*** ../modules/home/assets/js/components/addons-section.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _Link = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Link */ "@elementor/ui/Link"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _Card = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Card */ "@elementor/ui/Card"));
var _CardActions = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardActions */ "@elementor/ui/CardActions"));
var _CardContent = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardContent */ "@elementor/ui/CardContent"));
var _CardMedia = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/CardMedia */ "@elementor/ui/CardMedia"));
var Addons = function Addons(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
var domain = props.adminUrl.replace('wp-admin/', '');
var addonsArray = props.addonsData.repeater;
var cardsPerRow = 3 === addonsArray.length ? 3 : 2;
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3,
display: 'flex',
flexDirection: 'column',
gap: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.addonsData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.addonsData.header.description)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
display: 'grid',
gridTemplateColumns: {
md: "repeat(".concat(cardsPerRow, ", 1fr)"),
xs: 'repeat(1, 1fr)'
},
gap: 2
}
}, addonsArray.map(function (item) {
var linkTarget = item.hasOwnProperty('target') ? item.target : '_blank';
return /*#__PURE__*/_react.default.createElement(_Card.default, {
key: item.title,
elevation: 0,
sx: {
display: 'flex',
border: 1,
borderRadius: 1,
borderColor: 'action.focus'
}
}, /*#__PURE__*/_react.default.createElement(_CardContent.default, {
sx: {
display: 'flex',
flexDirection: 'column',
justifyContent: 'space-between',
gap: 3,
p: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_CardMedia.default, {
image: item.image,
sx: {
height: '58px',
width: '58px',
mb: 2
}
}), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "subtitle2"
}, item.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, item.description))), /*#__PURE__*/_react.default.createElement(_CardActions.default, {
sx: {
p: 0
}
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "outlined",
size: "small",
color: "promotion",
href: item.url,
target: linkTarget
}, item.button_label))));
})), /*#__PURE__*/_react.default.createElement(_Link.default, {
variant: "body2",
color: "info.main",
underline: "none",
href: "".concat(domain).concat(props.addonsData.footer.file_path)
}, props.addonsData.footer.label));
};
var _default = exports["default"] = Addons;
Addons.propTypes = {
addonsData: PropTypes.object.isRequired,
adminUrl: PropTypes.string.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/create-new-page-dialog.js":
/*!**********************************************************************!*\
!*** ../modules/home/assets/js/components/create-new-page-dialog.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var __ = __webpack_require__(/*! @wordpress/i18n */ "@wordpress/i18n")["__"];
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _DialogHeader = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeader */ "@elementor/ui/DialogHeader"));
var _DialogHeaderGroup = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogHeaderGroup */ "@elementor/ui/DialogHeaderGroup"));
var _DialogTitle = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogTitle */ "@elementor/ui/DialogTitle"));
var _DialogContent = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogContent */ "@elementor/ui/DialogContent"));
var _DialogContentText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogContentText */ "@elementor/ui/DialogContentText"));
var _TextField = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/TextField */ "@elementor/ui/TextField"));
var _DialogActions = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/DialogActions */ "@elementor/ui/DialogActions"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _Dialog = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Dialog */ "@elementor/ui/Dialog"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var CreateNewPageDialog = function CreateNewPageDialog(_ref) {
var url = _ref.url,
isOpen = _ref.isOpen,
closedDialogCallback = _ref.closedDialogCallback;
var _React$useState = _react.default.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
open = _React$useState2[0],
setOpen = _React$useState2[1];
var _React$useState3 = _react.default.useState(''),
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
pageName = _React$useState4[0],
setPageName = _React$useState4[1];
(0, _react.useEffect)(function () {
setOpen(isOpen);
}, [isOpen]);
var handleDialogClose = function handleDialogClose() {
setOpen(false);
closedDialogCallback();
};
var handleChange = function handleChange(event) {
var urlParams = new URLSearchParams();
urlParams.append('post_data[post_title]', event.target.value);
setPageName(urlParams.toString());
};
return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
open: open,
onClose: handleDialogClose,
maxWidth: "xs",
width: "xs",
fullWidth: true
}, /*#__PURE__*/_react.default.createElement(_DialogHeader.default, null, /*#__PURE__*/_react.default.createElement(_DialogHeaderGroup.default, null, /*#__PURE__*/_react.default.createElement(_DialogTitle.default, null, __('Name your page', 'elementor')))), /*#__PURE__*/_react.default.createElement(_DialogContent.default, {
dividers: true
}, /*#__PURE__*/_react.default.createElement(_DialogContentText.default, {
sx: {
mb: 2
}
}, __('To proceed, please name your first page,', 'elementor'), /*#__PURE__*/_react.default.createElement("br", null), __('or rename it later.', 'elementor')), /*#__PURE__*/_react.default.createElement(_TextField.default, {
onChange: handleChange,
fullWidth: true,
placeholder: __('New Page', 'elementor')
})), /*#__PURE__*/_react.default.createElement(_DialogActions.default, null, /*#__PURE__*/_react.default.createElement(_Button.default, {
onClick: handleDialogClose,
color: "secondary"
}, __('Cancel', 'elementor')), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
href: pageName ? url + '&' + pageName : url,
target: "_blank"
}, __('Save', 'elementor'))));
};
var _default = exports["default"] = CreateNewPageDialog;
CreateNewPageDialog.propTypes = {
url: PropTypes.string.isRequired,
isOpen: PropTypes.bool.isRequired,
closedDialogCallback: PropTypes.func.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/external-links-section.js":
/*!**********************************************************************!*\
!*** ../modules/home/assets/js/components/external-links-section.js ***!
\**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _ListItemButton = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemButton */ "@elementor/ui/ListItemButton"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _Divider = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Divider */ "@elementor/ui/Divider"));
var ExternalLinksSection = function ExternalLinksSection(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
px: 3
}
}, /*#__PURE__*/_react.default.createElement(_List.default, null, props.externalLinksData.map(function (item, index) {
return /*#__PURE__*/_react.default.createElement(_ui.Box, {
key: item.label
}, /*#__PURE__*/_react.default.createElement(_ListItemButton.default, {
href: item.url,
target: "_blank",
sx: {
'&:hover': {
backgroundColor: 'initial'
},
gap: 2,
px: 0,
py: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: item.image,
sx: {
width: '38px'
}
}), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
sx: {
color: 'text.secondary'
},
primary: item.label
})), index < props.externalLinksData.length - 1 && /*#__PURE__*/_react.default.createElement(_Divider.default, null));
})));
};
var _default = exports["default"] = ExternalLinksSection;
ExternalLinksSection.propTypes = {
externalLinksData: PropTypes.array.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/get-started-list-item.js":
/*!*********************************************************************!*\
!*** ../modules/home/assets/js/components/get-started-list-item.js ***!
\*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "../node_modules/@babel/runtime/helpers/slicedToArray.js"));
var _ListItem = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItem */ "@elementor/ui/ListItem"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _Link = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Link */ "@elementor/ui/Link"));
var _Box = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Box */ "@elementor/ui/Box"));
var _createNewPageDialog = _interopRequireDefault(__webpack_require__(/*! ./create-new-page-dialog */ "../modules/home/assets/js/components/create-new-page-dialog.js"));
var GetStartedListItem = function GetStartedListItem(_ref) {
var item = _ref.item,
image = _ref.image,
adminUrl = _ref.adminUrl;
var url = item.is_relative_url ? adminUrl + item.url : item.url;
var _React$useState = _react.default.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
isOpen = _React$useState2[0],
openDialog = _React$useState2[1];
var handleLinkClick = function handleLinkClick(event) {
if (!item.new_page) {
return;
}
event.preventDefault();
openDialog(true);
};
return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
alignItems: "flex-start",
sx: {
gap: 1,
p: 0,
maxWidth: '150px'
}
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
component: "img",
src: image
}), /*#__PURE__*/_react.default.createElement(_Box.default, null, /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
primary: item.title,
primaryTypographyProps: {
variant: 'subtitle1'
},
sx: {
my: 0
}
}), /*#__PURE__*/_react.default.createElement(_Link.default, {
variant: "body2",
color: item.title_small_color ? item.title_small_color : 'text.tertiary',
underline: "hover",
href: url,
target: "_blank",
onClick: handleLinkClick
}, item.title_small)), item.new_page && /*#__PURE__*/_react.default.createElement(_createNewPageDialog.default, {
url: url,
isOpen: isOpen,
closedDialogCallback: function closedDialogCallback() {
return openDialog(false);
}
}));
};
var _default = exports["default"] = GetStartedListItem;
GetStartedListItem.propTypes = {
item: PropTypes.shape({
title: PropTypes.string.isRequired,
title_small: PropTypes.string.isRequired,
url: PropTypes.string.isRequired,
new_page: PropTypes.bool,
is_relative_url: PropTypes.bool,
title_small_color: PropTypes.string
}).isRequired,
adminUrl: PropTypes.string.isRequired,
image: PropTypes.string
};
/***/ }),
/***/ "../modules/home/assets/js/components/get-started-section.js":
/*!*******************************************************************!*\
!*** ../modules/home/assets/js/components/get-started-section.js ***!
\*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _getStartedListItem = _interopRequireDefault(__webpack_require__(/*! ./get-started-list-item */ "../modules/home/assets/js/components/get-started-list-item.js"));
var GetStarted = function GetStarted(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3,
display: 'flex',
flexDirection: 'column',
gap: 2
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.getStartedData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.getStartedData.header.description)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
display: 'grid',
gridTemplateColumns: {
md: 'repeat(4, 1fr)',
xs: 'repeat(2, 1fr)'
},
columnGap: {
md: 9,
xs: 7
},
rowGap: 3
}
}, props.getStartedData.repeater.map(function (item) {
return /*#__PURE__*/_react.default.createElement(_getStartedListItem.default, {
key: item.title,
item: item,
image: item.image,
adminUrl: props.adminUrl
});
})));
};
var _default = exports["default"] = GetStarted;
GetStarted.propTypes = {
getStartedData: PropTypes.object.isRequired,
adminUrl: PropTypes.string.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/home-screen.js":
/*!***********************************************************!*\
!*** ../modules/home/assets/js/components/home-screen.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _topSection = _interopRequireDefault(__webpack_require__(/*! ./top-section */ "../modules/home/assets/js/components/top-section.js"));
var _sidebarPromotion = _interopRequireDefault(__webpack_require__(/*! ./sidebar-promotion */ "../modules/home/assets/js/components/sidebar-promotion.js"));
var _addonsSection = _interopRequireDefault(__webpack_require__(/*! ./addons-section */ "../modules/home/assets/js/components/addons-section.js"));
var _externalLinksSection = _interopRequireDefault(__webpack_require__(/*! ./external-links-section */ "../modules/home/assets/js/components/external-links-section.js"));
var _getStartedSection = _interopRequireDefault(__webpack_require__(/*! ./get-started-section */ "../modules/home/assets/js/components/get-started-section.js"));
var HomeScreen = function HomeScreen(props) {
var hasSidebarUpgrade = props.homeScreenData.hasOwnProperty('sidebar_upgrade');
return /*#__PURE__*/ /* Box wrapper around the Container is needed to neutralize wp-content area left-padding */_react.default.createElement(_ui.Box, {
sx: {
pr: 1
}
}, /*#__PURE__*/_react.default.createElement(_ui.Container, {
disableGutters: true,
maxWidth: "lg",
sx: {
display: 'flex',
flexDirection: 'column',
gap: {
xs: 1,
md: 3
},
pt: {
xs: 2,
md: 6
},
pb: 2
}
}, /*#__PURE__*/_react.default.createElement(_topSection.default, {
topData: props.homeScreenData.top_with_licences,
createNewPageUrl: props.homeScreenData.create_new_page_url
}), /*#__PURE__*/_react.default.createElement(_ui.Box, {
sx: {
display: 'flex',
flexDirection: {
xs: 'column',
sm: 'row'
},
justifyContent: 'space-between',
gap: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
sx: {
flex: 1,
gap: 3
}
}, /*#__PURE__*/_react.default.createElement(_getStartedSection.default, {
getStartedData: props.homeScreenData.get_started,
adminUrl: props.adminUrl
}), /*#__PURE__*/_react.default.createElement(_addonsSection.default, {
addonsData: props.homeScreenData.add_ons,
adminUrl: props.adminUrl
})), /*#__PURE__*/_react.default.createElement(_ui.Container, {
maxWidth: "xs",
disableGutters: true,
sx: {
width: {
sm: '305px'
},
display: 'flex',
flexDirection: 'column',
gap: 3
}
}, hasSidebarUpgrade && /*#__PURE__*/_react.default.createElement(_sidebarPromotion.default, {
sideData: props.homeScreenData.sidebar_upgrade
}), /*#__PURE__*/_react.default.createElement(_externalLinksSection.default, {
externalLinksData: props.homeScreenData.external_links
})))));
};
HomeScreen.propTypes = {
homeScreenData: PropTypes.object,
adminUrl: PropTypes.string
};
var _default = exports["default"] = HomeScreen;
/***/ }),
/***/ "../modules/home/assets/js/components/sidebar-promotion.js":
/*!*****************************************************************!*\
!*** ../modules/home/assets/js/components/sidebar-promotion.js ***!
\*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _List = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/List */ "@elementor/ui/List"));
var _ListItem = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItem */ "@elementor/ui/ListItem"));
var _ListItemText = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/ListItemText */ "@elementor/ui/ListItemText"));
var _sideBarCheckIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/side-bar-check-icon */ "../modules/home/assets/js/icons/side-bar-check-icon.js"));
var SideBarPromotion = function SideBarPromotion(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
p: 3
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
gap: 1.5,
sx: {
alignItems: 'center',
textAlign: 'center',
pb: 4
}
}, /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: props.sideData.header.image
}), /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "h6"
}, props.sideData.header.title), /*#__PURE__*/_react.default.createElement(_ui.Typography, {
variant: "body2",
color: "text.secondary"
}, props.sideData.header.description)), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
size: "medium",
color: "promotion",
href: props.sideData.cta.url,
startIcon: /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "img",
src: props.sideData.cta.image,
sx: {
width: '16px'
}
}),
target: "_blank",
sx: {
maxWidth: 'fit-content'
}
}, props.sideData.cta.label)), /*#__PURE__*/_react.default.createElement(_List.default, {
sx: {
p: 0
}
}, props.sideData.repeater.map(function (item, index) {
return /*#__PURE__*/_react.default.createElement(_ListItem.default, {
key: index,
sx: {
p: 0,
gap: 1
}
}, /*#__PURE__*/_react.default.createElement(_sideBarCheckIcon.default, null), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
primaryTypographyProps: {
variant: 'body2'
},
primary: item.title
}));
})));
};
var _default = exports["default"] = SideBarPromotion;
SideBarPromotion.propTypes = {
sideData: PropTypes.object.isRequired
};
/***/ }),
/***/ "../modules/home/assets/js/components/top-section.js":
/*!***********************************************************!*\
!*** ../modules/home/assets/js/components/top-section.js ***!
\***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
/* provided dependency */ var PropTypes = __webpack_require__(/*! prop-types */ "../node_modules/prop-types/index.js");
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _react = _interopRequireDefault(__webpack_require__(/*! react */ "react"));
var _objectDestructuringEmpty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/objectDestructuringEmpty */ "../node_modules/@babel/runtime/helpers/objectDestructuringEmpty.js"));
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
var _Typography = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Typography */ "@elementor/ui/Typography"));
var _Button = _interopRequireDefault(__webpack_require__(/*! @elementor/ui/Button */ "@elementor/ui/Button"));
var _youtubeIcon = _interopRequireDefault(__webpack_require__(/*! ../icons/youtube-icon */ "../modules/home/assets/js/icons/youtube-icon.js"));
var TopSection = function TopSection(_ref) {
var props = (0, _extends2.default)({}, ((0, _objectDestructuringEmpty2.default)(_ref), _ref));
return /*#__PURE__*/_react.default.createElement(_ui.Paper, {
elevation: 0,
sx: {
display: 'flex',
flexDirection: {
xs: 'column',
sm: 'row'
},
justifyContent: 'space-between',
py: {
xs: 3,
md: 3
},
px: {
xs: 3,
md: 4
},
gap: {
xs: 2,
sm: 3,
lg: 22
}
}
}, /*#__PURE__*/_react.default.createElement(_ui.Stack, {
gap: 3,
justifyContent: "center"
}, /*#__PURE__*/_react.default.createElement(_ui.Box, null, /*#__PURE__*/_react.default.createElement(_Typography.default, {
variant: "h6"
}, props.topData.title), /*#__PURE__*/_react.default.createElement(_Typography.default, {
variant: "body2",
color: "secondary"
}, props.topData.description)), /*#__PURE__*/_react.default.createElement(_ui.Box, {
sx: {
display: 'flex',
gap: 1
}
}, /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "contained",
size: "small",
href: props.createNewPageUrl,
target: "_blank"
}, props.topData.button_create_page_title), /*#__PURE__*/_react.default.createElement(_Button.default, {
variant: "outlined",
color: "secondary",
size: "small",
startIcon: /*#__PURE__*/_react.default.createElement(_youtubeIcon.default, null),
href: props.topData.button_watch_url,
target: "_blank"
}, props.topData.button_watch_title))), /*#__PURE__*/_react.default.createElement(_ui.Box, {
component: "iframe",
src: "https://www.youtube.com/embed/".concat(props.topData.youtube_embed_id),
title: "YouTube video player",
frameBorder: "0",
allow: "accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",
allowFullScreen: true,
sx: {
aspectRatio: '16/9',
borderRadius: 1,
display: 'flex',
width: '100%',
maxWidth: '365px'
}
}));
};
TopSection.propTypes = {
topData: PropTypes.object.isRequired,
createNewPageUrl: PropTypes.string.isRequired
};
var _default = exports["default"] = TopSection;
/***/ }),
/***/ "../modules/home/assets/js/icons/side-bar-check-icon.js":
/*!**************************************************************!*\
!*** ../modules/home/assets/js/icons/side-bar-check-icon.js ***!
\**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var SideBarCheckIcon = function SideBarCheckIcon(props) {
return /*#__PURE__*/React.createElement(_ui.SvgIcon, (0, _extends2.default)({
viewBox: "0 0 24 24"
}, props), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M9.09013 3.69078C10.273 3.2008 11.5409 2.94861 12.8213 2.94861C14.1017 2.94861 15.3695 3.2008 16.5525 3.69078C17.7354 4.18077 18.8102 4.89895 19.7156 5.80432C20.621 6.70969 21.3391 7.78452 21.8291 8.96744C22.3191 10.1504 22.5713 11.4182 22.5713 12.6986C22.5713 13.979 22.3191 15.2468 21.8291 16.4298C21.3391 17.6127 20.621 18.6875 19.7156 19.5929C18.8102 20.4983 17.7354 21.2165 16.5525 21.7064C15.3695 22.1964 14.1017 22.4486 12.8213 22.4486C11.5409 22.4486 10.2731 22.1964 9.09013 21.7064C7.9072 21.2165 6.83237 20.4983 5.927 19.5929C5.02163 18.6875 4.30345 17.6127 3.81346 16.4298C3.32348 15.2468 3.07129 13.979 3.07129 12.6986C3.07129 11.4182 3.32348 10.1504 3.81346 8.96744C4.30345 7.78452 5.02163 6.70969 5.927 5.80432C6.83237 4.89895 7.9072 4.18077 9.09013 3.69078ZM12.8213 4.44861C11.7379 4.44861 10.6651 4.662 9.66415 5.0766C8.66321 5.4912 7.75374 6.09889 6.98766 6.86498C6.22157 7.63106 5.61388 8.54053 5.19928 9.54147C4.78468 10.5424 4.57129 11.6152 4.57129 12.6986C4.57129 13.782 4.78468 14.8548 5.19928 15.8557C5.61388 16.8567 6.22157 17.7662 6.98766 18.5322C7.75374 19.2983 8.66322 19.906 9.66415 20.3206C10.6651 20.7352 11.7379 20.9486 12.8213 20.9486C13.9047 20.9486 14.9775 20.7352 15.9784 20.3206C16.9794 19.906 17.8888 19.2983 18.6549 18.5322C19.421 17.7662 20.0287 16.8567 20.4433 15.8557C20.8579 14.8548 21.0713 13.782 21.0713 12.6986C21.0713 11.6152 20.8579 10.5424 20.4433 9.54147C20.0287 8.54053 19.421 7.63106 18.6549 6.86498C17.8888 6.09889 16.9794 5.4912 15.9784 5.0766C14.9775 4.662 13.9047 4.44861 12.8213 4.44861Z",
fill: "#93003F"
}), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M17.3213 9.69424C17.6142 9.98713 17.6142 10.462 17.3213 10.7549L12.3732 15.703C12.0803 15.9959 11.6054 15.9959 11.3125 15.703L8.83851 13.2289C8.54562 12.936 8.54562 12.4612 8.83851 12.1683C9.1314 11.8754 9.60628 11.8754 9.89917 12.1683L11.8429 14.112L16.2606 9.69424C16.5535 9.40135 17.0284 9.40135 17.3213 9.69424Z",
fill: "#93003F"
}));
};
var _default = exports["default"] = SideBarCheckIcon;
/***/ }),
/***/ "../modules/home/assets/js/icons/youtube-icon.js":
/*!*******************************************************!*\
!*** ../modules/home/assets/js/icons/youtube-icon.js ***!
\*******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
"use strict";
var _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ "../node_modules/@babel/runtime/helpers/interopRequireDefault.js");
var _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ "../node_modules/@babel/runtime/helpers/typeof.js");
Object.defineProperty(exports, "__esModule", ({
value: true
}));
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ "../node_modules/@babel/runtime/helpers/extends.js"));
var React = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
var _ui = __webpack_require__(/*! @elementor/ui */ "@elementor/ui");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var YoutubeIcon = function YoutubeIcon(props) {
return /*#__PURE__*/React.createElement(_ui.SvgIcon, (0, _extends2.default)({
viewBox: "0 0 24 24"
}, props), /*#__PURE__*/React.createElement("path", {
fillRule: "evenodd",
clipRule: "evenodd",
d: "M7 5.75C5.20507 5.75 3.75 7.20507 3.75 9V15C3.75 16.7949 5.20507 18.25 7 18.25H17C18.7949 18.25 20.25 16.7949 20.25 15V9C20.25 7.20507 18.7949 5.75 17 5.75H7ZM2.25 9C2.25 6.37665 4.37665 4.25 7 4.25H17C19.6234 4.25 21.75 6.37665 21.75 9V15C21.75 17.6234 19.6234 19.75 17 19.75H7C4.37665 19.75 2.25 17.6234 2.25 15V9ZM9.63048 8.34735C9.86561 8.21422 10.1542 8.21786 10.3859 8.35688L15.3859 11.3569C15.6118 11.4924 15.75 11.7366 15.75 12C15.75 12.2634 15.6118 12.5076 15.3859 12.6431L10.3859 15.6431C10.1542 15.7821 9.86561 15.7858 9.63048 15.6526C9.39534 15.5195 9.25 15.2702 9.25 15V9C9.25 8.7298 9.39534 8.48048 9.63048 8.34735ZM10.75 10.3246V13.6754L13.5423 12L10.75 10.3246Z"
}));
};
var _default = exports["default"] = YoutubeIcon;
/***/ }),
/***/ "../node_modules/object-assign/index.js":
/*!**********************************************!*\
!*** ../node_modules/object-assign/index.js ***!
\**********************************************/
/***/ ((module) => {
"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/ }),
/***/ "../node_modules/prop-types/checkPropTypes.js":
/*!****************************************************!*\
!*** ../node_modules/prop-types/checkPropTypes.js ***!
\****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var printWarning = function() {};
if (true) {
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var loggedTypeFailures = {};
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) { /**/ }
};
}
/**
* Assert that the values match with the type specs.
* Error messages are memorized and will only be shown once.
*
* @param {object} typeSpecs Map of name to a ReactPropType
* @param {object} values Runtime values that need to be type-checked
* @param {string} location e.g. "prop", "context", "child context"
* @param {string} componentName Name of the component for error messages.
* @param {?Function} getStack Returns the component stack.
* @private
*/
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
if (true) {
for (var typeSpecName in typeSpecs) {
if (has(typeSpecs, typeSpecName)) {
var error;
// Prop type validation may throw. In case they do, we don't want to
// fail the render phase where it didn't fail before. So we log it.
// After these have been cleaned up, we'll let them throw.
try {
// This is intentionally an invariant that gets caught. It's the same
// behavior as without this statement except with a better message.
if (typeof typeSpecs[typeSpecName] !== 'function') {
var err = Error(
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +
'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'
);
err.name = 'Invariant Violation';
throw err;
}
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
} catch (ex) {
error = ex;
}
if (error && !(error instanceof Error)) {
printWarning(
(componentName || 'React class') + ': type specification of ' +
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
'You may have forgotten to pass an argument to the type checker ' +
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
'shape all require an argument).'
);
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
printWarning(
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
);
}
}
}
}
}
/**
* Resets warning cache when testing.
*
* @private
*/
checkPropTypes.resetWarningCache = function() {
if (true) {
loggedTypeFailures = {};
}
}
module.exports = checkPropTypes;
/***/ }),
/***/ "../node_modules/prop-types/factoryWithTypeCheckers.js":
/*!*************************************************************!*\
!*** ../node_modules/prop-types/factoryWithTypeCheckers.js ***!
\*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var ReactIs = __webpack_require__(/*! react-is */ "../node_modules/prop-types/node_modules/react-is/index.js");
var assign = __webpack_require__(/*! object-assign */ "../node_modules/object-assign/index.js");
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "../node_modules/prop-types/lib/ReactPropTypesSecret.js");
var has = __webpack_require__(/*! ./lib/has */ "../node_modules/prop-types/lib/has.js");
var checkPropTypes = __webpack_require__(/*! ./checkPropTypes */ "../node_modules/prop-types/checkPropTypes.js");
var printWarning = function() {};
if (true) {
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
}
function emptyFunctionThatReturnsNull() {
return null;
}
module.exports = function(isValidElement, throwOnDirectAccess) {
/* global Symbol */
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
/**
* Returns the iterator method function contained on the iterable object.
*
* Be sure to invoke the function with the iterable as context:
*
* var iteratorFn = getIteratorFn(myIterable);
* if (iteratorFn) {
* var iterator = iteratorFn.call(myIterable);
* ...
* }
*
* @param {?object} maybeIterable
* @return {?function}
*/
function getIteratorFn(maybeIterable) {
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
if (typeof iteratorFn === 'function') {
return iteratorFn;
}
}
/**
* Collection of methods that allow declaration and validation of props that are
* supplied to React components. Example usage:
*
* var Props = require('ReactPropTypes');
* var MyArticle = React.createClass({
* propTypes: {
* // An optional string prop named "description".
* description: Props.string,
*
* // A required enum prop named "category".
* category: Props.oneOf(['News','Photos']).isRequired,
*
* // A prop named "dialog" that requires an instance of Dialog.
* dialog: Props.instanceOf(Dialog).isRequired
* },
* render: function() { ... }
* });
*
* A more formal specification of how these methods are used:
*
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
* decl := ReactPropTypes.{type}(.isRequired)?
*
* Each and every declaration produces a function with the same signature. This
* allows the creation of custom validation functions. For example:
*
* var MyLink = React.createClass({
* propTypes: {
* // An optional string or URI prop named "href".
* href: function(props, propName, componentName) {
* var propValue = props[propName];
* if (propValue != null && typeof propValue !== 'string' &&
* !(propValue instanceof URI)) {
* return new Error(
* 'Expected a string or an URI for ' + propName + ' in ' +
* componentName
* );
* }
* }
* },
* render: function() {...}
* });
*
* @internal
*/
var ANONYMOUS = '<
In addition to pokies, you might also want to play other casino classics like video poker, blackjack, and roulette. For this reason, we only featured Australia casinos with plenty of other great online casino games to choose from. Jackpot City is one of the best mobile casinos for playing online pokies, period. You have the option of using their app, which is available on the iOS and Android app stores.
Our platform is designed to empower Aussie gamblers with transparent information on pokies. Each game is independently evaluated by our experienced review team, ensuring unbiased recommendations. We offer thousands of free pokies, including demo modes from licensed providers, allowing players to test and enjoy top games at no cost. The majority of online Australian pokies have five reels and include more intricate gameplay and more paylines. They might feature exciting bonus games and unique symbols like wilds and scatters. 3-reel online pokies AUS often contain one or a small number of paylines and only three rotating reels.
Welcome bonuses match your first deposit with bonus funds and often include free spins. Golden Crown offers 100% up to AU$1,500 plus 300 free spins on the initial deposit. Second and third deposits receive 75% and 50% matches respectively. You must wager the combined deposit and bonus amount before withdrawing. We compare the key differences in features, accessibility, and risk levels between both modes.
To do so, copy the license number and verify it directly with the licensing authority. Bitcoin averages 15 minutes while Ethereum takes 5-10 minutes. Withdrawals process in 5 minutes to 1 hour after casino approval. Network fees range from $0.01 for Solana to $10 for Ethereum during congestion. Bitcoin averages $1-$3 while Tron-based Tether costs under $1.
Hira Ahmed is a highly experienced writer covering gaming and tech news for Coinspeaker. Her key strength lies in unravelling blockchain jargon and transforming it into clear, practical advice for everyday players. Hira is a graduate of the University of Glasgow and IELS Malta. The best offshore pokies casinos combine extensive game libraries with fast crypto withdrawals and reasonable bonus terms. There a few brands that stand out from others such as Hugo Casino, Golden Crown, and Mafia Casino.
The additional reels allow for more symbols, paylines, and bonus features, such as free spins and interactive mini-games, offering a more complex and engaging gaming experience. Microgaming is a pioneer in the world of online casino games, boasting an impressive collection of pokies. For Australians, Microgaming offers a rich selection of games, including popular titles like Thunderstruck II, Avalon, and Immortal Romance. Their pokies are known for stunning graphics, engaging gameplay, and unique themes. Aristocrat’s extensive portfolio caters to a wide range of players, from casual enthusiasts to seasoned veterans.
Your best choice depends on priorities like game variety, crypto support, or bonus size. Playing at offshore pokies casinos is legal for Australian residents. The Interactive Gambling Act 2001 prohibits Australian operators from offering online pokies but doesn’t criminalize players using offshore platforms.
Microgaming’s pokies offer a vast array of features, including wilds, scatters, free spins, and multipliers, adding excitement and depth to the gameplay. Moreover, their progressive jackpot pokies, such as Mega Moolah, have made headlines by awarding life-changing prizes. Microgaming’s commitment to delivering a seamless experience across multiple platforms ensures that players can enjoy their favorite games on both desktop and mobile devices. Bitstarz is one of Australia’s top online pokies sites, known for its award-winning platform and outstanding game variety. Video poker combines the fast-paced excitement of online slots with the strategy of poker, making it a favorite among many Australian players.
The average RTP here sits above the market standard, making it a solid destination for those who prefer games with fair odds and consistent returns. Everyone wants a reliable online casino in Australia that keeps player data secure and provides fair, transparent bonuses. Yet, finding a trustworthy site to play on can be challenging.
It does not matter whether you love classics, video slots, or progressives; you will find various amazing titles to entertain you. Remember, the best online pokies should provide entertainment, not serve as a source of income or escape. Stay in control by using the responsible gaming tools provided by the best Australian online pokies sites. Of all online pokies for real money, Wolf Gold is one of the most famous.
These are games that are specifically designed to throw players into their games, with dynamic play and narratives that break the boundaries. Roulette is a classic casino game that has transitioned smoothly to the online world. The thrill of watching the ball land on a winning number has made it a popular choice at Australian online casinos. Players can choose from different versions of roulette, including European Roulette, American Roulette, and French Roulette.
Pokies in Australia are regulated at the state and territory level. Each jurisdiction has its own set of rules governing aspects such as the number of slot machines allowed, payout percentages, and where they can be located. Gambling operators must obtain licenses and comply with anti-money laundering regulations.
Offshore licenses require less strict KYC verification than Australian regulations would demand. Crypto players often avoid identity checks entirely for smaller withdrawals. Moreover, provably fair technology appears on crypto games at devilark.org.au several casinos, which adds a layer of transparency and fairness.
Crypto withdrawals process faster than traditional methods but specific timeframes vary. Initial withdrawal limits cap at €800 daily and €10,500 monthly. Online pokie sites are gambling platforms hosting hundreds to thousands of slot games from multiple software providers.
So, this makes them perfect for nostalgic players or those who prefer simple gameplay, but not for high rollers. With thousands of casino games and weekly bonuses, this site is a haven for Australian players. Add in instant payouts and hands-on customer support, and it’s easy to see why it’s a favourite. Buffalo Trail at NeoSpin is the best online pokie option in Australia. This pokies site offers generous bonuses, games from 50 different developers, and many other exciting features. Just log in with your phone’s native web browser to get started!
These incentives enhance your gaming experience and increase your chances of winning. To ensure your safety while playing online pokies, always choose licensed casinos regulated by recognized authorities and use secure payment methods. Additionally, practice responsible gambling to protect yourself and your finances. With a generous welcome bonus of 100% up to AU$ 10,000, Neospin is an attractive option for new players. Its extensive game library and promotional offers make it one of the most trusted online pokies sites in Australia.
Immortal Romance (Microgaming) – 96.86% RTPExperience this vampire-themed pokie with its legendary Wild Desire feature and four unique free spins modes. We recommend that you start by checking out Spin Casino, as we consider it the best overall online pokie site in Australia. The welcome package at Hell Spin will give you a nice bonus of up to $5200 along with 150 free spins. However, you will need to make two deposits to get this total bonus.
Curaçao licenses dominate offshore casino regulation with moderate player protections. We recommend that you consider online casinos with Curaçao, Malta, Anjouan, or Costa Rican licenses first as these governments are known to be fair and reputable. NetEnt, Microgaming, Pragmatic Play, and Evolution Gaming provide most games. However, smaller developers like Hacksaw Gaming and Nolimit City offer innovative features.
All transactions are free, so you get to keep all of your winnings. The minimum deposit is A$30, and withdrawals are capped at A$7,500 per transaction, suitable for both casual players and high rollers. Rise of Olympus Origins by Play’n GO takes Greek mythology to the next level, with Hades, Poseidon, and Zeus leading the action. This 5×5 cascading pokie delivers cluster wins, wilds, and multipliers up to 20x that don’t reset in free spins. Big Bass Bonanza by Pragmatic Play is a classic fishing-themed pokie and part of a popular series that includes Big Bass Splash and Big Bass Keeping It Reel. With its 5×3 layout and 10 paylines, it’s easy to jump in and start spinning.
All modern pokies use HTML5 technology, rendering identically on desktop and mobile browsers. No app download required – games load directly in Safari, Chrome, or Firefox. Touch controls replace mouse clicks; swipe gestures navigate menus. Graphics quality automatically adjusts based on your device’s processing power and internet speed. Some pokies let you purchase direct access to bonus rounds, typically costing x your bet.
It’s a 100% deposit match of up to $10,000, which is significantly more cash than most other online casinos offer. The deal also comes with an impressive batch of 300 free spins. We are not aware of any site offering online gambling services that provides that many free spins to new players right off the bat in Australia. The most popular types of pokies in Australia include classic slots and video slots, often themed around popular culture or featuring progressive jackpots.
With over 2,000 pokies, Aussie gamers will find a great blend of top-tier titles from Pragmatic Play, BGaming, NetEnt, and more. Ricky Casino has some of the hottest online pokies real money out there and is quick to add any new trending games in Australia to its repertoire. PlayAmo Casino feels like it was designed specifically for Australian online pokies players. There are online pokies from a handful of top software providers, including Booming Games Felix Gaming and BGaming.
The second deposit offers the same, with another 100% match and 50 spins, or the 150% crypto match. The perks of being a VIP include faster withdrawals, personal account managers, and many other perks. There’s also an exclusive bonus in place – VIP bettors get a 50% bonus when depositing over $1K using a code “HIGH50”, up to a total of $2,000. We found the VIP program at Rockwin to be the best among the top online pokie sites on our list.
Common special features include bonus rounds or levels and free spins. Always take your time to check the paytables and read our game reviews to get an understanding of what to expect. It’s often a package combining a deposit matched gift, where the site matches a percentage of your first deposit with bonus funds, and a set of free spins. While some offers look huge, reaching 5,000 AUD, always check the wagering requirements. It shows how many times you must spend the bonus before cashing out any winnings.
The two things to watch out for are the Hold the Spin feature, which triggers when you land 6 or more bonus symbols and grants you three respins. You’ll also enjoy the Heap of Dumplings pot collection feature, which unlocks a bonus pot guarded by dragons. Bonus lovers will enjoy the Cash Mesh rounds, which allow you to hold five Cash Mesh symbols and trigger three respins. There are four jackpots to be had during this round, topping off at around 3,100x your initial wager. There are many ways to claim casino bonuses, and this differs from one casino to the next. The most important thing is to take note of the wagering requirements so that you can comply.
There are numerous tournaments running practically all the time, awarding players prizes, including bonus spins, cash bonuses, or a mixture of the two. Yes, pokies (slot machines) are legal in Australia and are widely available in casinos, hotels, and clubs. However, their operation is regulated by state and territory laws, which vary in terms of minimum return to player rates, maximum bets, and other aspects.
The site’s regal theme adds a touch of class to the gaming experience, and its wide variety of games means there’s something for every player. Kingmaker’s fast payouts and flexible banking options, including crypto, make it a great choice for those who want a smooth, hassle-free gaming experience. It boasts a great selection of pokies, alongside an exciting live casino section. One of the standout features of Instant Casino is its commitment to fast transaction times, making deposits and withdrawals a breeze for Australian players.
It boasts one of the most visually immersive themes, offering Aussie players additional in-game bonuses, including free spins. This means there are even more chances to win… as if the game needed any. Leading our list of the best online pokies in Australia for real money is Big Bass Splash. It’s one of the latest installations in the classic Big Bass Bonanza by Pragmatic Play – and we think it’s the best. WMS powers online casinos, providing helpful software for a smooth customer experience. It is a leader in the online gambling industry, and its software uses instant-play, which means you don’t have to wait around to download.
Neospin stood out as our top pick thanks to its generous welcome bonus, real money pokies that actually pay, and fair cashback rewards. Still, if you’re after faster cashouts, bonus buys, or trending titles, the other Aussie online casinos we covered are solid options too. You can play online casino games like pokies on your phone using mobile-optimised Australian casino sites or apps. The best pokies sites work across iOS and Android, letting you play real money casino games without losing quality or features. Check game contribution rates and max bet rules to avoid slowing down your rollover.
Our experts gave a higher ranking to online pokies sites with the most generous incentives. Finally, we prioritised AU online casinos with the lowest deposit minimums and wagering requirements. Yes, many online casinos offer free online pokies, providing a risk-free way to try out new casino games, and features before playing for real money. Crypto casinos are quickly becoming the go-to choice for many Australians who want to play online pokies with maximum privacy and speed. By accepting cryptocurrencies like Bitcoin, Ethereum, and Litecoin, these online casinos offer players a secure, anonymous way to deposit and withdraw funds. One of the biggest draws of crypto casinos is their lightning-fast payouts—often processed in minutes rather than days—along with low transaction fees and robust security.
Yes, you can play pokies for free or for real money, depending on your goals. Free pokies are ideal for learning game mechanics and testing features, while real money pokies offer cash payouts, bonuses, and jackpots but involve financial risk. Yes, you can legally play online pokies at offshore casinos in Australia.
Yet, what really sets Kingmaker apart is its focus on tournaments. Many pokies are linked to daily challenges or leaderboards, so if you love a bit of competition while spinning, this is the place to be. Of course, we’re not here to limit you to just one game or site. A few other Australian casinos popped up on our radar – let’s explore them together. We used some of the similar ranking categories to select the best betting sites in Australia. To receive assistance, click the live chat button in the bottom right corner and one of the site’s representatives will contact you within minutes — if not seconds.
When you’re playing online pokies for real money, it’s important to look for licensed and regulated gambling sites. You can play online pokies in Australia for real money at a number of different online casinos, but we recommend that you stick with trusted operators like NeoSpin and Rockwin. Progressive jackpot pokies are slot games that feature a jackpot which grows incrementally as players bet and play.
However, while deposits are typically fast, withdrawals using credit or debit cards can take a few days to process. Depending on the casino’s policies and the player’s bank, withdrawals might take between 1-5 business days to reach the player’s account. The thrill of chasing a jackpot that could reach into the millions is one of the primary draws for players.
Multi reel pokies are games that feature two separate grids within one game. There are games in which the secondary reel is part of a bonus round, but in other pokies the results from the reels are linked. Having more reels will generally mean more payouts, and possibilities for larger payouts. Some games abandon the lines completely, in favor of structures such as cluster pays or ways pays. Going even further, best online pokies Australia can also have cascading reels, Megaways mechanics, and multi-directional paylines.
]]>Look for the MGA seal which you can verify on their official website. Requirements are stricter than Anjouan but less demanding than Malta. The authority investigates player complaints and can revoke licenses for violations. Curaçao-licensed casinos provide reasonable trust levels when combined with positive reviews. This jurisdiction suits most Australian players using offshore casinos.
Engaging themes and graphics can significantly enhance the overall enjoyment of playing pokies. Whether you prefer classic fruit machines or modern video slots with elaborate storylines, the visual appeal and thematic elements of a game can make a big difference. Step into the rugged wilderness of the American frontier with Buffalo Trail, where the majestic buffalo leads the charge towards massive payouts. This Gamebeat creation features a 6×4 reel setup with 4,096 ways to win, providing players with a dynamic gambling experience. Casino promotions offering free spins let you play without paying upfront, but they usually come with wagering requirements or win limits before you can cash out. Some casinos also offer wager-free free spins, meaning any winnings are yours instantly.
It offers a curated selection of pokies, table games, and live dealer options, providing a little something for everyone. This casino focuses heavily on player satisfaction, offering regular bonuses and a strong loyalty program. It boasts a great selection of pokies, alongside an exciting live casino section.
Wild Cash x9990 at Neospin is the best online pokies game, which stands out for its classic theme and massive payout potential of up to 9,990x your bet. Progressive jackpot pokies feature jackpots that grow with every spin, giving you the chance to win huge sums on a single spin. The main draw is obviously the massive winning potential, often reaching millions of dollars.
With its unforgettable Egyptian theme, thrilling free spins feature, and high volatility, this legendary slot by Play’n GO has captivated millions of players worldwide. The RTP rate is above average, giving you more consistent returns over time, which is perfect if you like games that respect your bankroll. For the thrill-seekers, high volatility means less frequent, but far more explosive payouts. The suspense builds with every spin that can be between A$0.02 and A$100, and when the wins land, they can be huge.
If you’re chasing big payouts, high volatility pokies are the way to go. If you prefer frequent wins, regardless of how small they are, low volatility pokies are a better option. The innovative Lunar Calendar mechanic transforms high-value symbols into wilds during full moons, while random features like multipliers and extra wilds keep the suspense high. With a medium to high volatility and a max win of 5,000x your stake, every spin is a step deeper into the supernatural. You can now experience the perfect blend of storytelling and pokie action with Blood Moon Wilds at Lucky7even. Big Bass Bonanza by Pragmatic Play is the ultimate catch for high rollers seeking thrilling gameplay and substantial rewards.
We’ve offered a few compelling reasons to make the switch and start playing free pokies online in Australia. We also explored other options like online poker and table games, so if you ever need a break from pokies, you’ll have plenty of choices to keep things exciting. Cash and crypto players can redeem up to $5,000 in bonuses across their first 5 deposits at Joe Fortune. The minimum deposit to start earning bonuses is $30, and crypto, Skrill, and Neteller deposits are exempt from promotions.
Legitimate casinos display license information in website footers. To do so, copy the license number and verify it directly with the licensing authority. Submit ID, address proof, and payment method verification documents. Subsequent withdrawals process faster without additional verification. Check your email for verification requests or withdrawal confirmations. Crypto withdrawals complete fastest with Hugo Casino processing in just 5-30 minutes.
You can typically access these demos through the manufacturers’ sites, although many new online casinos in Australia will also allow you to play demos. If you’re planning on spending a lot of time at an Australian online casino, then it’s a good idea to look into a loyalty program. You’ll typically get points for playing pokies, which will help you rise through levels. That’s why it’s better to place lower yet more frequent stakes on these types of games.
The design of the game is clean, the pace is steady, and the real action kicks in when Wilds with up to 5x multipliers start stacking. In any Australian online casino, you won’t find any tax charges. You won’t face any additional fees mandated by law, allowing you to cash out the entire amount of your winnings. Explore our reviews and insights for each site to ensure transparency and integrity. It works by returning a percentage of your net losses, typically between 5% and 10%, over a set period, like a week. The best part is that this money often comes with very low or even zero wagering requirements.
Crownplay Casino launched in 2020 under Curaçao licensing with 9,000+ pokies. The platform supports Bitcoin, Litecoin, Ethereum, and USDT across multiple blockchains. Withdrawals process instantly to 48 hours depending on payment method.
Other than these features, the game is pretty straightforward, with the usual customisation buttons for setting your bet and an auto-spin option. To kick off the Hold and Win game, you need at least three regular bonus symbols or just one Zeus symbol. This effectively creates more opportunities for landing additional bonus symbols during the round, which would add even more respins.
For Australian players looking for a newer but ambitious brand, Goldex Casino is a hidden gem. Launched in 2022, it has already made waves with its clean interface, modern design, and high-value bonuses. This PR may contain links to online sports betting and gambling websites that are not affiliated with BSCN.
These features increase potential winnings and add layers of excitement to the gameplay. Return to Player (RTP) is a crucial metric that determines how much you can expect to win back from your wagers over time. For optimal player returns, look for pokies with an RTP percentage above 97%. Some of the best online pokies games in 2026 exceed this threshold, offering players a better chance of winning.
If spinning the same reels over and over isn’t your thing, SkyCrown is the ultimate destination for players who love variety. With thousands of pokies and a wide selection of other casino games, this Australian casino delivers endless entertainment for everyone. Yes, you can enjoy many pokies games for free, but you won’t have a chance to win any real money even if you hit the big jackpot while playing. Our team do a thorough technical review of a site before recommending it here.
Deposit only your budgeted amount rather than having extra funds available. Search the casino name on Trustpilot, Reddit, and casino review sites. Multiple unresolved complaints about withheld withdrawals indicate serious problems. Check if the casino responds to complaints and resolves issues. Common scam tactics include requiring additional deposits to “unlock” withdrawals.
I played inactively for about 2 weeks, which is too little to hope to hit one of the bigger jackpots. Mega Fortune offers 96.6% RTP including jackpot contributions. Gonzo’s Quest and Bonanza Megaways both offer 96% with Megaways mechanics. Higher RTP improves long-term odds but doesn’t guarantee short-term wins. Volatility impacts hit frequency more than RTP for individual sessions.
Additionally, venues are required to provide information and support for Australian gamblers. Bank transfers remain a popular payment method at Australian online casinos, particularly for those who prefer a more traditional approach to online transactions. This method is highly secure, as transactions are processed directly between the player’s bank and the casino.
The platform implies Curacao licensing through its operator network. The welcome bonus includes 25 free spins each worth a chance at €3 million jackpot. We tested 10 offshore casinos accepting Australian players with cryptocurrency support.
Whether you’re into pokies or other casino games, you’ll be happy to know there’s 15% weekly cashback available from Monday to Sunday. They feature over 6,000 Australian real money pokies, along with table games, scratch cards, and other specialty titles. Pokies are actually highly sophisticated games that use a range of mechanics, unique paytables and bonus elements to enhance the gameplay. RTP is a value through which gamers can assess how much the pokie is likely to pay out. Similarly, volatility indicates whether a pokie pays out bigger sums but less frequently, or has smaller payouts but players win more often.
Players can also join in-house tournaments with prize pools of 1,100 coins on Slots of the Week and 2,500 on the Concert Tours. The site is also optimized for mobile play, and you can even download its app on iOS and Android for an uninterrupted gaming experience. Payouts are also super quick, with most withdrawals taking up to 24 hours.
PayID offers instant transfers for Australian bank account holders and Neosurf provides prepaid voucher anonymity. Credit cards are also available and they typically process in one to three days while crypto completes in minutes. Finally, minimum deposits start at €/$10-30 depending on the method. In fact, ProntoBet leads with 38 options including credit cards, e-wallets, crypto, and bank transfers. Verify the security protocols of the casino to safeguard your financial and personal data. To guarantee fair gameplay, respectable Australian casinos also employ audited Random Number Generators (RNGs).
You can play whatever game strikes your fancy, whether it is because of the theme, the graphics, the soundtrack, the provider or any other reason. You can even try out multiple games at once and stick with the one you find to be the most fun. Free pokies are a great way to try out different sorts of games and experiment with new strategies and betting styles. For example, do you think you will win more money faster by betting a higher amount each spin or a lower amount? With free games, you can try out both strategies in multiple different games and see which one works the best for you.
Of all online pokies for real money, Wolf Gold is one of the most famous. That’s just two years after its founder, Pragmatic Play, was formed as a company. Since then, it’s gone on to be one of their most famous pokies of all time, and for good reason.
They are the powerhouses behind the varied world of online pokies. They offer a sense of nostalgia, reminiscent of the good old days. Typically defined by their three reels, these machines keep things simple, akin to the early Australian poker machines that gained popularity in local pubs. Simple symbols, fewer paylines, and straightforward gameplay are their hallmarks. These machines pack a punch and offer solid payouts for those with Lady Luck on their side.
The rise of mobile gaming has created a demand for the best pokies sites catering to on-the-go players. Ricky Casino stands out by offering a dedicated app and a PWA app, ensuring access to favorite games anytime, anywhere. Its commitment to mobile optimization is evident in its user-friendly interface and seamless gameplay. This makes Ricky Casino the perfect choice for pokie enthusiasts who prefer gaming on their smartphones or tablets.
These games feature jackpots that grow incrementally as players place bets, often reaching life-changing amounts. The allure of hitting a massive jackpot with a single spin makes these pokies incredibly popular. High RTP pokies not only increase your chances of winning but also provide a more enjoyable gaming experience. Focusing on high RTP games can https://www.devilark.org.au/ significantly improve your outcomes when playing real money pokies.
Its strong privacy measures and swift cryptocurrency payments create a reliable and secure gaming environment for Australian players. The best one for you will depend on your personal preferences. Factors you may want to consider when choosing online casinos include game selection, bonus offers, and customer support.
The rise in popularity of mobile pokies has made it easier than ever for players to engage with their favorite games on the go. Free spins bonuses are a favorite among players as they provide additional spins or extra money to play with, increasing the chances of winning. These bonuses can be part of a welcome package or offered as stand-alone promotions.
The best online pokie sites in Australia allow you to play demo games before using real money. It’s a great way to test the game, see how it works, and explore its features. You can also see the betting options, test bonus buy, and more as if you’re playing the pokie for real money. Megaways online pokies are incredibly popular among Aussies; it’s like a local brand. These games usually have high RTP but also offer lower payouts that activate more often.
Since most of these pokies have lower volatility, they offer an exciting experience with loads of winning combinations. It’s well worth playing with a slightly higher wager to score higher payouts, but get used to the game first, how it reacts, and how payouts work before you jump into a higher bet. Yes, winning real money is possible when playing with bonus funds, but these come with strings attached. Playing real money online pokies can be exciting, but it’s crucial to know the risks and do it responsibly. Here are some key strategies to help you stay in control and ensure a positive experience.
Legitimate casinos publish clear bonus terms in easily accessible pages. Vague wagering requirements or hidden maximum cashout limits indicate problems. We explain what to check before depositing money at any offshore platform.
Bitcoin averages 15 minutes while Ethereum takes 5-10 minutes. Withdrawals process in 5 minutes to 1 hour after casino approval. Network fees range from $0.01 for Solana to $10 for Ethereum during congestion. Bitcoin averages $1-$3 while Tron-based Tether costs under $1. The registration process takes 2-5 minutes at most offshore casinos.
If you prefer, you can opt for one of the exciting, newer NetEnt games such as Jack Hammer 4. Examples of their fantastic graphics and high RTPs can be found in their online pokies, Extreme Magic Hold & Win and Gold Nugget Rush. That’s why we encourage players to stay safe by using responsible gambling tools. You’ll get a percentage of your stake back as cash directly credited to your account. Except with this type of offer, you typically don’t need to wager the cash a bunch of times. The benefit of these matched deposits is that you can typically play them on any game you want.
It has 30 fixed paylines, 5 reels and 4 rows, with options like turbo and auto spins, making it seem like a standard pokies. However, it’s far from a standard game, with four jackpots, bonus symbols that unlock special features, and multipliers to boost your winnings. The 200% welcome bonus up to €1,000 offers strong value for new players. The 5,000+ game library includes slots, live casino, table games, and video poker from quality providers like Microgaming, Thunderkick, and Hacksaw Gaming. Kingmaker Casino operates with 8,500+ games including 4,300+ slots and 220+ live dealer titles.
In addition to pokies, you might also want to play other casino classics like video poker, blackjack, and roulette. For this reason, we only featured Australia casinos with plenty of other great online casino games to choose from. With so many options in the online casino industry these days, though, the biggest problem is finding the most suitable and reputable online pokies sites to start your journey.
Instead of featuring a fixed jackpot amount, progressive jackpot pokies surrender a portion of each losing bet by all players and dump it into the big progressive pool. Like most other AUS online pokies sites, Rockwin doesn’t have a downloadable app for iOS & Android, but their browser version is just as good without the hassle of downloading. Licensed AUS online casino sites offer tools to help you play responsibly. You can set deposit limits, take a cooling-off period, or self-exclude if you need a longer break. Sites like Rooster Bet also partner with support organizations, providing direct links to professional help should you ever need it. The site offers over 3,500 games, spanning pokies, crash titles like Aviator, and live casino classics.
Players can expect a variety of bonus rounds, free spins, and multipliers in their pokies, adding an extra layer of excitement to the gaming experience. Bally’s commitment to delivering quality pokies has earned it a dedicated following among Australian players. Progressive jackpot pokies are the crown jewels of online casinos.
High volatility games offer bigger payouts but less frequently, while low volatility games provide smaller, more frequent wins. Volatility understanding helps tailor game choices to your risk tolerance and gameplay style. This site is known for its extensive selection of progressive jackpots and other casino games, making it a favorite among online gambling enthusiasts. The same types of online pokies can be found at the best UK online casinos as well, so make sure to check them out if you plan to travel there.
This high-energy game stars an amphibian Elvis impersonator setting the stage amidst glitzy casinos and swaying palms. You just need a casino site that doesn’t waste your time or bankroll. However, we don’t know of any lakes that can give you 10,000 fish on a single cast, making the payouts here far more impressive than what you’re likely to find out on the water. Don’t play Yummy Dumplings on an empty stomach, as the images of Asian cuisine will have your tummy rumbling in no time. Your pockets will also be drawn to the four different jackpots available, ranging from mini to grand. Just make sure you’re playing on a trusted site like Neospin, Skycrown, or Kingmaker, places with a track record of actually paying out.
]]>However, the wins there can pile up fast — and exactly how fast is up to you, as the volatility is entirely customizable. To claim a welcome bonus, players may need to enter a promo code during registration or meet a minimum deposit requirement. Wagering requirements typically range from 30x to 50x, meaning players must wager the bonus amount that many times before making withdrawals.
There are games to be found from the best developers including Aristocrat, Lightning Link, Ainsworth and Bally. Volatility in pokies refers to how often and how much you can expect to win during gameplay. It directly affects your gaming experience, influencing the frequency and size of payouts. In general, low volatility means more frequent, smaller wins, while high volatility pokies offer larger, but less frequent, payouts. Depending on your playstyle, understanding volatility can help you choose the right game to match your risk tolerance and overall strategy.
The minimum deposit to start earning bonuses is $30, and crypto, Skrill, and Neteller deposits are exempt from promotions. On the brighter side, there are no fees whatsoever, and the crypto payouts are delivered within 24 hours or less, though bank transfers take days to be processed. CrownPlay offers a selection of payment options tailored to the needs of most players. When it comes to online pokies, NeoSpin is the king in Australia! Several thousand games, over 50 gaming studios, and a $25,000,000+ prize pool are ready and waiting. Candy Monsta is a lighthearted pokie game with sticky wilds during the free spins round, giving you a real chance at building up wins.
Then, there are sports-branded pokies that can relate to anything from Maradona to Tom Brady, and music-themed pokies referencing the likes of Guns’n Roses, KISS, and Motorhead. Additionally, cryptocurrencies typically have lower transaction fees than credit cards or e-wallets, making them a cost-effective choice. However, due to their volatility, cryptocurrencies may not be the best option for everyone, as their value can fluctuate significantly over short periods. Finally, we considered the licensing and overall reputation of each casino.
Set limits for wins and losses to avoid chasing losses and ensure you quit while you’re ahead. Not every casino site loads perfectly in Australia, especially offshore ones. Just set your location to a nearby country and you’ll usually be good to go. Nothing beats playing with a real dealer, even if you’re still on the sofa. You can join a table for blackjack, roulette, or baccarat, or go for something totally different like Crazy Time or Monopoly Live. Third-party auditors such as eCOGRA and iTechLabs perform random tests to check the RNG (Random Number Generator) software and make sure RTP percentages are accurate.
The selection ranges from every single cuisine you might imagine, to a classic buffet style dining experience. There is even a music stage among the seven full sized bars you’ll be able to find within this huge casino. They are on every single reputable online casino, and they are Australia’s favourite online gambling game. A poker machine is a gambling machine that displays three and up reels that rotate when you pull a lever. If you’ve matched three or more Fruits (if the machine allows it), you are entitled to some money.
The ones that started it all, these are likely the games you picture when you think of online pokies. These online Australian pokies use traditional symbols like fruit, bars, and numbers, and they’re easy to understand (but still a whole lotta fun to play). That’s why we put together this guide to the most popular types of games, as well as who they’re best suited for. No matter your style, there’s a type of playing pokies online out there perfect for you. With regular base game wins to balance the risk and the chance for multiple bonuses at once, it’s a strong pick for players chasing variety and win potential.
Purchasing cryptocurrency involves exchanges like Coinbase or Binance. Cryptocurrency options range from 3-13 coins across platforms. Hugo Casino leads with Bitcoin, Ethereum, Litecoin, Tether, Solana, Cardano, Dogecoin, Ripple, TON, USD Coin, Bitcoin Cash, and Binance Pay. Multi-chain support for Tether includes ERC-20, TRC-20, and BEP-20 networks.
To excite players further, there are hot drops, hold and win, and bonus buy pokies that give players the incentive they need to hunt colossal jackpot prizes. With the increasing popularity of cryptocurrencies, many Australian online casinos now accept Bitcoin, Ethereum, and other digital currencies as payment methods. Cryptocurrencies are considered one of the most efficient payment options available, particularly for withdrawals. Deposits and withdrawals made with cryptocurrencies are often processed within minutes, making this method faster than traditional banking options.
Daily bonus offers also make sure there’s always something for regular players as well. Australian players at SkyCrown can choose from 15+ payment options, including Visa, Mastercard, Apple Pay, and a wide range of cryptocurrencies like Bitcoin and Dogecoin. Deposits are instant, while withdrawals take an average of 10 minutes. Regular players can look forward to ongoing bonus offers like 100 free spins every Wednesday, daily cashback of up to 20%, and weekly reload bonuses of up to A$1,000. Ready to find out how these online pokies earned a spot on our list? Our team of experts played each game, analyzing their RTPs, maximum payout potential, and more.
Besides desperadoes, you have mini and major jackpots to chase, and a variety of scatters, free spins, and wilds keep every turn interesting and high-stakes. There are many ways to claim casino bonuses, and this differs from one casino to the next. The most important thing is to take note of the wagering requirements so that you can comply. Play’n GO specialises in high-volatility pokies with Egyptian and mythology themes. Book of Dead (96.21% RTP) is their flagship – a volatile game where the book symbol acts as both wild and scatter. Reactoonz and its sequels use cluster-pay mechanics instead of traditional paylines.
The rise in popularity of mobile pokies has made it easier than ever for players to engage with their favorite games on the go. Free spins bonuses are a favorite among players as they provide additional spins or extra money to play with, increasing the chances of winning. These bonuses can be part of a welcome package or offered as stand-alone promotions.
Playing should be fun, and you should never spend more than you can afford. The review process for recommended sites includes a 25-step review process for safety and legitimacy. Choosing a licensed casino ensures a safe and enjoyable gambling experience, protecting your personal and financial information. Choosing the best online pokies in Australia on your own can be quite a handful. Progressive jackpots are much more fun because their jackpot amounts constantly change. Your bets help make the jackpot bigger, so don’t hesitate to make some wagers and try to get that big win.
You can play online casino games like pokies on your phone using mobile-optimised Australian casino sites or apps. The best pokies sites work across iOS and Android, letting you play real money casino games without losing quality or features. Some Australian casinos offer free spins with no deposit, allowing you to play real money pokies without spending your own cash. If you win, the money is often credited as bonus funds, which must meet wagering requirements before you can withdraw.
POLi, in particular, is widely accepted at Australian online casinos and provides a secure way for players to deposit funds using their existing online banking credentials. Spinsy is one of the top casinos in Australia, and it knows how to keep its players entertained. Specializing in pokies, it offers a wide array of slot games from leading developers. The vibrant interface is incredibly user-friendly, making navigation smooth whether you’re playing on a desktop or mobile device. The majority of online Australian pokies have five reels and include more intricate gameplay and more paylines.
It boasts one of the most visually immersive themes, offering Aussie players additional in-game bonuses, including free spins. This means there are even more chances to win… as if the game needed any. Hugo Casino ranks best overall with 13 cryptocurrencies and 5-30 minute withdrawals. Your best choice depends on priorities like game variety, crypto support, or bonus size. Playing at offshore pokies casinos is legal for Australian residents.
Their promotions page is stacked with reloads, weekend offers, and extras that apply to both pokies and table game players. Games load quickly, filters are easy to use, and you can sort the best AUS online pokies by category, popularity, software provider, or release date. There’s no app to download, but Joe Fortune’s mobile site does everything you need it to. All 500+ games, including their top jackpot pokies, work smoothly in your phone’s browser. Joe Fortune is offering up to $5,000 in bonuses and 450 free spins across your first five deposits. It’s easy to see why Ignition Casino is so popular – it features 250+ classic pokies, 8+ virtual sports betting options, and countless specialties.
These mobile-optimized sites offer themes ranging from classic to modern, catering to various player preferences. Mobile pokie apps provide smooth gameplay and exclusive bonuses, making them a preferred choice for many players. Mobile-optimized websites for playing pokies are designed to provide a good gaming experience on any device. Utilizing modern technology, specifically HTML5 and Javascript, ensures a seamless experience across devices.
The multiplier can reach up to 1024x, but even smaller ones can be a big boost to the final payout. Other than these features, the game is pretty straightforward, with the usual customisation buttons for setting your bet and an auto-spin option. The Hold and Win round paid out about A$60, thanks to the sticky bonus symbols and the re-spins you get with every new bonus symbol drop. I found the betting limits a bit low, ranging from A$0.10 to just A$20.
Discover a wide variety of mobile pokie games, with themes ranging from classic to modern and everything in between. Enjoy real pokies machines online that are easy to play, with stunning graphics and cool sound effects that pull you into the action. No matter what type of games you like, there’s something for everyone available at your chosen online pokies site. Enjoy the thrill of pokies real money online on mobile apps designed for both iOS and Android devices.
The rewards that you be entitled to are in the form of real money. Either paid out as an instant no deposit bonus or a percentage match on dollar value of deposits. The games will start to be a lot more interesting when you start earning real dollars. Check out some of the best real money pokies bonus offers available in 2020. Australians can find all sorts of great online casino sites offering real money pokies.
Another titan of the industry it Playtech, a European company that was formed in 1999. The provider has collaborated with many other pokies providers, and has a tremendous range of games, ranging from the classics to the complex video pokies and even a few 3D games. Gonzo’s Quest revolves around a Spanish explorer looking for treasure among Incan ruins.
By staying informed and using the available tools, you can enjoy playing online pokies responsibly and safely. You may well find that you want to play your favourite online pokies on your mobile device. If that’s the case, make sure to pick the right mobile pokies site. You won’t be able to download any pokies casino apps in Australia due to the lack of valid licenses.
If you’re looking for a casino that combines quality gaming with top-notch service, Crownplay is a top contender. Real money pokies sites let you deposit money, play, and withdraw your winnings with ease. By the end of this guide, you’ll know exactly how to get started, make the most of your play, and have fun while staying in control. This site serves up jackpots, live dealers, and pokie action right in your browser—no downloads needed. It’s a prime pick among online Australian pokies for real money casinos, with fast crypto payments and Aussie fiat support.
The welcome bonus includes 25 free spins each worth a chance at €3 million jackpot. We tested 10 offshore casinos accepting Australian players with cryptocurrency support. Each platform offers thousands of pokies with instant crypto deposits and fast withdrawals. Compare licensing, game counts, welcome bonuses, and our expert ratings below. Any reputable pokies site in Australia accepts a broad range of secure payment methods.
You don’t have to play maximum bet, but minimum bet won’t do you any favours either. Choose an amount around 5x to 10x higher than the minimum bet. Classic pokies seem simple, but because of the high volatility, they can fool you into thinking the next big win is around the corner, causing you to increase your wager.
One of the first things you should look for is the overall quality and selection of different pokie games. This way, you can play the games you like and ensure that you can play a pokie with the theme, jackpot, and RTP that you want. It’s a good idea to be as informed as possible about the various types of online pokies features for this reason.
Boost your bankroll and mobile gaming fun with awesome promotions and bonuses. Minimum bets are the smallest amount you can bet on a single payline to have a chance at winning. For instance, if the minimum bet is $1, you can’t cash out any winnings if you bet less, like $0.9.
Make sure that the casino’s phone, email, and live chat support are all conveniently accessible and offer prompt assistance by testing them. Timely resolution of problems or timely answering to inquiries are dependent on having dependable customer service. Verify the security protocols of the casino to safeguard your financial and personal data. To guarantee fair gameplay, respectable Australian casinos also employ audited Random Number Generators (RNGs).
The modern Aus online pokies are based on Random Number Generators (RNGs) to ensure fair gameplay. So, whether you choose to play at a traditional or online casino, you’ll be able to play the best real pokies online in Australia safely. Yes, you can play pokies for free or for real money, depending on your goals. Free pokies are ideal for learning game mechanics and testing features, while real money pokies offer cash payouts, bonuses, and jackpots but involve financial risk.
You can play online pokies in Australia for real money at a number of different online casinos, but we recommend that you stick with trusted operators like NeoSpin and Rockwin. Progressive jackpot pokies are slot games that feature a jackpot which grows incrementally as players bet and play. The jackpot increases until someone wins, often resulting in massive payouts. Megaways slots represent the pinnacle of slot innovation, offering dynamic reel structures with the potential for thousands of ways to win on each spin. With the random reel modifier, these games keep every playthrough exciting and unpredictable, making them a favorite among players who crave variety and the thrill of the unknown. The introduction of unlimited win multipliers and varying symbol sizes creates a gameplay experience that is as rewarding as it is revolutionary.
Australia has the lion’s share of world class online pokies real money to pick from, with no shortage of quality online casinos providing them. Some games stand out more than others, continuously starring in the Hot or Popular categories at the top Aussie casinos. As such, these games are also frequently attached to bonuses and promotional offers. Casinos that allowed for fast deposits and withdrawals, particularly those that processed payouts within 24 hours, received higher marks. We understand that players want to access their winnings quickly, so best online pokies sites with slow withdrawal times ranked lower.
The casino accepts both fiat and cryptocurrencies, offering flexibility when it comes to transactions. No, you do not have to download anything in best online pokies real money order to play free pokies. Download versions are available of course, and they do have their benefits.
You’ll have difficulty finding another online pokies casino that offers as many pokies as we find here. One of the key figures to understand in online pokies is the RTP. This stands for Return to Player, which gives you an idea of what it’s about – the RTP of a game is the average payout.
This mode is more suitable for testing your tactics, training, and also when you want to get acquainted with a new pokie game without risks of losing your own money. The registration process is streamlined and secure, emphasizing cryptocurrency transactions for speed and privacy—two aspects highly valued by Australian pokies fans. This innovative approach positions Jackbit among Australia’s top pokies destinations. Finally, Jackpot City is another one of the best places to play online if you want the best mobile compatibility possible. Many factors go into determining the most trusted gambling site.
Microgaming’s commitment to delivering a seamless experience across multiple platforms ensures that players can enjoy their favorite games on both desktop and mobile devices. IOS apps for iPhone and iPad gamers are compared alongside the Android equivalents. Real money online pokies games can be enjoyed just as easily on your Windows Phone or Blackberry, too.
Each pokie has a published Return to Player (RTP) percentage, typically between 92% and 98%. A 96% RTP means the game returns $96 for every $100 wagered over millions of spins. This is a long-term mathematical average – individual sessions can vary dramatically in either direction. Establishing a dedicated casino budget can help you play responsibly. Only play with money you can afford to lose, and keep this budget separate from your everyday finances.
Fast payouts are crucial since players want to avoid unnecessary delays. Always check available deposit and withdrawal methods for security and convenience when engaging with online casinos. Welcome bonuses are one of the most attractive offers for new players.
A great real money pokie Australia casino should have a wide range of online pokies and other games to suit every player. We look for a mix of popular classics, bonus-bou games, new releases, and jackpots. Aussie players love variety, so the casinos we choose often have thousands of pokies from top providers like Aristocrat, BGaming, and Wazdan. Jet4Bet hosts thousands of titles in real money online slots, table games, and live dealer sections. Providers like BGaming, Playson, and Booongo cover the online pokies Australian players love, with solid progressive jackpot options.
We prioritised Australian online casinos with the largest collection of real money pokies, including progressive jackpots, Megaways, bonus buys, and classic pokies. Extra points went to platforms offering new releases, exclusive pokies, and solid variety across providers. The most popular free online pokies are also the ones that attract the most players in real money mode.
Progressive jackpot pokies pool portions of each bet into massive prizes. Video pokies include bonus rounds, free spins, and interactive features. Most online casinos supply demo versions of their games so players can get a taste of the mechanics and gameplay before spending any money.
If you prefer, you can opt for one of the exciting, newer NetEnt games such as Jack Hammer 4. Examples of their fantastic graphics and high RTPs can be found in their online pokies, Extreme Magic Hold & Win and Gold Nugget Rush. That’s why we encourage players to stay safe by using responsible gambling tools. You’ll get a percentage of your stake back as cash directly credited to your account.
I really like to hear as many opinions as I can, so be sure to leave a comment down below. Pokies are extremely fun, if you are looking to play pokies in real-life, we’ve got some suggestions for you. We’re gonna provide you with four amazing pokie place casinos. There are so many mobile games to choose from, it’s difficult to recommend which are best. The above-level games will all use the same or similar RNG but some games, depending on their themes, will have different styles, bonus games, payout lines and jackpots.
It makes sense – a fair environment will continue to pull in punters over time, building up a respectable and thus popular reputation. Reputable Aussie casinos make it easy to play pokies online with a bevy of secure payment methods. Check game contribution rates and max bet rules to avoid slowing down your rollover. Absolutely, there are legit Australian pokies sites that pay real money. The top Australian online casinos all offer real money pokies with fair odds, licensed software providers, and fast payout systems.
]]>