@strapi/admin 5.49.0 → 5.50.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/components/ConfirmDialog.js +2 -2
- package/dist/admin/admin/src/components/ConfirmDialog.js.map +1 -1
- package/dist/admin/admin/src/components/ContentBox.js +3 -3
- package/dist/admin/admin/src/components/ContentBox.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.js.map +1 -1
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs +8 -8
- package/dist/admin/admin/src/components/DescriptionComponentRenderer.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +100 -5
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +99 -4
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/Form.js +41 -27
- package/dist/admin/admin/src/components/Form.js.map +1 -1
- package/dist/admin/admin/src/components/Form.mjs +41 -27
- package/dist/admin/admin/src/components/Form.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.js +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs +3 -2
- package/dist/admin/admin/src/components/FormInputs/Boolean.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.mjs +1 -1
- package/dist/admin/admin/src/components/FormInputs/Date.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 +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs +4 -1
- package/dist/admin/admin/src/components/FormInputs/Enumeration.mjs.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Json.mjs +2 -1
- package/dist/admin/admin/src/components/FormInputs/Json.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 +18 -26
- package/dist/admin/admin/src/components/FormInputs/Renderer.js.map +1 -1
- package/dist/admin/admin/src/components/FormInputs/Renderer.mjs +20 -28
- 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/GapDropZone.js +2 -2
- package/dist/admin/admin/src/components/GapDropZone.js.map +1 -1
- package/dist/admin/admin/src/components/GradientBadge.js +3 -3
- package/dist/admin/admin/src/components/GradientBadge.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +8 -8
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +4 -4
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -2
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/GridLayout.js +2 -2
- package/dist/admin/admin/src/components/Layouts/GridLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +4 -4
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/LazyOutlet.js +57 -0
- package/dist/admin/admin/src/components/LazyOutlet.js.map +1 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs +35 -0
- package/dist/admin/admin/src/components/LazyOutlet.mjs.map +1 -0
- package/dist/admin/admin/src/components/LeftMenu.js +3 -3
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +2 -2
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +4 -4
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBrand.js +2 -2
- package/dist/admin/admin/src/components/MainNav/NavBrand.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +3 -3
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +8 -8
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +17 -7
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +10 -0
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +3 -3
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +2 -2
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.js +3 -2
- package/dist/admin/admin/src/components/RelativeTime.js.map +1 -1
- package/dist/admin/admin/src/components/RelativeTime.mjs +3 -2
- package/dist/admin/admin/src/components/RelativeTime.mjs.map +1 -1
- package/dist/admin/admin/src/components/ResizeIndicator.js +6 -6
- package/dist/admin/admin/src/components/ResizeIndicator.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +11 -9
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +4 -2
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Table.js +9 -5
- package/dist/admin/admin/src/components/Table.js.map +1 -1
- package/dist/admin/admin/src/components/Table.mjs +6 -2
- package/dist/admin/admin/src/components/Table.mjs.map +1 -1
- package/dist/admin/admin/src/components/Theme.js +2 -2
- package/dist/admin/admin/src/components/Theme.js.map +1 -1
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js +2 -2
- package/dist/admin/admin/src/components/UnauthenticatedLogo.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -3
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.js +4 -7
- package/dist/admin/admin/src/components/WidgetRoot.js.map +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs +1 -1
- package/dist/admin/admin/src/components/WidgetRoot.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js +5 -5
- package/dist/admin/admin/src/components/Widgets.js.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 +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/router.js +19 -17
- package/dist/admin/admin/src/core/apis/router.js.map +1 -1
- package/dist/admin/admin/src/core/apis/router.mjs +19 -17
- 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/utils/createHook.js.map +1 -1
- package/dist/admin/admin/src/core/utils/createHook.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +3 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +3 -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.map +1 -1
- package/dist/admin/admin/src/hooks/useMediaQuery.js +4 -4
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.js +5 -3
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +5 -3
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.js.map +1 -1
- package/dist/admin/admin/src/hooks/useQueryParams.mjs +0 -1
- package/dist/admin/admin/src/hooks/useQueryParams.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/layouts/AuthenticatedLayout.js +5 -3
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +5 -3
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +3 -3
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.js +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs +3 -2
- package/dist/admin/admin/src/pages/Auth/AuthPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +17 -9
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +15 -7
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +2 -2
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/AddWidgetModal.js +3 -6
- 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 +4 -8
- 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 +4 -8
- 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/SessionsPage.js +318 -0
- package/dist/admin/admin/src/pages/SessionsPage.js.map +1 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs +296 -0
- package/dist/admin/admin/src/pages/SessionsPage.mjs.map +1 -0
- package/dist/admin/admin/src/pages/Settings/Layout.js +4 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +5 -2
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +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 +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +2 -2
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/BoundRoute.js +2 -2
- 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/CollapsableContentType.js +4 -4
- 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/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/ApplicationInfo/ApplicationInfoPage.js +1 -2
- 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 +1 -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 +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/components/LogoInput.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/CreatePage.js +9 -2
- 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 +7 -0
- 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 +7 -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 +7 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/EditPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.js +2 -2
- 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/CollapsePropertyMatrix.js +44 -10
- 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 +34 -0
- 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 +3 -3
- 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/ContentTypeCollapses.js +5 -5
- 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/HiddenAction.js +2 -2
- 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/Permissions.js +38 -2
- 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 +38 -2
- 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 +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/PluginsAndSettings.js.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/forms.js +18 -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 +18 -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/localePermissionValidation.js +59 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.js.map +1 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs +52 -0
- package/dist/admin/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.mjs.map +1 -0
- 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/SelectRoles.js +3 -3
- package/dist/admin/admin/src/pages/Settings/pages/Users/components/SelectRoles.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/components/Events.js +2 -2
- 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/HeadersInput.js +2 -2
- 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.map +1 -1
- package/dist/admin/admin/src/router.js +9 -0
- package/dist/admin/admin/src/router.js.map +1 -1
- package/dist/admin/admin/src/router.mjs +9 -0
- package/dist/admin/admin/src/router.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +43 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +41 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +22 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +22 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.js +726 -237
- package/dist/admin/admin/src/translations/ja.json.js.map +1 -1
- package/dist/admin/admin/src/translations/ja.json.mjs +723 -238
- package/dist/admin/admin/src/translations/ja.json.mjs.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.js +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.js.map +1 -1
- package/dist/admin/admin/src/translations/languageNativeNames.mjs +1 -0
- package/dist/admin/admin/src/translations/languageNativeNames.mjs.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.js +22 -0
- package/dist/admin/admin/src/translations/pl.json.js.map +1 -1
- package/dist/admin/admin/src/translations/pl.json.mjs +22 -0
- package/dist/admin/admin/src/translations/pl.json.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 +1 -1
- package/dist/admin/admin/src/utils/baseQuery.js.map +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs +1 -1
- package/dist/admin/admin/src/utils/baseQuery.mjs.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.js.map +1 -1
- package/dist/admin/admin/src/utils/getFetchClient.mjs.map +1 -1
- package/dist/admin/admin/src/utils/objects.js +43 -11
- package/dist/admin/admin/src/utils/objects.js.map +1 -1
- package/dist/admin/admin/src/utils/objects.mjs +43 -11
- 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/retryDynamicImport.js +85 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.js.map +1 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs +80 -0
- package/dist/admin/admin/src/utils/retryDynamicImport.mjs.map +1 -0
- package/dist/admin/admin/src/utils/rulesEngine.js +2 -1
- package/dist/admin/admin/src/utils/rulesEngine.js.map +1 -1
- package/dist/admin/admin/src/utils/rulesEngine.mjs +2 -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/widgetVisibility.js +16 -1
- package/dist/admin/admin/src/utils/widgetVisibility.js.map +1 -1
- package/dist/admin/admin/src/utils/widgetVisibility.mjs +14 -2
- package/dist/admin/admin/src/utils/widgetVisibility.mjs.map +1 -1
- package/dist/admin/admin/tests/server.js +25 -0
- package/dist/admin/admin/tests/server.js.map +1 -1
- package/dist/admin/admin/tests/server.mjs +25 -0
- package/dist/admin/admin/tests/server.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +2 -2
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.js.map +1 -1
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs +2 -2
- package/dist/admin/ee/admin/src/hooks/useLicenseLimitNotification.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Login.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js +2 -2
- package/dist/admin/ee/admin/src/pages/AuthPage/components/Providers.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js +3 -3
- package/dist/admin/ee/admin/src/pages/AuthPage/components/SSOProviders.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +3 -3
- 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/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/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 +2 -2
- 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/SingleSignOnPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/index.js +2 -0
- 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/StrapiApp.d.ts +7 -7
- package/dist/admin/src/components/DescriptionComponentRenderer.d.ts +2 -1
- package/dist/admin/src/components/Form.d.ts +14 -12
- package/dist/admin/src/components/FormInputs/Boolean.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Checkbox.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/DateTime.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Email.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Enumeration.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Number.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Password.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Renderer.d.ts +1 -2
- package/dist/admin/src/components/FormInputs/String.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Textarea.d.ts +0 -1
- package/dist/admin/src/components/FormInputs/Time.d.ts +0 -1
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +0 -1
- package/dist/admin/src/components/GuidedTour/Steps/Step.d.ts +1 -1
- package/dist/admin/src/components/LazyOutlet.d.ts +20 -0
- package/dist/admin/src/components/MainNav/MainNav.d.ts +1 -1
- package/dist/admin/src/components/MainNav/NavUser.d.ts +0 -1
- package/dist/admin/src/components/SubNav.d.ts +6 -7
- package/dist/admin/src/components/Table.d.ts +3 -2
- package/dist/admin/src/core/apis/Plugin.d.ts +2 -2
- package/dist/admin/src/core/apis/Widgets.d.ts +0 -1
- package/dist/admin/src/core/apis/router.d.ts +1 -1
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/utils/createHook.d.ts +7 -7
- package/dist/admin/src/features/AppInfo.d.ts +1 -2
- package/dist/admin/src/features/StrapiApp.d.ts +1 -2
- package/dist/admin/src/hooks/useAPIErrorHandler.d.ts +1 -1
- package/dist/admin/src/hooks/useAdminRoles.d.ts +3 -3
- package/dist/admin/src/hooks/useFetchClient.d.ts +1 -1
- package/dist/admin/src/hooks/useMenu.d.ts +1 -1
- package/dist/admin/src/hooks/usePersistentState.d.ts +0 -1
- package/dist/admin/src/hooks/useQueryParams.d.ts +3 -2
- package/dist/admin/src/hooks/useThrottledCallback.d.ts +1 -2
- package/dist/admin/src/index.d.ts +1 -0
- package/dist/admin/src/layouts/UnauthenticatedLayout.d.ts +2 -2
- package/dist/admin/src/pages/SessionsPage.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/ApiTokens/EditView/reducer.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/CollapseLabel.d.ts +2 -3
- package/dist/admin/src/pages/Settings/pages/Roles/components/ConditionsButton.d.ts +2 -2
- package/dist/admin/src/pages/Settings/pages/Roles/components/HiddenAction.d.ts +0 -1
- package/dist/admin/src/pages/Settings/pages/Roles/components/Permissions.d.ts +2 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/createArrayOfValues.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/forms.d.ts +1 -1
- package/dist/admin/src/pages/Settings/pages/Roles/utils/localePermissionValidation.d.ts +5 -0
- package/dist/admin/src/pages/Settings/pages/Roles/utils/permissions.d.ts +3 -1
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +8 -8
- package/dist/admin/src/reducer.d.ts +1 -1
- package/dist/admin/src/services/admin.d.ts +8 -8
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +3 -3
- package/dist/admin/src/services/auth.d.ts +29 -27
- package/dist/admin/src/services/contentApi.d.ts +2 -2
- package/dist/admin/src/services/contentManager.d.ts +1 -1
- package/dist/admin/src/services/homepage.d.ts +3 -3
- package/dist/admin/src/services/transferTokens.d.ts +1 -1
- package/dist/admin/src/services/users.d.ts +15 -15
- package/dist/admin/src/services/webhooks.d.ts +4 -4
- package/dist/admin/src/translations/languageNativeNames.d.ts +1 -0
- package/dist/admin/src/utils/arrays.d.ts +1 -1
- package/dist/admin/src/utils/baseQuery.d.ts +1 -1
- package/dist/admin/src/utils/getFetchClient.d.ts +7 -7
- package/dist/admin/src/utils/locales.d.ts +0 -1
- package/dist/admin/src/utils/objects.d.ts +6 -4
- package/dist/admin/src/utils/once.d.ts +1 -1
- package/dist/admin/src/utils/retryDynamicImport.d.ts +19 -0
- package/dist/admin/src/utils/shims.d.ts +1 -1
- package/dist/admin/src/utils/widgetVisibility.d.ts +11 -0
- package/dist/admin/tests/store.d.ts +4 -4
- package/dist/admin/tests/utils.d.ts +5 -5
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/getDisplayedFilters.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/AuditLogs/utils/tableHeaders.d.ts +2 -1
- package/dist/ee/admin/src/services/ai.d.ts +5 -5
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts +3 -3
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts +2 -2
- package/dist/ee/server/src/audit-logs/validation/audit-logs.d.ts.map +1 -1
- package/dist/ee/server/src/bootstrap.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts +30 -31
- package/dist/ee/server/src/controllers/authentication-utils/utils.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +1 -2
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/user.d.ts +1 -1
- package/dist/ee/server/src/destroy.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +2 -3
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/ee/server/src/register.d.ts.map +1 -1
- package/dist/ee/server/src/routes/utils.d.ts.map +1 -1
- package/dist/ee/server/src/services/auth.d.ts.map +1 -1
- package/dist/ee/server/src/services/index.d.ts +1 -1
- package/dist/ee/server/src/services/metrics.d.ts.map +1 -1
- package/dist/ee/server/src/services/passport/sso.d.ts.map +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts +1 -1
- package/dist/ee/server/src/services/persist-tables.d.ts.map +1 -1
- package/dist/ee/server/src/services/role.d.ts.map +1 -1
- package/dist/ee/server/src/services/user.d.ts.map +1 -1
- package/dist/ee/server/src/utils/index.d.ts.map +1 -1
- package/dist/ee/server/src/utils/sso-lock.d.ts.map +1 -1
- package/dist/ee/server/src/validation/authentication.d.ts +2 -2
- package/dist/ee/server/src/validation/role.d.ts +6 -6
- package/dist/ee/server/src/validation/role.d.ts.map +1 -1
- package/dist/ee/server/src/validation/user.d.ts.map +1 -1
- package/dist/server/server/src/content-types/session.js +6 -0
- package/dist/server/server/src/content-types/session.js.map +1 -1
- package/dist/server/server/src/content-types/session.mjs +6 -0
- package/dist/server/server/src/content-types/session.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/authenticated-session.js +61 -0
- package/dist/server/server/src/controllers/authenticated-session.js.map +1 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs +59 -0
- package/dist/server/server/src/controllers/authenticated-session.mjs.map +1 -0
- package/dist/server/server/src/controllers/authentication.js +11 -4
- package/dist/server/server/src/controllers/authentication.js.map +1 -1
- package/dist/server/server/src/controllers/authentication.mjs +12 -5
- package/dist/server/server/src/controllers/authentication.mjs.map +1 -1
- package/dist/server/server/src/controllers/index.js +2 -0
- package/dist/server/server/src/controllers/index.js.map +1 -1
- package/dist/server/server/src/controllers/index.mjs +2 -0
- package/dist/server/server/src/controllers/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/role.js +2 -4
- package/dist/server/server/src/controllers/role.js.map +1 -1
- package/dist/server/server/src/controllers/role.mjs +2 -4
- package/dist/server/server/src/controllers/role.mjs.map +1 -1
- package/dist/server/server/src/routes/serve-admin-panel.js +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/users.js +12 -26
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +12 -26
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.js +0 -2
- 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 +0 -2
- package/dist/server/server/src/services/permission/permissions-manager/sanitize.mjs.map +1 -1
- package/dist/server/server/src/services/permission/sections-builder/handlers.js +9 -2
- 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 +9 -2
- package/dist/server/server/src/services/permission/sections-builder/handlers.mjs.map +1 -1
- package/dist/server/server/src/services/role.js +7 -2
- package/dist/server/server/src/services/role.js.map +1 -1
- package/dist/server/server/src/services/role.mjs +7 -2
- package/dist/server/server/src/services/role.mjs.map +1 -1
- package/dist/server/server/src/strategies/admin.js +4 -0
- package/dist/server/server/src/strategies/admin.js.map +1 -1
- package/dist/server/server/src/strategies/admin.mjs +4 -0
- package/dist/server/server/src/strategies/admin.mjs.map +1 -1
- package/dist/server/server/src/validation/common-validators.js +19 -11
- package/dist/server/server/src/validation/common-validators.js.map +1 -1
- package/dist/server/server/src/validation/common-validators.mjs +19 -11
- package/dist/server/server/src/validation/common-validators.mjs.map +1 -1
- package/dist/server/server/src/validation/permission.js +1 -1
- package/dist/server/server/src/validation/permission.js.map +1 -1
- package/dist/server/server/src/validation/permission.mjs +1 -1
- package/dist/server/server/src/validation/permission.mjs.map +1 -1
- package/dist/server/server/src/validation/role.js +2 -2
- package/dist/server/server/src/validation/role.js.map +1 -1
- package/dist/server/server/src/validation/role.mjs +2 -2
- package/dist/server/server/src/validation/role.mjs.map +1 -1
- package/dist/server/src/ai/controllers/ai.d.ts +3 -3
- package/dist/server/src/ai/services/ai.d.ts.map +1 -1
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/config/admin-conditions.d.ts +2 -2
- package/dist/server/src/config/admin-conditions.d.ts.map +1 -1
- package/dist/server/src/content-types/index.d.ts +6 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/content-types/session.d.ts +6 -0
- package/dist/server/src/content-types/session.d.ts.map +1 -1
- package/dist/server/src/controllers/admin-token.d.ts +5 -5
- package/dist/server/src/controllers/api-token.d.ts +1 -1
- package/dist/server/src/controllers/authenticated-session.d.ts +8 -0
- package/dist/server/src/controllers/authenticated-session.d.ts.map +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -1
- package/dist/server/src/controllers/authentication.d.ts +4 -4
- package/dist/server/src/controllers/authentication.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts +0 -1
- package/dist/server/src/controllers/formatters/conditions.d.ts.map +1 -1
- package/dist/server/src/controllers/formatters/format-actions-by-sections.d.ts.map +1 -1
- package/dist/server/src/controllers/homepage.d.ts +2 -2
- package/dist/server/src/controllers/homepage.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +33 -43
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/role.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts +4 -4
- package/dist/server/src/controllers/transfer/runner.d.ts.map +1 -1
- package/dist/server/src/controllers/transfer/token.d.ts +1 -1
- package/dist/server/src/controllers/user.d.ts +2 -2
- package/dist/server/src/controllers/webhooks.d.ts +4 -4
- package/dist/server/src/domain/action/index.d.ts +4 -65
- package/dist/server/src/domain/action/index.d.ts.map +1 -1
- package/dist/server/src/domain/action/provider.d.ts +30 -3
- package/dist/server/src/domain/action/provider.d.ts.map +1 -1
- package/dist/server/src/domain/condition/index.d.ts.map +1 -1
- package/dist/server/src/domain/condition/provider.d.ts +19 -2
- package/dist/server/src/domain/condition/provider.d.ts.map +1 -1
- package/dist/server/src/domain/permission/index.d.ts +0 -1
- package/dist/server/src/domain/permission/index.d.ts.map +1 -1
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +51 -63
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/data-transfer.d.ts.map +1 -1
- package/dist/server/src/middlewares/index.d.ts +0 -1
- package/dist/server/src/middlewares/index.d.ts.map +1 -1
- package/dist/server/src/middlewares/rateLimit.d.ts.map +1 -1
- package/dist/server/src/policies/hasPermissions.d.ts.map +1 -1
- package/dist/server/src/policies/index.d.ts.map +1 -1
- package/dist/server/src/policies/isAuthenticatedAdmin.d.ts.map +1 -1
- package/dist/server/src/policies/isTelemetryEnabled.d.ts.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/index.d.ts +0 -1
- package/dist/server/src/routes/index.d.ts.map +1 -1
- package/dist/server/src/routes/serve-admin-panel.d.ts.map +1 -1
- package/dist/server/src/routes/transfer.d.ts +0 -1
- package/dist/server/src/routes/transfer.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/action.d.ts.map +1 -1
- package/dist/server/src/services/api-token.d.ts +5 -6
- package/dist/server/src/services/api-token.d.ts.map +1 -1
- package/dist/server/src/services/auth.d.ts.map +1 -1
- package/dist/server/src/services/condition.d.ts.map +1 -1
- package/dist/server/src/services/content-type.d.ts.map +1 -1
- package/dist/server/src/services/encryption.d.ts.map +1 -1
- package/dist/server/src/services/homepage.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +12 -21
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/metrics.d.ts.map +1 -1
- package/dist/server/src/services/passport/local-strategy.d.ts.map +1 -1
- package/dist/server/src/services/passport.d.ts +0 -1
- package/dist/server/src/services/passport.d.ts.map +1 -1
- package/dist/server/src/services/permission/engine.d.ts +1 -2
- package/dist/server/src/services/permission/engine.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/index.d.ts +5 -5
- package/dist/server/src/services/permission/permissions-manager/index.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/permission-fields.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/query-builders.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts +3 -3
- package/dist/server/src/services/permission/permissions-manager/sanitize.d.ts.map +1 -1
- package/dist/server/src/services/permission/permissions-manager/validate.d.ts.map +1 -1
- package/dist/server/src/services/permission/queries.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/builder.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/builder.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/handlers.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/index.d.ts +4 -4
- package/dist/server/src/services/permission/sections-builder/section.d.ts.map +1 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts +0 -1
- package/dist/server/src/services/permission/sections-builder/utils.d.ts.map +1 -1
- package/dist/server/src/services/permission.d.ts +13 -38
- package/dist/server/src/services/permission.d.ts.map +1 -1
- package/dist/server/src/services/project-settings.d.ts +2 -4
- package/dist/server/src/services/project-settings.d.ts.map +1 -1
- package/dist/server/src/services/role.d.ts +7 -1
- package/dist/server/src/services/role.d.ts.map +1 -1
- package/dist/server/src/services/token.d.ts +1 -1
- package/dist/server/src/services/token.d.ts.map +1 -1
- package/dist/server/src/services/transfer/token.d.ts +11 -11
- package/dist/server/src/services/transfer/token.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +3 -3
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/server/src/strategies/admin-token.d.ts +4 -4
- package/dist/server/src/strategies/admin-token.d.ts.map +1 -1
- package/dist/server/src/strategies/admin.d.ts.map +1 -1
- package/dist/server/src/strategies/api-token-utils.d.ts.map +1 -1
- package/dist/server/src/strategies/content-api-token.d.ts.map +1 -1
- package/dist/server/src/strategies/data-transfer.d.ts.map +1 -1
- package/dist/server/src/utils/normalize-email.d.ts.map +1 -1
- package/dist/server/src/validation/action-provider.d.ts +2 -2
- package/dist/server/src/validation/action-provider.d.ts.map +1 -1
- package/dist/server/src/validation/admin-tokens.d.ts +2 -2
- package/dist/server/src/validation/api-tokens.d.ts +4 -4
- package/dist/server/src/validation/authentication/forgot-password.d.ts +1 -1
- package/dist/server/src/validation/authentication/login.d.ts +1 -1
- package/dist/server/src/validation/authentication/register.d.ts +6 -6
- package/dist/server/src/validation/authentication/register.d.ts.map +1 -1
- package/dist/server/src/validation/authentication/reset-password.d.ts +1 -1
- package/dist/server/src/validation/common-functions/check-fields-are-correctly-nested.d.ts.map +1 -1
- package/dist/server/src/validation/common-functions/check-fields-dont-have-duplicates.d.ts.map +1 -1
- package/dist/server/src/validation/common-validators.d.ts.map +1 -1
- package/dist/server/src/validation/permission.d.ts +6 -6
- package/dist/server/src/validation/permission.d.ts.map +1 -1
- package/dist/server/src/validation/policies/hasPermissions.d.ts +2 -2
- package/dist/server/src/validation/project-settings.d.ts +6 -6
- package/dist/server/src/validation/role.d.ts +8 -8
- package/dist/server/src/validation/role.d.ts.map +1 -1
- package/dist/server/src/validation/transfer/token.d.ts +4 -4
- package/dist/server/src/validation/user.d.ts +8 -8
- package/dist/shared/contracts/permissions.d.ts +1 -0
- package/dist/shared/contracts/permissions.d.ts.map +1 -1
- package/dist/shared/contracts/sessions.d.ts +62 -0
- package/dist/shared/contracts/sessions.d.ts.map +1 -0
- package/dist/shared/contracts/shared.d.ts +1 -1
- package/dist/shared/contracts/shared.d.ts.map +1 -1
- package/dist/shared/utils/session-auth.d.ts +1 -1
- package/dist/shared/utils/session-auth.d.ts.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"String.mjs","sources":["../../../../../../admin/src/components/FormInputs/String.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { type InputProps, useField } from '../Form';\n\nconst StringInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedStringInput = memo(StringInput);\n\nexport { MemoizedStringInput as StringInput };\n"],"names":["StringInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","TextInput","onChange","value","type","Hint","Error","MemoizedStringInput","memo"],"mappings":";;;;;;AAOA,MAAMA,4BAAcC,UAAAA,CAClB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,QAAAA,
|
|
1
|
+
{"version":3,"file":"String.mjs","sources":["../../../../../../admin/src/components/FormInputs/String.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { TextInput, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { type InputProps, useField } from '../Form';\n\nconst StringInput = forwardRef<HTMLInputElement, InputProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField<string>(name);\n const fieldRef = useFocusInputField<HTMLInputElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <TextInput\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n type=\"text\"\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedStringInput = memo(StringInput);\n\nexport { MemoizedStringInput as StringInput };\n"],"names":["StringInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","TextInput","onChange","value","type","Hint","Error","MemoizedStringInput","memo"],"mappings":";;;;;;AAOA,MAAMA,4BAAcC,UAAAA,CAClB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,QAAAA,CAAiBR,IAAAA,CAAAA;AAC/B,IAAA,MAAMS,WAAWC,kBAAAA,CAAqCV,IAAAA,CAAAA;IAEtD,MAAMW,YAAAA,GAAeC,gBAAgBN,GAAAA,EAAKG,QAAAA,CAAAA;IAE1C,qBACEI,IAAA,CAACC,MAAMC,IAAI,EAAA;AAACC,QAAAA,KAAAA,EAAOT,MAAMS,KAAK;QAAEhB,IAAAA,EAAMA,IAAAA;QAAMG,IAAAA,EAAMA,IAAAA;QAAMF,QAAAA,EAAUA,QAAAA;;AAChE,0BAAAgB,GAAA,CAACH,MAAMI,KAAK,EAAA;gBAACC,MAAAA,EAAQf,WAAAA;AAAcF,gBAAAA,QAAAA,EAAAA;;0BACnCe,GAAA,CAACG,SAAAA,EAAAA;gBACCd,GAAAA,EAAKK,YAAAA;AACLU,gBAAAA,QAAAA,EAAUd,MAAMc,QAAQ;gBACxBC,KAAAA,EAAOf,KAAAA,CAAMe,KAAK,IAAI,EAAA;AACrB,gBAAA,GAAGjB,KAAK;gBACTkB,IAAAA,EAAK;;AAEP,0BAAAN,GAAA,CAACH,MAAMU,IAAI,EAAA,EAAA,CAAA;AACX,0BAAAP,GAAA,CAACH,MAAMW,KAAK,EAAA,EAAA;;;AAGlB,CAAA,CAAA;AAGF,MAAMC,oCAAsBC,IAAAA,CAAK7B,WAAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sources":["../../../../../../admin/src/components/FormInputs/Textarea.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { Textarea, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst TextareaInput = forwardRef<HTMLTextAreaElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLTextAreaElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTextareaInput = memo(TextareaInput);\n\nexport { MemoizedTextareaInput as TextareaInput };\n"],"names":["TextareaInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","Textarea","onChange","value","Hint","Error","MemoizedTextareaInput","memo"],"mappings":";;;;;;;;AASA,MAAMA,8BAAgBC,gBAAAA,CACpB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,aAAAA,
|
|
1
|
+
{"version":3,"file":"Textarea.js","sources":["../../../../../../admin/src/components/FormInputs/Textarea.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { Textarea, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst TextareaInput = forwardRef<HTMLTextAreaElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField<string>(name);\n const fieldRef = useFocusInputField<HTMLTextAreaElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTextareaInput = memo(TextareaInput);\n\nexport { MemoizedTextareaInput as TextareaInput };\n"],"names":["TextareaInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","Textarea","onChange","value","Hint","Error","MemoizedTextareaInput","memo"],"mappings":";;;;;;;;AASA,MAAMA,8BAAgBC,gBAAAA,CACpB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,aAAAA,CAAiBR,IAAAA,CAAAA;AAC/B,IAAA,MAAMS,WAAWC,qCAAAA,CAAwCV,IAAAA,CAAAA;IAEzD,MAAMW,YAAAA,GAAeC,6BAAgBN,GAAAA,EAAKG,QAAAA,CAAAA;IAE1C,qBACEI,eAAA,CAACC,mBAAMC,IAAI,EAAA;AAACC,QAAAA,KAAAA,EAAOT,MAAMS,KAAK;QAAEhB,IAAAA,EAAMA,IAAAA;QAAMG,IAAAA,EAAMA,IAAAA;QAAMF,QAAAA,EAAUA,QAAAA;;AAChE,0BAAAgB,cAAA,CAACH,mBAAMI,KAAK,EAAA;gBAACC,MAAAA,EAAQf,WAAAA;AAAcF,gBAAAA,QAAAA,EAAAA;;0BACnCe,cAAA,CAACG,qBAAAA,EAAAA;gBACCd,GAAAA,EAAKK,YAAAA;AACLU,gBAAAA,QAAAA,EAAUd,MAAMc,QAAQ;gBACxBC,KAAAA,EAAOf,KAAAA,CAAMe,KAAK,IAAI,EAAA;AACrB,gBAAA,GAAGjB;;AAEN,0BAAAY,cAAA,CAACH,mBAAMS,IAAI,EAAA,EAAA,CAAA;AACX,0BAAAN,cAAA,CAACH,mBAAMU,KAAK,EAAA,EAAA;;;AAGlB,CAAA,CAAA;AAGF,MAAMC,sCAAwBC,UAAAA,CAAK5B,aAAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.mjs","sources":["../../../../../../admin/src/components/FormInputs/Textarea.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { Textarea, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst TextareaInput = forwardRef<HTMLTextAreaElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField(name);\n const fieldRef = useFocusInputField<HTMLTextAreaElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTextareaInput = memo(TextareaInput);\n\nexport { MemoizedTextareaInput as TextareaInput };\n"],"names":["TextareaInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","Textarea","onChange","value","Hint","Error","MemoizedTextareaInput","memo"],"mappings":";;;;;;AASA,MAAMA,8BAAgBC,UAAAA,CACpB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,QAAAA,
|
|
1
|
+
{"version":3,"file":"Textarea.mjs","sources":["../../../../../../admin/src/components/FormInputs/Textarea.tsx"],"sourcesContent":["import { forwardRef, memo } from 'react';\n\nimport { Textarea, useComposedRefs, Field } from '@strapi/design-system';\n\nimport { useFocusInputField } from '../../hooks/useFocusInputField';\nimport { useField } from '../Form';\n\nimport type { StringProps } from './types';\n\nconst TextareaInput = forwardRef<HTMLTextAreaElement, StringProps>(\n ({ name, required, label, hint, labelAction, ...props }, ref) => {\n const field = useField<string>(name);\n const fieldRef = useFocusInputField<HTMLTextAreaElement>(name);\n\n const composedRefs = useComposedRefs(ref, fieldRef);\n\n return (\n <Field.Root error={field.error} name={name} hint={hint} required={required}>\n <Field.Label action={labelAction}>{label}</Field.Label>\n <Textarea\n ref={composedRefs}\n onChange={field.onChange}\n value={field.value ?? ''}\n {...props}\n />\n <Field.Hint />\n <Field.Error />\n </Field.Root>\n );\n }\n);\n\nconst MemoizedTextareaInput = memo(TextareaInput);\n\nexport { MemoizedTextareaInput as TextareaInput };\n"],"names":["TextareaInput","forwardRef","name","required","label","hint","labelAction","props","ref","field","useField","fieldRef","useFocusInputField","composedRefs","useComposedRefs","_jsxs","Field","Root","error","_jsx","Label","action","Textarea","onChange","value","Hint","Error","MemoizedTextareaInput","memo"],"mappings":";;;;;;AASA,MAAMA,8BAAgBC,UAAAA,CACpB,CAAC,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGC,OAAO,EAAEC,GAAAA,GAAAA;AACvD,IAAA,MAAMC,QAAQC,QAAAA,CAAiBR,IAAAA,CAAAA;AAC/B,IAAA,MAAMS,WAAWC,kBAAAA,CAAwCV,IAAAA,CAAAA;IAEzD,MAAMW,YAAAA,GAAeC,gBAAgBN,GAAAA,EAAKG,QAAAA,CAAAA;IAE1C,qBACEI,IAAA,CAACC,MAAMC,IAAI,EAAA;AAACC,QAAAA,KAAAA,EAAOT,MAAMS,KAAK;QAAEhB,IAAAA,EAAMA,IAAAA;QAAMG,IAAAA,EAAMA,IAAAA;QAAMF,QAAAA,EAAUA,QAAAA;;AAChE,0BAAAgB,GAAA,CAACH,MAAMI,KAAK,EAAA;gBAACC,MAAAA,EAAQf,WAAAA;AAAcF,gBAAAA,QAAAA,EAAAA;;0BACnCe,GAAA,CAACG,QAAAA,EAAAA;gBACCd,GAAAA,EAAKK,YAAAA;AACLU,gBAAAA,QAAAA,EAAUd,MAAMc,QAAQ;gBACxBC,KAAAA,EAAOf,KAAAA,CAAMe,KAAK,IAAI,EAAA;AACrB,gBAAA,GAAGjB;;AAEN,0BAAAY,GAAA,CAACH,MAAMS,IAAI,EAAA,EAAA,CAAA;AACX,0BAAAN,GAAA,CAACH,MAAMU,KAAK,EAAA,EAAA;;;AAGlB,CAAA,CAAA;AAGF,MAAMC,sCAAwBC,IAAAA,CAAK5B,aAAAA;;;;"}
|
|
@@ -4,7 +4,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
6
|
var reactDnd = require('react-dnd');
|
|
7
|
-
var
|
|
7
|
+
var styledComponents = require('styled-components');
|
|
8
8
|
var widgetLayout = require('../utils/widgetLayout.js');
|
|
9
9
|
|
|
10
10
|
function _interopNamespace(e) {
|
|
@@ -240,7 +240,7 @@ const GapDropZoneManager = ({ filteredWidgets, columnWidths, draggedWidgetId, mo
|
|
|
240
240
|
targetRowIndex: gapDropZone.targetRowIndex
|
|
241
241
|
}, `gap-drop-zone-${gapDropZone.type}-${gapDropZone.insertIndex}-${gapDropZone.targetRowIndex ?? 'no-row'}`));
|
|
242
242
|
};
|
|
243
|
-
const GapDropZoneContainer =
|
|
243
|
+
const GapDropZoneContainer = styledComponents.styled(designSystem.Box)`
|
|
244
244
|
background-color: ${({ $isOver, theme })=>$isOver ? `${theme.colors.primary100}` : 'transparent'};
|
|
245
245
|
border: ${({ $isOver, theme })=>$isOver ? `2px solid ${theme.colors.primary500}` : '2px solid transparent'};
|
|
246
246
|
opacity: ${({ $isOver })=>$isOver ? 1 : 0.6};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GapDropZone.js","sources":["../../../../../admin/src/components/GapDropZone.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n// TODO: use @dnd-kit/core instead\nimport { useDrop } from 'react-dnd';\nimport { styled } from 'styled-components';\n\nimport {\n calculateWidgetRows,\n type WidgetRow,\n getWidgetElement,\n getWidgetGridContainer,\n} from '../utils/widgetLayout';\n\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const DROP_ZONE_SIZE = 20;\n\nexport interface GapDropZonePosition {\n insertIndex: number;\n position: { left: number; top: number; height: number; width: number };\n isVisible: boolean;\n type: 'vertical' | 'horizontal';\n isHorizontalDrop?: boolean;\n targetRowIndex?: number;\n}\n\ninterface GapDropZoneManagerProps {\n filteredWidgets: WidgetWithUID[];\n columnWidths: Record<string, number>;\n draggedWidgetId?: string;\n moveWidget: (id: string, to: number, targetRowIndex?: number, isHorizontalDrop?: boolean) => void;\n}\n\nconst getRowInfo = (row: WidgetRow) => {\n const firstWidgetElement = getWidgetElement(row.widgets[0].uid);\n const lastWidgetElement = getWidgetElement(row.widgets[row.widgets.length - 1].uid);\n const containerElement = getWidgetGridContainer();\n\n if (!firstWidgetElement || !lastWidgetElement || !containerElement) {\n return null;\n }\n\n const firstRect = firstWidgetElement.getBoundingClientRect();\n const lastRect = lastWidgetElement.getBoundingClientRect();\n const containerRect = containerElement.getBoundingClientRect();\n\n return {\n firstWidgetElement,\n lastWidgetElement,\n containerElement,\n firstRect,\n lastRect,\n containerRect,\n rowHeight: Math.max(firstRect.height, lastRect.height),\n rowTop: firstRect.top - containerRect.top,\n };\n};\n\nexport const addVerticalDropZones = (\n row: WidgetRow,\n rowInfo: ReturnType<typeof getRowInfo>,\n rowIndex: number\n): GapDropZonePosition[] => {\n if (!rowInfo) return [];\n\n const { containerRect, rowTop, rowHeight } = rowInfo;\n const widgetCount = row.widgets.length;\n\n // Get widget positions relative to container\n const widgetPositions = row.widgets\n .map((widget) => {\n const element = getWidgetElement(widget.uid);\n if (!element) return null;\n\n const rect = element.getBoundingClientRect();\n return {\n left: rect.left - containerRect.left,\n width: rect.width,\n };\n })\n .filter((pos): pos is NonNullable<typeof pos> => pos !== null);\n\n if (widgetPositions.length !== widgetCount) return [];\n\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Always add drop zone before the first widget\n gapDropZones.push({\n insertIndex: row.startIndex,\n position: {\n left: widgetPositions[0].left - DROP_ZONE_SIZE,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n\n // Add drop zones between widgets\n widgetPositions.slice(0, -1).forEach((currentWidget, i) => {\n gapDropZones.push({\n insertIndex: row.startIndex + i + 1,\n position: {\n left: currentWidget.left + currentWidget.width,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n });\n\n // Always add drop zone after the last widget\n const lastWidget = widgetPositions[widgetCount - 1];\n gapDropZones.push({\n insertIndex: row.endIndex + 1,\n position: {\n left: lastWidget.left + lastWidget.width,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n\n return gapDropZones;\n};\n\nexport const addHorizontalDropZones = (\n row: WidgetRow,\n rowIndex: number,\n rowInfo: ReturnType<typeof getRowInfo>,\n widgetRows: WidgetRow[],\n filteredWidgets: WidgetWithUID[]\n): GapDropZonePosition[] => {\n if (!rowInfo) return [];\n\n // Don't show horizontal drop zones if there's only one row with one widget\n if (widgetRows.length === 1 && row.widgets.length === 1) return [];\n\n const { containerRect } = rowInfo;\n const containerWidth = containerRect.width;\n const horizontalDropZoneHeight = DROP_ZONE_SIZE;\n\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Add horizontal drop zone above the first row\n if (rowIndex === 0) {\n const firstRowRect = rowInfo.firstRect;\n const firstRowTop = firstRowRect.top - containerRect.top;\n\n gapDropZones.push({\n insertIndex: 0,\n position: {\n left: 0,\n top: firstRowTop - horizontalDropZoneHeight,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n\n // Add horizontal drop zone below the current row (between rows or after last row)\n if (rowIndex < widgetRows.length - 1) {\n // Between rows: position above the next row\n const nextRow = widgetRows[rowIndex + 1];\n const nextRowFirstWidgetElement = getWidgetElement(nextRow.widgets[0].uid);\n\n if (nextRowFirstWidgetElement) {\n const nextRowRect = nextRowFirstWidgetElement.getBoundingClientRect();\n const nextRowTop = nextRowRect.top - containerRect.top;\n\n gapDropZones.push({\n insertIndex: row.endIndex + 1,\n position: {\n left: 0,\n top: nextRowTop - horizontalDropZoneHeight,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n } else {\n // After the last row: position below the current row\n const lastRowRect = rowInfo.lastRect;\n const lastRowBottom = lastRowRect.bottom - containerRect.top;\n\n gapDropZones.push({\n insertIndex: filteredWidgets.length,\n position: {\n left: 0,\n top: lastRowBottom,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n\n return gapDropZones;\n};\n\nexport const GapDropZoneManager = ({\n filteredWidgets,\n columnWidths,\n draggedWidgetId,\n moveWidget,\n}: GapDropZoneManagerProps) => {\n const [positions, setPositions] = React.useState<GapDropZonePosition[]>([]);\n\n // Calculate widget rows\n const widgetRows = React.useMemo(() => {\n return calculateWidgetRows(filteredWidgets, columnWidths);\n }, [filteredWidgets, columnWidths]);\n\n // Main function to calculate GapDropZone positions\n const calculateGapDropZonePositions = React.useCallback(() => {\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Find which row the dragged widget is from\n const draggedWidgetRow = draggedWidgetId\n ? widgetRows.find((row) => row.widgets.some((widget) => widget.uid === draggedWidgetId))\n : null;\n\n widgetRows.forEach((row, rowIndex) => {\n const rowInfo = getRowInfo(row);\n if (!rowInfo) return;\n\n const widgetCount = row.widgets.length;\n\n // Determine if we should show vertical drop zones for this row\n const isDraggingFromThisRow = draggedWidgetRow && draggedWidgetRow === row;\n const isDraggingFromAnotherRow = draggedWidgetRow && draggedWidgetRow !== row;\n const canAcceptMoreWidgets = widgetCount < 3;\n\n const shouldShowVerticalDropZones =\n isDraggingFromThisRow || (isDraggingFromAnotherRow && canAcceptMoreWidgets);\n\n // Add vertical drop zones based on widget count\n if (shouldShowVerticalDropZones) {\n const verticalDropZones = addVerticalDropZones(row, rowInfo, rowIndex);\n gapDropZones.push(...verticalDropZones);\n }\n\n // Add horizontal drop zones\n const horizontalDropZones = addHorizontalDropZones(\n row,\n rowIndex,\n rowInfo,\n widgetRows,\n filteredWidgets\n );\n gapDropZones.push(...horizontalDropZones);\n });\n\n return gapDropZones;\n }, [widgetRows, draggedWidgetId, filteredWidgets]);\n\n React.useLayoutEffect(() => {\n const updatePositions = () => {\n const newPositions = calculateGapDropZonePositions();\n setPositions(newPositions);\n };\n\n updatePositions();\n\n // Update positions on container resize using ResizeObserver\n const containerElement = getWidgetGridContainer();\n if (!containerElement) return;\n\n const resizeObserver = new ResizeObserver(() => {\n updatePositions();\n });\n\n resizeObserver.observe(containerElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [calculateGapDropZonePositions]);\n\n return positions.map((gapDropZone) => (\n <GapDropZone\n key={`gap-drop-zone-${gapDropZone.type}-${gapDropZone.insertIndex}-${gapDropZone.targetRowIndex ?? 'no-row'}`}\n insertIndex={gapDropZone.insertIndex}\n position={gapDropZone.position}\n isVisible={gapDropZone.isVisible}\n type={gapDropZone.type}\n moveWidget={moveWidget}\n targetRowIndex={gapDropZone.targetRowIndex}\n />\n ));\n};\n\ninterface GapDropZoneProps {\n insertIndex: number;\n position: { left: number; top: number; height: number; width: number };\n isVisible: boolean;\n type: 'vertical' | 'horizontal';\n moveWidget: (id: string, to: number, targetRowIndex?: number, isHorizontalDrop?: boolean) => void;\n targetRowIndex?: number;\n}\n\nconst GapDropZoneContainer = styled(Box)<{\n $isOver: boolean;\n}>`\n background-color: ${({ $isOver, theme }) =>\n $isOver ? `${theme.colors.primary100}` : 'transparent'};\n border: ${({ $isOver, theme }) =>\n $isOver ? `2px solid ${theme.colors.primary500}` : '2px solid transparent'};\n opacity: ${({ $isOver }) => ($isOver ? 1 : 0.6)};\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n border-radius: ${({ theme }) => theme.borderRadius};\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: ${DROP_ZONE_SIZE}px;\n z-index: 1;\n`;\n\nconst GapDropZone = ({\n insertIndex,\n position,\n isVisible,\n type,\n moveWidget,\n targetRowIndex,\n}: GapDropZoneProps) => {\n const isHorizontalDrop = type === 'horizontal';\n\n const [{ isOver }, drop] = useDrop(\n () => ({\n accept: 'widget',\n drop: (item: { id: string }) => {\n moveWidget(item.id, insertIndex, targetRowIndex, isHorizontalDrop);\n },\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n }),\n }),\n [insertIndex, isHorizontalDrop, moveWidget, targetRowIndex]\n );\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <GapDropZoneContainer\n ref={drop}\n $isOver={isOver}\n style={{\n transform: `translate(${position.left}px, ${position.top}px)`,\n height: `${position.height}px`,\n width: `${position.width}px`,\n }}\n />\n );\n};\n"],"names":["DROP_ZONE_SIZE","getRowInfo","row","firstWidgetElement","getWidgetElement","widgets","uid","lastWidgetElement","length","containerElement","getWidgetGridContainer","firstRect","getBoundingClientRect","lastRect","containerRect","rowHeight","Math","max","height","rowTop","top","addVerticalDropZones","rowInfo","rowIndex","widgetCount","widgetPositions","map","widget","element","rect","left","width","filter","pos","gapDropZones","push","insertIndex","startIndex","position","isVisible","type","targetRowIndex","slice","forEach","currentWidget","i","lastWidget","endIndex","addHorizontalDropZones","widgetRows","filteredWidgets","containerWidth","horizontalDropZoneHeight","firstRowRect","firstRowTop","isHorizontalDrop","nextRow","nextRowFirstWidgetElement","nextRowRect","nextRowTop","lastRowRect","lastRowBottom","bottom","GapDropZoneManager","columnWidths","draggedWidgetId","moveWidget","positions","setPositions","React","useState","useMemo","calculateWidgetRows","calculateGapDropZonePositions","useCallback","draggedWidgetRow","find","some","isDraggingFromThisRow","isDraggingFromAnotherRow","canAcceptMoreWidgets","shouldShowVerticalDropZones","verticalDropZones","horizontalDropZones","useLayoutEffect","updatePositions","newPositions","resizeObserver","ResizeObserver","observe","disconnect","gapDropZone","_jsx","GapDropZone","GapDropZoneContainer","styled","Box","$isOver","theme","colors","primary100","primary500","borderRadius","isOver","drop","useDrop","accept","item","id","collect","monitor","ref","style","transform"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GapDropZone.js","sources":["../../../../../admin/src/components/GapDropZone.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n// TODO: use @dnd-kit/core instead\nimport { useDrop } from 'react-dnd';\nimport { styled } from 'styled-components';\n\nimport {\n calculateWidgetRows,\n type WidgetRow,\n getWidgetElement,\n getWidgetGridContainer,\n} from '../utils/widgetLayout';\n\nimport type { WidgetWithUID } from '../core/apis/Widgets';\n\nexport const DROP_ZONE_SIZE = 20;\n\nexport interface GapDropZonePosition {\n insertIndex: number;\n position: { left: number; top: number; height: number; width: number };\n isVisible: boolean;\n type: 'vertical' | 'horizontal';\n isHorizontalDrop?: boolean;\n targetRowIndex?: number;\n}\n\ninterface GapDropZoneManagerProps {\n filteredWidgets: WidgetWithUID[];\n columnWidths: Record<string, number>;\n draggedWidgetId?: string;\n moveWidget: (id: string, to: number, targetRowIndex?: number, isHorizontalDrop?: boolean) => void;\n}\n\nconst getRowInfo = (row: WidgetRow) => {\n const firstWidgetElement = getWidgetElement(row.widgets[0].uid);\n const lastWidgetElement = getWidgetElement(row.widgets[row.widgets.length - 1].uid);\n const containerElement = getWidgetGridContainer();\n\n if (!firstWidgetElement || !lastWidgetElement || !containerElement) {\n return null;\n }\n\n const firstRect = firstWidgetElement.getBoundingClientRect();\n const lastRect = lastWidgetElement.getBoundingClientRect();\n const containerRect = containerElement.getBoundingClientRect();\n\n return {\n firstWidgetElement,\n lastWidgetElement,\n containerElement,\n firstRect,\n lastRect,\n containerRect,\n rowHeight: Math.max(firstRect.height, lastRect.height),\n rowTop: firstRect.top - containerRect.top,\n };\n};\n\nexport const addVerticalDropZones = (\n row: WidgetRow,\n rowInfo: ReturnType<typeof getRowInfo>,\n rowIndex: number\n): GapDropZonePosition[] => {\n if (!rowInfo) return [];\n\n const { containerRect, rowTop, rowHeight } = rowInfo;\n const widgetCount = row.widgets.length;\n\n // Get widget positions relative to container\n const widgetPositions = row.widgets\n .map((widget) => {\n const element = getWidgetElement(widget.uid);\n if (!element) return null;\n\n const rect = element.getBoundingClientRect();\n return {\n left: rect.left - containerRect.left,\n width: rect.width,\n };\n })\n .filter((pos): pos is NonNullable<typeof pos> => pos !== null);\n\n if (widgetPositions.length !== widgetCount) return [];\n\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Always add drop zone before the first widget\n gapDropZones.push({\n insertIndex: row.startIndex,\n position: {\n left: widgetPositions[0].left - DROP_ZONE_SIZE,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n\n // Add drop zones between widgets\n widgetPositions.slice(0, -1).forEach((currentWidget, i) => {\n gapDropZones.push({\n insertIndex: row.startIndex + i + 1,\n position: {\n left: currentWidget.left + currentWidget.width,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n });\n\n // Always add drop zone after the last widget\n const lastWidget = widgetPositions[widgetCount - 1];\n gapDropZones.push({\n insertIndex: row.endIndex + 1,\n position: {\n left: lastWidget.left + lastWidget.width,\n top: rowTop,\n height: rowHeight,\n width: DROP_ZONE_SIZE,\n },\n isVisible: true,\n type: 'vertical',\n targetRowIndex: rowIndex,\n });\n\n return gapDropZones;\n};\n\nexport const addHorizontalDropZones = (\n row: WidgetRow,\n rowIndex: number,\n rowInfo: ReturnType<typeof getRowInfo>,\n widgetRows: WidgetRow[],\n filteredWidgets: WidgetWithUID[]\n): GapDropZonePosition[] => {\n if (!rowInfo) return [];\n\n // Don't show horizontal drop zones if there's only one row with one widget\n if (widgetRows.length === 1 && row.widgets.length === 1) return [];\n\n const { containerRect } = rowInfo;\n const containerWidth = containerRect.width;\n const horizontalDropZoneHeight = DROP_ZONE_SIZE;\n\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Add horizontal drop zone above the first row\n if (rowIndex === 0) {\n const firstRowRect = rowInfo.firstRect;\n const firstRowTop = firstRowRect.top - containerRect.top;\n\n gapDropZones.push({\n insertIndex: 0,\n position: {\n left: 0,\n top: firstRowTop - horizontalDropZoneHeight,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n\n // Add horizontal drop zone below the current row (between rows or after last row)\n if (rowIndex < widgetRows.length - 1) {\n // Between rows: position above the next row\n const nextRow = widgetRows[rowIndex + 1];\n const nextRowFirstWidgetElement = getWidgetElement(nextRow.widgets[0].uid);\n\n if (nextRowFirstWidgetElement) {\n const nextRowRect = nextRowFirstWidgetElement.getBoundingClientRect();\n const nextRowTop = nextRowRect.top - containerRect.top;\n\n gapDropZones.push({\n insertIndex: row.endIndex + 1,\n position: {\n left: 0,\n top: nextRowTop - horizontalDropZoneHeight,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n } else {\n // After the last row: position below the current row\n const lastRowRect = rowInfo.lastRect;\n const lastRowBottom = lastRowRect.bottom - containerRect.top;\n\n gapDropZones.push({\n insertIndex: filteredWidgets.length,\n position: {\n left: 0,\n top: lastRowBottom,\n height: horizontalDropZoneHeight,\n width: containerWidth,\n },\n isVisible: true,\n type: 'horizontal',\n isHorizontalDrop: true,\n });\n }\n\n return gapDropZones;\n};\n\nexport const GapDropZoneManager = ({\n filteredWidgets,\n columnWidths,\n draggedWidgetId,\n moveWidget,\n}: GapDropZoneManagerProps) => {\n const [positions, setPositions] = React.useState<GapDropZonePosition[]>([]);\n\n // Calculate widget rows\n const widgetRows = React.useMemo(() => {\n return calculateWidgetRows(filteredWidgets, columnWidths);\n }, [filteredWidgets, columnWidths]);\n\n // Main function to calculate GapDropZone positions\n const calculateGapDropZonePositions = React.useCallback(() => {\n const gapDropZones: GapDropZonePosition[] = [];\n\n // Find which row the dragged widget is from\n const draggedWidgetRow = draggedWidgetId\n ? widgetRows.find((row) => row.widgets.some((widget) => widget.uid === draggedWidgetId))\n : null;\n\n widgetRows.forEach((row, rowIndex) => {\n const rowInfo = getRowInfo(row);\n if (!rowInfo) return;\n\n const widgetCount = row.widgets.length;\n\n // Determine if we should show vertical drop zones for this row\n const isDraggingFromThisRow = draggedWidgetRow && draggedWidgetRow === row;\n const isDraggingFromAnotherRow = draggedWidgetRow && draggedWidgetRow !== row;\n const canAcceptMoreWidgets = widgetCount < 3;\n\n const shouldShowVerticalDropZones =\n isDraggingFromThisRow || (isDraggingFromAnotherRow && canAcceptMoreWidgets);\n\n // Add vertical drop zones based on widget count\n if (shouldShowVerticalDropZones) {\n const verticalDropZones = addVerticalDropZones(row, rowInfo, rowIndex);\n gapDropZones.push(...verticalDropZones);\n }\n\n // Add horizontal drop zones\n const horizontalDropZones = addHorizontalDropZones(\n row,\n rowIndex,\n rowInfo,\n widgetRows,\n filteredWidgets\n );\n gapDropZones.push(...horizontalDropZones);\n });\n\n return gapDropZones;\n }, [widgetRows, draggedWidgetId, filteredWidgets]);\n\n React.useLayoutEffect(() => {\n const updatePositions = () => {\n const newPositions = calculateGapDropZonePositions();\n setPositions(newPositions);\n };\n\n updatePositions();\n\n // Update positions on container resize using ResizeObserver\n const containerElement = getWidgetGridContainer();\n if (!containerElement) return;\n\n const resizeObserver = new ResizeObserver(() => {\n updatePositions();\n });\n\n resizeObserver.observe(containerElement);\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [calculateGapDropZonePositions]);\n\n return positions.map((gapDropZone) => (\n <GapDropZone\n key={`gap-drop-zone-${gapDropZone.type}-${gapDropZone.insertIndex}-${gapDropZone.targetRowIndex ?? 'no-row'}`}\n insertIndex={gapDropZone.insertIndex}\n position={gapDropZone.position}\n isVisible={gapDropZone.isVisible}\n type={gapDropZone.type}\n moveWidget={moveWidget}\n targetRowIndex={gapDropZone.targetRowIndex}\n />\n ));\n};\n\ninterface GapDropZoneProps {\n insertIndex: number;\n position: { left: number; top: number; height: number; width: number };\n isVisible: boolean;\n type: 'vertical' | 'horizontal';\n moveWidget: (id: string, to: number, targetRowIndex?: number, isHorizontalDrop?: boolean) => void;\n targetRowIndex?: number;\n}\n\nconst GapDropZoneContainer = styled(Box)<{\n $isOver: boolean;\n}>`\n background-color: ${({ $isOver, theme }) =>\n $isOver ? `${theme.colors.primary100}` : 'transparent'};\n border: ${({ $isOver, theme }) =>\n $isOver ? `2px solid ${theme.colors.primary500}` : '2px solid transparent'};\n opacity: ${({ $isOver }) => ($isOver ? 1 : 0.6)};\n transition: all 0.2s ease-in-out;\n cursor: pointer;\n border-radius: ${({ theme }) => theme.borderRadius};\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: ${DROP_ZONE_SIZE}px;\n z-index: 1;\n`;\n\nconst GapDropZone = ({\n insertIndex,\n position,\n isVisible,\n type,\n moveWidget,\n targetRowIndex,\n}: GapDropZoneProps) => {\n const isHorizontalDrop = type === 'horizontal';\n\n const [{ isOver }, drop] = useDrop(\n () => ({\n accept: 'widget',\n drop: (item: { id: string }) => {\n moveWidget(item.id, insertIndex, targetRowIndex, isHorizontalDrop);\n },\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n }),\n }),\n [insertIndex, isHorizontalDrop, moveWidget, targetRowIndex]\n );\n\n if (!isVisible) {\n return null;\n }\n\n return (\n <GapDropZoneContainer\n ref={drop}\n $isOver={isOver}\n style={{\n transform: `translate(${position.left}px, ${position.top}px)`,\n height: `${position.height}px`,\n width: `${position.width}px`,\n }}\n />\n );\n};\n"],"names":["DROP_ZONE_SIZE","getRowInfo","row","firstWidgetElement","getWidgetElement","widgets","uid","lastWidgetElement","length","containerElement","getWidgetGridContainer","firstRect","getBoundingClientRect","lastRect","containerRect","rowHeight","Math","max","height","rowTop","top","addVerticalDropZones","rowInfo","rowIndex","widgetCount","widgetPositions","map","widget","element","rect","left","width","filter","pos","gapDropZones","push","insertIndex","startIndex","position","isVisible","type","targetRowIndex","slice","forEach","currentWidget","i","lastWidget","endIndex","addHorizontalDropZones","widgetRows","filteredWidgets","containerWidth","horizontalDropZoneHeight","firstRowRect","firstRowTop","isHorizontalDrop","nextRow","nextRowFirstWidgetElement","nextRowRect","nextRowTop","lastRowRect","lastRowBottom","bottom","GapDropZoneManager","columnWidths","draggedWidgetId","moveWidget","positions","setPositions","React","useState","useMemo","calculateWidgetRows","calculateGapDropZonePositions","useCallback","draggedWidgetRow","find","some","isDraggingFromThisRow","isDraggingFromAnotherRow","canAcceptMoreWidgets","shouldShowVerticalDropZones","verticalDropZones","horizontalDropZones","useLayoutEffect","updatePositions","newPositions","resizeObserver","ResizeObserver","observe","disconnect","gapDropZone","_jsx","GapDropZone","GapDropZoneContainer","styled","Box","$isOver","theme","colors","primary100","primary500","borderRadius","isOver","drop","useDrop","accept","item","id","collect","monitor","ref","style","transform"],"mappings":"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"}
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var designSystem = require('@strapi/design-system');
|
|
5
5
|
var icons = require('@strapi/icons');
|
|
6
|
-
var
|
|
6
|
+
var styledComponents = require('styled-components');
|
|
7
7
|
|
|
8
|
-
const GradientBadge =
|
|
8
|
+
const GradientBadge = styledComponents.styled(designSystem.Badge)`
|
|
9
9
|
width: 100%;
|
|
10
10
|
background: linear-gradient(
|
|
11
11
|
90deg,
|
|
@@ -21,7 +21,7 @@ const GradientBadge = styled.styled(designSystem.Badge)`
|
|
|
21
21
|
padding: 0.4rem 1rem;
|
|
22
22
|
}
|
|
23
23
|
`;
|
|
24
|
-
const CustomText =
|
|
24
|
+
const CustomText = styledComponents.styled(designSystem.Typography)`
|
|
25
25
|
font-size: 1.2rem;
|
|
26
26
|
|
|
27
27
|
${({ theme })=>theme.breakpoints.small} {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GradientBadge.js","sources":["../../../../../admin/src/components/GradientBadge.tsx"],"sourcesContent":["import { Badge, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\nconst GradientBadge = styled(Badge)`\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${({ theme }) => theme.colors.primary600} 0%,\n ${({ theme }) => theme.colors.alternative600} 121.48%\n );\n padding: 1.1rem 1rem;\n\n ${({ theme }) => theme.breakpoints.small} {\n padding: 1.2rem 1rem;\n }\n ${({ theme }) => theme.breakpoints.medium} {\n padding: 0.4rem 1rem;\n }\n`;\n\nconst CustomText = styled(Typography)`\n font-size: 1.2rem;\n\n ${({ theme }) => theme.breakpoints.small} {\n font-size: 1.4rem;\n line-height: 1.6rem;\n }\n`;\n\nconst GradientBadgeWithIcon = ({ label }: { label: string }) => {\n return (\n <GradientBadge>\n <Flex gap={1} alignItems=\"center\">\n <Lightning width={16} height={16} fill=\"neutral0\" />\n <CustomText textColor=\"neutral0\">{label}</CustomText>\n </Flex>\n </GradientBadge>\n );\n};\n\nexport { GradientBadgeWithIcon as GradientBadge };\n"],"names":["GradientBadge","styled","Badge","theme","colors","primary600","alternative600","breakpoints","small","medium","CustomText","Typography","GradientBadgeWithIcon","label","_jsx","_jsxs","Flex","gap","alignItems","Lightning","width","height","fill","textColor"],"mappings":";;;;;;;AAIA,MAAMA,aAAAA,GAAgBC,
|
|
1
|
+
{"version":3,"file":"GradientBadge.js","sources":["../../../../../admin/src/components/GradientBadge.tsx"],"sourcesContent":["import { Badge, Flex, Typography } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { styled } from 'styled-components';\n\nconst GradientBadge = styled(Badge)`\n width: 100%;\n background: linear-gradient(\n 90deg,\n ${({ theme }) => theme.colors.primary600} 0%,\n ${({ theme }) => theme.colors.alternative600} 121.48%\n );\n padding: 1.1rem 1rem;\n\n ${({ theme }) => theme.breakpoints.small} {\n padding: 1.2rem 1rem;\n }\n ${({ theme }) => theme.breakpoints.medium} {\n padding: 0.4rem 1rem;\n }\n`;\n\nconst CustomText = styled(Typography)`\n font-size: 1.2rem;\n\n ${({ theme }) => theme.breakpoints.small} {\n font-size: 1.4rem;\n line-height: 1.6rem;\n }\n`;\n\nconst GradientBadgeWithIcon = ({ label }: { label: string }) => {\n return (\n <GradientBadge>\n <Flex gap={1} alignItems=\"center\">\n <Lightning width={16} height={16} fill=\"neutral0\" />\n <CustomText textColor=\"neutral0\">{label}</CustomText>\n </Flex>\n </GradientBadge>\n );\n};\n\nexport { GradientBadgeWithIcon as GradientBadge };\n"],"names":["GradientBadge","styled","Badge","theme","colors","primary600","alternative600","breakpoints","small","medium","CustomText","Typography","GradientBadgeWithIcon","label","_jsx","_jsxs","Flex","gap","alignItems","Lightning","width","height","fill","textColor"],"mappings":";;;;;;;AAIA,MAAMA,aAAAA,GAAgBC,uBAAAA,CAAOC,kBAAAA,CAAM;;;;IAI/B,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC;IACzC,EAAE,CAAC,EAAEF,KAAK,EAAE,GAAKA,KAAAA,CAAMC,MAAM,CAACE,cAAc,CAAC;;;;EAI/C,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAAA,CAAMI,WAAW,CAACC,KAAK,CAAC;;;EAGzC,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAAA,CAAMI,WAAW,CAACE,MAAM,CAAC;;;AAG5C,CAAC;AAED,MAAMC,UAAAA,GAAaT,uBAAAA,CAAOU,uBAAAA,CAAW;;;EAGnC,EAAE,CAAC,EAAER,KAAK,EAAE,GAAKA,KAAAA,CAAMI,WAAW,CAACC,KAAK,CAAC;;;;AAI3C,CAAC;AAED,MAAMI,qBAAAA,GAAwB,CAAC,EAAEC,KAAK,EAAqB,GAAA;AACzD,IAAA,qBACEC,cAAA,CAACd,aAAAA,EAAAA;AACC,QAAA,QAAA,gBAAAe,eAAA,CAACC,iBAAAA,EAAAA;YAAKC,GAAAA,EAAK,CAAA;YAAGC,UAAAA,EAAW,QAAA;;8BACvBJ,cAAA,CAACK,eAAAA,EAAAA;oBAAUC,KAAAA,EAAO,EAAA;oBAAIC,MAAAA,EAAQ,EAAA;oBAAIC,IAAAA,EAAK;;8BACvCR,cAAA,CAACJ,UAAAA,EAAAA;oBAAWa,SAAAA,EAAU,UAAA;AAAYV,oBAAAA,QAAAA,EAAAA;;;;;AAI1C;;;;"}
|
|
@@ -6,7 +6,7 @@ var designSystem = require('@strapi/design-system');
|
|
|
6
6
|
var icons = require('@strapi/icons');
|
|
7
7
|
var reactIntl = require('react-intl');
|
|
8
8
|
var reactRouterDom = require('react-router-dom');
|
|
9
|
-
var
|
|
9
|
+
var styledComponents = require('styled-components');
|
|
10
10
|
var Tracking = require('../../features/Tracking.js');
|
|
11
11
|
var admin = require('../../services/admin.js');
|
|
12
12
|
var ConfirmDialog = require('../ConfirmDialog.js');
|
|
@@ -15,35 +15,35 @@ var constants = require('./utils/constants.js');
|
|
|
15
15
|
|
|
16
16
|
/* -------------------------------------------------------------------------------------------------
|
|
17
17
|
* Styled
|
|
18
|
-
* -----------------------------------------------------------------------------------------------*/ const StyledProgressBar =
|
|
18
|
+
* -----------------------------------------------------------------------------------------------*/ const StyledProgressBar = styledComponents.styled(designSystem.ProgressBar)`
|
|
19
19
|
width: 100%;
|
|
20
20
|
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
21
21
|
> div {
|
|
22
22
|
background-color: ${({ theme })=>theme.colors.success500};
|
|
23
23
|
}
|
|
24
24
|
`;
|
|
25
|
-
const Container =
|
|
25
|
+
const Container = styledComponents.styled(designSystem.Flex)`
|
|
26
26
|
width: 100%;
|
|
27
27
|
border-radius: ${({ theme })=>theme.borderRadius};
|
|
28
28
|
background-color: ${({ theme })=>theme.colors.neutral0};
|
|
29
29
|
box-shadow: ${({ theme })=>theme.shadows.tableShadow};
|
|
30
30
|
align-items: stretch;
|
|
31
31
|
`;
|
|
32
|
-
const ContentSection =
|
|
32
|
+
const ContentSection = styledComponents.styled(designSystem.Flex)`
|
|
33
33
|
flex: 1;
|
|
34
34
|
padding: ${({ theme })=>theme.spaces[8]};
|
|
35
35
|
`;
|
|
36
|
-
const VerticalSeparator =
|
|
36
|
+
const VerticalSeparator = styledComponents.styled.div`
|
|
37
37
|
width: 1px;
|
|
38
38
|
background-color: ${({ theme })=>theme.colors.neutral150};
|
|
39
39
|
`;
|
|
40
|
-
const TourTaskContainer =
|
|
40
|
+
const TourTaskContainer = styledComponents.styled(designSystem.Flex)`
|
|
41
41
|
&:not(:last-child) {
|
|
42
42
|
border-bottom: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
|
|
43
43
|
}
|
|
44
44
|
padding: ${({ theme })=>theme.spaces[4]};
|
|
45
45
|
`;
|
|
46
|
-
const TodoCircle =
|
|
46
|
+
const TodoCircle = styledComponents.styled(designSystem.Box)`
|
|
47
47
|
border: 1px solid ${({ theme })=>theme.colors.neutral300};
|
|
48
48
|
border-radius: 50%;
|
|
49
49
|
height: 13px;
|
|
@@ -116,7 +116,7 @@ const TASK_CONTENT = [
|
|
|
116
116
|
/* -------------------------------------------------------------------------------------------------
|
|
117
117
|
* GuidedTourOverview
|
|
118
118
|
* -----------------------------------------------------------------------------------------------*/ const WaveIcon = ()=>{
|
|
119
|
-
const theme =
|
|
119
|
+
const theme = styledComponents.useTheme();
|
|
120
120
|
return /*#__PURE__*/ jsxRuntime.jsx("svg", {
|
|
121
121
|
width: "26",
|
|
122
122
|
height: "27",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overview.js","sources":["../../../../../../admin/src/components/GuidedTour/Overview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Dialog, Flex, Link, ProgressBar, Typography } from '@strapi/design-system';\nimport { CheckCircle, ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled, useTheme } from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\nimport { ConfirmDialog } from '../ConfirmDialog';\n\nimport { type ValidTourName, useGuidedTour, getCompletedTours } from './Context';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Styled\n * -----------------------------------------------------------------------------------------------*/\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral150};\n > div {\n background-color: ${({ theme }) => theme.colors.success500};\n }\n`;\n\nconst Container = styled(Flex)`\n width: 100%;\n border-radius: ${({ theme }) => theme.borderRadius};\n background-color: ${({ theme }) => theme.colors.neutral0};\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n align-items: stretch;\n`;\n\nconst ContentSection = styled(Flex)`\n flex: 1;\n padding: ${({ theme }) => theme.spaces[8]};\n`;\n\nconst VerticalSeparator = styled.div`\n width: 1px;\n background-color: ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst TourTaskContainer = styled(Flex)`\n &:not(:last-child) {\n border-bottom: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n }\n padding: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst TodoCircle = styled(Box)`\n border: 1px solid ${({ theme }) => theme.colors.neutral300};\n border-radius: 50%;\n height: 13px;\n width: 13px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Constants\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_LABEL = {\n id: 'tours.overview.tour.link',\n defaultMessage: 'Start',\n};\nconst DONE_LABEL = {\n id: 'tours.overview.tour.done',\n defaultMessage: 'Done',\n};\n\nconst TASK_CONTENT = [\n {\n tourName: 'contentTypeBuilder',\n link: {\n label: LINK_LABEL,\n to: '/plugins/content-type-builder',\n },\n title: {\n id: 'tours.overview.contentTypeBuilder.label',\n defaultMessage: 'Create your schema',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'contentManager',\n link: {\n label: LINK_LABEL,\n to: '/content-manager',\n },\n title: {\n id: 'tours.overview.contentManager.label',\n defaultMessage: 'Create and publish content',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'apiTokens',\n link: {\n label: LINK_LABEL,\n to: '/settings/api-tokens',\n },\n title: {\n id: 'tours.overview.apiTokens.label',\n defaultMessage: 'Copy an API token',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'strapiCloud',\n link: {\n label: {\n id: 'tours.overview.strapiCloud.link',\n defaultMessage: 'Read documentation',\n },\n to: 'https://docs.strapi.io/cloud/intro',\n },\n title: {\n id: 'tours.overview.strapiCloud.label',\n defaultMessage: 'Deploy your application to Strapi Cloud',\n },\n done: DONE_LABEL,\n isExternal: true,\n },\n];\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourOverview\n * -----------------------------------------------------------------------------------------------*/\n\nconst WaveIcon = () => {\n const theme = useTheme();\n return (\n <svg width=\"26\" height=\"27\" viewBox=\"0 0 26 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M24.4138 9.30762C25.1565 10.5578 25.6441 11.9429 25.8481 13.3827C26.0522 14.8225 25.9687 16.2885 25.6026 17.6958C25.2365 19.1032 24.5949 20.4239 23.7151 21.5818C22.8352 22.7396 21.7345 23.7114 20.4766 24.4411C19.2188 25.1708 17.8287 25.6439 16.3868 25.8329C14.945 26.022 13.48 25.9232 12.0765 25.5424C10.673 25.1616 9.35903 24.5063 8.21045 23.6144C7.06188 22.7226 6.10154 21.6118 5.385 20.3464L0.268755 11.4851C0.0253867 11.0275 -0.0308559 10.4934 0.111878 9.99514C0.254612 9.49692 0.585176 9.07356 1.03392 8.81426C1.48266 8.55497 2.01453 8.47999 2.51746 8.60514C3.02039 8.73028 3.45511 9.04576 3.73001 9.48512L6.05 13.5001C6.11567 13.6139 6.20309 13.7136 6.30729 13.7936C6.41148 13.8735 6.53041 13.9322 6.65728 13.9662C6.78415 14.0002 6.91647 14.0089 7.04669 13.9918C7.17692 13.9746 7.3025 13.932 7.41625 13.8664C7.53001 13.8007 7.62972 13.7133 7.70969 13.6091C7.78966 13.5049 7.84833 13.386 7.88234 13.2591C7.91635 13.1322 7.92504 12.9999 7.90791 12.8697C7.89078 12.7395 7.84817 12.6139 7.78251 12.5001L2.87501 4.00012C2.63164 3.54255 2.57539 3.00837 2.71813 2.51014C2.86086 2.01192 3.19143 1.58856 3.64017 1.32926C4.08891 1.06997 4.62078 0.994994 5.12371 1.12014C5.62664 1.24528 6.06136 1.56077 6.33626 2.00012L11.25 10.5001C11.3137 10.6175 11.4003 10.7209 11.5046 10.8042C11.609 10.8876 11.7289 10.9492 11.8575 10.9854C11.986 11.0216 12.1205 11.0318 12.253 11.0152C12.3855 10.9986 12.5133 10.9556 12.629 10.8888C12.7446 10.8221 12.8457 10.7328 12.9263 10.6263C13.0068 10.5198 13.0653 10.3982 13.0981 10.2688C13.1309 10.1394 13.1375 10.0047 13.1174 9.87264C13.0974 9.74062 13.0511 9.61395 12.9813 9.50012L9.23125 3.00012C8.9738 2.54125 8.90753 1.99941 9.04682 1.49203C9.18612 0.984641 9.51974 0.552582 9.97539 0.289483C10.431 0.0263834 10.972 -0.0465606 11.4811 0.0864587C11.9902 0.219478 12.4263 0.547745 12.695 1.00012L17.75 9.76512C16.6322 10.8916 16.0035 12.4132 16 14.0001C15.9963 15.2989 16.4177 16.5633 17.2 17.6001C17.278 17.7074 17.3766 17.7981 17.49 17.867C17.6034 17.9358 17.7293 17.9814 17.8605 18.001C17.9917 18.0207 18.1255 18.0141 18.2541 17.9816C18.3827 17.9491 18.5035 17.8913 18.6096 17.8116C18.7156 17.7319 18.8048 17.6319 18.8718 17.5175C18.9388 17.403 18.9824 17.2763 19 17.1448C19.0176 17.0134 19.0089 16.8797 18.9743 16.7516C18.9398 16.6236 18.8801 16.5036 18.7988 16.3989C18.4824 15.9765 18.2528 15.4958 18.1231 14.9843C17.9934 14.4729 17.9661 13.9408 18.0429 13.4188C18.1197 12.8967 18.2991 12.3951 18.5706 11.9426C18.8421 11.4902 19.2005 11.096 19.625 10.7826C19.8224 10.6365 19.9592 10.4229 20.0092 10.1825C20.0592 9.94202 20.019 9.69157 19.8963 9.47887L18.4638 7.00012C18.2063 6.54125 18.14 5.99941 18.2793 5.49203C18.4186 4.98464 18.7522 4.55258 19.2079 4.28948C19.6635 4.02638 20.2045 3.95344 20.7136 4.08646C21.2227 4.21948 21.6588 4.54774 21.9275 5.00012L24.4138 9.30762ZM20.7425 2.18262C21.4432 2.36725 22.1001 2.68931 22.6752 3.13008C23.2503 3.57084 23.7321 4.12153 24.0925 4.75012L24.1338 4.82137C24.2664 5.05111 24.4848 5.21877 24.741 5.28745C24.8679 5.32146 25.0002 5.33015 25.1304 5.31302C25.2607 5.29589 25.3862 5.25328 25.5 5.18762C25.6138 5.12196 25.7135 5.03453 25.7934 4.93034C25.8734 4.82614 25.9321 4.70721 25.9661 4.58035C26.0001 4.45348 26.0088 4.32115 25.9917 4.19093C25.9745 4.0607 25.9319 3.93513 25.8663 3.82137L25.825 3.75012C25.3335 2.89321 24.6767 2.14252 23.8926 1.54167C23.1085 0.940821 22.2128 0.501801 21.2575 0.250119C21.002 0.184041 20.7307 0.221665 20.5028 0.354786C20.2749 0.487908 20.1088 0.705731 20.0409 0.960766C19.9729 1.2158 20.0085 1.48736 20.14 1.71625C20.2714 1.94513 20.488 2.11277 20.7425 2.18262ZM6.9475 25.2151C5.65171 24.1925 4.56342 22.9315 3.74126 21.5001C3.67559 21.3864 3.58817 21.2866 3.48397 21.2067C3.37978 21.1267 3.26085 21.068 3.13398 21.034C3.00711 21 2.87479 20.9913 2.74456 21.0085C2.61434 21.0256 2.48876 21.0682 2.37501 21.1339C2.26125 21.1995 2.16154 21.287 2.08157 21.3911C2.00159 21.4953 1.94293 21.6143 1.90892 21.7411C1.87491 21.868 1.86622 22.0003 1.88335 22.1306C1.90048 22.2608 1.94309 22.3864 2.00875 22.5001C2.95782 24.1511 4.21368 25.6056 5.70875 26.7851C5.91728 26.9455 6.18063 27.0173 6.44172 26.9849C6.70282 26.9525 6.94062 26.8185 7.10359 26.612C7.26655 26.4054 7.34156 26.143 7.31234 25.8815C7.28313 25.62 7.15204 25.3806 6.9475 25.2151Z\"\n fill={theme.colors.primary600}\n />\n </svg>\n );\n};\n\nexport const GuidedTourHomepageOverview = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const tourState = useGuidedTour('Overview', (s) => s.state.tours);\n const dispatch = useGuidedTour('Overview', (s) => s.dispatch);\n const enabled = useGuidedTour('Overview', (s) => s.state.enabled);\n const hidden = useGuidedTour('Overview', (s) => s.state.hidden);\n const completedActions = useGuidedTour('Overview', (s) => s.state.completedActions);\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const tourNames = Object.keys(tourState) as ValidTourName[];\n const completedTours = getCompletedTours(tourState);\n const completionPercentage =\n tourNames.length > 0 ? Math.round((completedTours.length / tourNames.length) * 100) : 0;\n\n const handleConfirmDialog = () => {\n trackUsage('didSkipGuidedTour', { name: 'all' });\n dispatch({ type: 'skip_all_tours' });\n };\n\n const handleStartTour = (tourName: ValidTourName) => {\n trackUsage('didStartGuidedTour', { name: tourName, fromHomepage: true });\n\n if (tourName === 'strapiCloud') {\n trackUsage('didCompleteGuidedTour', { name: tourName });\n dispatch({ type: 'next_step', payload: tourName });\n }\n };\n\n if (\n !guidedTourMeta?.data?.isFirstSuperAdminUser ||\n !enabled ||\n hidden ||\n process.env.NODE_ENV !== 'development'\n ) {\n return null;\n }\n\n return (\n <Container tag=\"section\" gap={0}>\n {/* Greeting */}\n <ContentSection direction=\"column\" gap={2} alignItems=\"start\">\n <WaveIcon />\n <Flex direction=\"column\" alignItems=\"start\" gap={1} paddingTop={4}>\n <Typography tag=\"h2\" fontSize=\"20px\" fontWeight=\"bold\">\n {formatMessage({\n id: 'tours.overview.title',\n defaultMessage: 'Discover your application!',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'tours.overview.subtitle',\n defaultMessage: 'Follow the guided tour to get the most out of Strapi.',\n })}\n </Typography>\n </Flex>\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n width=\"100%\"\n paddingTop={5}\n paddingBottom={8}\n gap={2}\n >\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'tours.overview.completed',\n defaultMessage: '{completed}% completed',\n },\n { completed: completionPercentage }\n )}\n </Typography>\n <StyledProgressBar value={completionPercentage} />\n </Flex>\n <Dialog.Root>\n <Dialog.Trigger>\n <Button variant=\"tertiary\">\n {formatMessage({\n id: 'tours.overview.close',\n defaultMessage: 'Close guided tour',\n })}\n </Button>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirmDialog}>\n {formatMessage({\n id: 'tours.overview.close.description',\n defaultMessage: 'Are you sure you want to close the guided tour?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </ContentSection>\n <VerticalSeparator />\n {/* Task List */}\n <ContentSection direction=\"column\" alignItems=\"start\">\n <Typography variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: 'tours.overview.tasks',\n defaultMessage: 'Your tasks',\n })}\n </Typography>\n <Box tag=\"ul\" width=\"100%\" borderColor=\"neutral150\" marginTop={4} hasRadius>\n {TASK_CONTENT.map((task) => {\n const tourName = task.tourName as ValidTourName;\n const tour = tourState[tourName];\n\n const isLinkDisabled =\n tourName !== 'contentTypeBuilder' &&\n !completedActions.includes(\n GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema\n );\n\n return (\n <TourTaskContainer\n tag=\"li\"\n aria-label={formatMessage(task.title)}\n key={tourName}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n {tour.isCompleted ? (\n <>\n <Flex gap={2}>\n <CheckCircle fill=\"success500\" />\n <Typography style={{ textDecoration: 'line-through' }} textColor=\"neutral500\">\n {formatMessage(task.title)}\n </Typography>\n </Flex>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(task.done)}\n </Typography>\n </>\n ) : (\n <>\n <Flex gap={2} alignItems=\"center\">\n <Flex height=\"16px\" width=\"16px\" justifyContent=\"center\">\n <TodoCircle />\n </Flex>\n <Typography>{formatMessage(task.title)}</Typography>\n </Flex>\n {task.isExternal ? (\n <Link\n isExternal\n disabled={isLinkDisabled}\n href={task.link.to}\n onClick={() => handleStartTour(task.tourName as ValidTourName)}\n >\n {formatMessage(task.link.label)}\n </Link>\n ) : (\n <Link\n endIcon={<ChevronRight />}\n disabled={isLinkDisabled}\n to={task.link.to}\n tag={NavLink}\n onClick={() =>\n trackUsage('didStartGuidedTour', { name: tourName, fromHomepage: true })\n }\n >\n {formatMessage(task.link.label)}\n </Link>\n )}\n </>\n )}\n </TourTaskContainer>\n );\n })}\n </Box>\n </ContentSection>\n </Container>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral150","success500","Container","Flex","borderRadius","neutral0","shadows","tableShadow","ContentSection","spaces","VerticalSeparator","div","TourTaskContainer","TodoCircle","Box","neutral300","LINK_LABEL","id","defaultMessage","DONE_LABEL","TASK_CONTENT","tourName","link","label","to","title","done","isExternal","WaveIcon","useTheme","_jsx","svg","width","height","viewBox","fill","xmlns","path","d","primary600","GuidedTourHomepageOverview","formatMessage","useIntl","trackUsage","useTracking","tourState","useGuidedTour","s","state","tours","dispatch","enabled","hidden","completedActions","data","guidedTourMeta","useGetGuidedTourMetaQuery","tourNames","Object","keys","completedTours","getCompletedTours","completionPercentage","length","Math","round","handleConfirmDialog","name","type","handleStartTour","fromHomepage","payload","isFirstSuperAdminUser","process","env","NODE_ENV","_jsxs","tag","gap","direction","alignItems","paddingTop","Typography","fontSize","fontWeight","paddingBottom","variant","completed","value","Dialog","Root","Trigger","Button","ConfirmDialog","onConfirm","borderColor","marginTop","hasRadius","map","task","tour","isLinkDisabled","includes","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","aria-label","justifyContent","isCompleted","_Fragment","CheckCircle","style","textDecoration","textColor","Link","disabled","href","onClick","endIcon","ChevronRight","NavLink"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Overview.js","sources":["../../../../../../admin/src/components/GuidedTour/Overview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Button, Dialog, Flex, Link, ProgressBar, Typography } from '@strapi/design-system';\nimport { CheckCircle, ChevronRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\nimport { styled, useTheme } from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\nimport { ConfirmDialog } from '../ConfirmDialog';\n\nimport { type ValidTourName, useGuidedTour, getCompletedTours } from './Context';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Styled\n * -----------------------------------------------------------------------------------------------*/\n\nconst StyledProgressBar = styled(ProgressBar)`\n width: 100%;\n background-color: ${({ theme }) => theme.colors.neutral150};\n > div {\n background-color: ${({ theme }) => theme.colors.success500};\n }\n`;\n\nconst Container = styled(Flex)`\n width: 100%;\n border-radius: ${({ theme }) => theme.borderRadius};\n background-color: ${({ theme }) => theme.colors.neutral0};\n box-shadow: ${({ theme }) => theme.shadows.tableShadow};\n align-items: stretch;\n`;\n\nconst ContentSection = styled(Flex)`\n flex: 1;\n padding: ${({ theme }) => theme.spaces[8]};\n`;\n\nconst VerticalSeparator = styled.div`\n width: 1px;\n background-color: ${({ theme }) => theme.colors.neutral150};\n`;\n\nconst TourTaskContainer = styled(Flex)`\n &:not(:last-child) {\n border-bottom: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n }\n padding: ${({ theme }) => theme.spaces[4]};\n`;\n\nconst TodoCircle = styled(Box)`\n border: 1px solid ${({ theme }) => theme.colors.neutral300};\n border-radius: 50%;\n height: 13px;\n width: 13px;\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * Constants\n * -----------------------------------------------------------------------------------------------*/\n\nconst LINK_LABEL = {\n id: 'tours.overview.tour.link',\n defaultMessage: 'Start',\n};\nconst DONE_LABEL = {\n id: 'tours.overview.tour.done',\n defaultMessage: 'Done',\n};\n\nconst TASK_CONTENT = [\n {\n tourName: 'contentTypeBuilder',\n link: {\n label: LINK_LABEL,\n to: '/plugins/content-type-builder',\n },\n title: {\n id: 'tours.overview.contentTypeBuilder.label',\n defaultMessage: 'Create your schema',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'contentManager',\n link: {\n label: LINK_LABEL,\n to: '/content-manager',\n },\n title: {\n id: 'tours.overview.contentManager.label',\n defaultMessage: 'Create and publish content',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'apiTokens',\n link: {\n label: LINK_LABEL,\n to: '/settings/api-tokens',\n },\n title: {\n id: 'tours.overview.apiTokens.label',\n defaultMessage: 'Copy an API token',\n },\n done: DONE_LABEL,\n },\n {\n tourName: 'strapiCloud',\n link: {\n label: {\n id: 'tours.overview.strapiCloud.link',\n defaultMessage: 'Read documentation',\n },\n to: 'https://docs.strapi.io/cloud/intro',\n },\n title: {\n id: 'tours.overview.strapiCloud.label',\n defaultMessage: 'Deploy your application to Strapi Cloud',\n },\n done: DONE_LABEL,\n isExternal: true,\n },\n];\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourOverview\n * -----------------------------------------------------------------------------------------------*/\n\nconst WaveIcon = () => {\n const theme = useTheme();\n return (\n <svg width=\"26\" height=\"27\" viewBox=\"0 0 26 27\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M24.4138 9.30762C25.1565 10.5578 25.6441 11.9429 25.8481 13.3827C26.0522 14.8225 25.9687 16.2885 25.6026 17.6958C25.2365 19.1032 24.5949 20.4239 23.7151 21.5818C22.8352 22.7396 21.7345 23.7114 20.4766 24.4411C19.2188 25.1708 17.8287 25.6439 16.3868 25.8329C14.945 26.022 13.48 25.9232 12.0765 25.5424C10.673 25.1616 9.35903 24.5063 8.21045 23.6144C7.06188 22.7226 6.10154 21.6118 5.385 20.3464L0.268755 11.4851C0.0253867 11.0275 -0.0308559 10.4934 0.111878 9.99514C0.254612 9.49692 0.585176 9.07356 1.03392 8.81426C1.48266 8.55497 2.01453 8.47999 2.51746 8.60514C3.02039 8.73028 3.45511 9.04576 3.73001 9.48512L6.05 13.5001C6.11567 13.6139 6.20309 13.7136 6.30729 13.7936C6.41148 13.8735 6.53041 13.9322 6.65728 13.9662C6.78415 14.0002 6.91647 14.0089 7.04669 13.9918C7.17692 13.9746 7.3025 13.932 7.41625 13.8664C7.53001 13.8007 7.62972 13.7133 7.70969 13.6091C7.78966 13.5049 7.84833 13.386 7.88234 13.2591C7.91635 13.1322 7.92504 12.9999 7.90791 12.8697C7.89078 12.7395 7.84817 12.6139 7.78251 12.5001L2.87501 4.00012C2.63164 3.54255 2.57539 3.00837 2.71813 2.51014C2.86086 2.01192 3.19143 1.58856 3.64017 1.32926C4.08891 1.06997 4.62078 0.994994 5.12371 1.12014C5.62664 1.24528 6.06136 1.56077 6.33626 2.00012L11.25 10.5001C11.3137 10.6175 11.4003 10.7209 11.5046 10.8042C11.609 10.8876 11.7289 10.9492 11.8575 10.9854C11.986 11.0216 12.1205 11.0318 12.253 11.0152C12.3855 10.9986 12.5133 10.9556 12.629 10.8888C12.7446 10.8221 12.8457 10.7328 12.9263 10.6263C13.0068 10.5198 13.0653 10.3982 13.0981 10.2688C13.1309 10.1394 13.1375 10.0047 13.1174 9.87264C13.0974 9.74062 13.0511 9.61395 12.9813 9.50012L9.23125 3.00012C8.9738 2.54125 8.90753 1.99941 9.04682 1.49203C9.18612 0.984641 9.51974 0.552582 9.97539 0.289483C10.431 0.0263834 10.972 -0.0465606 11.4811 0.0864587C11.9902 0.219478 12.4263 0.547745 12.695 1.00012L17.75 9.76512C16.6322 10.8916 16.0035 12.4132 16 14.0001C15.9963 15.2989 16.4177 16.5633 17.2 17.6001C17.278 17.7074 17.3766 17.7981 17.49 17.867C17.6034 17.9358 17.7293 17.9814 17.8605 18.001C17.9917 18.0207 18.1255 18.0141 18.2541 17.9816C18.3827 17.9491 18.5035 17.8913 18.6096 17.8116C18.7156 17.7319 18.8048 17.6319 18.8718 17.5175C18.9388 17.403 18.9824 17.2763 19 17.1448C19.0176 17.0134 19.0089 16.8797 18.9743 16.7516C18.9398 16.6236 18.8801 16.5036 18.7988 16.3989C18.4824 15.9765 18.2528 15.4958 18.1231 14.9843C17.9934 14.4729 17.9661 13.9408 18.0429 13.4188C18.1197 12.8967 18.2991 12.3951 18.5706 11.9426C18.8421 11.4902 19.2005 11.096 19.625 10.7826C19.8224 10.6365 19.9592 10.4229 20.0092 10.1825C20.0592 9.94202 20.019 9.69157 19.8963 9.47887L18.4638 7.00012C18.2063 6.54125 18.14 5.99941 18.2793 5.49203C18.4186 4.98464 18.7522 4.55258 19.2079 4.28948C19.6635 4.02638 20.2045 3.95344 20.7136 4.08646C21.2227 4.21948 21.6588 4.54774 21.9275 5.00012L24.4138 9.30762ZM20.7425 2.18262C21.4432 2.36725 22.1001 2.68931 22.6752 3.13008C23.2503 3.57084 23.7321 4.12153 24.0925 4.75012L24.1338 4.82137C24.2664 5.05111 24.4848 5.21877 24.741 5.28745C24.8679 5.32146 25.0002 5.33015 25.1304 5.31302C25.2607 5.29589 25.3862 5.25328 25.5 5.18762C25.6138 5.12196 25.7135 5.03453 25.7934 4.93034C25.8734 4.82614 25.9321 4.70721 25.9661 4.58035C26.0001 4.45348 26.0088 4.32115 25.9917 4.19093C25.9745 4.0607 25.9319 3.93513 25.8663 3.82137L25.825 3.75012C25.3335 2.89321 24.6767 2.14252 23.8926 1.54167C23.1085 0.940821 22.2128 0.501801 21.2575 0.250119C21.002 0.184041 20.7307 0.221665 20.5028 0.354786C20.2749 0.487908 20.1088 0.705731 20.0409 0.960766C19.9729 1.2158 20.0085 1.48736 20.14 1.71625C20.2714 1.94513 20.488 2.11277 20.7425 2.18262ZM6.9475 25.2151C5.65171 24.1925 4.56342 22.9315 3.74126 21.5001C3.67559 21.3864 3.58817 21.2866 3.48397 21.2067C3.37978 21.1267 3.26085 21.068 3.13398 21.034C3.00711 21 2.87479 20.9913 2.74456 21.0085C2.61434 21.0256 2.48876 21.0682 2.37501 21.1339C2.26125 21.1995 2.16154 21.287 2.08157 21.3911C2.00159 21.4953 1.94293 21.6143 1.90892 21.7411C1.87491 21.868 1.86622 22.0003 1.88335 22.1306C1.90048 22.2608 1.94309 22.3864 2.00875 22.5001C2.95782 24.1511 4.21368 25.6056 5.70875 26.7851C5.91728 26.9455 6.18063 27.0173 6.44172 26.9849C6.70282 26.9525 6.94062 26.8185 7.10359 26.612C7.26655 26.4054 7.34156 26.143 7.31234 25.8815C7.28313 25.62 7.15204 25.3806 6.9475 25.2151Z\"\n fill={theme.colors.primary600}\n />\n </svg>\n );\n};\n\nexport const GuidedTourHomepageOverview = () => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const tourState = useGuidedTour('Overview', (s) => s.state.tours);\n const dispatch = useGuidedTour('Overview', (s) => s.dispatch);\n const enabled = useGuidedTour('Overview', (s) => s.state.enabled);\n const hidden = useGuidedTour('Overview', (s) => s.state.hidden);\n const completedActions = useGuidedTour('Overview', (s) => s.state.completedActions);\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const tourNames = Object.keys(tourState) as ValidTourName[];\n const completedTours = getCompletedTours(tourState);\n const completionPercentage =\n tourNames.length > 0 ? Math.round((completedTours.length / tourNames.length) * 100) : 0;\n\n const handleConfirmDialog = () => {\n trackUsage('didSkipGuidedTour', { name: 'all' });\n dispatch({ type: 'skip_all_tours' });\n };\n\n const handleStartTour = (tourName: ValidTourName) => {\n trackUsage('didStartGuidedTour', { name: tourName, fromHomepage: true });\n\n if (tourName === 'strapiCloud') {\n trackUsage('didCompleteGuidedTour', { name: tourName });\n dispatch({ type: 'next_step', payload: tourName });\n }\n };\n\n if (\n !guidedTourMeta?.data?.isFirstSuperAdminUser ||\n !enabled ||\n hidden ||\n process.env.NODE_ENV !== 'development'\n ) {\n return null;\n }\n\n return (\n <Container tag=\"section\" gap={0}>\n {/* Greeting */}\n <ContentSection direction=\"column\" gap={2} alignItems=\"start\">\n <WaveIcon />\n <Flex direction=\"column\" alignItems=\"start\" gap={1} paddingTop={4}>\n <Typography tag=\"h2\" fontSize=\"20px\" fontWeight=\"bold\">\n {formatMessage({\n id: 'tours.overview.title',\n defaultMessage: 'Discover your application!',\n })}\n </Typography>\n <Typography>\n {formatMessage({\n id: 'tours.overview.subtitle',\n defaultMessage: 'Follow the guided tour to get the most out of Strapi.',\n })}\n </Typography>\n </Flex>\n <Flex\n direction=\"column\"\n alignItems=\"flex-start\"\n width=\"100%\"\n paddingTop={5}\n paddingBottom={8}\n gap={2}\n >\n <Typography variant=\"pi\">\n {formatMessage(\n {\n id: 'tours.overview.completed',\n defaultMessage: '{completed}% completed',\n },\n { completed: completionPercentage }\n )}\n </Typography>\n <StyledProgressBar value={completionPercentage} />\n </Flex>\n <Dialog.Root>\n <Dialog.Trigger>\n <Button variant=\"tertiary\">\n {formatMessage({\n id: 'tours.overview.close',\n defaultMessage: 'Close guided tour',\n })}\n </Button>\n </Dialog.Trigger>\n <ConfirmDialog onConfirm={handleConfirmDialog}>\n {formatMessage({\n id: 'tours.overview.close.description',\n defaultMessage: 'Are you sure you want to close the guided tour?',\n })}\n </ConfirmDialog>\n </Dialog.Root>\n </ContentSection>\n <VerticalSeparator />\n {/* Task List */}\n <ContentSection direction=\"column\" alignItems=\"start\">\n <Typography variant=\"omega\" fontWeight=\"bold\">\n {formatMessage({\n id: 'tours.overview.tasks',\n defaultMessage: 'Your tasks',\n })}\n </Typography>\n <Box tag=\"ul\" width=\"100%\" borderColor=\"neutral150\" marginTop={4} hasRadius>\n {TASK_CONTENT.map((task) => {\n const tourName = task.tourName as ValidTourName;\n const tour = tourState[tourName];\n\n const isLinkDisabled =\n tourName !== 'contentTypeBuilder' &&\n !completedActions.includes(\n GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema\n );\n\n return (\n <TourTaskContainer\n tag=\"li\"\n aria-label={formatMessage(task.title)}\n key={tourName}\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n {tour.isCompleted ? (\n <>\n <Flex gap={2}>\n <CheckCircle fill=\"success500\" />\n <Typography style={{ textDecoration: 'line-through' }} textColor=\"neutral500\">\n {formatMessage(task.title)}\n </Typography>\n </Flex>\n <Typography variant=\"omega\" textColor=\"neutral500\">\n {formatMessage(task.done)}\n </Typography>\n </>\n ) : (\n <>\n <Flex gap={2} alignItems=\"center\">\n <Flex height=\"16px\" width=\"16px\" justifyContent=\"center\">\n <TodoCircle />\n </Flex>\n <Typography>{formatMessage(task.title)}</Typography>\n </Flex>\n {task.isExternal ? (\n <Link\n isExternal\n disabled={isLinkDisabled}\n href={task.link.to}\n onClick={() => handleStartTour(task.tourName as ValidTourName)}\n >\n {formatMessage(task.link.label)}\n </Link>\n ) : (\n <Link\n endIcon={<ChevronRight />}\n disabled={isLinkDisabled}\n to={task.link.to}\n tag={NavLink}\n onClick={() =>\n trackUsage('didStartGuidedTour', { name: tourName, fromHomepage: true })\n }\n >\n {formatMessage(task.link.label)}\n </Link>\n )}\n </>\n )}\n </TourTaskContainer>\n );\n })}\n </Box>\n </ContentSection>\n </Container>\n );\n};\n"],"names":["StyledProgressBar","styled","ProgressBar","theme","colors","neutral150","success500","Container","Flex","borderRadius","neutral0","shadows","tableShadow","ContentSection","spaces","VerticalSeparator","div","TourTaskContainer","TodoCircle","Box","neutral300","LINK_LABEL","id","defaultMessage","DONE_LABEL","TASK_CONTENT","tourName","link","label","to","title","done","isExternal","WaveIcon","useTheme","_jsx","svg","width","height","viewBox","fill","xmlns","path","d","primary600","GuidedTourHomepageOverview","formatMessage","useIntl","trackUsage","useTracking","tourState","useGuidedTour","s","state","tours","dispatch","enabled","hidden","completedActions","data","guidedTourMeta","useGetGuidedTourMetaQuery","tourNames","Object","keys","completedTours","getCompletedTours","completionPercentage","length","Math","round","handleConfirmDialog","name","type","handleStartTour","fromHomepage","payload","isFirstSuperAdminUser","process","env","NODE_ENV","_jsxs","tag","gap","direction","alignItems","paddingTop","Typography","fontSize","fontWeight","paddingBottom","variant","completed","value","Dialog","Root","Trigger","Button","ConfirmDialog","onConfirm","borderColor","marginTop","hasRadius","map","task","tour","isLinkDisabled","includes","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","aria-label","justifyContent","isCompleted","_Fragment","CheckCircle","style","textDecoration","textColor","Link","disabled","href","onClick","endIcon","ChevronRight","NavLink"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var React = require('react');
|
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
6
|
var reactIntl = require('react-intl');
|
|
7
7
|
var reactRouterDom = require('react-router-dom');
|
|
8
|
-
var
|
|
8
|
+
var styledComponents = require('styled-components');
|
|
9
9
|
var Tracking = require('../../../features/Tracking.js');
|
|
10
10
|
var Context = require('../Context.js');
|
|
11
11
|
var Tours = require('../Tours.js');
|
|
@@ -139,10 +139,10 @@ const DefaultActions = ({ showSkip, showPrevious, to, tourName, onNextStep, onPr
|
|
|
139
139
|
]
|
|
140
140
|
});
|
|
141
141
|
};
|
|
142
|
-
const ActionsContainer =
|
|
142
|
+
const ActionsContainer = styledComponents.styled(designSystem.Flex)`
|
|
143
143
|
border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
|
|
144
144
|
`;
|
|
145
|
-
const ContentContainer =
|
|
145
|
+
const ContentContainer = styledComponents.styled(designSystem.Box)`
|
|
146
146
|
p {
|
|
147
147
|
margin-top: ${({ theme })=>theme.spaces[5]};
|
|
148
148
|
}
|
|
@@ -154,7 +154,7 @@ const ContentContainer = styled.styled(designSystem.Box)`
|
|
|
154
154
|
/**
|
|
155
155
|
* TODO:
|
|
156
156
|
* We should probably move all arrow styles + svg to the DS
|
|
157
|
-
*/ const PopoverArrow =
|
|
157
|
+
*/ const PopoverArrow = styledComponents.styled(designSystem.Popover.Arrow)`
|
|
158
158
|
fill: ${({ theme })=>theme.colors.neutral0};
|
|
159
159
|
transform: translateY(-16px) rotate(-90deg);
|
|
160
160
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step.js","sources":["../../../../../../../admin/src/components/GuidedTour/Steps/Step.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Popover,\n Box,\n Flex,\n Button,\n Typography,\n LinkButton,\n FlexProps,\n} from '@strapi/design-system';\nimport { FormattedMessage, useIntl, type MessageDescriptor } from 'react-intl';\nimport { To, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { useGuidedTour, type ValidTourName } from '../Context';\nimport { tours } from '../Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * Common Step Components\n * -----------------------------------------------------------------------------------------------*/\n\nconst StepCount = ({\n tourName,\n displayedCurrentStep,\n displayedTourLength,\n}: {\n tourName: ValidTourName;\n displayedCurrentStep?: number;\n displayedTourLength?: number;\n}) => {\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = displayedCurrentStep ?? state.tours[tourName].currentStep + 1;\n const displayedStepCount = displayedTourLength ?? tours[tourName]._meta.displayedStepCount;\n\n return (\n <Typography variant=\"omega\" fontSize=\"12px\">\n <FormattedMessage\n id=\"tours.stepCount\"\n defaultMessage=\"Step {currentStep} of {tourLength}\"\n values={{ currentStep, tourLength: displayedStepCount }}\n />\n </Typography>\n );\n};\n\nconst GotItAction = ({ onClick }: { onClick: () => void }) => {\n return (\n <Button onClick={onClick}>\n <FormattedMessage id=\"tours.gotIt\" defaultMessage=\"Got it\" />\n </Button>\n );\n};\n\nexport type DefaultActionsProps = {\n showSkip?: boolean;\n showPrevious?: boolean;\n to?: To;\n onNextStep?: () => void;\n onPreviousStep?: () => void;\n tourName: ValidTourName;\n};\nconst DefaultActions = ({\n showSkip,\n showPrevious,\n to,\n tourName,\n onNextStep,\n onPreviousStep,\n}: DefaultActionsProps) => {\n const { trackUsage } = useTracking();\n const dispatch = useGuidedTour('GuidedTourPopover', (s) => s.dispatch);\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n\n // Safety check: if tours state is missing, return null\n if (!state.tours || !state.tours[tourName]) {\n return null;\n }\n\n const currentStep = state.tours[tourName].currentStep + 1;\n const actualTourLength = tours[tourName]._meta.totalStepCount;\n\n const handleSkip = () => {\n trackUsage('didSkipGuidedTour', { name: tourName });\n dispatch({ type: 'skip_tour', payload: tourName });\n };\n\n const handleNextStep = () => {\n if (currentStep === actualTourLength) {\n trackUsage('didCompleteGuidedTour', { name: tourName });\n }\n\n if (onNextStep) {\n onNextStep();\n } else {\n dispatch({ type: 'next_step', payload: tourName });\n }\n };\n\n const handlePreviousStep = () => {\n if (onPreviousStep) {\n onPreviousStep();\n } else {\n dispatch({ type: 'previous_step', payload: tourName });\n }\n };\n\n return (\n <Flex gap={2}>\n {showSkip && (\n <Button variant=\"tertiary\" onClick={handleSkip}>\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\n </Button>\n )}\n {!showSkip && showPrevious && (\n <Button variant=\"tertiary\" onClick={handlePreviousStep}>\n <FormattedMessage id=\"tours.previous\" defaultMessage=\"Previous\" />\n </Button>\n )}\n {to ? (\n <LinkButton tag={NavLink} to={to} onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </LinkButton>\n ) : (\n <Button onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </Button>\n )}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Step factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype WithChildren = {\n children: React.ReactNode;\n id?: never;\n defaultMessage?: never;\n};\n\ntype WithIntl = {\n children?: undefined;\n id: MessageDescriptor['id'];\n defaultMessage: MessageDescriptor['defaultMessage'];\n withArrow?: boolean;\n};\n\ntype WithActionsChildren = {\n children: React.ReactNode;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype WithActionsProps = {\n children?: undefined;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype StepProps = WithChildren | WithIntl;\ntype ActionsProps = WithActionsChildren | WithActionsProps;\n\ntype Step = {\n Root: React.ForwardRefExoticComponent<\n React.ComponentProps<typeof Popover.Content> & { withArrow?: boolean }\n >;\n Title: (props: StepProps) => React.ReactNode;\n Content: (\n props: StepProps & {\n values?: Record<string, React.ReactNode | ((chunks: React.ReactNode) => React.ReactNode)>;\n }\n ) => React.ReactNode;\n Actions: (props: ActionsProps & { to?: string } & FlexProps) => React.ReactNode;\n};\n\nconst ActionsContainer = styled(Flex)`\n border-top: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n`;\n\nconst ContentContainer = styled(Box)`\n p {\n margin-top: ${({ theme }) => theme.spaces[5]};\n }\n ul {\n list-style-type: disc;\n padding-left: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/**\n * TODO:\n * We should probably move all arrow styles + svg to the DS\n */\nconst PopoverArrow = styled(Popover.Arrow)`\n fill: ${({ theme }) => theme.colors.neutral0};\n transform: translateY(-16px) rotate(-90deg);\n`;\n\nconst createStepComponents = (tourName: ValidTourName): Step => ({\n Root: React.forwardRef(({ withArrow = true, ...props }, ref) => {\n return (\n <Popover.Content\n ref={ref}\n aria-labelledby=\"guided-tour-title\"\n side=\"top\"\n align=\"center\"\n style={{ border: 'none' }}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {withArrow && (\n <PopoverArrow asChild>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"23\"\n height=\"25\"\n viewBox=\"0 0 23 25\"\n fill=\"none\"\n >\n <path d=\"M11 24.5L1.82843 15.3284C0.266332 13.7663 0.26633 11.2337 1.82843 9.67157L11 0.5L23 12.5L11 24.5Z\" />\n </svg>\n </PopoverArrow>\n )}\n <Flex width=\"360px\" direction=\"column\" alignItems=\"start\">\n {props.children}\n </Flex>\n </Popover.Content>\n );\n }),\n\n Title: (props) => {\n return (\n <Box paddingTop={5} paddingLeft={5} paddingRight={5} paddingBottom={1} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <Typography tag=\"h1\" id=\"guided-tour-title\" variant=\"omega\" fontWeight=\"bold\">\n <FormattedMessage id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n );\n },\n\n Content: (props) => {\n const { formatMessage } = useIntl();\n let content = '';\n if (!('children' in props)) {\n content = formatMessage({\n id: props.id,\n defaultMessage: props.defaultMessage,\n });\n }\n return (\n <Box paddingBottom={5} paddingLeft={5} paddingRight={5} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <ContentContainer>\n <Typography tag=\"div\" variant=\"omega\" dangerouslySetInnerHTML={{ __html: content }} />\n </ContentContainer>\n )}\n </Box>\n );\n },\n\n Actions: ({\n showStepCount = true,\n showPrevious = true,\n showSkip = false,\n to,\n children,\n ...flexProps\n }) => {\n return (\n <ActionsContainer\n width=\"100%\"\n padding={3}\n paddingLeft={5}\n justifyContent={showStepCount ? 'space-between' : 'flex-end'}\n {...flexProps}\n >\n {children ? (\n children\n ) : (\n <>\n {showStepCount && <StepCount tourName={tourName} />}\n <DefaultActions\n tourName={tourName}\n showSkip={showSkip}\n showPrevious={!showSkip && showPrevious}\n to={to}\n />\n </>\n )}\n </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents, GotItAction, StepCount, DefaultActions };\n"],"names":["StepCount","tourName","displayedCurrentStep","displayedTourLength","state","useGuidedTour","s","currentStep","tours","displayedStepCount","_meta","_jsx","Typography","variant","fontSize","FormattedMessage","id","defaultMessage","values","tourLength","GotItAction","onClick","Button","DefaultActions","showSkip","showPrevious","to","onNextStep","onPreviousStep","trackUsage","useTracking","dispatch","actualTourLength","totalStepCount","handleSkip","name","type","payload","handleNextStep","handlePreviousStep","_jsxs","Flex","gap","LinkButton","tag","NavLink","ActionsContainer","styled","theme","colors","neutral150","ContentContainer","Box","spaces","PopoverArrow","Popover","Arrow","neutral0","createStepComponents","Root","React","forwardRef","withArrow","props","ref","Content","aria-labelledby","side","align","style","border","e","stopPropagation","asChild","svg","xmlns","width","height","viewBox","fill","path","d","direction","alignItems","children","Title","paddingTop","paddingLeft","paddingRight","paddingBottom","fontWeight","formatMessage","useIntl","content","dangerouslySetInnerHTML","__html","Actions","showStepCount","flexProps","padding","justifyContent","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Step.js","sources":["../../../../../../../admin/src/components/GuidedTour/Steps/Step.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Popover,\n Box,\n Flex,\n Button,\n Typography,\n LinkButton,\n FlexProps,\n} from '@strapi/design-system';\nimport { FormattedMessage, useIntl, type MessageDescriptor } from 'react-intl';\nimport { To, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { useGuidedTour, type ValidTourName } from '../Context';\nimport { tours } from '../Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * Common Step Components\n * -----------------------------------------------------------------------------------------------*/\n\nconst StepCount = ({\n tourName,\n displayedCurrentStep,\n displayedTourLength,\n}: {\n tourName: ValidTourName;\n displayedCurrentStep?: number;\n displayedTourLength?: number;\n}) => {\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = displayedCurrentStep ?? state.tours[tourName].currentStep + 1;\n const displayedStepCount = displayedTourLength ?? tours[tourName]._meta.displayedStepCount;\n\n return (\n <Typography variant=\"omega\" fontSize=\"12px\">\n <FormattedMessage\n id=\"tours.stepCount\"\n defaultMessage=\"Step {currentStep} of {tourLength}\"\n values={{ currentStep, tourLength: displayedStepCount }}\n />\n </Typography>\n );\n};\n\nconst GotItAction = ({ onClick }: { onClick: () => void }) => {\n return (\n <Button onClick={onClick}>\n <FormattedMessage id=\"tours.gotIt\" defaultMessage=\"Got it\" />\n </Button>\n );\n};\n\nexport type DefaultActionsProps = {\n showSkip?: boolean;\n showPrevious?: boolean;\n to?: To;\n onNextStep?: () => void;\n onPreviousStep?: () => void;\n tourName: ValidTourName;\n};\nconst DefaultActions = ({\n showSkip,\n showPrevious,\n to,\n tourName,\n onNextStep,\n onPreviousStep,\n}: DefaultActionsProps) => {\n const { trackUsage } = useTracking();\n const dispatch = useGuidedTour('GuidedTourPopover', (s) => s.dispatch);\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n\n // Safety check: if tours state is missing, return null\n if (!state.tours || !state.tours[tourName]) {\n return null;\n }\n\n const currentStep = state.tours[tourName].currentStep + 1;\n const actualTourLength = tours[tourName]._meta.totalStepCount;\n\n const handleSkip = () => {\n trackUsage('didSkipGuidedTour', { name: tourName });\n dispatch({ type: 'skip_tour', payload: tourName });\n };\n\n const handleNextStep = () => {\n if (currentStep === actualTourLength) {\n trackUsage('didCompleteGuidedTour', { name: tourName });\n }\n\n if (onNextStep) {\n onNextStep();\n } else {\n dispatch({ type: 'next_step', payload: tourName });\n }\n };\n\n const handlePreviousStep = () => {\n if (onPreviousStep) {\n onPreviousStep();\n } else {\n dispatch({ type: 'previous_step', payload: tourName });\n }\n };\n\n return (\n <Flex gap={2}>\n {showSkip && (\n <Button variant=\"tertiary\" onClick={handleSkip}>\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\n </Button>\n )}\n {!showSkip && showPrevious && (\n <Button variant=\"tertiary\" onClick={handlePreviousStep}>\n <FormattedMessage id=\"tours.previous\" defaultMessage=\"Previous\" />\n </Button>\n )}\n {to ? (\n <LinkButton tag={NavLink} to={to} onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </LinkButton>\n ) : (\n <Button onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </Button>\n )}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Step factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype WithChildren = {\n children: React.ReactNode;\n id?: never;\n defaultMessage?: never;\n};\n\ntype WithIntl = {\n children?: undefined;\n id: MessageDescriptor['id'];\n defaultMessage: MessageDescriptor['defaultMessage'];\n withArrow?: boolean;\n};\n\ntype WithActionsChildren = {\n children: React.ReactNode;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype WithActionsProps = {\n children?: undefined;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype StepProps = WithChildren | WithIntl;\ntype ActionsProps = WithActionsChildren | WithActionsProps;\n\ntype Step = {\n Root: React.ForwardRefExoticComponent<\n React.ComponentProps<typeof Popover.Content> & { withArrow?: boolean }\n >;\n Title: (props: StepProps) => React.ReactNode;\n Content: (\n props: StepProps & {\n values?: Record<string, React.ReactNode | ((_chunks: React.ReactNode) => React.ReactNode)>;\n }\n ) => React.ReactNode;\n Actions: (props: ActionsProps & { to?: string } & FlexProps) => React.ReactNode;\n};\n\nconst ActionsContainer = styled(Flex)`\n border-top: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n`;\n\nconst ContentContainer = styled(Box)`\n p {\n margin-top: ${({ theme }) => theme.spaces[5]};\n }\n ul {\n list-style-type: disc;\n padding-left: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/**\n * TODO:\n * We should probably move all arrow styles + svg to the DS\n */\nconst PopoverArrow = styled(Popover.Arrow)`\n fill: ${({ theme }) => theme.colors.neutral0};\n transform: translateY(-16px) rotate(-90deg);\n`;\n\nconst createStepComponents = (tourName: ValidTourName): Step => ({\n Root: React.forwardRef(({ withArrow = true, ...props }, ref) => {\n return (\n <Popover.Content\n ref={ref}\n aria-labelledby=\"guided-tour-title\"\n side=\"top\"\n align=\"center\"\n style={{ border: 'none' }}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {withArrow && (\n <PopoverArrow asChild>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"23\"\n height=\"25\"\n viewBox=\"0 0 23 25\"\n fill=\"none\"\n >\n <path d=\"M11 24.5L1.82843 15.3284C0.266332 13.7663 0.26633 11.2337 1.82843 9.67157L11 0.5L23 12.5L11 24.5Z\" />\n </svg>\n </PopoverArrow>\n )}\n <Flex width=\"360px\" direction=\"column\" alignItems=\"start\">\n {props.children}\n </Flex>\n </Popover.Content>\n );\n }),\n\n Title: (props) => {\n return (\n <Box paddingTop={5} paddingLeft={5} paddingRight={5} paddingBottom={1} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <Typography tag=\"h1\" id=\"guided-tour-title\" variant=\"omega\" fontWeight=\"bold\">\n <FormattedMessage id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n );\n },\n\n Content: (props) => {\n const { formatMessage } = useIntl();\n let content = '';\n if (!('children' in props)) {\n content = formatMessage({\n id: props.id,\n defaultMessage: props.defaultMessage,\n });\n }\n return (\n <Box paddingBottom={5} paddingLeft={5} paddingRight={5} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <ContentContainer>\n <Typography tag=\"div\" variant=\"omega\" dangerouslySetInnerHTML={{ __html: content }} />\n </ContentContainer>\n )}\n </Box>\n );\n },\n\n Actions: ({\n showStepCount = true,\n showPrevious = true,\n showSkip = false,\n to,\n children,\n ...flexProps\n }) => {\n return (\n <ActionsContainer\n width=\"100%\"\n padding={3}\n paddingLeft={5}\n justifyContent={showStepCount ? 'space-between' : 'flex-end'}\n {...flexProps}\n >\n {children ? (\n children\n ) : (\n <>\n {showStepCount && <StepCount tourName={tourName} />}\n <DefaultActions\n tourName={tourName}\n showSkip={showSkip}\n showPrevious={!showSkip && showPrevious}\n to={to}\n />\n </>\n )}\n </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents, GotItAction, StepCount, DefaultActions };\n"],"names":["StepCount","tourName","displayedCurrentStep","displayedTourLength","state","useGuidedTour","s","currentStep","tours","displayedStepCount","_meta","_jsx","Typography","variant","fontSize","FormattedMessage","id","defaultMessage","values","tourLength","GotItAction","onClick","Button","DefaultActions","showSkip","showPrevious","to","onNextStep","onPreviousStep","trackUsage","useTracking","dispatch","actualTourLength","totalStepCount","handleSkip","name","type","payload","handleNextStep","handlePreviousStep","_jsxs","Flex","gap","LinkButton","tag","NavLink","ActionsContainer","styled","theme","colors","neutral150","ContentContainer","Box","spaces","PopoverArrow","Popover","Arrow","neutral0","createStepComponents","Root","React","forwardRef","withArrow","props","ref","Content","aria-labelledby","side","align","style","border","e","stopPropagation","asChild","svg","xmlns","width","height","viewBox","fill","path","d","direction","alignItems","children","Title","paddingTop","paddingLeft","paddingRight","paddingBottom","fontWeight","formatMessage","useIntl","content","dangerouslySetInnerHTML","__html","Actions","showStepCount","flexProps","padding","justifyContent","_Fragment"],"mappings":"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"}
|