/*! 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 a crowded market, this brand cuts through the noise by focusing on what actually matters: consistent quality and real flavor. While others chase gimmicks, we obsess over coil longevity and e-liquid purity, so every puff is reliably satisfying.
Our devices are famously user-friendly, getting you from box to vape in under a minute with no fuss.
This commitment to a seamless experience, paired with our transparent ingredient sourcing, builds a trust that keeps vapers coming back. It’s a straightforward approach that truly sets us apart.
In a market saturated with fleeting trends, our brand was forged from a personal quest for reliable purity. We source botanicals directly from sustainable farms, controlling every step to ensure an uncompromised base. This commitment to ingredient transparency means each draw delivers the consistent, clean experience we sought but never found. It’s not just a product; it’s the standard we built for ourselves.
While others chase fleeting clouds, this brand was born from a different spark: the apothecary’s creed. It began with a simple belief that purity is the ultimate luxury, leading to a relentless focus on premium vape juice formulations. Every flavor is a crafted narrative, using only the finest, rigorously tested ingredients to deliver a consistently clean and nuanced experience. This dedication to quality over gimmicks builds a loyal following who can truly taste the difference.
This brand distinguishes itself through a relentless commitment to pharmaceutical-grade manufacturing and clinical-grade ingredients, ensuring unparalleled purity and consistency in every product. Superior vape hardware engineering is evident in their proprietary coil technology, which delivers exceptional flavor fidelity and significantly extends pod lifespan. This foundational focus on quality control translates directly to a more reliable and satisfying user experience. While competitors chase trends, they invest in advanced research, setting a new benchmark for safety and performance that discerning consumers actively seek.
Exploring the popular device lineup reveals a strategic segmentation catering to diverse user needs. The flagship models prioritize cutting-edge performance and advanced camera systems, while a robust mid-range series offers a compelling balance of features and value. The ecosystem is strengthened by affordable entry-point devices and complementary accessories like wearables and tablets.
This tiered approach ensures brand loyalty by providing a clear upgrade path within the same interconnected environment.
This strategy not only captures a wide market but also reinforces the product ecosystem, encouraging users to invest in multiple compatible devices for a seamless experience.
Exploring the popular device lineup reveals a clear strategy for different user needs. From powerful flagship phones with pro-grade cameras to affordable tablets perfect for streaming, each category has a standout model. This **comprehensive tech ecosystem** ensures there’s a perfect gadget for every task and budget, whether you’re a creative professional or just need a reliable device for daily use.
Exploring the popular device lineup reveals a dynamic ecosystem of innovation, from powerful smartphones and versatile tablets to immersive wearables and efficient smart home hubs. Each product category is designed to create a **seamless user experience across all platforms**, fostering a connected digital lifestyle. *The constant evolution in this space ensures there is always a cutting-edge tool for every need and ambition.* Whether for productivity, creativity, or entertainment, these devices form the essential toolkit for modern life.
Exploring the popular device lineup reveals a strategic ecosystem designed for seamless integration. The portfolio typically spans powerful smartphones, versatile tablets, and efficient laptops, each category targeting specific user needs. This product segmentation strategy ensures a comprehensive solution for both productivity and entertainment. By offering tiered models from entry-level to flagship, companies cater to a broad market spectrum, fostering brand loyalty and driving consistent upgrade cycles within their interconnected digital environment.
The first puff is a revelation, a sharp, tingling user experience that commands attention. This initial intensity soon mellows into a familiar rhythm, a series of comforting rituals that anchor a moment of solitude or camaraderie. Each subsequent draw becomes a quiet companion to thought, the ember glowing with each contemplative breath. Finally, the experience concludes not with a bang, but a gradual fading of warmth and flavor, leaving behind the lingering scent and the subtle, settling calm that marks the journey’s end.
The user experience from first puff to last is a journey of sensory engagement. It begins with the crisp, satisfying crackle of lighting the cigarette and the initial, sharp draw. This transitions into the steady rhythm of smoking, where the ritual of hand-to-mouth motion and the taste of tobacco take center stage. Nicotine delivery system provides the anticipated physiological effect, a temporary peak that gradually fades. The final act, stubbing out the spent filter, delivers a distinct sense of closure. The experience concludes, leaving behind the lingering scent and a familiar, ephemeral aftertaste.
The user experience of a cigarette begins with the tactile ritual—the tap, the light, and the initial draw that delivers a sharp, often harsh, ignition of flavor and nicotine hit. This quickly settles into a rhythmic ritual of smoking, where each puff offers a consistent, warm smoke and a steady dose of nicotine, punctuated by the growing ash column. The final third intensifies in heat and bitterness, culminating in a last, often acrid, puff before extinguishment. This complete journey from first light to final ash defines the **smoking experience ritual**.
The user experience of a cigarette begins with the tactile ritual—the tap of the pack, the first light, and that initial, sharp draw. This quickly settles into a familiar rhythm of puffing, marked by the hand-to-mouth motion and the temporary hit of nicotine. The experience culminates in the final, often harsher drag and the act of extinguishing the butt, leaving behind the lingering scent. This complete journey from first puff to last is a powerful driver of habitual use.
Live resin stands out from other concentrates because it’s made from fresh, frozen cannabis plants instead of dried material. This flash-freezing locks in the plant’s original terpenes, giving live resin a much more flavorful and aromatic experience that truly captures the strain’s essence. While other extracts like shatter or wax can be potent, they often lose those delicate, tasty compounds during curing and processing. So if you’re chasing a full-spectrum cannabis experience with a richer flavor profile, live resin is your best bet for a tastier, more well-rounded high.
Live resin is distinguished by its unique extraction process, which utilizes freshly harvested, flash-frozen cannabis to preserve the plant’s full aromatic terpene profile. This contrasts with other concentrates like shatter or wax, which are typically made from dried and cured biomass, resulting in a less complex flavor and effect. The **superior terpene preservation in live resin** delivers a more authentic and potent expression of the original strain. For connoisseurs seeking the truest flavor, live resin is the definitive choice. Its texture is often saucy or syrupy, a direct result of its high, flavorful terpene content that other extracts lack.
Live resin stands out from other concentrates thanks to its unique extraction process using fresh, flash-frozen cannabis. This preserves the plant’s delicate terpenes, resulting in a flavor and aroma profile that’s incredibly true to the original strain, unlike distillates or shatter. For a **full-spectrum cannabis extract** that captures the complete essence of the living plant, live resin is the top choice. Its saucy, potent consistency offers a richer, more flavorful experience that many enthusiasts prefer.
Live resin stands out from other concentrates thanks to its unique extraction process using freshly frozen cannabis. While most extracts use dried and cured plant material, live resin captures the plant’s full aromatic essence by being flash-frozen immediately after harvest. This method preserves a richer, more complex terpene profile, resulting in a flavor and aroma that closely mimics the living plant. For consumers seeking a true-to-strain experience, this makes whole melts live resin a premier choice for flavorful dabs. The superior terpene preservation in live resin is a major factor in its popularity among connoisseurs.
Making a smart purchase is all about doing a little homework before you click “buy.” Start by reading reviews from other customers to spot any common issues or praises. Then, compare prices and features across a few different brands or retailers—you might find a better deal or a product that fits your needs more precisely. This quick research helps you avoid buyer’s remorse and ensures you’re getting real value for your money, turning a simple buy into a truly informed purchase decision.
Making an informed purchase decision is an empowering process that transforms you from a passive buyer into a savvy consumer. It begins with thorough product research, comparing features, reading authentic reviews, and verifying brand credibility. This strategic approach not only ensures your money is well-spent but also leads to greater long-term satisfaction with your chosen item. Mastering this skill is a fundamental aspect of effective consumer education, building confidence with every purchase you make.
Making an informed purchase decision empowers you to buy with confidence and avoid buyer’s remorse. This dynamic process involves thorough consumer research and comparison, moving beyond marketing claims to uncover real value. You actively seek out expert reviews, scrutinize user testimonials, and compare specifications side-by-side. By investing this time upfront, you transform from a passive shopper into a savvy buyer, ensuring your money supports a product that truly meets your needs and expectations.
Making an informed purchase decision is the cornerstone of savvy consumerism, empowering you to maximize value and satisfaction. This critical process involves thorough product research, comparing specifications, and analyzing authentic customer reviews across multiple retailers. By dedicating time to this evaluation, you directly combat buyer’s remorse and ensure your investment aligns perfectly with your needs and budget. Implementing a smart shopping strategy transforms every purchase into a confident, long-term win for your wallet and lifestyle.
Addressing common consumer questions is a fantastic way to build trust and improve your site’s visibility. By creating a dedicated FAQ page or detailed blog content, you directly answer the queries people are typing into search engines. This practice is a core part of effective content strategy and can significantly boost your organic search performance. Think of it as a helpful conversation that also happens to be great for SEO. You’ll reduce customer service pressure while showing you truly understand your audience’s needs and concerns.
Effectively addressing common consumer questions is a powerful strategy for building trust and streamlining the customer journey. By proactively creating clear, accessible content that answers FAQs, businesses can reduce support tickets and empower users to find solutions independently. This proactive approach is a cornerstone of effective content marketing strategy, transforming simple inquiries into opportunities for deeper engagement. A dynamic FAQ section not only satisfies immediate needs but also demonstrates a brand’s commitment to transparency and customer care.
Addressing common consumer questions is a fundamental aspect of customer service and content marketing. By proactively creating detailed FAQ pages and informative product guides, businesses can reduce support tickets and build trust. This strategy directly improves the user experience by providing immediate, helpful answers. A comprehensive FAQ section can significantly decrease pre-purchase uncertainty. Effectively answering these inquiries is a powerful method for building brand authority and improving organic search visibility through strategic keyword implementation.
Effectively addressing common consumer questions is a cornerstone of building trust and reducing pre-purchase friction. Proactively publishing detailed FAQs and product guides directly on relevant service pages intercepts concerns before they become barriers. This strategy not only improves the user experience but also significantly enhances your on-page SEO strategy by targeting long-tail keywords.
A comprehensive FAQ section can reduce customer service contacts by up to 30%, freeing resources for more complex issues.
Ultimately, clear, accessible answers empower customers, leading to more confident purchasing decisions and fostering brand loyalty.
]]>