@strapi/admin 5.37.1 → 5.38.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/App.js +1 -1
- package/dist/admin/admin/src/App.js.map +1 -1
- package/dist/admin/admin/src/App.mjs +1 -1
- package/dist/admin/admin/src/App.mjs.map +1 -1
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +2 -2
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/assets/images/free-trial.png.js.map +1 -1
- package/dist/admin/admin/src/assets/images/free-trial.png.mjs.map +1 -1
- package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.js.map +1 -1
- package/dist/admin/admin/src/assets/images/logo-strapi-2022.svg.mjs.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ConfirmDialog.mjs.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.mjs.map +1 -1
- package/dist/admin/admin/src/components/Context.js.map +1 -1
- package/dist/admin/admin/src/components/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/DragLayer.js.map +1 -1
- package/dist/admin/admin/src/components/DragLayer.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +1 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +14 -0
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +15 -1
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Checkbox.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Checkbox.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/DateTime.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/DateTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Email.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Number.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Password.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/String.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Textarea.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Time.mjs.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GapDropZone.mjs.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
- package/dist/admin/admin/src/components/LanguageProvider.js.map +1 -1
- package/dist/admin/admin/src/components/LanguageProvider.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.mjs +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +2 -2
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -2
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +2 -2
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +2 -2
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Pagination.js.map +1 -1
- package/dist/admin/admin/src/components/Pagination.mjs +1 -1
- package/dist/admin/admin/src/components/Pagination.mjs.map +1 -1
- package/dist/admin/admin/src/components/PluginsInitializer.js.map +1 -1
- package/dist/admin/admin/src/components/PluginsInitializer.mjs.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.js.map +1 -1
- package/dist/admin/admin/src/components/PrivateRoute.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.mjs.map +1 -1
- package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
- package/dist/admin/admin/src/components/SearchInput.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +3 -3
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +1 -1
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/Theme.mjs.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/components/WidgetHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetHelpers.mjs +3 -3
- package/dist/admin/admin/src/components/WidgetHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs +2 -2
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs +3 -3
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/constants/filters.js.map +1 -1
- package/dist/admin/admin/src/constants/filters.mjs.map +1 -1
- package/dist/admin/admin/src/constants/theme.js.map +1 -1
- package/dist/admin/admin/src/constants/theme.mjs.map +1 -1
- package/dist/admin/admin/src/constants.js.map +1 -1
- package/dist/admin/admin/src/constants.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.js.map +1 -1
- package/dist/admin/admin/src/core/apis/CustomFields.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Plugin.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.js.map +1 -1
- package/dist/admin/admin/src/core/apis/rbac.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs.map +1 -1
- package/dist/admin/admin/src/core/store/configure.js.map +1 -1
- package/dist/admin/admin/src/core/store/configure.mjs.map +1 -1
- package/dist/admin/admin/src/core/store/hooks.js.map +1 -1
- package/dist/admin/admin/src/core/store/hooks.mjs.map +1 -1
- package/dist/admin/admin/src/core/utils/basename.js.map +1 -1
- package/dist/admin/admin/src/core/utils/basename.mjs.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.js.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
- package/dist/admin/admin/src/features/AppInfo.js.map +1 -1
- package/dist/admin/admin/src/features/AppInfo.mjs.map +1 -1
- package/dist/admin/admin/src/features/Auth.js +0 -1
- package/dist/admin/admin/src/features/Auth.js.map +1 -1
- package/dist/admin/admin/src/features/Auth.mjs +1 -2
- package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
- package/dist/admin/admin/src/features/BackButton.js.map +1 -1
- package/dist/admin/admin/src/features/BackButton.mjs.map +1 -1
- package/dist/admin/admin/src/features/Configuration.js.map +1 -1
- package/dist/admin/admin/src/features/Configuration.mjs.map +1 -1
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/features/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/features/Widgets.js.map +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs +1 -1
- package/dist/admin/admin/src/features/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAPIErrorHandler.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAdminRoles.js.map +1 -1
- package/dist/admin/admin/src/hooks/useAdminRoles.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useClipboard.js.map +1 -1
- package/dist/admin/admin/src/hooks/useClipboard.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useControllableState.js.map +1 -1
- package/dist/admin/admin/src/hooks/useControllableState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useDebounce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDebounce.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -1
- package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useElementOnScreen.js.map +1 -1
- package/dist/admin/admin/src/hooks/useElementOnScreen.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useEnterprise.js.map +1 -1
- package/dist/admin/admin/src/hooks/useEnterprise.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useFetchClient.js.map +1 -1
- package/dist/admin/admin/src/hooks/useFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useFocusInputField.js.map +1 -1
- package/dist/admin/admin/src/hooks/useFocusInputField.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useForceUpdate.js.map +1 -1
- package/dist/admin/admin/src/hooks/useForceUpdate.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useInjectReducer.js.map +1 -1
- package/dist/admin/admin/src/hooks/useInjectReducer.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useIsMounted.js.map +1 -1
- package/dist/admin/admin/src/hooks/useIsMounted.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useOnce.js.map +1 -1
- package/dist/admin/admin/src/hooks/useOnce.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePrev.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePrev.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.js.map +1 -1
- package/dist/admin/admin/src/hooks/useRBAC.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useSettingsMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useSettingsMenu.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.js.map +1 -1
- package/dist/admin/admin/src/hooks/useThrottledCallback.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.js.map +1 -1
- package/dist/admin/admin/src/hooks/useWarnIfUnsavedChanges.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPassword.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ForgotPasswordSuccess.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Oops.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Oops.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/ResetPassword.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/NotFoundPage.js.map +1 -1
- package/dist/admin/admin/src/pages/NotFoundPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-dark.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-audit-logs-illustration-light.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-dark.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-content-history-illustration-light.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-dark.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/assets/purchase-page-sso-illustration-light.jpg.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/LifeSpanInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenDescription.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenName.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenTypeSelect.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/CreateView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/apiTokenPermissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ActionBoundRoutes.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/ContentTypesSection.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/FormApiTokenContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/getDateOfExpiration.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/utils/transformPermissionsData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/utils/files.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapsePropertyMatrix.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ConditionsModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypes.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/GlobalActions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/HiddenAction.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/Permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RequiredSign.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RoleRow.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/RowLabelWithCheckbox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/hooks/usePermissionsDataManager.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/constants.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/difference.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/getCheckboxState.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/layouts.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/permissions.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/removeConditionKeyFromData.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateConditionsToFalse.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/updateValues.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/CreateView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/CreateActionCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkCE.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/MagicLinkWrapper.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/NewUserForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/utils/validation.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/CreatePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +1 -3
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs +2 -4
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/EventsTable.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/HeadersInput.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/TriggerContainer.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/WebhookForm.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/utils/forms.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/utils/forms.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/reducer.js.map +1 -1
- package/dist/admin/admin/src/reducer.mjs +1 -1
- package/dist/admin/admin/src/reducer.mjs.map +1 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/router.js +4 -4
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/selectors.js.map +1 -1
- package/dist/admin/admin/src/selectors.mjs.map +1 -1
- package/dist/admin/admin/src/services/admin.js.map +1 -1
- package/dist/admin/admin/src/services/admin.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/services/contentApi.js.map +1 -1
- package/dist/admin/admin/src/services/contentApi.mjs.map +1 -1
- package/dist/admin/admin/src/services/homepage.js.map +1 -1
- package/dist/admin/admin/src/services/homepage.mjs.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.js.map +1 -1
- package/dist/admin/admin/src/services/transferTokens.mjs.map +1 -1
- package/dist/admin/admin/src/services/users.js.map +1 -1
- package/dist/admin/admin/src/services/users.mjs.map +1 -1
- package/dist/admin/admin/src/services/webhooks.js.map +1 -1
- package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
- package/dist/admin/admin/src/translations/es.json.js +356 -120
- package/dist/admin/admin/src/translations/es.json.js.map +1 -1
- package/dist/admin/admin/src/translations/es.json.mjs +355 -121
- package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.js +126 -1
- package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
- package/dist/admin/admin/src/translations/fr.json.mjs +126 -1
- package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
- package/dist/admin/admin/src/utils/arrays.js.map +1 -1
- package/dist/admin/admin/src/utils/arrays.mjs.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/cookies.js.map +1 -1
- package/dist/admin/admin/src/utils/cookies.mjs.map +1 -1
- package/dist/admin/admin/src/utils/deviceId.js.map +1 -1
- package/dist/admin/admin/src/utils/deviceId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js +1 -3
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs +1 -3
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.js.map +1 -1
- package/dist/admin/admin/src/utils/getPrefixedId.mjs.map +1 -1
- package/dist/admin/admin/src/utils/locales.js.map +1 -1
- package/dist/admin/admin/src/utils/locales.mjs.map +1 -1
- package/dist/admin/admin/src/utils/normalizeAPIError.js.map +1 -1
- package/dist/admin/admin/src/utils/normalizeAPIError.mjs.map +1 -1
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.mjs.map +1 -1
- package/dist/admin/admin/src/utils/once.js.map +1 -1
- package/dist/admin/admin/src/utils/once.mjs.map +1 -1
- package/dist/admin/admin/src/utils/resizeHandlers.js.map +1 -1
- package/dist/admin/admin/src/utils/resizeHandlers.mjs.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs.map +1 -1
- package/dist/admin/admin/src/utils/shims.js.map +1 -1
- package/dist/admin/admin/src/utils/shims.mjs.map +1 -1
- package/dist/admin/admin/src/utils/strings.js.map +1 -1
- package/dist/admin/admin/src/utils/strings.mjs.map +1 -1
- package/dist/admin/admin/src/utils/translatedErrors.js.map +1 -1
- package/dist/admin/admin/src/utils/translatedErrors.mjs.map +1 -1
- package/dist/admin/admin/src/utils/urls.js.map +1 -1
- package/dist/admin/admin/src/utils/urls.mjs.map +1 -1
- package/dist/admin/admin/src/utils/users.js.map +1 -1
- package/dist/admin/admin/src/utils/users.mjs.map +1 -1
- package/dist/admin/admin/src/utils/widgetLayout.js.map +1 -1
- package/dist/admin/admin/src/utils/widgetLayout.mjs.map +1 -1
- package/dist/admin/admin/tests/mockData.js.map +1 -1
- package/dist/admin/admin/tests/mockData.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/admin/tests/store.js.map +1 -1
- package/dist/admin/admin/tests/store.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +1 -1
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -1
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -1
- package/dist/admin/ee/admin/src/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimits.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/constants.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthResponse.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/HomePage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/HomePage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/constants.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AdminSeatInfo.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/ComboboxFilter.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/components/Modal.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useAuditLogsData.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/hooks/useFormatTimeStamp.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/CreateActionEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/MagicLinkEE.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Users/components/ModalForm.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/Webhooks/components/EventsTable.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.js.map +1 -1
- package/dist/admin/ee/admin/src/services/auditLogs.mjs.map +1 -1
- package/dist/admin/index.js +10 -6
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/DefaultDocument.js.map +1 -1
- package/dist/admin/src/components/DefaultDocument.mjs.map +1 -1
- package/dist/admin/src/components/Form.d.ts +1 -0
- package/dist/admin/src/components/NoJavascript.js.map +1 -1
- package/dist/admin/src/components/NoJavascript.mjs.map +1 -1
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/server/ee/server/src/ai/containers/ai.js +0 -4
- package/dist/server/ee/server/src/ai/containers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/containers/ai.mjs +0 -4
- package/dist/server/ee/server/src/ai/containers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +0 -4
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +0 -4
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -1
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/content-types/audit-log.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/content-types/audit-log.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/controllers/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/routes/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/validation/audit-logs.mjs.map +1 -1
- package/dist/server/ee/server/src/bootstrap.js.map +1 -1
- package/dist/server/ee/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/ee/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/ee/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/ee/server/src/content-types/index.js.map +1 -1
- package/dist/server/ee/server/src/content-types/index.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/constants.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/middlewares.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs +1 -1
- package/dist/server/ee/server/src/controllers/authentication-utils/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.js +5 -5
- package/dist/server/ee/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/ee/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/index.js.map +1 -1
- package/dist/server/ee/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/role.js.map +1 -1
- package/dist/server/ee/server/src/controllers/role.mjs +1 -1
- package/dist/server/ee/server/src/controllers/role.mjs.map +1 -1
- package/dist/server/ee/server/src/controllers/user.js +4 -4
- package/dist/server/ee/server/src/controllers/user.js.map +1 -1
- package/dist/server/ee/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +16 -16
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/ee/server/src/register.js.map +1 -1
- package/dist/server/ee/server/src/register.mjs.map +1 -1
- package/dist/server/ee/server/src/routes/index.js.map +1 -1
- package/dist/server/ee/server/src/routes/index.mjs.map +1 -1
- package/dist/server/ee/server/src/routes/license-limit.js.map +1 -1
- package/dist/server/ee/server/src/routes/license-limit.mjs.map +1 -1
- package/dist/server/ee/server/src/routes/sso.js.map +1 -1
- package/dist/server/ee/server/src/routes/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/routes/utils.js.map +1 -1
- package/dist/server/ee/server/src/routes/utils.mjs.map +1 -1
- package/dist/server/ee/server/src/services/auth.js.map +1 -1
- package/dist/server/ee/server/src/services/auth.mjs.map +1 -1
- package/dist/server/ee/server/src/services/index.js.map +1 -1
- package/dist/server/ee/server/src/services/index.mjs.map +1 -1
- package/dist/server/ee/server/src/services/metrics.js.map +1 -1
- package/dist/server/ee/server/src/services/metrics.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/provider-registry.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/provider-registry.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.js.map +1 -1
- package/dist/server/ee/server/src/services/passport/sso.mjs.map +1 -1
- package/dist/server/ee/server/src/services/passport.js.map +1 -1
- package/dist/server/ee/server/src/services/passport.mjs.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.js.map +1 -1
- package/dist/server/ee/server/src/services/persist-tables.mjs +4 -4
- package/dist/server/ee/server/src/services/persist-tables.mjs.map +1 -1
- package/dist/server/ee/server/src/services/role.js.map +1 -1
- package/dist/server/ee/server/src/services/role.mjs.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.js.map +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs +1 -1
- package/dist/server/ee/server/src/services/seat-enforcement.mjs.map +1 -1
- package/dist/server/ee/server/src/services/user.js.map +1 -1
- package/dist/server/ee/server/src/services/user.mjs +1 -1
- package/dist/server/ee/server/src/services/user.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/index.js.map +1 -1
- package/dist/server/ee/server/src/utils/index.mjs.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.js.map +1 -1
- package/dist/server/ee/server/src/utils/sso-lock.mjs.map +1 -1
- package/dist/server/ee/server/src/validation/authentication.js.map +1 -1
- package/dist/server/ee/server/src/validation/authentication.mjs.map +1 -1
- package/dist/server/ee/server/src/validation/role.js.map +1 -1
- package/dist/server/ee/server/src/validation/role.mjs.map +1 -1
- package/dist/server/ee/server/src/validation/user.js.map +1 -1
- package/dist/server/ee/server/src/validation/user.mjs.map +1 -1
- package/dist/server/index.js +18 -18
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +2 -2
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/server/src/bootstrap.js.map +1 -1
- package/dist/server/server/src/bootstrap.mjs +1 -1
- package/dist/server/server/src/bootstrap.mjs.map +1 -1
- package/dist/server/server/src/config/admin-actions.js.map +1 -1
- package/dist/server/server/src/config/admin-actions.mjs.map +1 -1
- package/dist/server/server/src/config/admin-conditions.js.map +1 -1
- package/dist/server/server/src/config/admin-conditions.mjs.map +1 -1
- package/dist/server/server/src/config/email-templates/forgot-password.js.map +1 -1
- package/dist/server/server/src/config/email-templates/forgot-password.mjs.map +1 -1
- package/dist/server/server/src/config/index.js.map +1 -1
- package/dist/server/server/src/config/index.mjs.map +1 -1
- package/dist/server/server/src/content-types/Permission.js.map +1 -1
- package/dist/server/server/src/content-types/Permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/Role.js.map +1 -1
- package/dist/server/server/src/content-types/Role.mjs.map +1 -1
- package/dist/server/server/src/content-types/User.js.map +1 -1
- package/dist/server/server/src/content-types/User.mjs.map +1 -1
- package/dist/server/server/src/content-types/api-token-permission.js.map +1 -1
- package/dist/server/server/src/content-types/api-token-permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/api-token.js.map +1 -1
- package/dist/server/server/src/content-types/api-token.mjs.map +1 -1
- package/dist/server/server/src/content-types/index.js.map +1 -1
- package/dist/server/server/src/content-types/index.mjs.map +1 -1
- package/dist/server/server/src/content-types/session.js.map +1 -1
- package/dist/server/server/src/content-types/session.mjs.map +1 -1
- package/dist/server/server/src/content-types/transfer-token-permission.js.map +1 -1
- package/dist/server/server/src/content-types/transfer-token-permission.mjs.map +1 -1
- package/dist/server/server/src/content-types/transfer-token.js.map +1 -1
- package/dist/server/server/src/content-types/transfer-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/api-token.js.map +1 -1
- package/dist/server/server/src/controllers/api-token.mjs +3 -3
- package/dist/server/server/src/controllers/api-token.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +2 -2
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/content-api.js.map +1 -1
- package/dist/server/server/src/controllers/content-api.mjs.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.js.map +1 -1
- package/dist/server/server/src/controllers/formatters/conditions.mjs.map +1 -1
- package/dist/server/server/src/controllers/homepage.js.map +1 -1
- package/dist/server/server/src/controllers/homepage.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/permission.js.map +1 -1
- package/dist/server/server/src/controllers/permission.mjs.map +1 -1
- package/dist/server/server/src/controllers/role.js.map +1 -1
- package/dist/server/server/src/controllers/role.mjs +1 -1
- package/dist/server/server/src/controllers/role.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/runner.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/runner.mjs.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.js.map +1 -1
- package/dist/server/server/src/controllers/transfer/token.mjs +2 -2
- package/dist/server/server/src/controllers/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/controllers/user.js.map +1 -1
- package/dist/server/server/src/controllers/user.mjs +1 -1
- package/dist/server/server/src/controllers/user.mjs.map +1 -1
- package/dist/server/server/src/controllers/validation/schema.js.map +1 -1
- package/dist/server/server/src/controllers/validation/schema.mjs.map +1 -1
- package/dist/server/server/src/controllers/webhooks.js.map +1 -1
- package/dist/server/server/src/controllers/webhooks.mjs.map +1 -1
- package/dist/server/server/src/destroy.js.map +1 -1
- package/dist/server/server/src/destroy.mjs.map +1 -1
- package/dist/server/server/src/domain/action/index.js.map +1 -1
- package/dist/server/server/src/domain/action/index.mjs.map +1 -1
- package/dist/server/server/src/domain/action/provider.js.map +1 -1
- package/dist/server/server/src/domain/action/provider.mjs +1 -1
- package/dist/server/server/src/domain/action/provider.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/index.js.map +1 -1
- package/dist/server/server/src/domain/condition/index.mjs.map +1 -1
- package/dist/server/server/src/domain/condition/provider.js.map +1 -1
- package/dist/server/server/src/domain/condition/provider.mjs.map +1 -1
- package/dist/server/server/src/domain/permission/index.js.map +1 -1
- package/dist/server/server/src/domain/permission/index.mjs +1 -1
- package/dist/server/server/src/domain/permission/index.mjs.map +1 -1
- package/dist/server/server/src/domain/user.js.map +1 -1
- package/dist/server/server/src/domain/user.mjs.map +1 -1
- package/dist/server/server/src/middlewares/data-transfer.js.map +1 -1
- package/dist/server/server/src/middlewares/data-transfer.mjs.map +1 -1
- package/dist/server/server/src/middlewares/index.js.map +1 -1
- package/dist/server/server/src/middlewares/index.mjs.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.js.map +1 -1
- package/dist/server/server/src/middlewares/rateLimit.mjs.map +1 -1
- package/dist/server/server/src/policies/hasPermissions.js.map +1 -1
- package/dist/server/server/src/policies/hasPermissions.mjs.map +1 -1
- package/dist/server/server/src/policies/index.js.map +1 -1
- package/dist/server/server/src/policies/index.mjs.map +1 -1
- package/dist/server/server/src/policies/isAuthenticatedAdmin.js.map +1 -1
- package/dist/server/server/src/policies/isAuthenticatedAdmin.mjs.map +1 -1
- package/dist/server/server/src/policies/isTelemetryEnabled.js.map +1 -1
- package/dist/server/server/src/policies/isTelemetryEnabled.mjs.map +1 -1
- package/dist/server/server/src/register.js.map +1 -1
- package/dist/server/server/src/register.mjs.map +1 -1
- package/dist/server/server/src/routes/admin.js.map +1 -1
- package/dist/server/server/src/routes/admin.mjs.map +1 -1
- package/dist/server/server/src/routes/api-tokens.js.map +1 -1
- package/dist/server/server/src/routes/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/routes/authentication.js.map +1 -1
- package/dist/server/server/src/routes/authentication.mjs.map +1 -1
- package/dist/server/server/src/routes/content-api.js.map +1 -1
- package/dist/server/server/src/routes/content-api.mjs.map +1 -1
- package/dist/server/server/src/routes/homepage.js.map +1 -1
- package/dist/server/server/src/routes/homepage.mjs.map +1 -1
- package/dist/server/server/src/routes/index.js.map +1 -1
- package/dist/server/server/src/routes/index.mjs.map +1 -1
- package/dist/server/server/src/routes/permissions.js.map +1 -1
- package/dist/server/server/src/routes/permissions.mjs.map +1 -1
- package/dist/server/server/src/routes/roles.js.map +1 -1
- package/dist/server/server/src/routes/roles.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.mjs.map +1 -1
- package/dist/server/server/src/routes/transfer.js.map +1 -1
- package/dist/server/server/src/routes/transfer.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/routes/webhooks.js.map +1 -1
- package/dist/server/server/src/routes/webhooks.mjs.map +1 -1
- package/dist/server/server/src/services/action.js.map +1 -1
- package/dist/server/server/src/services/action.mjs.map +1 -1
- package/dist/server/server/src/services/api-token.js.map +1 -1
- package/dist/server/server/src/services/api-token.mjs.map +1 -1
- package/dist/server/server/src/services/auth.js.map +1 -1
- package/dist/server/server/src/services/auth.mjs.map +1 -1
- package/dist/server/server/src/services/condition.js.map +1 -1
- package/dist/server/server/src/services/condition.mjs.map +1 -1
- package/dist/server/server/src/services/constants.js.map +1 -1
- package/dist/server/server/src/services/constants.mjs.map +1 -1
- package/dist/server/server/src/services/content-type.js +9 -9
- package/dist/server/server/src/services/content-type.js.map +1 -1
- package/dist/server/server/src/services/content-type.mjs +1 -1
- package/dist/server/server/src/services/content-type.mjs.map +1 -1
- package/dist/server/server/src/services/encryption.js.map +1 -1
- package/dist/server/server/src/services/encryption.mjs.map +1 -1
- package/dist/server/server/src/services/homepage.js.map +1 -1
- package/dist/server/server/src/services/homepage.mjs +1 -1
- package/dist/server/server/src/services/homepage.mjs.map +1 -1
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/server/src/services/metrics.js.map +1 -1
- package/dist/server/server/src/services/metrics.mjs.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.js.map +1 -1
- package/dist/server/server/src/services/passport/local-strategy.mjs.map +1 -1
- package/dist/server/server/src/services/passport.js.map +1 -1
- package/dist/server/server/src/services/passport.mjs.map +1 -1
- package/dist/server/server/src/services/permission/engine.js.map +1 -1
- package/dist/server/server/src/services/permission/engine.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/permission-fields.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/query-builders.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs +2 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.js.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs +2 -2
- package/dist/server/server/src/services/permission/permissions-manager/validate.mjs.map +1 -1
- package/dist/server/server/src/services/permission/queries.js +9 -9
- package/dist/server/server/src/services/permission/queries.js.map +1 -1
- package/dist/server/server/src/services/permission/queries.mjs +1 -1
- package/dist/server/server/src/services/permission/queries.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/builder.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/builder.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js +10 -10
- package/dist/server/server/src/services/permission/sections-builder/handlers.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/index.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/index.mjs +1 -1
- package/dist/server/server/src/services/permission/sections-builder/index.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/section.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.js.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/utils.mjs.map +1 -1
- package/dist/server/server/src/services/permission.js.map +1 -1
- package/dist/server/server/src/services/permission.mjs.map +1 -1
- package/dist/server/server/src/services/project-settings.js.map +1 -1
- package/dist/server/server/src/services/project-settings.mjs.map +1 -1
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +2 -2
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/services/token.js.map +1 -1
- package/dist/server/server/src/services/token.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/permission.js.map +1 -1
- package/dist/server/server/src/services/transfer/permission.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/token.js.map +1 -1
- package/dist/server/server/src/services/transfer/token.mjs +1 -1
- package/dist/server/server/src/services/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/services/transfer/utils.js.map +1 -1
- package/dist/server/server/src/services/transfer/utils.mjs.map +1 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +2 -2
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin.js.map +1 -1
- package/dist/server/server/src/strategies/admin.mjs.map +1 -1
- package/dist/server/server/src/strategies/api-token.js.map +1 -1
- package/dist/server/server/src/strategies/api-token.mjs.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.js.map +1 -1
- package/dist/server/server/src/strategies/data-transfer.mjs.map +1 -1
- package/dist/server/server/src/utils/index.js.map +1 -1
- package/dist/server/server/src/utils/index.mjs.map +1 -1
- package/dist/server/server/src/validation/action-provider.js.map +1 -1
- package/dist/server/server/src/validation/action-provider.mjs.map +1 -1
- package/dist/server/server/src/validation/api-tokens.js.map +1 -1
- package/dist/server/server/src/validation/api-tokens.mjs.map +1 -1
- package/dist/server/server/src/validation/authentication/forgot-password.js.map +1 -1
- package/dist/server/server/src/validation/authentication/forgot-password.mjs.map +1 -1
- package/dist/server/server/src/validation/authentication/login.js.map +1 -1
- package/dist/server/server/src/validation/authentication/login.mjs.map +1 -1
- package/dist/server/server/src/validation/authentication/register.js.map +1 -1
- package/dist/server/server/src/validation/authentication/register.mjs.map +1 -1
- package/dist/server/server/src/validation/authentication/reset-password.js.map +1 -1
- package/dist/server/server/src/validation/authentication/reset-password.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-are-correctly-nested.mjs.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.js.map +1 -1
- package/dist/server/server/src/validation/common-functions/check-fields-dont-have-duplicates.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +2 -4
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +4 -5
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/permission.js.map +1 -1
- package/dist/server/server/src/validation/permission.mjs.map +1 -1
- package/dist/server/server/src/validation/policies/hasPermissions.js.map +1 -1
- package/dist/server/server/src/validation/policies/hasPermissions.mjs.map +1 -1
- package/dist/server/server/src/validation/project-settings.js.map +1 -1
- package/dist/server/server/src/validation/project-settings.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/server/src/validation/transfer/token.js.map +1 -1
- package/dist/server/server/src/validation/transfer/token.mjs.map +1 -1
- package/dist/server/server/src/validation/user.js +1 -4
- package/dist/server/server/src/validation/user.js.map +1 -1
- package/dist/server/server/src/validation/user.mjs +1 -4
- package/dist/server/server/src/validation/user.mjs.map +1 -1
- package/dist/server/shared/utils/session-auth.js.map +1 -1
- package/dist/server/shared/utils/session-auth.mjs.map +1 -1
- package/package.json +17 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport { useGetHomepageLayoutQuery } from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [allAvailableWidgets, setAllAvailableWidgets] = React.useState<WidgetWithUID[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const checkWidgetsPermissions = async () => {\n const allWidgets = getAllWidgets();\n const authorizedWidgets = await Promise.all(\n allWidgets.map(async (widget) => {\n if (!widget.permissions || widget.permissions.length === 0) return true;\n const matchingPermissions = await checkUserHasPermissions(widget.permissions);\n return matchingPermissions.length >= widget.permissions.length;\n })\n );\n const authorizedWidgetsList = allWidgets.filter((_, i) => authorizedWidgets[i]);\n\n setAllAvailableWidgets(authorizedWidgetsList);\n setLoading(false);\n };\n\n checkWidgetsPermissions();\n }, [checkUserHasPermissions, getAllWidgets]);\n\n React.useEffect(() => {\n if (allAvailableWidgets.length === 0) return;\n\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n allAvailableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(allAvailableWidgets);\n setColumnWidths(createDefaultWidgetWidths(allAvailableWidgets));\n }\n }, [homepageLayout, allAvailableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n {loading ? (\n <Box position=\"absolute\" top={0} left={0} right={0} bottom={0}>\n <Page.Loading />\n </Box>\n ) : (\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","filteredWidgets","setFilteredWidgets","allAvailableWidgets","setAllAvailableWidgets","loading","setLoading","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","checkWidgetsPermissions","allWidgets","authorizedWidgets","Promise","all","map","widget","permissions","length","matchingPermissions","authorizedWidgetsList","filter","_","i","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","useMemo","index","rightWidgetId","uid","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","top","left","right","bottom","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HomePage.js","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport { useGetHomepageLayoutQuery } from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [allAvailableWidgets, setAllAvailableWidgets] = React.useState<WidgetWithUID[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const checkWidgetsPermissions = async () => {\n const allWidgets = getAllWidgets();\n const authorizedWidgets = await Promise.all(\n allWidgets.map(async (widget) => {\n if (!widget.permissions || widget.permissions.length === 0) return true;\n const matchingPermissions = await checkUserHasPermissions(widget.permissions);\n return matchingPermissions.length >= widget.permissions.length;\n })\n );\n const authorizedWidgetsList = allWidgets.filter((_, i) => authorizedWidgets[i]);\n\n setAllAvailableWidgets(authorizedWidgetsList);\n setLoading(false);\n };\n\n checkWidgetsPermissions();\n }, [checkUserHasPermissions, getAllWidgets]);\n\n React.useEffect(() => {\n if (allAvailableWidgets.length === 0) return;\n\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n allAvailableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(allAvailableWidgets);\n setColumnWidths(createDefaultWidgetWidths(allAvailableWidgets));\n }\n }, [homepageLayout, allAvailableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n {loading ? (\n <Box position=\"absolute\" top={0} left={0} right={0} bottom={0}>\n <Page.Loading />\n </Box>\n ) : (\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","filteredWidgets","setFilteredWidgets","allAvailableWidgets","setAllAvailableWidgets","loading","setLoading","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","checkWidgetsPermissions","allWidgets","authorizedWidgets","Promise","all","map","widget","permissions","length","matchingPermissions","authorizedWidgetsList","filter","_","i","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","useMemo","index","rightWidgetId","uid","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","top","left","right","bottom","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoCA;AACA,MAAMA,kBAAAA,GAAqBC,aAAAA,CAAOC,GAA0B;AAC/C,aAAA,EAAE,CAACC,KAAAA,GAAUA,KAAAA,CAAMC,SAAS,CAAC;;;oBAGtB,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;AAC5C,iBAAA,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAAA,CAAMG,YAAY,CAAC;;AAErD,CAAC;AAED;;2GAIaC,eAAAA,GAAkB,CAAC,EAC9BC,SAAS,EACTC,WAAW,EAIZ,GAAA;AACC,IAAA,MAAM,CAACC,eAAAA,EAAiBC,kBAAAA,CAAmB,GAAGC,gBAAAA,CAAMC,QAAQ,CAEjD,IAAA,CAAA;AAEXD,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,MAAMC,aAAAA,GAAgB,UAAA;AACpB,YAAA,MAAMC,oBAAoB,MAAMR,SAAAA,EAAAA;AAEhCG,YAAAA,kBAAAA,CAAmB,IAAMK,iBAAAA,CAAAA;AAC3B,QAAA,CAAA;AAEAD,QAAAA,aAAAA,EAAAA;IACF,CAAA,EAAG;AAACP,QAAAA;AAAU,KAAA,CAAA;AAEd,IAAA,MAAMS,SAAAA,GAAYP,eAAAA;AAElB,IAAA,IAAI,CAACO,SAAAA,EAAW;QACd,qBAAOC,cAAA,CAACC,qBAAOC,OAAO,EAAA,EAAA,CAAA;AACxB,IAAA;AAEA,IAAA,qBAAOF,cAAA,CAACD,SAAAA,EAAAA;QAAW,GAAI;AAAER,YAAAA;;;AAC3B;AAEA;;AAEkG,2GAE5FY,UAAAA,GAAa,IAAA;IACjB,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,OAAOC,YAAAA,CAAQ,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMF,IAAI,CAAA;AACxD,IAAA,MAAMG,WAAAA,GAAcH,IAAAA,EAAMI,SAAAA,IAAaJ,IAAAA,EAAMK,YAAYL,IAAAA,EAAMM,KAAAA;IAC/D,MAAMC,aAAAA,GAAgBC,uBAAa,oBAAA,EAAsB,CAACN,QAAUA,KAAAA,CAAMO,OAAO,CAACC,MAAM,CAAA;AACxF,IAAA,MAAMC,0BAA0BV,YAAAA,CAAQ,YAAA,EAAc,CAACC,KAAAA,GAAUA,MAAMS,uBAAuB,CAAA;AAC9F,IAAA,MAAM,EAAEC,IAAAA,EAAMC,cAAc,EAAEC,SAAAA,EAAWC,gBAAgB,EAAE,GAAGC,kCAAAA,EAAAA;AAC9D,IAAA,MAAM,CAACC,eAAAA,EAAiBC,kBAAAA,CAAmB,GAAG9B,gBAAAA,CAAMC,QAAQ,CAAkB,EAAE,CAAA;AAChF,IAAA,MAAM,CAAC8B,mBAAAA,EAAqBC,sBAAAA,CAAuB,GAAGhC,gBAAAA,CAAMC,QAAQ,CAAkB,EAAE,CAAA;AACxF,IAAA,MAAM,CAACgC,OAAAA,EAASC,UAAAA,CAAW,GAAGlC,gBAAAA,CAAMC,QAAQ,CAAC,IAAA,CAAA;AAC7C,IAAA,MAAM,CAACkC,oBAAAA,EAAsBC,uBAAAA,CAAwB,GAAGpC,gBAAAA,CAAMC,QAAQ,CAAC,KAAA,CAAA;;IAGvE,MAAM,EACJoC,UAAU,EACVC,YAAY,EACZC,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,eAAe,EACfC,kBAAkB,EAClBC,UAAU,EACVC,gBAAgB,EAChBC,eAAe,EACfC,eAAe,EACfC,aAAa,EACd,GAAGC,kBAAAA,CAAW;AACbpB,QAAAA,eAAAA;AACAC,QAAAA;AACF,KAAA,CAAA;AAEA9B,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;AACd,QAAA,MAAMgD,uBAAAA,GAA0B,UAAA;AAC9B,YAAA,MAAMC,UAAAA,GAAahC,aAAAA,EAAAA;YACnB,MAAMiC,iBAAAA,GAAoB,MAAMC,OAAAA,CAAQC,GAAG,CACzCH,UAAAA,CAAWI,GAAG,CAAC,OAAOC,MAAAA,GAAAA;gBACpB,IAAI,CAACA,MAAAA,CAAOC,WAAW,IAAID,MAAAA,CAAOC,WAAW,CAACC,MAAM,KAAK,CAAA,EAAG,OAAO,IAAA;AACnE,gBAAA,MAAMC,mBAAAA,GAAsB,MAAMpC,uBAAAA,CAAwBiC,MAAAA,CAAOC,WAAW,CAAA;AAC5E,gBAAA,OAAOE,oBAAoBD,MAAM,IAAIF,MAAAA,CAAOC,WAAW,CAACC,MAAM;AAChE,YAAA,CAAA,CAAA,CAAA;YAEF,MAAME,qBAAAA,GAAwBT,WAAWU,MAAM,CAAC,CAACC,CAAAA,EAAGC,CAAAA,GAAMX,iBAAiB,CAACW,CAAAA,CAAE,CAAA;YAE9E/B,sBAAAA,CAAuB4B,qBAAAA,CAAAA;YACvB1B,UAAAA,CAAW,KAAA,CAAA;AACb,QAAA,CAAA;AAEAgB,QAAAA,uBAAAA,EAAAA;IACF,CAAA,EAAG;AAAC3B,QAAAA,uBAAAA;AAAyBJ,QAAAA;AAAc,KAAA,CAAA;AAE3CnB,IAAAA,gBAAAA,CAAME,SAAS,CAAC,IAAA;QACd,IAAI6B,mBAAAA,CAAoB2B,MAAM,KAAK,CAAA,EAAG;;QAGtC,IAAIjC,cAAAA,IAAkBA,cAAAA,CAAeJ,OAAO,EAAE;YAC5C,MAAM,EAAEQ,eAAe,EAAEmC,MAAAA,EAAQC,cAAc,EAAE,GAAGC,iCAClDnC,mBAAAA,EACAN,cAAAA,CAAAA;YAGFK,kBAAAA,CAAmBD,eAAAA,CAAAA;YACnBa,eAAAA,CAAgBuB,cAAAA,CAAAA;QAClB,CAAA,MAAO;;YAELnC,kBAAAA,CAAmBC,mBAAAA,CAAAA;AACnBW,YAAAA,eAAAA,CAAgByB,sCAAAA,CAA0BpC,mBAAAA,CAAAA,CAAAA;AAC5C,QAAA;IACF,CAAA,EAAG;AAACN,QAAAA,cAAAA;AAAgBM,QAAAA,mBAAAA;AAAqBW,QAAAA;AAAgB,KAAA,CAAA;IAEzD,MAAM0B,cAAAA,GAAepE,gBAAAA,CAAMqE,OAAO,CAAC,IAAA;AACjC,QAAA,OAAOxC,eAAAA,CAAgB0B,GAAG,CAAC,CAACC,MAAAA,EAAQc,KAAAA,GAAAA;AAClC,YAAA,MAAMC,aAAAA,GAAgB1C,eAAe,CAACyC,KAAAA,GAAQ,EAAE,EAAEE,GAAAA;AAClD,YAAA,MAAMC,WAAAA,GAAcC,2BAAAA,CAAejC,YAAAA,EAAce,MAAAA,CAAOgB,GAAG,CAAA;YAC3D,MAAMG,gBAAAA,GAAmBD,4BAAejC,YAAAA,EAAc8B,aAAAA,CAAAA;YAEtD,OAAO;AACLf,gBAAAA,MAAAA;AACAc,gBAAAA,KAAAA;gBACAM,WAAAA,EAAaC,8BAAAA,CAAkBP,OAAOzC,eAAAA,EAAiBY,YAAAA,CAAAA;AACvD8B,gBAAAA,aAAAA;AACAE,gBAAAA,WAAAA;AACAE,gBAAAA,gBAAAA;AACAG,gBAAAA,SAAAA,EACEP,iBACAQ,oCAAAA,CAAwBvB,MAAAA,CAAOgB,GAAG,EAAED,eAAe9B,YAAAA,EAAcZ,eAAAA;AACrE,aAAA;AACF,QAAA,CAAA,CAAA;IACF,CAAA,EAAG;AAACA,QAAAA,eAAAA;AAAiBY,QAAAA;AAAa,KAAA,CAAA;IAElC,qBACEnC,cAAA,CAAC0E,eAAQC,IAAI,EAAA;AACX,QAAA,QAAA,gBAAAC,eAAA,CAACC,iBAAAA,EAAAA;;AACC,8BAAA7E,cAAA,CAAC8E,iBAAKC,KAAK,EAAA;8BACR3E,aAAAA,CAAc;wBAAE4E,EAAAA,EAAI,qBAAA;wBAAuBC,cAAAA,EAAgB;AAAW,qBAAA;;AAEzE,8BAAAjF,cAAA,CAAC0E,eAAQQ,MAAM,EAAA;AACbC,oBAAAA,KAAAA,EAAO/E,aAAAA,CACL;wBAAE4E,EAAAA,EAAI,uBAAA;wBAAyBC,cAAAA,EAAgB;qBAAe,EAC9D;wBAAEG,IAAAA,EAAM3E;AAAY,qBAAA,CAAA;AAEtB4E,oBAAAA,QAAAA,EAAUjF,aAAAA,CAAc;wBACtB4E,EAAAA,EAAI,0BAAA;wBACJC,cAAAA,EAAgB;AAClB,qBAAA,CAAA;AACAK,oBAAAA,aAAAA,gBACEtF,cAAA,CAACuF,mBAAAA,EAAAA;wBACCC,OAAAA,EAAQ,UAAA;wBACRC,IAAAA,EAAK,GAAA;AACLC,wBAAAA,SAAAA,gBAAW1F,cAAA,CAAC2F,UAAAA,EAAAA,EAAAA,CAAAA;AACZC,wBAAAA,OAAAA,EAAS,IAAM9D,uBAAAA,CAAwB,IAAA,CAAA;wBACvC+D,SAAS,EAAA,IAAA;kCAERzF,aAAAA,CAAc;4BACb4E,EAAAA,EAAI,2BAAA;4BACJC,cAAAA,EAAgB;AAClB,yBAAA;;;8BAINjF,cAAA,CAAC8F,2CAAAA,EAAAA,EAAAA,CAAAA;8BACD9F,cAAA,CAAC+F,uCAAAA,EAAAA,EAAAA,CAAAA;8BACD/F,cAAA,CAACgG,6BAAAA,EAAAA;oBACCC,MAAAA,EAAQpE,oBAAAA;AACRqE,oBAAAA,OAAAA,EAAS,IAAMpE,uBAAAA,CAAwB,KAAA,CAAA;oBACvCqE,WAAAA,EAAalE,SAAAA;oBACbmE,cAAAA,EAAgB7E,eAAAA;oBAChB8E,gBAAAA,EAAkB5E;;AAEpB,8BAAAzB,cAAA,CAAC0E,eAAQ4B,OAAO,EAAA;AACd,oBAAA,QAAA,gBAAA1B,eAAA,CAAC2B,iBAAAA,EAAAA;wBAAKC,SAAAA,EAAU,QAAA;wBAASC,UAAAA,EAAW,SAAA;wBAAUC,GAAAA,EAAK,CAAA;wBAAGC,aAAAA,EAAe,EAAA;;0CACnE3G,cAAA,CAAC4G,mCAAAA,EAAAA,EAAAA,CAAAA;AACAjF,4BAAAA,OAAAA,iBACC3B,cAAA,CAAC6G,gBAAAA,EAAAA;gCAAIC,QAAAA,EAAS,UAAA;gCAAWC,GAAAA,EAAK,CAAA;gCAAGC,IAAAA,EAAM,CAAA;gCAAGC,KAAAA,EAAO,CAAA;gCAAGC,MAAAA,EAAQ,CAAA;wDAC1DlH,cAAA,CAAC8E,iBAAK5E,OAAO,EAAA,EAAA;+CAGf0E,eAAA,CAACiC,gBAAAA,EAAAA;gCAAIC,QAAAA,EAAS,UAAA;gCAAiB,CAACK,mCAAAA,CAAuBC,cAAc,GAAG,IAAA;;AACtE,kDAAApH,cAAA,CAACqH,kBAAK1C,IAAI,EAAA;wCAAC+B,GAAAA,EAAK,CAAA;AACb5C,wCAAAA,QAAAA,EAAAA,cAAAA,CAAab,GAAG,CACf,CAAC,EACCC,MAAM,EACNoB,WAAW,EACXL,aAAa,EACbE,WAAW,EACXE,gBAAgB,EAChBG,SAAS,EACV,iBACCI,eAAA,CAAClF,iBAAM4H,QAAQ,EAAA;;AACb,kEAAAtH,cAAA,CAACqH,kBAAKE,IAAI,EAAA;wDAACC,GAAAA,EAAKrD,WAAAA;wDAAasD,EAAAA,EAAI,EAAA;AAC/B,wDAAA,QAAA,gBAAAzH,cAAA,CAAC0H,qBAAAA,EAAAA;AACCxD,4DAAAA,GAAAA,EAAKhB,OAAOgB,GAAG;AACfiB,4DAAAA,KAAAA,EAAOjC,OAAOiC,KAAK;AACnBwC,4DAAAA,IAAAA,EAAMzE,OAAOyE,IAAI;AACjBC,4DAAAA,IAAAA,EAAM1E,OAAO0E,IAAI;4DACjB7F,UAAAA,EAAYA,UAAAA;4DACZC,YAAAA,EAAcA,YAAAA;4DACd6F,WAAAA,EAAapF,eAAAA;4DACbqF,SAAAA,EAAWpF,aAAAA;AACXpD,4DAAAA,SAAAA,EAAW4D,OAAO5D,SAAS;AAE3B,4DAAA,QAAA,gBAAAU,cAAA,CAACX,eAAAA,EAAAA;AACCC,gEAAAA,SAAAA,EAAW4D,OAAO5D,SAAS;gEAC3BC,WAAAA,EAAa4E;;;;oDAKlB,CAACG,WAAAA,IAAeE,SAAAA,IAAaP,aAAAA,kBAC5BjE,cAAA,CAAC+H,kCAAAA,EAAAA;AAECC,wDAAAA,YAAAA,EAAc9E,OAAOgB,GAAG;wDACxBD,aAAAA,EAAeA,aAAAA;wDACfgE,eAAAA,EAAiB9D,WAAAA;wDACjBE,gBAAAA,EAAkBA,gBAAAA;wDAClB6D,QAAAA,EAAU7F,kBAAAA;wDACVC,UAAAA,EAAYA,UAAAA;wDACZf,eAAAA,EAAiBA;AAPZ,qDAAA,EAAA,CAAC,OAAO,EAAE2B,MAAAA,CAAOgB,GAAG,CAAA,CAAE;;AAtBZhB,6CAAAA,EAAAA,MAAAA,CAAOgB,GAAG,CAAA;;AAqCpC3B,oCAAAA,gBAAAA,kBACCvC,cAAA,CAACmI,8BAAAA,EAAAA;wCACC5G,eAAAA,EAAiBA,eAAAA;wCACjBY,YAAAA,EAAcA,YAAAA;wCACdK,eAAAA,EAAiBA,eAAAA;wCACjBN,UAAAA,EAAYA;;;;;;;8BASxBlC,cAAA,CAACoI,mBAAAA,EAAAA;AACCC,oBAAAA,UAAAA,EAAY,CAAC,EAAEC,IAAI,EAAEC,IAAI,EAAE,GAAA;wBACzB,IAAI,CAACC,2BAAiBD,IAAAA,CAAAA,EAAO;4BAC3B,OAAO,IAAA;AACT,wBAAA;wBAEA,MAAME,aAAAA,GAAgBC,6BAAAA,CAAiBH,IAAAA,CAAKvD,EAAE,CAAA;AAC9C,wBAAA,MAAM2D,QAAAA,GAAW,CAAA,EAAGF,aAAAA,EAAeG,WAAAA,CAAY,EAAE,CAAC;AAElD,wBAAA,qBACE5I,cAAA,CAACpB,kBAAAA,EAAAA;4BAAmBI,SAAAA,EAAW2J,QAAAA;AAC7B,4BAAA,QAAA,gBAAA3I,cAAA,CAAC0H,qBAAAA,EAAAA;AACCxD,gCAAAA,GAAAA,EAAKqE,KAAKvD,EAAE;gCACZG,KAAAA,EAAOoD,IAAAA,CAAKpD,KAAK,IAAI;oCAAEH,EAAAA,EAAI,CAAA,EAAGuD,IAAAA,CAAKvD,EAAE,CAAA,CAAE;AAAEC,oCAAAA,cAAAA,EAAgBsD,KAAKvD;AAAG,iCAAA;AACjE2C,gCAAAA,IAAAA,EAAMY,KAAKZ,IAAI;AACfC,gCAAAA,IAAAA,EAAMW,KAAKX,IAAI;AAEf,gCAAA,QAAA,gBAAA5H,cAAA,CAACX,eAAAA,EAAAA;AAAgBC,oCAAAA,SAAAA,EAAWiJ,KAAKjJ,SAAS;oCAAEC,WAAAA,EAAa;;;;AAIjE,oBAAA;;;;;AAKV;AAEA;;AAEkG,2GAE5FsJ,QAAAA,GAAW,IAAA;IACf,MAAM/D,IAAAA,GAAOgE,2BAAAA,CACX3I,UAAAA;AAEA,IAAA,UAAY,CAAC,MAAM,oDAAO,4CAAA,KAAyC,EAAG4I,UAAU,CAAA;;AAIlF,IAAA,IAAI,CAACjE,IAAAA,EAAM;QACT,OAAO,IAAA;AACT,IAAA;AAEA,IAAA,qBAAO9E,cAAA,CAAC8E,IAAAA,EAAAA,EAAAA,CAAAA;AACV;;;;;;"}
|
|
@@ -19,7 +19,7 @@ import { useAuth } from '../../features/Auth.mjs';
|
|
|
19
19
|
import { useStrapiApp } from '../../features/StrapiApp.mjs';
|
|
20
20
|
import { useWidgets } from '../../features/Widgets.mjs';
|
|
21
21
|
import { useGetHomepageLayoutQuery } from '../../services/homepage.mjs';
|
|
22
|
-
import { applyHomepageLayout, createDefaultWidgetWidths, getWidgetWidth,
|
|
22
|
+
import { applyHomepageLayout, createDefaultWidgetWidths, getWidgetWidth, canResizeBetweenWidgets, isLastWidgetInRow, WIDGET_DATA_ATTRIBUTES, getWidgetElement } from '../../utils/widgetLayout.mjs';
|
|
23
23
|
import { AddWidgetModal } from './components/AddWidgetModal.mjs';
|
|
24
24
|
import { FreeTrialEndedModal } from './components/FreeTrialEndedModal.mjs';
|
|
25
25
|
import { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HomePage.mjs","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport { useGetHomepageLayoutQuery } from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [allAvailableWidgets, setAllAvailableWidgets] = React.useState<WidgetWithUID[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const checkWidgetsPermissions = async () => {\n const allWidgets = getAllWidgets();\n const authorizedWidgets = await Promise.all(\n allWidgets.map(async (widget) => {\n if (!widget.permissions || widget.permissions.length === 0) return true;\n const matchingPermissions = await checkUserHasPermissions(widget.permissions);\n return matchingPermissions.length >= widget.permissions.length;\n })\n );\n const authorizedWidgetsList = allWidgets.filter((_, i) => authorizedWidgets[i]);\n\n setAllAvailableWidgets(authorizedWidgetsList);\n setLoading(false);\n };\n\n checkWidgetsPermissions();\n }, [checkUserHasPermissions, getAllWidgets]);\n\n React.useEffect(() => {\n if (allAvailableWidgets.length === 0) return;\n\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n allAvailableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(allAvailableWidgets);\n setColumnWidths(createDefaultWidgetWidths(allAvailableWidgets));\n }\n }, [homepageLayout, allAvailableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n {loading ? (\n <Box position=\"absolute\" top={0} left={0} right={0} bottom={0}>\n <Page.Loading />\n </Box>\n ) : (\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","filteredWidgets","setFilteredWidgets","allAvailableWidgets","setAllAvailableWidgets","loading","setLoading","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","checkWidgetsPermissions","allWidgets","authorizedWidgets","Promise","all","map","widget","permissions","length","matchingPermissions","authorizedWidgetsList","filter","_","i","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","useMemo","index","rightWidgetId","uid","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","top","left","right","bottom","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HomePage.mjs","sources":["../../../../../../admin/src/pages/Home/HomePage.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Grid, Main } from '@strapi/design-system';\nimport { Plus } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { DragLayer, isWidgetDragItem } from '../../components/DragLayer';\nimport { GapDropZoneManager } from '../../components/GapDropZone';\nimport { GuidedTourHomepageOverview } from '../../components/GuidedTour/Overview';\nimport { Layouts } from '../../components/Layouts/Layout';\nimport { Page } from '../../components/PageHelpers';\nimport { WidgetResizeHandle } from '../../components/ResizeIndicator';\nimport { Widget } from '../../components/WidgetHelpers';\nimport { WidgetRoot } from '../../components/WidgetRoot';\nimport { useEnterprise } from '../../ee';\nimport { useAuth } from '../../features/Auth';\nimport { useStrapiApp } from '../../features/StrapiApp';\nimport { useWidgets } from '../../features/Widgets';\nimport { useGetHomepageLayoutQuery } from '../../services/homepage';\nimport {\n getWidgetElement,\n WIDGET_DATA_ATTRIBUTES,\n applyHomepageLayout,\n createDefaultWidgetWidths,\n isLastWidgetInRow,\n canResizeBetweenWidgets,\n getWidgetWidth,\n} from '../../utils/widgetLayout';\n\nimport { AddWidgetModal } from './components/AddWidgetModal';\nimport { FreeTrialEndedModal } from './components/FreeTrialEndedModal';\nimport { FreeTrialWelcomeModal } from './components/FreeTrialWelcomeModal';\n\nimport type { WidgetWithUID } from '../../core/apis/Widgets';\n\n// Styled wrapper for the drag preview\nconst DragPreviewWrapper = styled.div<{ $maxWidth: string }>`\n max-width: ${(props) => props.$maxWidth};\n overflow: hidden;\n opacity: 0.9;\n border: 2px solid ${({ theme }) => theme.colors.primary500};\n border-radius: ${({ theme }) => theme.borderRadius};\n pointer-events: none;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * UnstableHomePageCe\n * -----------------------------------------------------------------------------------------------*/\n\nexport const WidgetComponent = ({\n component,\n columnWidth,\n}: {\n component: () => Promise<React.ComponentType>;\n columnWidth: number;\n}) => {\n const [loadedComponent, setLoadedComponent] = React.useState<React.ComponentType<{\n columnWidth?: number;\n }> | null>(null);\n\n React.useEffect(() => {\n const loadComponent = async () => {\n const resolvedComponent = await component();\n\n setLoadedComponent(() => resolvedComponent);\n };\n\n loadComponent();\n }, [component]);\n\n const Component = loadedComponent;\n\n if (!Component) {\n return <Widget.Loading />;\n }\n\n return <Component {...({ columnWidth } as Record<string, unknown>)} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePageCE\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePageCE = () => {\n const { formatMessage } = useIntl();\n const user = useAuth('HomePageCE', (state) => state.user);\n const displayName = user?.firstname ?? user?.username ?? user?.email;\n const getAllWidgets = useStrapiApp('UnstableHomepageCe', (state) => state.widgets.getAll);\n const checkUserHasPermissions = useAuth('WidgetRoot', (state) => state.checkUserHasPermissions);\n const { data: homepageLayout, isLoading: _isLoadingLayout } = useGetHomepageLayoutQuery();\n const [filteredWidgets, setFilteredWidgets] = React.useState<WidgetWithUID[]>([]);\n const [allAvailableWidgets, setAllAvailableWidgets] = React.useState<WidgetWithUID[]>([]);\n const [loading, setLoading] = React.useState(true);\n const [isAddWidgetModalOpen, setIsAddWidgetModalOpen] = React.useState(false);\n\n // Use custom hook for widget management\n const {\n findWidget,\n deleteWidget,\n addWidget,\n moveWidget,\n columnWidths,\n setColumnWidths,\n handleWidgetResize,\n saveLayout,\n isDraggingWidget,\n draggedWidgetId,\n handleDragStart,\n handleDragEnd,\n } = useWidgets({\n filteredWidgets,\n setFilteredWidgets,\n });\n\n React.useEffect(() => {\n const checkWidgetsPermissions = async () => {\n const allWidgets = getAllWidgets();\n const authorizedWidgets = await Promise.all(\n allWidgets.map(async (widget) => {\n if (!widget.permissions || widget.permissions.length === 0) return true;\n const matchingPermissions = await checkUserHasPermissions(widget.permissions);\n return matchingPermissions.length >= widget.permissions.length;\n })\n );\n const authorizedWidgetsList = allWidgets.filter((_, i) => authorizedWidgets[i]);\n\n setAllAvailableWidgets(authorizedWidgetsList);\n setLoading(false);\n };\n\n checkWidgetsPermissions();\n }, [checkUserHasPermissions, getAllWidgets]);\n\n React.useEffect(() => {\n if (allAvailableWidgets.length === 0) return;\n\n // If user has customized the homepage layout, apply it\n if (homepageLayout && homepageLayout.widgets) {\n const { filteredWidgets, widths: homepageWidths } = applyHomepageLayout(\n allAvailableWidgets,\n homepageLayout\n );\n\n setFilteredWidgets(filteredWidgets);\n setColumnWidths(homepageWidths);\n } else {\n // Set default layout when no custom layout exists\n setFilteredWidgets(allAvailableWidgets);\n setColumnWidths(createDefaultWidgetWidths(allAvailableWidgets));\n }\n }, [homepageLayout, allAvailableWidgets, setColumnWidths]);\n\n const widgetLayout = React.useMemo(() => {\n return filteredWidgets.map((widget, index) => {\n const rightWidgetId = filteredWidgets[index + 1]?.uid;\n const widgetWidth = getWidgetWidth(columnWidths, widget.uid);\n const rightWidgetWidth = getWidgetWidth(columnWidths, rightWidgetId);\n\n return {\n widget,\n index,\n isLastInRow: isLastWidgetInRow(index, filteredWidgets, columnWidths),\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize:\n rightWidgetId &&\n canResizeBetweenWidgets(widget.uid, rightWidgetId, columnWidths, filteredWidgets),\n };\n });\n }, [filteredWidgets, columnWidths]);\n\n return (\n <Layouts.Root>\n <Main>\n <Page.Title>\n {formatMessage({ id: 'HomePage.head.title', defaultMessage: 'Homepage' })}\n </Page.Title>\n <Layouts.Header\n title={formatMessage(\n { id: 'HomePage.header.title', defaultMessage: 'Hello {name}' },\n { name: displayName }\n )}\n subtitle={formatMessage({\n id: 'HomePage.header.subtitle',\n defaultMessage: 'Welcome to your administration panel',\n })}\n primaryAction={\n <Button\n variant=\"tertiary\"\n size=\"S\"\n startIcon={<Plus />}\n onClick={() => setIsAddWidgetModalOpen(true)}\n fullWidth\n >\n {formatMessage({\n id: 'HomePage.addWidget.button',\n defaultMessage: 'Add Widget',\n })}\n </Button>\n }\n />\n <FreeTrialWelcomeModal />\n <FreeTrialEndedModal />\n <AddWidgetModal\n isOpen={isAddWidgetModalOpen}\n onClose={() => setIsAddWidgetModalOpen(false)}\n onAddWidget={addWidget}\n currentWidgets={filteredWidgets}\n availableWidgets={allAvailableWidgets}\n />\n <Layouts.Content>\n <Flex direction=\"column\" alignItems=\"stretch\" gap={8} paddingBottom={10}>\n <GuidedTourHomepageOverview />\n {loading ? (\n <Box position=\"absolute\" top={0} left={0} right={0} bottom={0}>\n <Page.Loading />\n </Box>\n ) : (\n <Box position=\"relative\" {...{ [WIDGET_DATA_ATTRIBUTES.GRID_CONTAINER]: true }}>\n <Grid.Root gap={5}>\n {widgetLayout.map(\n ({\n widget,\n isLastInRow,\n rightWidgetId,\n widgetWidth,\n rightWidgetWidth,\n canResize,\n }) => (\n <React.Fragment key={widget.uid}>\n <Grid.Item col={widgetWidth} xs={12}>\n <WidgetRoot\n uid={widget.uid}\n title={widget.title}\n icon={widget.icon}\n link={widget.link}\n findWidget={findWidget}\n deleteWidget={deleteWidget}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n component={widget.component}\n >\n <WidgetComponent\n component={widget.component}\n columnWidth={widgetWidth}\n />\n </WidgetRoot>\n </Grid.Item>\n\n {!isLastInRow && canResize && rightWidgetId && (\n <WidgetResizeHandle\n key={`resize-${widget.uid}`}\n leftWidgetId={widget.uid}\n rightWidgetId={rightWidgetId}\n leftWidgetWidth={widgetWidth}\n rightWidgetWidth={rightWidgetWidth}\n onResize={handleWidgetResize}\n saveLayout={saveLayout}\n filteredWidgets={filteredWidgets}\n />\n )}\n </React.Fragment>\n )\n )}\n </Grid.Root>\n\n {isDraggingWidget && (\n <GapDropZoneManager\n filteredWidgets={filteredWidgets}\n columnWidths={columnWidths}\n draggedWidgetId={draggedWidgetId}\n moveWidget={moveWidget}\n />\n )}\n </Box>\n )}\n </Flex>\n </Layouts.Content>\n\n {/* Add the DragLayer to handle custom drag previews */}\n <DragLayer\n renderItem={({ type, item }) => {\n if (!isWidgetDragItem(item)) {\n return null;\n }\n\n const widgetElement = getWidgetElement(item.id);\n const maxWidth = `${widgetElement?.clientWidth}px`;\n\n return (\n <DragPreviewWrapper $maxWidth={maxWidth}>\n <WidgetRoot\n uid={item.id as WidgetWithUID['uid']}\n title={item.title || { id: `${item.id}`, defaultMessage: item.id }}\n icon={item.icon}\n link={item.link}\n >\n <WidgetComponent component={item.component} columnWidth={4} />\n </WidgetRoot>\n </DragPreviewWrapper>\n );\n }}\n />\n </Main>\n </Layouts.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * HomePage\n * -----------------------------------------------------------------------------------------------*/\n\nconst HomePage = () => {\n const Page = useEnterprise(\n HomePageCE,\n // eslint-disable-next-line import/no-cycle\n async () => (await import('../../../../ee/admin/src/pages/HomePage')).HomePageEE\n );\n\n // block rendering until the EE component is fully loaded\n if (!Page) {\n return null;\n }\n\n return <Page />;\n};\n\nexport { HomePage, HomePageCE };\n"],"names":["DragPreviewWrapper","styled","div","props","$maxWidth","theme","colors","primary500","borderRadius","WidgetComponent","component","columnWidth","loadedComponent","setLoadedComponent","React","useState","useEffect","loadComponent","resolvedComponent","Component","_jsx","Widget","Loading","HomePageCE","formatMessage","useIntl","user","useAuth","state","displayName","firstname","username","email","getAllWidgets","useStrapiApp","widgets","getAll","checkUserHasPermissions","data","homepageLayout","isLoading","_isLoadingLayout","useGetHomepageLayoutQuery","filteredWidgets","setFilteredWidgets","allAvailableWidgets","setAllAvailableWidgets","loading","setLoading","isAddWidgetModalOpen","setIsAddWidgetModalOpen","findWidget","deleteWidget","addWidget","moveWidget","columnWidths","setColumnWidths","handleWidgetResize","saveLayout","isDraggingWidget","draggedWidgetId","handleDragStart","handleDragEnd","useWidgets","checkWidgetsPermissions","allWidgets","authorizedWidgets","Promise","all","map","widget","permissions","length","matchingPermissions","authorizedWidgetsList","filter","_","i","widths","homepageWidths","applyHomepageLayout","createDefaultWidgetWidths","widgetLayout","useMemo","index","rightWidgetId","uid","widgetWidth","getWidgetWidth","rightWidgetWidth","isLastInRow","isLastWidgetInRow","canResize","canResizeBetweenWidgets","Layouts","Root","_jsxs","Main","Page","Title","id","defaultMessage","Header","title","name","subtitle","primaryAction","Button","variant","size","startIcon","Plus","onClick","fullWidth","FreeTrialWelcomeModal","FreeTrialEndedModal","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","Content","Flex","direction","alignItems","gap","paddingBottom","GuidedTourHomepageOverview","Box","position","top","left","right","bottom","WIDGET_DATA_ATTRIBUTES","GRID_CONTAINER","Grid","Fragment","Item","col","xs","WidgetRoot","icon","link","onDragStart","onDragEnd","WidgetResizeHandle","leftWidgetId","leftWidgetWidth","onResize","GapDropZoneManager","DragLayer","renderItem","type","item","isWidgetDragItem","widgetElement","getWidgetElement","maxWidth","clientWidth","HomePage","useEnterprise","HomePageEE"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddWidgetModal.js","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddWidgetModal.js","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { Modal, Box, Flex, Typography, Button } from '@strapi/design-system';
|
|
4
4
|
import { PuzzlePiece } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import styled from 'styled-components';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddWidgetModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AddWidgetModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/AddWidgetModal.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { PuzzlePiece } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { WidgetComponent } from '../HomePage';\n\nimport type { WidgetWithUID } from '../../../core/apis/Widgets';\n\n// Hide scrollbars in widget previews\nconst WidgetWrapper = styled(Box)`\n * {\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n *::-webkit-scrollbar {\n display: none;\n }\n`;\n\n// Interactive widget preview container\nconst WidgetPreviewContainer = styled(Box)`\n &:hover {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n }\n\n &:focus-visible {\n background-color: ${({ theme }) => theme.colors.primary100};\n border-color: ${({ theme }) => theme.colors.primary200};\n outline-offset: 0;\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * AddWidgetModal\n * -----------------------------------------------------------------------------------------------*/\n\ninterface AddWidgetModalProps {\n isOpen: boolean;\n onClose: () => void;\n onAddWidget: (widget: WidgetWithUID) => void;\n currentWidgets: WidgetWithUID[];\n availableWidgets: WidgetWithUID[];\n}\n\ninterface WidgetPreviewProps {\n widget: WidgetWithUID;\n onSelect: () => void;\n}\n\nconst WidgetPreview = ({ widget, onSelect }: WidgetPreviewProps) => {\n const { formatMessage } = useIntl();\n const Icon = widget.icon || PuzzlePiece;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n onSelect();\n }\n };\n\n return (\n <WidgetPreviewContainer\n padding={4}\n background=\"neutral0\"\n borderColor=\"neutral200\"\n hasRadius\n shadow=\"tableShadow\"\n onClick={onSelect}\n onKeyDown={handleKeyDown}\n width={'100%'}\n cursor=\"pointer\"\n tabIndex={0}\n role=\"button\"\n aria-label={formatMessage(\n {\n id: 'HomePage.addWidget.selectWidget',\n defaultMessage: 'Select {widgetName} widget',\n },\n { widgetName: formatMessage(widget.title) }\n )}\n >\n <Flex direction=\"column\" alignItems=\"center\" gap={3}>\n <Flex gap={2} marginRight=\"auto\">\n <Icon fill=\"neutral500\" aria-hidden />\n <Typography textColor=\"neutral500\" variant=\"sigma\" tag=\"h2\">\n {formatMessage(widget.title)}\n </Typography>\n </Flex>\n <WidgetWrapper\n width={'100%'}\n style={{\n pointerEvents: 'none',\n }}\n >\n <WidgetComponent component={widget.component} columnWidth={4} />\n </WidgetWrapper>\n </Flex>\n </WidgetPreviewContainer>\n );\n};\n\nexport const AddWidgetModal = ({\n isOpen,\n onClose,\n onAddWidget,\n currentWidgets,\n availableWidgets,\n}: AddWidgetModalProps) => {\n const { formatMessage } = useIntl();\n\n const currentWidgetUids = React.useMemo(\n () => new Set(currentWidgets.map((widget) => widget.uid)),\n [currentWidgets]\n );\n\n const handleWidgetSelect = (widget: WidgetWithUID) => {\n if (!currentWidgetUids.has(widget.uid)) {\n onAddWidget(widget);\n onClose();\n }\n };\n\n const addableWidgets = availableWidgets.filter((widget) => !currentWidgetUids.has(widget.uid));\n\n return (\n <Modal.Root open={isOpen} onOpenChange={onClose}>\n <Modal.Content>\n <Modal.Header>\n <Modal.Title>\n {formatMessage({\n id: 'HomePage.addWidget.title',\n defaultMessage: 'Add Widget',\n })}\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <Box>\n {addableWidgets.length === 0 ? (\n <Flex direction=\"column\" alignItems=\"center\" gap={4}>\n <PuzzlePiece width=\"4rem\" height=\"4rem\" fill=\"neutral300\" />\n <Typography textColor=\"neutral500\" textAlign=\"center\">\n {formatMessage({\n id: 'HomePage.addWidget.noWidgetsAvailable',\n defaultMessage: 'No widgets available to add',\n })}\n </Typography>\n </Flex>\n ) : (\n <Flex direction=\"column\" gap={3} justifyContent=\"center\">\n {addableWidgets.map((widget) => (\n <WidgetPreview\n key={widget.uid}\n widget={widget}\n onSelect={() => handleWidgetSelect(widget)}\n />\n ))}\n </Flex>\n )}\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={onClose} variant=\"tertiary\">\n {formatMessage({ id: 'app.components.Button.cancel', defaultMessage: 'Cancel' })}\n </Button>\n </Modal.Footer>\n </Modal.Content>\n </Modal.Root>\n );\n};\n"],"names":["WidgetWrapper","styled","Box","WidgetPreviewContainer","theme","colors","primary100","primary200","WidgetPreview","widget","onSelect","formatMessage","useIntl","Icon","icon","PuzzlePiece","handleKeyDown","event","key","preventDefault","_jsx","padding","background","borderColor","hasRadius","shadow","onClick","onKeyDown","width","cursor","tabIndex","role","aria-label","id","defaultMessage","widgetName","title","_jsxs","Flex","direction","alignItems","gap","marginRight","fill","aria-hidden","Typography","textColor","variant","tag","style","pointerEvents","WidgetComponent","component","columnWidth","AddWidgetModal","isOpen","onClose","onAddWidget","currentWidgets","availableWidgets","currentWidgetUids","React","useMemo","Set","map","uid","handleWidgetSelect","has","addableWidgets","filter","Modal","Root","open","onOpenChange","Content","Header","Title","Body","length","height","textAlign","justifyContent","Footer","Button"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeTrialEndedModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://strapi.chargebeeportal.com/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FreeTrialEndedModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://strapi.chargebeeportal.com/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { Modal,
|
|
3
|
+
import { Modal, Box, Flex, Typography, LinkButton, Button } from '@strapi/design-system';
|
|
4
4
|
import { Cross } from '@strapi/icons';
|
|
5
5
|
import { subDays, isAfter } from 'date-fns';
|
|
6
6
|
import { useIntl } from 'react-intl';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeTrialEndedModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://strapi.chargebeeportal.com/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FreeTrialEndedModal.mjs","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialEndedModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, LinkButton, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { isAfter, subDays } from 'date-fns';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n`;\n\nexport const FreeTrialEndedModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_ENDED_MODAL',\n false\n );\n const [cachedTrialEndsAt] = useScopedPersistentState<string | undefined>(\n 'STRAPI_FREE_TRIAL_ENDS_AT',\n undefined\n );\n\n const { license } = useLicenseLimits();\n\n const sevenDaysAgo = subDays(new Date(), 7);\n\n // When the license is not a trial + not EE, and the cached trial end date is found in the localstorage, that means the trial has ended\n // We show the banner to encourage the user to upgrade (for 7 days after the trial ends)\n const isTrialEndedRecently = Boolean(\n !license?.isTrial &&\n !window.strapi.isEE &&\n cachedTrialEndsAt &&\n isAfter(new Date(cachedTrialEndsAt), sevenDaysAgo)\n );\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (!previouslyOpen && isTrialEndedRecently) {\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"ghost\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <Flex\n direction=\"column\"\n alignItems=\"start\"\n justifyContent=\"stretch\"\n padding={8}\n gap={4}\n >\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.title',\n defaultMessage: 'Your trial has ended',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.description',\n defaultMessage:\n 'Your access to Growth plan features such as Content history, Releases and Single sign-On (SSO) has expired.',\n })}\n </Typography>\n <Box background=\"primary200\" padding={4} hasRadius>\n <Typography fontWeight=\"bold\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.title',\n defaultMessage: 'Important to know:',\n })}\n </Typography>\n <ul style={{ listStyleType: 'disc', marginLeft: '1.5rem' }}>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item1',\n defaultMessage: 'Downgrading will remove access to the above features.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item2',\n defaultMessage: 'Document version history will be deleted.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item3',\n defaultMessage: 'All releases will be erased.',\n })}\n </Typography>\n </li>\n <li>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.notice.item4',\n defaultMessage:\n 'If you downgrade ensure to set a root admin password to keep access to the admin panel.',\n })}\n </Typography>\n </li>\n </ul>\n </Box>\n <Flex marginTop={4} gap={2}>\n <LinkButton href=\"https://strapi.chargebeeportal.com/\" target=\"_blank\">\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.upgrade',\n defaultMessage: 'Stay on the Growth plan',\n })}\n </LinkButton>\n <Button variant=\"tertiary\" onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialEndedModal.button.downgrade',\n defaultMessage: 'Downgrade to Community',\n })}\n </Button>\n </Flex>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n }\n\n return null;\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialEndedModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","cachedTrialEndsAt","undefined","license","useLicenseLimits","sevenDaysAgo","subDays","Date","isTrialEndedRecently","Boolean","isTrial","window","strapi","isEE","isAfter","handleClose","handleOnOpenChange","isOpen","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","background","hasRadius","ul","style","listStyleType","marginLeft","li","marginTop","LinkButton","href","target"],"mappings":";;;;;;;;;;AAWA,MAAMA,kBAAAA,GAAqBC,MAAAA,CAAOC,KAAAA,CAAMC,OAAO,CAAC;;AAEhD,CAAC;AAED,MAAMC,eAAAA,GAAkBH,MAAAA,CAAOC,KAAAA,CAAMG,IAAI,CAAC;;;;;;;AAO1C,CAAC;AAED,MAAMC,YAAAA,GAAeL,MAAAA,CAAOM,MAAAA,CAAO;;;AAGnC,CAAC;MAEYC,mBAAAA,GAAsB,IAAA;IACjC,MAAM,EAAEC,aAAa,EAAE,GAAGC,OAAAA,EAAAA;AAC1B,IAAA,MAAM,CAACC,IAAAA,EAAMC,OAAAA,CAAQ,GAAGC,QAAAA,CAAS,IAAA,CAAA;AACjC,IAAA,MAAM,CAACC,cAAAA,EAAgBC,iBAAAA,CAAkB,GAAGC,yBAC1C,+BAAA,EACA,KAAA,CAAA;AAEF,IAAA,MAAM,CAACC,iBAAAA,CAAkB,GAAGD,wBAAAA,CAC1B,2BAAA,EACAE,SAAAA,CAAAA;IAGF,MAAM,EAAEC,OAAO,EAAE,GAAGC,gBAAAA,EAAAA;IAEpB,MAAMC,YAAAA,GAAeC,OAAAA,CAAQ,IAAIC,IAAAA,EAAAA,EAAQ,CAAA,CAAA;;;AAIzC,IAAA,MAAMC,oBAAAA,GAAuBC,OAAAA,CAC3B,CAACN,OAAAA,EAASO,WACR,CAACC,MAAAA,CAAOC,MAAM,CAACC,IAAI,IACnBZ,iBAAAA,IACAa,OAAAA,CAAQ,IAAIP,KAAKN,iBAAAA,CAAAA,EAAoBI,YAAAA,CAAAA,CAAAA;AAGzC,IAAA,MAAMU,WAAAA,GAAc,IAAA;QAClBhB,iBAAAA,CAAkB,IAAA,CAAA;QAClBH,OAAAA,CAAQ,KAAA,CAAA;AACV,IAAA,CAAA;AAEA,IAAA,MAAMoB,qBAAqB,CAACC,MAAAA,GAAAA;AAC1B,QAAA,IAAI,CAACA,MAAAA,EAAQ;YACXlB,iBAAAA,CAAkB,IAAA,CAAA;AACpB,QAAA;QAEAH,OAAAA,CAAQqB,MAAAA,CAAAA;AACV,IAAA,CAAA;IAEA,IAAI,CAACnB,kBAAkBU,oBAAAA,EAAsB;QAC3C,qBACEU,GAAA,CAAChC,MAAMiC,IAAI,EAAA;YAACxB,IAAAA,EAAMA,IAAAA;YAAMyB,YAAAA,EAAcJ,kBAAAA;AACpC,YAAA,QAAA,gBAAAE,GAAA,CAAClC,kBAAAA,EAAAA;gBAAmBqC,iBAAAA,EAAgB,OAAA;AAClC,gBAAA,QAAA,gBAAAC,IAAA,CAAClC,eAAAA,EAAAA;;sCACC8B,GAAA,CAACK,GAAAA,EAAAA;4BAAIC,QAAAA,EAAS,UAAA;4BAAWC,GAAAA,EAAK,CAAA;4BAAGC,KAAAA,EAAO,CAAA;4BAAGC,OAAAA,EAAS,CAAA;AAClD,4BAAA,QAAA,gBAAAT,GAAA,CAAC5B,YAAAA,EAAAA;AACCsC,gCAAAA,YAAAA,EAAYnC,aAAAA,CAAc;oCACxBoC,EAAAA,EAAI,uBAAA;oCACJC,cAAAA,EAAgB;AAClB,iCAAA,CAAA;gCACAC,OAAAA,EAAQ,OAAA;gCACRC,KAAAA,EAAM,QAAA;gCACNC,MAAAA,EAAO,QAAA;gCACPC,OAAAA,EAASnB,WAAAA;AAET,gCAAA,QAAA,gBAAAG,GAAA,CAACiB,KAAAA,EAAAA,EAAAA;;;sCAGLb,IAAA,CAACc,IAAAA,EAAAA;4BACCC,SAAAA,EAAU,QAAA;4BACVC,UAAAA,EAAW,OAAA;4BACXC,cAAAA,EAAe,SAAA;4BACfZ,OAAAA,EAAS,CAAA;4BACTa,GAAAA,EAAK,CAAA;;8CAELtB,GAAA,CAACuB,UAAAA,EAAAA;oCAAWV,OAAAA,EAAQ,OAAA;oCAAQW,UAAAA,EAAW,MAAA;oCAAOC,QAAAA,EAAU,CAAA;oCAAGd,EAAAA,EAAG,OAAA;8CAC3DpC,aAAAA,CAAc;wCACboC,EAAAA,EAAI,0CAAA;wCACJC,cAAAA,EAAgB;AAClB,qCAAA;;8CAEFZ,GAAA,CAACuB,UAAAA,EAAAA;8CACEhD,aAAAA,CAAc;wCACboC,EAAAA,EAAI,gDAAA;wCACJC,cAAAA,EACE;AACJ,qCAAA;;8CAEFR,IAAA,CAACC,GAAAA,EAAAA;oCAAIqB,UAAAA,EAAW,YAAA;oCAAajB,OAAAA,EAAS,CAAA;oCAAGkB,SAAS,EAAA,IAAA;;sDAChD3B,GAAA,CAACuB,UAAAA,EAAAA;4CAAWC,UAAAA,EAAW,MAAA;sDACpBjD,aAAAA,CAAc;gDACboC,EAAAA,EAAI,iDAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFR,IAAA,CAACwB,IAAAA,EAAAA;4CAAGC,KAAAA,EAAO;gDAAEC,aAAAA,EAAe,MAAA;gDAAQC,UAAAA,EAAY;AAAS,6CAAA;;8DACvD/B,GAAA,CAACgC,IAAAA,EAAAA;AACC,oDAAA,QAAA,gBAAAhC,GAAA,CAACuB,UAAAA,EAAAA;kEACEhD,aAAAA,CAAc;4DACboC,EAAAA,EAAI,iDAAA;4DACJC,cAAAA,EAAgB;AAClB,yDAAA;;;8DAGJZ,GAAA,CAACgC,IAAAA,EAAAA;AACC,oDAAA,QAAA,gBAAAhC,GAAA,CAACuB,UAAAA,EAAAA;kEACEhD,aAAAA,CAAc;4DACboC,EAAAA,EAAI,iDAAA;4DACJC,cAAAA,EAAgB;AAClB,yDAAA;;;8DAGJZ,GAAA,CAACgC,IAAAA,EAAAA;AACC,oDAAA,QAAA,gBAAAhC,GAAA,CAACuB,UAAAA,EAAAA;kEACEhD,aAAAA,CAAc;4DACboC,EAAAA,EAAI,iDAAA;4DACJC,cAAAA,EAAgB;AAClB,yDAAA;;;8DAGJZ,GAAA,CAACgC,IAAAA,EAAAA;AACC,oDAAA,QAAA,gBAAAhC,GAAA,CAACuB,UAAAA,EAAAA;kEACEhD,aAAAA,CAAc;4DACboC,EAAAA,EAAI,iDAAA;4DACJC,cAAAA,EACE;AACJ,yDAAA;;;;;;;8CAKRR,IAAA,CAACc,IAAAA,EAAAA;oCAAKe,SAAAA,EAAW,CAAA;oCAAGX,GAAAA,EAAK,CAAA;;sDACvBtB,GAAA,CAACkC,UAAAA,EAAAA;4CAAWC,IAAAA,EAAK,qCAAA;4CAAsCC,MAAAA,EAAO,QAAA;sDAC3D7D,aAAAA,CAAc;gDACboC,EAAAA,EAAI,mDAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;sDAEFZ,GAAA,CAAC3B,MAAAA,EAAAA;4CAAOwC,OAAAA,EAAQ,UAAA;4CAAWG,OAAAA,EAASnB,WAAAA;sDACjCtB,aAAAA,CAAc;gDACboC,EAAAA,EAAI,qDAAA;gDACJC,cAAAA,EAAgB;AAClB,6CAAA;;;;;;;;;;AAQhB,IAAA;IAEA,OAAO,IAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FreeTrialWelcomeModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":";;;;;;;;;;;;AAWA,MAAMA,
|
|
1
|
+
{"version":3,"file":"FreeTrialWelcomeModal.js","sources":["../../../../../../../admin/src/pages/Home/components/FreeTrialWelcomeModal.tsx"],"sourcesContent":["import { useState } from 'react';\n\nimport { Box, Button, Flex, Modal, Typography } from '@strapi/design-system';\nimport { Cross } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport styled from 'styled-components';\n\nimport { useLicenseLimits } from '../../../../../ee/admin/src/hooks/useLicenseLimits';\nimport lightIllustration from '../../../assets/images/free-trial.png';\nimport { useScopedPersistentState } from '../../../hooks/usePersistentState';\n\nconst StyledModalContent = styled(Modal.Content)`\n max-width: 51.6rem;\n`;\n\nconst StyledModalBody = styled(Modal.Body)`\n padding: 0;\n position: relative;\n\n > div {\n padding: 0;\n }\n`;\n\nconst StyledButton = styled(Button)`\n border: 0;\n border-radius: 50%;\n\n > span {\n line-height: 0;\n }\n`;\n\nexport const FreeTrialWelcomeModal = () => {\n const { formatMessage } = useIntl();\n const [open, setOpen] = useState(true);\n const [previouslyOpen, setPreviouslyOpen] = useScopedPersistentState(\n 'STRAPI_FREE_TRIAL_WELCOME_MODAL',\n false\n );\n const { license } = useLicenseLimits();\n\n const handleClose = () => {\n setPreviouslyOpen(true);\n setOpen(false);\n };\n\n const handleOnOpenChange = (isOpen: boolean) => {\n if (!isOpen) {\n setPreviouslyOpen(true);\n }\n\n setOpen(isOpen);\n };\n\n if (previouslyOpen || !license?.isTrial) {\n return null;\n }\n\n return (\n <Modal.Root open={open} onOpenChange={handleOnOpenChange}>\n <StyledModalContent aria-labelledby=\"title\">\n <StyledModalBody>\n <Box position=\"absolute\" top={0} right={0} padding={2}>\n <StyledButton\n aria-label={formatMessage({\n id: 'app.utils.close-label',\n defaultMessage: 'Close',\n })}\n variant=\"tertiary\"\n width=\"2.4rem\"\n height=\"2.4rem\"\n onClick={handleClose}\n >\n <Cross />\n </StyledButton>\n </Box>\n <img src={lightIllustration} alt=\"free-trial\" width=\"100%\" height=\"100%\" />\n <Flex direction=\"column\" alignItems=\"start\" justifyContent=\"stretch\" padding={8} gap={4}>\n <Typography variant=\"alpha\" fontWeight=\"bold\" fontSize={4} id=\"title\">\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.title',\n defaultMessage: \"We're glad to have you on board\",\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description1',\n defaultMessage:\n 'For the next 30 days, you will have full access to advanced features like Content History, Releases and Single Sign-On (SSO) – everything you need to explore the power of Strapi CMS.',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.description2',\n defaultMessage:\n 'Use this time to build, customize, and test your content workflows with complete flexibility!',\n })}\n </Typography>\n <Box marginTop={4}>\n <Button onClick={handleClose}>\n {formatMessage({\n id: 'app.components.FreeTrialWelcomeModal.button',\n defaultMessage: 'Start exploring',\n })}\n </Button>\n </Box>\n </Flex>\n </StyledModalBody>\n </StyledModalContent>\n </Modal.Root>\n );\n};\n"],"names":["StyledModalContent","styled","Modal","Content","StyledModalBody","Body","StyledButton","Button","FreeTrialWelcomeModal","formatMessage","useIntl","open","setOpen","useState","previouslyOpen","setPreviouslyOpen","useScopedPersistentState","license","useLicenseLimits","handleClose","handleOnOpenChange","isOpen","isTrial","_jsx","Root","onOpenChange","aria-labelledby","_jsxs","Box","position","top","right","padding","aria-label","id","defaultMessage","variant","width","height","onClick","Cross","img","src","lightIllustration","alt","Flex","direction","alignItems","justifyContent","gap","Typography","fontWeight","fontSize","marginTop"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { useState } from 'react';
|
|
3
|
-
import { Modal,
|
|
3
|
+
import { Modal, Box, Flex, Typography, Button } from '@strapi/design-system';
|
|
4
4
|
import { Cross } from '@strapi/icons';
|
|
5
5
|
import { useIntl } from 'react-intl';
|
|
6
6
|
import styled from 'styled-components';
|