@strapi/admin 5.25.0 → 5.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/admin/src/App.js +6 -2
- package/dist/admin/admin/src/App.js.map +1 -1
- package/dist/admin/admin/src/App.mjs +7 -3
- package/dist/admin/admin/src/App.mjs.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.js +10 -3
- package/dist/admin/admin/src/components/ErrorElement.js.map +1 -1
- package/dist/admin/admin/src/components/ErrorElement.mjs +10 -3
- package/dist/admin/admin/src/components/ErrorElement.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs +26 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js +15 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs +13 -0
- package/dist/admin/admin/src/components/GuidedTour/GuidedTourProvider.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +162 -25
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +164 -27
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js +28 -9
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs +30 -11
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +2 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ActionLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs +3 -2
- package/dist/admin/admin/src/components/Layouts/ContentLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js +65 -32
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs +66 -33
- package/dist/admin/admin/src/components/Layouts/HeaderLayout.mjs.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.js +29 -6
- package/dist/admin/admin/src/components/Layouts/Layout.js.map +1 -1
- package/dist/admin/admin/src/components/Layouts/Layout.mjs +30 -7
- package/dist/admin/admin/src/components/Layouts/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.js +147 -92
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +131 -95
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.js +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs +20 -6
- package/dist/admin/admin/src/components/MainNav/MainNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js +157 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs +154 -0
- package/dist/admin/admin/src/components/MainNav/MainNavLinks.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js +65 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.js.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs +63 -0
- package/dist/admin/admin/src/components/MainNav/NavBurgerMenu.mjs.map +1 -0
- package/dist/admin/admin/src/components/MainNav/NavLink.js +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +2 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.js +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs +39 -22
- package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js +8 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs +9 -2
- package/dist/admin/admin/src/components/MainNav/TrialCountdown.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +161 -120
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +162 -121
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js +1 -1
- package/dist/admin/admin/src/components/PageHelpers.js.map +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs +1 -1
- package/dist/admin/admin/src/components/PageHelpers.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +2 -4
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +2 -4
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +98 -33
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +99 -34
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs +3 -2
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/constants/theme.js +12 -0
- package/dist/admin/admin/src/constants/theme.js.map +1 -0
- package/dist/admin/admin/src/constants/theme.mjs +9 -0
- package/dist/admin/admin/src/constants/theme.mjs.map +1 -0
- package/dist/admin/admin/src/features/Notifications.js +14 -7
- package/dist/admin/admin/src/features/Notifications.js.map +1 -1
- package/dist/admin/admin/src/features/Notifications.mjs +15 -8
- package/dist/admin/admin/src/features/Notifications.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +7 -2
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +7 -2
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/useAIAvailability.js +13 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs +11 -0
- package/dist/admin/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js +43 -0
- package/dist/admin/admin/src/hooks/useDeviceType.js.map +1 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs +22 -0
- package/dist/admin/admin/src/hooks/useDeviceType.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js +70 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.js.map +1 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs +46 -0
- package/dist/admin/admin/src/hooks/useMediaQuery.mjs.map +1 -0
- package/dist/admin/admin/src/hooks/useMenu.js +19 -0
- package/dist/admin/admin/src/hooks/useMenu.js.map +1 -1
- package/dist/admin/admin/src/hooks/useMenu.mjs +19 -0
- package/dist/admin/admin/src/hooks/useMenu.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -2
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs +11 -7
- package/dist/admin/admin/src/layouts/UnauthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.js +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs +3 -0
- package/dist/admin/admin/src/pages/Auth/components/Login.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +56 -54
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +54 -51
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +55 -52
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.js +42 -6
- package/dist/admin/admin/src/pages/Settings/Layout.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/Layout.mjs +43 -7
- package/dist/admin/admin/src/pages/Settings/Layout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +44 -32
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +45 -33
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.js +13 -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 +14 -3
- package/dist/admin/admin/src/pages/Settings/pages/ApplicationInfo/ApplicationInfoPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs +2 -2
- package/dist/admin/admin/src/pages/Settings/pages/InstalledPlugins.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseAuditLogs.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseContentHistory.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js +4 -3
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs +5 -4
- package/dist/admin/admin/src/pages/Settings/pages/PurchaseSingleSignOn.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js +36 -32
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs +36 -32
- package/dist/admin/admin/src/pages/Settings/pages/Roles/components/ContentTypeCollapses.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Webhooks/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/render.js +6 -1
- package/dist/admin/admin/src/render.js.map +1 -1
- package/dist/admin/admin/src/render.mjs +6 -1
- package/dist/admin/admin/src/render.mjs.map +1 -1
- package/dist/admin/admin/src/services/api.js +2 -1
- package/dist/admin/admin/src/services/api.js.map +1 -1
- package/dist/admin/admin/src/services/api.mjs +2 -1
- package/dist/admin/admin/src/services/api.mjs.map +1 -1
- package/dist/admin/admin/src/services/auth.js +13 -2
- package/dist/admin/admin/src/services/auth.js.map +1 -1
- package/dist/admin/admin/src/services/auth.mjs +12 -3
- package/dist/admin/admin/src/services/auth.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +3 -0
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +3 -0
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js +11 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.js.map +1 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs +9 -0
- package/dist/admin/ee/admin/src/components/GlobalNotifications.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js +11 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs +9 -0
- package/dist/admin/ee/admin/src/hooks/useAIAvailability.mjs.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js +82 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.js.map +1 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs +80 -0
- package/dist/admin/ee/admin/src/hooks/useAIUsageWarning.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js +102 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.js.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs +100 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.mjs.map +1 -0
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.js +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 +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/SingleSignOnPage.mjs.map +1 -1
- package/dist/admin/ee/admin/src/services/ai.js +33 -0
- package/dist/admin/ee/admin/src/services/ai.js.map +1 -0
- package/dist/admin/ee/admin/src/services/ai.mjs +29 -0
- package/dist/admin/ee/admin/src/services/ai.mjs.map +1 -0
- package/dist/admin/ee.js +4 -0
- package/dist/admin/ee.js.map +1 -1
- package/dist/admin/ee.mjs +2 -0
- package/dist/admin/ee.mjs.map +1 -1
- package/dist/admin/index.js +13 -0
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +5 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/GuidedTour/Context.d.ts +11 -0
- package/dist/admin/src/components/GuidedTour/GuidedTourProvider.d.ts +6 -0
- package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +7 -16
- package/dist/admin/src/components/GuidedTour/Tours.d.ts +1 -22
- package/dist/admin/src/components/LeftMenu.d.ts +2 -2
- package/dist/admin/src/components/MainNav/MainNavLinks.d.ts +11 -0
- package/dist/admin/src/components/MainNav/NavBurgerMenu.d.ts +9 -0
- package/dist/admin/src/components/MainNav/NavUser.d.ts +5 -4
- package/dist/admin/src/components/SubNav.d.ts +18 -5
- package/dist/admin/src/constants/theme.d.ts +7 -0
- package/dist/admin/src/core/store/configure.d.ts +2 -2
- package/dist/admin/src/core/store/hooks.d.ts +2 -2
- package/dist/admin/src/ee.d.ts +2 -0
- package/dist/admin/src/features/Tracking.d.ts +21 -2
- package/dist/admin/src/hooks/useAIAvailability.d.ts +5 -0
- package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
- package/dist/admin/src/hooks/useDeviceType.d.ts +6 -0
- package/dist/admin/src/hooks/useMediaQuery.d.ts +21 -0
- package/dist/admin/src/hooks/useMenu.d.ts +9 -1
- package/dist/admin/src/index.d.ts +6 -0
- package/dist/admin/src/pages/Marketplace/hooks/useMarketplaceData.d.ts +2 -2
- package/dist/admin/src/pages/Settings/components/SettingsNav.d.ts +3 -6
- package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
- package/dist/admin/src/selectors.d.ts +2 -2
- package/dist/admin/src/services/admin.d.ts +7 -6
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/apiTokens.d.ts +1 -1
- package/dist/admin/src/services/auth.d.ts +21 -12
- package/dist/admin/src/services/contentApi.d.ts +1 -1
- 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 +8 -8
- package/dist/admin/src/services/webhooks.d.ts +2 -2
- package/dist/admin/tests/utils.d.ts +1 -1
- package/dist/ee/admin/src/components/GlobalNotifications.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIAvailability.d.ts +1 -0
- package/dist/ee/admin/src/hooks/useAIUsageWarning.d.ts +5 -0
- package/dist/ee/admin/src/hooks/useLicenseLimits.d.ts +1 -1
- package/dist/ee/admin/src/pages/SettingsPage/pages/ApplicationInfoPage/components/AIUsage.d.ts +1 -0
- package/dist/ee/admin/src/services/ai.d.ts +9 -0
- package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
- package/dist/ee/server/src/ai/controllers/ai.d.ts +7 -0
- package/dist/ee/server/src/ai/controllers/ai.d.ts.map +1 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts +13 -0
- package/dist/ee/server/src/ai/routes/ai.d.ts.map +1 -0
- package/dist/ee/server/src/controllers/admin.d.ts +3 -0
- package/dist/ee/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/ee/server/src/controllers/index.d.ts +3 -0
- package/dist/ee/server/src/controllers/index.d.ts.map +1 -1
- package/dist/ee/server/src/index.d.ts +15 -187
- package/dist/ee/server/src/index.d.ts.map +1 -1
- package/dist/server/ee/server/src/ai/controllers/ai.js +218 -0
- package/dist/server/ee/server/src/ai/controllers/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs +216 -0
- package/dist/server/ee/server/src/ai/controllers/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.js +32 -0
- package/dist/server/ee/server/src/ai/routes/ai.js.map +1 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs +30 -0
- package/dist/server/ee/server/src/ai/routes/ai.mjs.map +1 -0
- package/dist/server/ee/server/src/controllers/admin.js +4 -1
- package/dist/server/ee/server/src/controllers/admin.js.map +1 -1
- package/dist/server/ee/server/src/controllers/admin.mjs +4 -1
- package/dist/server/ee/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/ee/server/src/index.js +37 -23
- package/dist/server/ee/server/src/index.js.map +1 -1
- package/dist/server/ee/server/src/index.mjs +37 -23
- package/dist/server/ee/server/src/index.mjs.map +1 -1
- package/dist/server/server/src/controllers/admin.js +5 -1
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +5 -1
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.js +15 -0
- package/dist/server/server/src/controllers/authenticated-user.js.map +1 -1
- package/dist/server/server/src/controllers/authenticated-user.mjs +15 -0
- package/dist/server/server/src/controllers/authenticated-user.mjs.map +1 -1
- package/dist/server/server/src/routes/users.js +10 -0
- package/dist/server/server/src/routes/users.js.map +1 -1
- package/dist/server/server/src/routes/users.mjs +10 -0
- package/dist/server/server/src/routes/users.mjs.map +1 -1
- package/dist/server/server/src/services/user.js +113 -1
- package/dist/server/server/src/services/user.js.map +1 -1
- package/dist/server/server/src/services/user.mjs +113 -1
- package/dist/server/server/src/services/user.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +2 -0
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/authenticated-user.d.ts +1 -0
- package/dist/server/src/controllers/authenticated-user.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +3 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +7 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/users.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +4 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/user.d.ts +4 -0
- package/dist/server/src/services/user.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +1 -0
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/dist/shared/contracts/ai.d.ts +40 -0
- package/dist/shared/contracts/ai.d.ts.map +1 -0
- package/dist/shared/contracts/users.d.ts +32 -0
- package/dist/shared/contracts/users.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Flex,
|
|
4
|
-
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { Flex, Box, Popover, Typography, Button, LinkButton } from '@strapi/design-system';
|
|
4
|
+
import { FormattedMessage, useIntl } from 'react-intl';
|
|
5
5
|
import { NavLink } from 'react-router-dom';
|
|
6
6
|
import { styled } from 'styled-components';
|
|
7
7
|
import { useTracking } from '../../../features/Tracking.mjs';
|
|
@@ -116,6 +116,15 @@ const DefaultActions = ({ showSkip, showPrevious, to, tourName, onNextStep, onPr
|
|
|
116
116
|
const ActionsContainer = styled(Flex)`
|
|
117
117
|
border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
|
|
118
118
|
`;
|
|
119
|
+
const ContentContainer = styled(Box)`
|
|
120
|
+
p {
|
|
121
|
+
margin-top: ${({ theme })=>theme.spaces[5]};
|
|
122
|
+
}
|
|
123
|
+
ul {
|
|
124
|
+
list-style-type: disc;
|
|
125
|
+
padding-left: ${({ theme })=>theme.spaces[4]};
|
|
126
|
+
}
|
|
127
|
+
`;
|
|
119
128
|
/**
|
|
120
129
|
* TODO:
|
|
121
130
|
* We should probably move all arrow styles + svg to the DS
|
|
@@ -177,21 +186,31 @@ const createStepComponents = (tourName)=>({
|
|
|
177
186
|
})
|
|
178
187
|
});
|
|
179
188
|
},
|
|
180
|
-
Content: (props)
|
|
189
|
+
Content: (props)=>{
|
|
190
|
+
const { formatMessage } = useIntl();
|
|
191
|
+
let content = '';
|
|
192
|
+
if (!('children' in props)) {
|
|
193
|
+
content = formatMessage({
|
|
194
|
+
id: props.id,
|
|
195
|
+
defaultMessage: props.defaultMessage
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return /*#__PURE__*/ jsx(Box, {
|
|
181
199
|
paddingBottom: 5,
|
|
182
200
|
paddingLeft: 5,
|
|
183
201
|
paddingRight: 5,
|
|
184
202
|
width: "100%",
|
|
185
|
-
children: 'children' in props ? props.children : /*#__PURE__*/ jsx(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
203
|
+
children: 'children' in props ? props.children : /*#__PURE__*/ jsx(ContentContainer, {
|
|
204
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
205
|
+
tag: "div",
|
|
206
|
+
variant: "omega",
|
|
207
|
+
dangerouslySetInnerHTML: {
|
|
208
|
+
__html: content
|
|
209
|
+
}
|
|
192
210
|
})
|
|
193
211
|
})
|
|
194
|
-
})
|
|
212
|
+
});
|
|
213
|
+
},
|
|
195
214
|
Actions: ({ showStepCount = true, showPrevious = true, showSkip = false, to, children, ...flexProps })=>{
|
|
196
215
|
return /*#__PURE__*/ jsx(ActionsContainer, {
|
|
197
216
|
width: "100%",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Step.mjs","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, 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 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\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 <Box paddingBottom={5} paddingLeft={5} paddingRight={5} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <Typography tag=\"div\" variant=\"omega\">\n <FormattedMessage\n id={props.id}\n defaultMessage={props.defaultMessage}\n values={props.values}\n />\n </Typography>\n )}\n </Box>\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","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","Box","paddingTop","paddingLeft","paddingRight","paddingBottom","fontWeight","Actions","showStepCount","flexProps","padding","justifyContent","_Fragment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Step.mjs","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 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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"}
|
|
@@ -41,7 +41,7 @@ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
|
41
41
|
};
|
|
42
42
|
const GuidedTourTooltip = ({ children, ...props })=>{
|
|
43
43
|
const state = Context.useGuidedTour('TooltipWrapper', (s)=>s.state);
|
|
44
|
-
if (!state.enabled) {
|
|
44
|
+
if (!state.enabled || state.hidden) {
|
|
45
45
|
return children;
|
|
46
46
|
}
|
|
47
47
|
return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltipImpl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tours.js","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport { type State, type Action, useGuidedTour, ValidTourName, CompletedActions } from './Context';\nimport { apiTokensSteps } from './Steps/ApiTokensSteps';\nimport { contentManagerSteps } from './Steps/ContentManagerSteps';\nimport { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps';\nimport { type Step, createStepComponents } from './Steps/Step';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),\n contentManager: createTour('contentManager', contentManagerSteps),\n apiTokens: createTour('apiTokens', apiTokensSteps),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\nexport type StepContentProps = {\n Step: Step;\n state: State;\n dispatch: React.Dispatch<Action>;\n};\ntype Content = (props: StepContentProps) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: CompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return children;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n const hasApiSchema =\n Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key) => key.startsWith('api::'))\n .length > 0;\n\n React.useEffect(() => {\n if (hasApiSchema) {\n /**\n * Fallback sync:\n *\n * When the user already has a schema (ie started project from template with seeded data),\n * allow them to proceed to the content manager tour.\n *\n * When the CTB fails to restart after saving a schema (as it often does)\n */\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n }\n }, [dispatch, hasApiSchema, step, tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content({ Step, state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\nexport type TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: CompletedActions) => boolean;\n excludeFromStepCount?: boolean;\n};\n\nexport function createTour<const T extends ReadonlyArray<TourStep<string>>>(\n tourName: string,\n steps: T\n) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce(\n (acc, step, index) => {\n const name = step.name as keyof Components;\n\n if (name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n (acc as Components)[name] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n if (step.excludeFromStepCount) {\n // Subtract all steps registered to be excluded from the step count\n acc._meta.displayedStepCount--;\n }\n\n return acc;\n },\n { _meta: { totalStepCount: steps.length, displayedStepCount: steps.length } } as Components & {\n _meta: { totalStepCount: number; displayedStepCount: number };\n }\n );\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["tours","contentTypeBuilder","createTour","contentTypeBuilderSteps","contentManager","contentManagerSteps","apiTokens","apiTokensSteps","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_jsx","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","content","tourName","step","when","data","guidedTourMeta","useGetGuidedTourMetaQuery","dispatch","isCurrentStep","currentStep","isStepConditionMet","completedActions","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","Step","useMemo","createStepComponents","hasApiSchema","Object","keys","schemas","filter","key","startsWith","length","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","createSchema","_jsxs","_Fragment","Portal","Popover","Root","open","Anchor","steps","tour","reduce","acc","index","name","Error","excludeFromStepCount","_meta","displayedStepCount","totalStepCount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tours.js","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport { type State, type Action, useGuidedTour, ValidTourName, CompletedActions } from './Context';\nimport { apiTokensSteps } from './Steps/ApiTokensSteps';\nimport { contentManagerSteps } from './Steps/ContentManagerSteps';\nimport { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps';\nimport { type Step, createStepComponents } from './Steps/Step';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),\n contentManager: createTour('contentManager', contentManagerSteps),\n apiTokens: createTour('apiTokens', apiTokensSteps),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\nexport type StepContentProps = {\n Step: Step;\n state: State;\n dispatch: React.Dispatch<Action>;\n};\ntype Content = (props: StepContentProps) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: CompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled || state.hidden) {\n return children;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n const hasApiSchema =\n Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key) => key.startsWith('api::'))\n .length > 0;\n\n React.useEffect(() => {\n if (hasApiSchema) {\n /**\n * Fallback sync:\n *\n * When the user already has a schema (ie started project from template with seeded data),\n * allow them to proceed to the content manager tour.\n *\n * When the CTB fails to restart after saving a schema (as it often does)\n */\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n }\n }, [dispatch, hasApiSchema, step, tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content({ Step, state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\nexport type TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: CompletedActions) => boolean;\n excludeFromStepCount?: boolean;\n};\n\nexport function createTour<const T extends ReadonlyArray<TourStep<string>>>(\n tourName: string,\n steps: T\n) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce(\n (acc, step, index) => {\n const name = step.name as keyof Components;\n\n if (name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n (acc as Components)[name] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n if (step.excludeFromStepCount) {\n // Subtract all steps registered to be excluded from the step count\n acc._meta.displayedStepCount--;\n }\n\n return acc;\n },\n { _meta: { totalStepCount: steps.length, displayedStepCount: steps.length } } as Components & {\n _meta: { totalStepCount: number; displayedStepCount: number };\n }\n );\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["tours","contentTypeBuilder","createTour","contentTypeBuilderSteps","contentManager","contentManagerSteps","apiTokens","apiTokensSteps","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","hidden","_jsx","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","content","tourName","step","when","data","guidedTourMeta","useGetGuidedTourMetaQuery","dispatch","isCurrentStep","currentStep","isStepConditionMet","completedActions","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","Step","useMemo","createStepComponents","hasApiSchema","Object","keys","schemas","filter","key","startsWith","length","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","createSchema","_jsxs","_Fragment","Portal","Popover","Root","open","Anchor","steps","tour","reduce","acc","index","name","Error","excludeFromStepCount","_meta","displayedStepCount","totalStepCount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA;;AAEkG,2GAE5FA,KAAQ,GAAA;AACZC,IAAAA,kBAAAA,EAAoBC,WAAW,oBAAsBC,EAAAA,+CAAAA,CAAAA;AACrDC,IAAAA,cAAAA,EAAgBF,WAAW,gBAAkBG,EAAAA,uCAAAA,CAAAA;AAC7CC,IAAAA,SAAAA,EAAWJ,WAAW,WAAaK,EAAAA,6BAAAA,CAAAA;IACnCC,WAAaN,EAAAA,UAAAA,CAAW,eAAe,EAAE;AAC3C;AAuBA,MAAMO,oBAAoB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAA+B,EAAA,GAAA;AACvE,IAAA,MAAMC,QAAQC,qBAAc,CAAA,gBAAA,EAAkB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAE5D,IAAA,IAAI,CAACA,KAAMG,CAAAA,OAAO,IAAIH,KAAAA,CAAMI,MAAM,EAAE;QAClC,OAAON,QAAAA;AACT;AAEA,IAAA,qBAAOO,cAACC,CAAAA,qBAAAA,EAAAA;AAAuB,QAAA,GAAGP,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AAC5C,CAAA;AAEA,MAAMS,iBAAAA,GAAoBC,aAAOC,CAAAA,gBAAAA,CAAI;;;;;;;;AAQrC,CAAC;AAED,MAAMH,qBAAwB,GAAA,CAAC,EAC7BR,QAAQ,EACRY,OAAO,EACPC,QAAQ,EACRC,IAAI,EACJC,IAAI,EACmB,GAAA;AACvB,IAAA,MAAM,EAAEC,IAAAA,EAAMC,cAAc,EAAE,GAAGC,+BAAAA,EAAAA;AACjC,IAAA,MAAMhB,QAAQC,qBAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,IAAA,MAAMiB,WAAWhB,qBAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEe,QAAQ,CAAA;AAErE,IAAA,MAAMC,gBAAgBlB,KAAMZ,CAAAA,KAAK,CAACuB,QAAS,CAAA,CAACQ,WAAW,KAAKP,IAAAA;AAC5D,IAAA,MAAMQ,kBAAqBP,GAAAA,IAAAA,GAAOA,IAAKb,CAAAA,KAAAA,CAAMqB,gBAAgB,CAAI,GAAA,IAAA;AACjE,IAAA,MAAMC,aACJP,GAAAA,cAAAA,EAAgBD,IAAMS,EAAAA,qBAAAA,IACtB,CAACvB,KAAAA,CAAMZ,KAAK,CAACuB,QAAS,CAAA,CAACa,WAAW,IAClCN,aACAE,IAAAA,kBAAAA;;AAGFK,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACJ,aAAe,EAAA;AAEpB,QAAA,MAAMK,gBAAgBC,MAAOC,CAAAA,gBAAgB,CAACC,QAASC,CAAAA,IAAI,EAAEC,QAAQ;AACrEF,QAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAG,QAAA;QAE/B,OAAO,IAAA;AACLF,YAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAGL,aAAAA;AACjC,SAAA;KACC,EAAA;AAACL,QAAAA;AAAc,KAAA,CAAA;AAElB,IAAA,MAAMY,SAAOT,gBAAMU,CAAAA,OAAO,CAAC,IAAMC,0BAAqBzB,QAAW,CAAA,EAAA;AAACA,QAAAA;AAAS,KAAA,CAAA;AAE3E,IAAA,MAAM0B,eACJC,MAAOC,CAAAA,IAAI,CAACxB,cAAgBD,EAAAA,IAAAA,EAAM0B,WAAW,EAAC,CAAA,CAAGC,MAAM,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,UAAU,CAAC,OAAA,CAAA,CAAA,CAC7EC,MAAM,GAAG,CAAA;AAEdnB,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIW,YAAc,EAAA;AAChB;;;;;;;AAOC,UACDpB,QAAS,CAAA;gBACP4B,IAAM,EAAA,uBAAA;gBACNC,OAAS,EAAA;oBAACC,sCAA6B1D,CAAAA,kBAAkB,CAAC2D;AAAa;AACzE,aAAA,CAAA;AACF;KACC,EAAA;AAAC/B,QAAAA,QAAAA;AAAUoB,QAAAA,YAAAA;AAAczB,QAAAA,IAAAA;AAAMD,QAAAA;AAAS,KAAA,CAAA;IAE3C,qBACEsC,eAAA,CAAAC,mBAAA,EAAA;;AACG5B,YAAAA,aAAAA,kBACCjB,cAAC8C,CAAAA,mBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAA9C,cAACE,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGL,0BAAA0C,eAAA,CAACG,qBAAQC,IAAI,EAAA;gBAACC,IAAMhC,EAAAA,aAAAA;;AAClB,kCAAAjB,cAAA,CAAC+C,qBAAQG,MAAM,EAAA;AAAEzD,wBAAAA,QAAAA,EAAAA;;oBAChBY,OAAQ,CAAA;AAAEwB,8BAAAA,MAAAA;AAAMlC,wBAAAA,KAAAA;AAAOiB,wBAAAA;AAAS,qBAAA;;;;;AAIzC,CAAA;AAaO,SAAS3B,UAAAA,CACdqB,QAAgB,EAChB6C,KAAQ,EAAA;AAMR,IAAA,MAAMC,OAAOD,KAAME,CAAAA,MAAM,CACvB,CAACC,KAAK/C,IAAMgD,EAAAA,KAAAA,GAAAA;QACV,MAAMC,IAAAA,GAAOjD,KAAKiD,IAAI;AAEtB,QAAA,IAAIA,QAAQF,GAAK,EAAA;YACf,MAAMG,KAAAA,CAAM,CAAC,UAAU,EAAEnD,QAAAA,CAAS,YAAY,EAAEC,IAAKiD,CAAAA,IAAI,CAAC,4BAA4B,CAAC,CAAA;AACzF;AAECF,QAAAA,GAAkB,CAACE,IAAK,CAAA,GAAG,CAAC,EAAE/D,QAAQ,EAAiC,GAAA;AACtE,YAAA,qBACEO,cAACR,CAAAA,iBAAAA,EAAAA;gBACCc,QAAUA,EAAAA,QAAAA;gBACVC,IAAMgD,EAAAA,KAAAA;AACNlD,gBAAAA,OAAAA,EAASE,KAAKF,OAAO;AACrBG,gBAAAA,IAAAA,EAAMD,KAAKC,IAAI;AAEdf,gBAAAA,QAAAA,EAAAA;;AAGP,SAAA;QAEA,IAAIc,IAAAA,CAAKmD,oBAAoB,EAAE;;YAE7BJ,GAAIK,CAAAA,KAAK,CAACC,kBAAkB,EAAA;AAC9B;QAEA,OAAON,GAAAA;KAET,EAAA;QAAEK,KAAO,EAAA;AAAEE,YAAAA,cAAAA,EAAgBV,MAAMZ,MAAM;AAAEqB,YAAAA,kBAAAA,EAAoBT,MAAMZ;AAAO;AAAE,KAAA,CAAA;IAK9E,OAAOa,IAAAA;AACT;;;;;"}
|
|
@@ -20,7 +20,7 @@ import { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants.mjs';
|
|
|
20
20
|
};
|
|
21
21
|
const GuidedTourTooltip = ({ children, ...props })=>{
|
|
22
22
|
const state = useGuidedTour('TooltipWrapper', (s)=>s.state);
|
|
23
|
-
if (!state.enabled) {
|
|
23
|
+
if (!state.enabled || state.hidden) {
|
|
24
24
|
return children;
|
|
25
25
|
}
|
|
26
26
|
return /*#__PURE__*/ jsx(GuidedTourTooltipImpl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tours.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport { type State, type Action, useGuidedTour, ValidTourName, CompletedActions } from './Context';\nimport { apiTokensSteps } from './Steps/ApiTokensSteps';\nimport { contentManagerSteps } from './Steps/ContentManagerSteps';\nimport { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps';\nimport { type Step, createStepComponents } from './Steps/Step';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),\n contentManager: createTour('contentManager', contentManagerSteps),\n apiTokens: createTour('apiTokens', apiTokensSteps),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\nexport type StepContentProps = {\n Step: Step;\n state: State;\n dispatch: React.Dispatch<Action>;\n};\ntype Content = (props: StepContentProps) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: CompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return children;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n const hasApiSchema =\n Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key) => key.startsWith('api::'))\n .length > 0;\n\n React.useEffect(() => {\n if (hasApiSchema) {\n /**\n * Fallback sync:\n *\n * When the user already has a schema (ie started project from template with seeded data),\n * allow them to proceed to the content manager tour.\n *\n * When the CTB fails to restart after saving a schema (as it often does)\n */\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n }\n }, [dispatch, hasApiSchema, step, tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content({ Step, state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\nexport type TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: CompletedActions) => boolean;\n excludeFromStepCount?: boolean;\n};\n\nexport function createTour<const T extends ReadonlyArray<TourStep<string>>>(\n tourName: string,\n steps: T\n) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce(\n (acc, step, index) => {\n const name = step.name as keyof Components;\n\n if (name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n (acc as Components)[name] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n if (step.excludeFromStepCount) {\n // Subtract all steps registered to be excluded from the step count\n acc._meta.displayedStepCount--;\n }\n\n return acc;\n },\n { _meta: { totalStepCount: steps.length, displayedStepCount: steps.length } } as Components & {\n _meta: { totalStepCount: number; displayedStepCount: number };\n }\n );\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["tours","contentTypeBuilder","createTour","contentTypeBuilderSteps","contentManager","contentManagerSteps","apiTokens","apiTokensSteps","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_jsx","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","content","tourName","step","when","data","guidedTourMeta","useGetGuidedTourMetaQuery","dispatch","isCurrentStep","currentStep","isStepConditionMet","completedActions","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","Step","useMemo","createStepComponents","hasApiSchema","Object","keys","schemas","filter","key","startsWith","length","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","createSchema","_jsxs","_Fragment","Portal","Popover","Root","open","Anchor","steps","tour","reduce","acc","index","name","Error","excludeFromStepCount","_meta","displayedStepCount","totalStepCount"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tours.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport { type State, type Action, useGuidedTour, ValidTourName, CompletedActions } from './Context';\nimport { apiTokensSteps } from './Steps/ApiTokensSteps';\nimport { contentManagerSteps } from './Steps/ContentManagerSteps';\nimport { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps';\nimport { type Step, createStepComponents } from './Steps/Step';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),\n contentManager: createTour('contentManager', contentManagerSteps),\n apiTokens: createTour('apiTokens', apiTokensSteps),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\nexport type StepContentProps = {\n Step: Step;\n state: State;\n dispatch: React.Dispatch<Action>;\n};\ntype Content = (props: StepContentProps) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: CompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled || state.hidden) {\n return children;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n const hasApiSchema =\n Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key) => key.startsWith('api::'))\n .length > 0;\n\n React.useEffect(() => {\n if (hasApiSchema) {\n /**\n * Fallback sync:\n *\n * When the user already has a schema (ie started project from template with seeded data),\n * allow them to proceed to the content manager tour.\n *\n * When the CTB fails to restart after saving a schema (as it often does)\n */\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n }\n }, [dispatch, hasApiSchema, step, tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content({ Step, state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\nexport type TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: CompletedActions) => boolean;\n excludeFromStepCount?: boolean;\n};\n\nexport function createTour<const T extends ReadonlyArray<TourStep<string>>>(\n tourName: string,\n steps: T\n) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce(\n (acc, step, index) => {\n const name = step.name as keyof Components;\n\n if (name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n (acc as Components)[name] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n if (step.excludeFromStepCount) {\n // Subtract all steps registered to be excluded from the step count\n acc._meta.displayedStepCount--;\n }\n\n return acc;\n },\n { _meta: { totalStepCount: steps.length, displayedStepCount: steps.length } } as Components & {\n _meta: { totalStepCount: number; displayedStepCount: number };\n }\n );\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["tours","contentTypeBuilder","createTour","contentTypeBuilderSteps","contentManager","contentManagerSteps","apiTokens","apiTokensSteps","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","hidden","_jsx","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","content","tourName","step","when","data","guidedTourMeta","useGetGuidedTourMetaQuery","dispatch","isCurrentStep","currentStep","isStepConditionMet","completedActions","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","Step","useMemo","createStepComponents","hasApiSchema","Object","keys","schemas","filter","key","startsWith","length","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","createSchema","_jsxs","_Fragment","Portal","Popover","Root","open","Anchor","steps","tour","reduce","acc","index","name","Error","excludeFromStepCount","_meta","displayedStepCount","totalStepCount"],"mappings":";;;;;;;;;;;;AAcA;;AAEkG,2GAE5FA,KAAQ,GAAA;AACZC,IAAAA,kBAAAA,EAAoBC,WAAW,oBAAsBC,EAAAA,uBAAAA,CAAAA;AACrDC,IAAAA,cAAAA,EAAgBF,WAAW,gBAAkBG,EAAAA,mBAAAA,CAAAA;AAC7CC,IAAAA,SAAAA,EAAWJ,WAAW,WAAaK,EAAAA,cAAAA,CAAAA;IACnCC,WAAaN,EAAAA,UAAAA,CAAW,eAAe,EAAE;AAC3C;AAuBA,MAAMO,oBAAoB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAA+B,EAAA,GAAA;AACvE,IAAA,MAAMC,QAAQC,aAAc,CAAA,gBAAA,EAAkB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAE5D,IAAA,IAAI,CAACA,KAAMG,CAAAA,OAAO,IAAIH,KAAAA,CAAMI,MAAM,EAAE;QAClC,OAAON,QAAAA;AACT;AAEA,IAAA,qBAAOO,GAACC,CAAAA,qBAAAA,EAAAA;AAAuB,QAAA,GAAGP,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AAC5C,CAAA;AAEA,MAAMS,iBAAAA,GAAoBC,MAAOC,CAAAA,GAAAA,CAAI;;;;;;;;AAQrC,CAAC;AAED,MAAMH,qBAAwB,GAAA,CAAC,EAC7BR,QAAQ,EACRY,OAAO,EACPC,QAAQ,EACRC,IAAI,EACJC,IAAI,EACmB,GAAA;AACvB,IAAA,MAAM,EAAEC,IAAAA,EAAMC,cAAc,EAAE,GAAGC,yBAAAA,EAAAA;AACjC,IAAA,MAAMhB,QAAQC,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,IAAA,MAAMiB,WAAWhB,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEe,QAAQ,CAAA;AAErE,IAAA,MAAMC,gBAAgBlB,KAAMZ,CAAAA,KAAK,CAACuB,QAAS,CAAA,CAACQ,WAAW,KAAKP,IAAAA;AAC5D,IAAA,MAAMQ,kBAAqBP,GAAAA,IAAAA,GAAOA,IAAKb,CAAAA,KAAAA,CAAMqB,gBAAgB,CAAI,GAAA,IAAA;AACjE,IAAA,MAAMC,aACJP,GAAAA,cAAAA,EAAgBD,IAAMS,EAAAA,qBAAAA,IACtB,CAACvB,KAAAA,CAAMZ,KAAK,CAACuB,QAAS,CAAA,CAACa,WAAW,IAClCN,aACAE,IAAAA,kBAAAA;;AAGFK,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACJ,aAAe,EAAA;AAEpB,QAAA,MAAMK,gBAAgBC,MAAOC,CAAAA,gBAAgB,CAACC,QAASC,CAAAA,IAAI,EAAEC,QAAQ;AACrEF,QAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAG,QAAA;QAE/B,OAAO,IAAA;AACLF,YAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAGL,aAAAA;AACjC,SAAA;KACC,EAAA;AAACL,QAAAA;AAAc,KAAA,CAAA;AAElB,IAAA,MAAMY,OAAOT,KAAMU,CAAAA,OAAO,CAAC,IAAMC,qBAAqBzB,QAAW,CAAA,EAAA;AAACA,QAAAA;AAAS,KAAA,CAAA;AAE3E,IAAA,MAAM0B,eACJC,MAAOC,CAAAA,IAAI,CAACxB,cAAgBD,EAAAA,IAAAA,EAAM0B,WAAW,EAAC,CAAA,CAAGC,MAAM,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,UAAU,CAAC,OAAA,CAAA,CAAA,CAC7EC,MAAM,GAAG,CAAA;AAEdnB,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAIW,YAAc,EAAA;AAChB;;;;;;;AAOC,UACDpB,QAAS,CAAA;gBACP4B,IAAM,EAAA,uBAAA;gBACNC,OAAS,EAAA;oBAACC,4BAA6B1D,CAAAA,kBAAkB,CAAC2D;AAAa;AACzE,aAAA,CAAA;AACF;KACC,EAAA;AAAC/B,QAAAA,QAAAA;AAAUoB,QAAAA,YAAAA;AAAczB,QAAAA,IAAAA;AAAMD,QAAAA;AAAS,KAAA,CAAA;IAE3C,qBACEsC,IAAA,CAAAC,QAAA,EAAA;;AACG5B,YAAAA,aAAAA,kBACCjB,GAAC8C,CAAAA,MAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAA9C,GAACE,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGL,0BAAA0C,IAAA,CAACG,QAAQC,IAAI,EAAA;gBAACC,IAAMhC,EAAAA,aAAAA;;AAClB,kCAAAjB,GAAA,CAAC+C,QAAQG,MAAM,EAAA;AAAEzD,wBAAAA,QAAAA,EAAAA;;oBAChBY,OAAQ,CAAA;AAAEwB,wBAAAA,IAAAA;AAAMlC,wBAAAA,KAAAA;AAAOiB,wBAAAA;AAAS,qBAAA;;;;;AAIzC,CAAA;AAaO,SAAS3B,UAAAA,CACdqB,QAAgB,EAChB6C,KAAQ,EAAA;AAMR,IAAA,MAAMC,OAAOD,KAAME,CAAAA,MAAM,CACvB,CAACC,KAAK/C,IAAMgD,EAAAA,KAAAA,GAAAA;QACV,MAAMC,IAAAA,GAAOjD,KAAKiD,IAAI;AAEtB,QAAA,IAAIA,QAAQF,GAAK,EAAA;YACf,MAAMG,KAAAA,CAAM,CAAC,UAAU,EAAEnD,QAAAA,CAAS,YAAY,EAAEC,IAAKiD,CAAAA,IAAI,CAAC,4BAA4B,CAAC,CAAA;AACzF;AAECF,QAAAA,GAAkB,CAACE,IAAK,CAAA,GAAG,CAAC,EAAE/D,QAAQ,EAAiC,GAAA;AACtE,YAAA,qBACEO,GAACR,CAAAA,iBAAAA,EAAAA;gBACCc,QAAUA,EAAAA,QAAAA;gBACVC,IAAMgD,EAAAA,KAAAA;AACNlD,gBAAAA,OAAAA,EAASE,KAAKF,OAAO;AACrBG,gBAAAA,IAAAA,EAAMD,KAAKC,IAAI;AAEdf,gBAAAA,QAAAA,EAAAA;;AAGP,SAAA;QAEA,IAAIc,IAAAA,CAAKmD,oBAAoB,EAAE;;YAE7BJ,GAAIK,CAAAA,KAAK,CAACC,kBAAkB,EAAA;AAC9B;QAEA,OAAON,GAAAA;KAET,EAAA;QAAEK,KAAO,EAAA;AAAEE,YAAAA,cAAAA,EAAgBV,MAAMZ,MAAM;AAAEqB,YAAAA,kBAAAA,EAAoBT,MAAMZ;AAAO;AAAE,KAAA,CAAA;IAK9E,OAAOa,IAAAA;AACT;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted"],"mappings":";;;;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,WAAAA,CAAAA;IAErC,OAAOE,aAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA;
|
|
1
|
+
{"version":3,"file":"migrations.js","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n tourType: undefined,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted","tourType","undefined"],"mappings":";;;;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,WAAAA,CAAAA;IAErC,OAAOE,aAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA,KAAA;oBACbC,QAAUC,EAAAA;AACZ,iBAAA;AACF;AACF,SAAA,CAAA;;QAGAb,eAAgBO,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACvB,YAAA,IAAI,CAACJ,gBAAAA,CAAiBK,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACxC,OAAOF,KAAAA,CAAMH,KAAK,CAACK,QAAS,CAAA;AAC9B;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.mjs","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted"],"mappings":";;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,KAAAA,CAAAA;IAErC,OAAOE,OAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA;
|
|
1
|
+
{"version":3,"file":"migrations.mjs","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n tourType: undefined,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted","tourType","undefined"],"mappings":";;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,KAAAA,CAAAA;IAErC,OAAOE,OAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA,KAAA;oBACbC,QAAUC,EAAAA;AACZ,iBAAA;AACF;AACF,SAAA,CAAA;;QAGAb,eAAgBO,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACvB,YAAA,IAAI,CAACJ,gBAAAA,CAAiBK,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACxC,OAAOF,KAAAA,CAAMH,KAAK,CAACK,QAAS,CAAA;AAC9B;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var theme = require('../../constants/theme.js');
|
|
6
7
|
|
|
7
8
|
const ActionLayout = ({ startActions, endActions })=>{
|
|
8
9
|
if (!startActions && !endActions) {
|
|
@@ -12,8 +13,8 @@ const ActionLayout = ({ startActions, endActions })=>{
|
|
|
12
13
|
justifyContent: "space-between",
|
|
13
14
|
alignItems: "flex-start",
|
|
14
15
|
paddingBottom: 4,
|
|
15
|
-
paddingLeft:
|
|
16
|
-
paddingRight:
|
|
16
|
+
paddingLeft: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
17
|
+
paddingRight: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
17
18
|
children: [
|
|
18
19
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
|
|
19
20
|
gap: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionLayout.js","sources":["../../../../../../admin/src/components/Layouts/ActionLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\n\ninterface ActionLayoutProps {\n endActions?: React.ReactNode;\n startActions?: React.ReactNode;\n}\n\nconst ActionLayout = ({ startActions, endActions }: ActionLayoutProps) => {\n if (!startActions && !endActions) {\n return null;\n }\n\n return (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n paddingBottom={4}\n paddingLeft={
|
|
1
|
+
{"version":3,"file":"ActionLayout.js","sources":["../../../../../../admin/src/components/Layouts/ActionLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\n\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\n\ninterface ActionLayoutProps {\n endActions?: React.ReactNode;\n startActions?: React.ReactNode;\n}\n\nconst ActionLayout = ({ startActions, endActions }: ActionLayoutProps) => {\n if (!startActions && !endActions) {\n return null;\n }\n\n return (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n paddingBottom={4}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n >\n <Flex gap={2} wrap=\"wrap\">\n {startActions}\n </Flex>\n\n <Flex gap={2} shrink={0} wrap=\"wrap\">\n {endActions}\n </Flex>\n </Flex>\n );\n};\n\nexport { ActionLayout, type ActionLayoutProps };\n"],"names":["ActionLayout","startActions","endActions","_jsxs","Flex","justifyContent","alignItems","paddingBottom","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","_jsx","gap","wrap","shrink"],"mappings":";;;;;;;AAWA,MAAMA,eAAe,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAqB,GAAA;IACnE,IAAI,CAACD,YAAgB,IAAA,CAACC,UAAY,EAAA;QAChC,OAAO,IAAA;AACT;AAEA,IAAA,qBACEC,eAACC,CAAAA,iBAAAA,EAAAA;QACCC,cAAe,EAAA,eAAA;QACfC,UAAW,EAAA,YAAA;QACXC,aAAe,EAAA,CAAA;QACfC,WAAaC,EAAAA,gCAAAA;QACbC,YAAcD,EAAAA,gCAAAA;;0BAEdE,cAACP,CAAAA,iBAAAA,EAAAA;gBAAKQ,GAAK,EAAA,CAAA;gBAAGC,IAAK,EAAA,MAAA;AAChBZ,gBAAAA,QAAAA,EAAAA;;0BAGHU,cAACP,CAAAA,iBAAAA,EAAAA;gBAAKQ,GAAK,EAAA,CAAA;gBAAGE,MAAQ,EAAA,CAAA;gBAAGD,IAAK,EAAA,MAAA;AAC3BX,gBAAAA,QAAAA,EAAAA;;;;AAIT;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import 'react';
|
|
3
3
|
import { Flex } from '@strapi/design-system';
|
|
4
|
+
import { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme.mjs';
|
|
4
5
|
|
|
5
6
|
const ActionLayout = ({ startActions, endActions })=>{
|
|
6
7
|
if (!startActions && !endActions) {
|
|
@@ -10,8 +11,8 @@ const ActionLayout = ({ startActions, endActions })=>{
|
|
|
10
11
|
justifyContent: "space-between",
|
|
11
12
|
alignItems: "flex-start",
|
|
12
13
|
paddingBottom: 4,
|
|
13
|
-
paddingLeft:
|
|
14
|
-
paddingRight:
|
|
14
|
+
paddingLeft: RESPONSIVE_DEFAULT_SPACING,
|
|
15
|
+
paddingRight: RESPONSIVE_DEFAULT_SPACING,
|
|
15
16
|
children: [
|
|
16
17
|
/*#__PURE__*/ jsx(Flex, {
|
|
17
18
|
gap: 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/ActionLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\n\ninterface ActionLayoutProps {\n endActions?: React.ReactNode;\n startActions?: React.ReactNode;\n}\n\nconst ActionLayout = ({ startActions, endActions }: ActionLayoutProps) => {\n if (!startActions && !endActions) {\n return null;\n }\n\n return (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n paddingBottom={4}\n paddingLeft={
|
|
1
|
+
{"version":3,"file":"ActionLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/ActionLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex } from '@strapi/design-system';\n\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\n\ninterface ActionLayoutProps {\n endActions?: React.ReactNode;\n startActions?: React.ReactNode;\n}\n\nconst ActionLayout = ({ startActions, endActions }: ActionLayoutProps) => {\n if (!startActions && !endActions) {\n return null;\n }\n\n return (\n <Flex\n justifyContent=\"space-between\"\n alignItems=\"flex-start\"\n paddingBottom={4}\n paddingLeft={RESPONSIVE_DEFAULT_SPACING}\n paddingRight={RESPONSIVE_DEFAULT_SPACING}\n >\n <Flex gap={2} wrap=\"wrap\">\n {startActions}\n </Flex>\n\n <Flex gap={2} shrink={0} wrap=\"wrap\">\n {endActions}\n </Flex>\n </Flex>\n );\n};\n\nexport { ActionLayout, type ActionLayoutProps };\n"],"names":["ActionLayout","startActions","endActions","_jsxs","Flex","justifyContent","alignItems","paddingBottom","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight","_jsx","gap","wrap","shrink"],"mappings":";;;;;AAWA,MAAMA,eAAe,CAAC,EAAEC,YAAY,EAAEC,UAAU,EAAqB,GAAA;IACnE,IAAI,CAACD,YAAgB,IAAA,CAACC,UAAY,EAAA;QAChC,OAAO,IAAA;AACT;AAEA,IAAA,qBACEC,IAACC,CAAAA,IAAAA,EAAAA;QACCC,cAAe,EAAA,eAAA;QACfC,UAAW,EAAA,YAAA;QACXC,aAAe,EAAA,CAAA;QACfC,WAAaC,EAAAA,0BAAAA;QACbC,YAAcD,EAAAA,0BAAAA;;0BAEdE,GAACP,CAAAA,IAAAA,EAAAA;gBAAKQ,GAAK,EAAA,CAAA;gBAAGC,IAAK,EAAA,MAAA;AAChBZ,gBAAAA,QAAAA,EAAAA;;0BAGHU,GAACP,CAAAA,IAAAA,EAAAA;gBAAKQ,GAAK,EAAA,CAAA;gBAAGE,MAAQ,EAAA,CAAA;gBAAGD,IAAK,EAAA,MAAA;AAC3BX,gBAAAA,QAAAA,EAAAA;;;;AAIT;;;;"}
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var theme = require('../../constants/theme.js');
|
|
6
7
|
|
|
7
8
|
const ContentLayout = ({ children })=>{
|
|
8
9
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
9
|
-
paddingLeft:
|
|
10
|
-
paddingRight:
|
|
10
|
+
paddingLeft: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
11
|
+
paddingRight: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
11
12
|
children: children
|
|
12
13
|
});
|
|
13
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentLayout.js","sources":["../../../../../../admin/src/components/Layouts/ContentLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n\ninterface ContentLayoutProps {\n children: React.ReactNode;\n}\n\nconst ContentLayout = ({ children }: ContentLayoutProps) => {\n return (\n <Box paddingLeft={
|
|
1
|
+
{"version":3,"file":"ContentLayout.js","sources":["../../../../../../admin/src/components/Layouts/ContentLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\n\ninterface ContentLayoutProps {\n children: React.ReactNode;\n}\n\nconst ContentLayout = ({ children }: ContentLayoutProps) => {\n return (\n <Box paddingLeft={RESPONSIVE_DEFAULT_SPACING} paddingRight={RESPONSIVE_DEFAULT_SPACING}>\n {children}\n </Box>\n );\n};\n\nexport { ContentLayout, type ContentLayoutProps };\n"],"names":["ContentLayout","children","_jsx","Box","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight"],"mappings":";;;;;;;AAUA,MAAMA,aAAgB,GAAA,CAAC,EAAEC,QAAQ,EAAsB,GAAA;AACrD,IAAA,qBACEC,cAACC,CAAAA,gBAAAA,EAAAA;QAAIC,WAAaC,EAAAA,gCAAAA;QAA4BC,YAAcD,EAAAA,gCAAAA;AACzDJ,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import 'react';
|
|
3
3
|
import { Box } from '@strapi/design-system';
|
|
4
|
+
import { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme.mjs';
|
|
4
5
|
|
|
5
6
|
const ContentLayout = ({ children })=>{
|
|
6
7
|
return /*#__PURE__*/ jsx(Box, {
|
|
7
|
-
paddingLeft:
|
|
8
|
-
paddingRight:
|
|
8
|
+
paddingLeft: RESPONSIVE_DEFAULT_SPACING,
|
|
9
|
+
paddingRight: RESPONSIVE_DEFAULT_SPACING,
|
|
9
10
|
children: children
|
|
10
11
|
});
|
|
11
12
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ContentLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/ContentLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n\ninterface ContentLayoutProps {\n children: React.ReactNode;\n}\n\nconst ContentLayout = ({ children }: ContentLayoutProps) => {\n return (\n <Box paddingLeft={
|
|
1
|
+
{"version":3,"file":"ContentLayout.mjs","sources":["../../../../../../admin/src/components/Layouts/ContentLayout.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box } from '@strapi/design-system';\n\nimport { RESPONSIVE_DEFAULT_SPACING } from '../../constants/theme';\n\ninterface ContentLayoutProps {\n children: React.ReactNode;\n}\n\nconst ContentLayout = ({ children }: ContentLayoutProps) => {\n return (\n <Box paddingLeft={RESPONSIVE_DEFAULT_SPACING} paddingRight={RESPONSIVE_DEFAULT_SPACING}>\n {children}\n </Box>\n );\n};\n\nexport { ContentLayout, type ContentLayoutProps };\n"],"names":["ContentLayout","children","_jsx","Box","paddingLeft","RESPONSIVE_DEFAULT_SPACING","paddingRight"],"mappings":";;;;;AAUA,MAAMA,aAAgB,GAAA,CAAC,EAAEC,QAAQ,EAAsB,GAAA;AACrD,IAAA,qBACEC,GAACC,CAAAA,GAAAA,EAAAA;QAAIC,WAAaC,EAAAA,0BAAAA;QAA4BC,YAAcD,EAAAA,0BAAAA;AACzDJ,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var designSystem = require('@strapi/design-system');
|
|
6
|
+
var theme = require('../../constants/theme.js');
|
|
6
7
|
var useElementOnScreen = require('../../hooks/useElementOnScreen.js');
|
|
7
8
|
|
|
8
9
|
function _interopNamespaceDefault(e) {
|
|
@@ -28,20 +29,27 @@ const BaseHeaderLayout = /*#__PURE__*/ React__namespace.forwardRef(({ navigation
|
|
|
28
29
|
const isSubtitleString = typeof subtitle === 'string';
|
|
29
30
|
if (sticky) {
|
|
30
31
|
return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
32
|
+
display: {
|
|
33
|
+
initial: 'none',
|
|
34
|
+
large: 'flex'
|
|
35
|
+
},
|
|
31
36
|
paddingLeft: 6,
|
|
32
37
|
paddingRight: 6,
|
|
33
|
-
paddingTop:
|
|
34
|
-
paddingBottom:
|
|
38
|
+
paddingTop: 2,
|
|
39
|
+
paddingBottom: 2,
|
|
35
40
|
position: "fixed",
|
|
36
41
|
top: 0,
|
|
37
|
-
right: 0,
|
|
38
42
|
background: "neutral0",
|
|
39
43
|
shadow: "tableShadow",
|
|
40
44
|
width: `${width}px`,
|
|
41
|
-
zIndex:
|
|
45
|
+
zIndex: 2,
|
|
46
|
+
minHeight: theme.HEIGHT_TOP_NAVIGATION,
|
|
42
47
|
"data-strapi-header-sticky": true,
|
|
43
48
|
children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
49
|
+
alignItems: "center",
|
|
44
50
|
justifyContent: "space-between",
|
|
51
|
+
wrap: "wrap",
|
|
52
|
+
width: "100%",
|
|
45
53
|
children: [
|
|
46
54
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
47
55
|
children: [
|
|
@@ -82,42 +90,58 @@ const BaseHeaderLayout = /*#__PURE__*/ React__namespace.forwardRef(({ navigation
|
|
|
82
90
|
}
|
|
83
91
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
|
|
84
92
|
ref: ref,
|
|
85
|
-
paddingLeft:
|
|
86
|
-
paddingRight:
|
|
87
|
-
paddingBottom:
|
|
88
|
-
|
|
93
|
+
paddingLeft: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
94
|
+
paddingRight: theme.RESPONSIVE_DEFAULT_SPACING,
|
|
95
|
+
paddingBottom: {
|
|
96
|
+
initial: 4,
|
|
97
|
+
large: 8
|
|
98
|
+
},
|
|
99
|
+
paddingTop: {
|
|
100
|
+
initial: 4,
|
|
101
|
+
large: navigationAction ? 6 : 8
|
|
102
|
+
},
|
|
89
103
|
background: "neutral100",
|
|
90
104
|
"data-strapi-header": true,
|
|
91
105
|
children: [
|
|
92
|
-
navigationAction ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
93
|
-
paddingBottom: 2,
|
|
94
|
-
children: navigationAction
|
|
95
|
-
}) : null,
|
|
96
106
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
97
|
-
|
|
107
|
+
direction: "column",
|
|
108
|
+
alignItems: "initial",
|
|
109
|
+
gap: 2,
|
|
98
110
|
children: [
|
|
111
|
+
navigationAction,
|
|
99
112
|
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
100
|
-
|
|
113
|
+
justifyContent: "space-between",
|
|
114
|
+
wrap: "wrap",
|
|
115
|
+
gap: 4,
|
|
101
116
|
children: [
|
|
102
|
-
/*#__PURE__*/ jsxRuntime.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
117
|
+
/*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
|
118
|
+
minWidth: 0,
|
|
119
|
+
children: [
|
|
120
|
+
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
121
|
+
tag: "h1",
|
|
122
|
+
variant: "alpha",
|
|
123
|
+
...props,
|
|
124
|
+
children: title
|
|
125
|
+
}),
|
|
126
|
+
secondaryAction ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
|
|
127
|
+
paddingLeft: 4,
|
|
128
|
+
children: secondaryAction
|
|
129
|
+
}) : null
|
|
130
|
+
]
|
|
107
131
|
}),
|
|
108
|
-
|
|
109
|
-
paddingLeft: 4,
|
|
110
|
-
children: secondaryAction
|
|
111
|
-
}) : null
|
|
132
|
+
primaryAction
|
|
112
133
|
]
|
|
113
|
-
})
|
|
114
|
-
primaryAction
|
|
134
|
+
})
|
|
115
135
|
]
|
|
116
136
|
}),
|
|
117
137
|
isSubtitleString ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
|
118
138
|
variant: "epsilon",
|
|
119
139
|
textColor: "neutral600",
|
|
120
140
|
tag: "p",
|
|
141
|
+
paddingTop: {
|
|
142
|
+
initial: 4,
|
|
143
|
+
large: 0
|
|
144
|
+
},
|
|
121
145
|
children: subtitle
|
|
122
146
|
}) : subtitle
|
|
123
147
|
]
|
|
@@ -132,25 +156,34 @@ const HeaderLayout = (props)=>{
|
|
|
132
156
|
rootMargin: '0px',
|
|
133
157
|
threshold: 0
|
|
134
158
|
});
|
|
135
|
-
useResizeObserver(
|
|
159
|
+
useResizeObserver([
|
|
160
|
+
containerRef
|
|
161
|
+
], ()=>{
|
|
136
162
|
if (containerRef.current) {
|
|
137
|
-
|
|
163
|
+
const newSize = containerRef.current.getBoundingClientRect();
|
|
164
|
+
setHeaderSize((prevSize)=>{
|
|
165
|
+
// Only update if size actually changed
|
|
166
|
+
if (!prevSize || prevSize.height !== newSize.height || prevSize.width !== newSize.width) {
|
|
167
|
+
return newSize;
|
|
168
|
+
}
|
|
169
|
+
return prevSize;
|
|
170
|
+
});
|
|
138
171
|
}
|
|
139
172
|
});
|
|
140
173
|
React__namespace.useEffect(()=>{
|
|
141
|
-
if (
|
|
142
|
-
setHeaderSize(
|
|
174
|
+
if (containerRef.current) {
|
|
175
|
+
setHeaderSize(containerRef.current.getBoundingClientRect());
|
|
143
176
|
}
|
|
144
177
|
}, [
|
|
145
|
-
|
|
178
|
+
containerRef
|
|
146
179
|
]);
|
|
147
|
-
return /*#__PURE__*/ jsxRuntime.jsxs(
|
|
180
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
181
|
+
ref: containerRef,
|
|
148
182
|
children: [
|
|
149
183
|
/*#__PURE__*/ jsxRuntime.jsx("div", {
|
|
150
184
|
style: {
|
|
151
185
|
height: headerSize?.height
|
|
152
186
|
},
|
|
153
|
-
ref: containerRef,
|
|
154
187
|
children: isVisible && /*#__PURE__*/ jsxRuntime.jsx(BaseHeaderLayout, {
|
|
155
188
|
ref: baseHeaderLayoutRef,
|
|
156
189
|
...props
|