@strapi/admin 5.17.0-beta.0 → 5.17.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.
Files changed (108) hide show
  1. package/dist/admin/admin/src/components/Providers.js +10 -5
  2. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  3. package/dist/admin/admin/src/components/Providers.mjs +10 -5
  4. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js +67 -0
  6. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +1 -0
  7. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs +44 -0
  8. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +1 -0
  9. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js +137 -0
  10. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +1 -0
  11. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs +116 -0
  12. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +1 -0
  13. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js +143 -0
  14. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +1 -0
  15. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs +121 -0
  16. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +1 -0
  17. package/dist/admin/admin/src/features/Tracking.js +0 -33
  18. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  19. package/dist/admin/admin/src/features/Tracking.mjs +0 -33
  20. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  21. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +15 -8
  22. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  23. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +15 -8
  24. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  25. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -3
  26. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  27. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -3
  28. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  29. package/dist/admin/admin/src/services/admin.js +17 -3
  30. package/dist/admin/admin/src/services/admin.js.map +1 -1
  31. package/dist/admin/admin/src/services/admin.mjs +17 -4
  32. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  33. package/dist/admin/admin/src/services/apiTokens.js +4 -2
  34. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  35. package/dist/admin/admin/src/services/apiTokens.mjs +4 -2
  36. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  37. package/dist/admin/admin/src/translations/en.json.js +6 -1
  38. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  39. package/dist/admin/admin/src/translations/en.json.mjs +6 -1
  40. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  41. package/dist/admin/index.js +2 -0
  42. package/dist/admin/index.js.map +1 -1
  43. package/dist/admin/index.mjs +1 -0
  44. package/dist/admin/index.mjs.map +1 -1
  45. package/dist/admin/src/components/UnstableGuidedTour/Context.d.ts +29 -0
  46. package/dist/admin/src/components/UnstableGuidedTour/Step.d.ts +35 -0
  47. package/dist/admin/src/components/UnstableGuidedTour/Tours.d.ts +27 -0
  48. package/dist/admin/src/features/Tracking.d.ts +9 -2
  49. package/dist/admin/src/index.d.ts +1 -0
  50. package/dist/admin/src/services/admin.d.ts +8 -8
  51. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  52. package/dist/ee/server/src/index.d.ts +2 -12
  53. package/dist/ee/server/src/index.d.ts.map +1 -1
  54. package/dist/ee/server/src/routes/index.d.ts +1 -6
  55. package/dist/ee/server/src/routes/index.d.ts.map +1 -1
  56. package/dist/ee/server/src/routes/license-limit.d.ts +1 -6
  57. package/dist/ee/server/src/routes/license-limit.d.ts.map +1 -1
  58. package/dist/server/ee/server/src/routes/license-limit.js +1 -12
  59. package/dist/server/ee/server/src/routes/license-limit.js.map +1 -1
  60. package/dist/server/ee/server/src/routes/license-limit.mjs +1 -12
  61. package/dist/server/ee/server/src/routes/license-limit.mjs.map +1 -1
  62. package/dist/server/server/src/bootstrap.js +4 -12
  63. package/dist/server/server/src/bootstrap.js.map +1 -1
  64. package/dist/server/server/src/bootstrap.mjs +4 -12
  65. package/dist/server/server/src/bootstrap.mjs.map +1 -1
  66. package/dist/server/server/src/controllers/admin.js +12 -1
  67. package/dist/server/server/src/controllers/admin.js.map +1 -1
  68. package/dist/server/server/src/controllers/admin.mjs +12 -1
  69. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  70. package/dist/server/server/src/routes/admin.js +10 -0
  71. package/dist/server/server/src/routes/admin.js.map +1 -1
  72. package/dist/server/server/src/routes/admin.mjs +10 -0
  73. package/dist/server/server/src/routes/admin.mjs.map +1 -1
  74. package/dist/server/server/src/services/constants.js +14 -0
  75. package/dist/server/server/src/services/constants.js.map +1 -1
  76. package/dist/server/server/src/services/constants.mjs +14 -0
  77. package/dist/server/server/src/services/constants.mjs.map +1 -1
  78. package/dist/server/server/src/services/guided-tour.js +43 -0
  79. package/dist/server/server/src/services/guided-tour.js.map +1 -0
  80. package/dist/server/server/src/services/guided-tour.mjs +41 -0
  81. package/dist/server/server/src/services/guided-tour.mjs.map +1 -0
  82. package/dist/server/server/src/services/index.js +3 -1
  83. package/dist/server/server/src/services/index.js.map +1 -1
  84. package/dist/server/server/src/services/index.mjs +3 -1
  85. package/dist/server/server/src/services/index.mjs.map +1 -1
  86. package/dist/server/server/src/services/user.js +28 -1
  87. package/dist/server/server/src/services/user.js.map +1 -1
  88. package/dist/server/server/src/services/user.mjs +28 -1
  89. package/dist/server/server/src/services/user.mjs.map +1 -1
  90. package/dist/server/src/bootstrap.d.ts.map +1 -1
  91. package/dist/server/src/controllers/admin.d.ts +6 -1
  92. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  93. package/dist/server/src/controllers/index.d.ts +6 -0
  94. package/dist/server/src/controllers/index.d.ts.map +1 -1
  95. package/dist/server/src/index.d.ts +12 -0
  96. package/dist/server/src/index.d.ts.map +1 -1
  97. package/dist/server/src/routes/admin.d.ts.map +1 -1
  98. package/dist/server/src/services/constants.d.ts +11 -1
  99. package/dist/server/src/services/constants.d.ts.map +1 -1
  100. package/dist/server/src/services/guided-tour.d.ts +12 -0
  101. package/dist/server/src/services/guided-tour.d.ts.map +1 -0
  102. package/dist/server/src/services/index.d.ts +6 -0
  103. package/dist/server/src/services/index.d.ts.map +1 -1
  104. package/dist/server/src/services/user.d.ts +1 -0
  105. package/dist/server/src/services/user.d.ts.map +1 -1
  106. package/dist/shared/contracts/admin.d.ts +15 -0
  107. package/dist/shared/contracts/admin.d.ts.map +1 -1
  108. package/package.json +9 -9
@@ -13,6 +13,8 @@ var Tracking = require('../features/Tracking.js');
13
13
  var Provider = require('./GuidedTour/Provider.js');
14
14
  var LanguageProvider = require('./LanguageProvider.js');
15
15
  var Theme = require('./Theme.js');
16
+ var Context = require('./UnstableGuidedTour/Context.js');
17
+ var Tours = require('./UnstableGuidedTour/Tours.js');
16
18
 
17
19
  const queryClient = new reactQuery.QueryClient({
18
20
  defaultOptions: {
@@ -49,11 +51,14 @@ const Providers = ({ children, strapi, store })=>{
49
51
  children: /*#__PURE__*/ jsxRuntime.jsx(Notifications.NotificationsProvider, {
50
52
  children: /*#__PURE__*/ jsxRuntime.jsx(Tracking.TrackingProvider, {
51
53
  children: /*#__PURE__*/ jsxRuntime.jsx(Provider.GuidedTourProvider, {
52
- children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
53
- defaultAuthLogo: strapi.configurations.authLogo,
54
- defaultMenuLogo: strapi.configurations.menuLogo,
55
- showReleaseNotification: strapi.configurations.notifications.releases,
56
- children: children
54
+ children: /*#__PURE__*/ jsxRuntime.jsx(Context.UnstableGuidedTourContext, {
55
+ tours: Tours.tours,
56
+ children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
57
+ defaultAuthLogo: strapi.configurations.authLogo,
58
+ defaultMenuLogo: strapi.configurations.menuLogo,
59
+ showReleaseNotification: strapi.configurations.notifications.releases,
60
+ children: children
61
+ })
57
62
  })
58
63
  })
59
64
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,2BAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\nimport { UnstableGuidedTourContext } from './UnstableGuidedTour/Context';\nimport { tours } from './UnstableGuidedTour/Tours';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext tours={tours}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","UnstableGuidedTourContext","tours","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,2BAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,iCAAAA,EAAAA;gDAA0BC,KAAOA,EAAAA,WAAAA;AAChC,gDAAA,QAAA,gBAAAlC,cAACmC,CAAAA,mCAAAA,EAAAA;oDACCC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;oDAC/CC,eAAiBxC,EAAAA,MAAAA,CAAO4B,cAAc,CAACa,QAAQ;AAC/CC,oDAAAA,uBAAAA,EAAyB1C,MAAO4B,CAAAA,cAAc,CAACe,aAAa,CAACC,QAAQ;AAEpE7C,oDAAAA,QAAAA,EAAAA;;;;;;;;;;;;;AAc7B;;;;"}
@@ -11,6 +11,8 @@ import { TrackingProvider } from '../features/Tracking.mjs';
11
11
  import { GuidedTourProvider } from './GuidedTour/Provider.mjs';
12
12
  import { LanguageProvider } from './LanguageProvider.mjs';
13
13
  import { Theme } from './Theme.mjs';
14
+ import { UnstableGuidedTourContext } from './UnstableGuidedTour/Context.mjs';
15
+ import { tours } from './UnstableGuidedTour/Tours.mjs';
14
16
 
15
17
  const queryClient = new QueryClient({
16
18
  defaultOptions: {
@@ -47,11 +49,14 @@ const Providers = ({ children, strapi, store })=>{
47
49
  children: /*#__PURE__*/ jsx(NotificationsProvider, {
48
50
  children: /*#__PURE__*/ jsx(TrackingProvider, {
49
51
  children: /*#__PURE__*/ jsx(GuidedTourProvider, {
50
- children: /*#__PURE__*/ jsx(ConfigurationProvider, {
51
- defaultAuthLogo: strapi.configurations.authLogo,
52
- defaultMenuLogo: strapi.configurations.menuLogo,
53
- showReleaseNotification: strapi.configurations.notifications.releases,
54
- children: children
52
+ children: /*#__PURE__*/ jsx(UnstableGuidedTourContext, {
53
+ tours: tours,
54
+ children: /*#__PURE__*/ jsx(ConfigurationProvider, {
55
+ defaultAuthLogo: strapi.configurations.authLogo,
56
+ defaultMenuLogo: strapi.configurations.menuLogo,
57
+ showReleaseNotification: strapi.configurations.notifications.releases,
58
+ children: children
59
+ })
55
60
  })
56
61
  })
57
62
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\nimport { UnstableGuidedTourContext } from './UnstableGuidedTour/Context';\nimport { tours } from './UnstableGuidedTour/Tours';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext tours={tours}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","UnstableGuidedTourContext","tours","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAqBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,yBAAAA,EAAAA;gDAA0BC,KAAOA,EAAAA,KAAAA;AAChC,gDAAA,QAAA,gBAAAlC,GAACmC,CAAAA,qBAAAA,EAAAA;oDACCC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;oDAC/CC,eAAiBxC,EAAAA,MAAAA,CAAO4B,cAAc,CAACa,QAAQ;AAC/CC,oDAAAA,uBAAAA,EAAyB1C,MAAO4B,CAAAA,cAAc,CAACe,aAAa,CAACC,QAAQ;AAEpE7C,oDAAAA,QAAAA,EAAAA;;;;;;;;;;;;;AAc7B;;;;"}
@@ -0,0 +1,67 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var immer = require('immer');
6
+ var Context = require('../Context.js');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ const [GuidedTourProviderImpl, unstableUseGuidedTour] = Context.createContext('UnstableGuidedTour');
28
+ function reducer(state, action) {
29
+ return immer.produce(state, (draft)=>{
30
+ if (action.type === 'next_step') {
31
+ const nextStep = draft.tours[action.payload].currentStep + 1;
32
+ draft.tours[action.payload].currentStep = nextStep;
33
+ draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;
34
+ // TODO: Update local storage
35
+ }
36
+ if (action.type === 'skip_tour') {
37
+ draft.tours[action.payload].isCompleted = true;
38
+ // TODO: Update local storage
39
+ }
40
+ });
41
+ }
42
+ const UnstableGuidedTourContext = ({ children, tours: registeredTours })=>{
43
+ // TODO: Get local storage to init state
44
+ // Derive the tour state from the tours object
45
+ const tours = Object.keys(registeredTours).reduce((acc, tourName)=>{
46
+ const tourLength = Object.keys(registeredTours[tourName]).length;
47
+ acc[tourName] = {
48
+ currentStep: 0,
49
+ length: tourLength,
50
+ isCompleted: false
51
+ };
52
+ return acc;
53
+ }, {});
54
+ const [state, dispatch] = React__namespace.useReducer(reducer, {
55
+ tours
56
+ });
57
+ return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourProviderImpl, {
58
+ state: state,
59
+ dispatch: dispatch,
60
+ children: children
61
+ });
62
+ };
63
+
64
+ exports.UnstableGuidedTourContext = UnstableGuidedTourContext;
65
+ exports.reducer = reducer;
66
+ exports.unstableUseGuidedTour = unstableUseGuidedTour;
67
+ //# sourceMappingURL=Context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.js","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Context.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { createContext } from '../Context';\n\nimport type { Tours } from './Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\ntype ValidTourName = keyof Tours;\n\ntype Action =\n | {\n type: 'next_step';\n payload: ValidTourName;\n }\n | {\n type: 'skip_tour';\n payload: ValidTourName;\n };\n\ntype Tour = Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>;\ntype State = {\n tours: Tour;\n};\n\nconst [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext<{\n state: State;\n dispatch: React.Dispatch<Action>;\n}>('UnstableGuidedTour');\n\nfunction reducer(state: State, action: Action): State {\n return produce(state, (draft) => {\n if (action.type === 'next_step') {\n const nextStep = draft.tours[action.payload].currentStep + 1;\n draft.tours[action.payload].currentStep = nextStep;\n draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;\n // TODO: Update local storage\n }\n\n if (action.type === 'skip_tour') {\n draft.tours[action.payload].isCompleted = true;\n // TODO: Update local storage\n }\n });\n}\n\nconst UnstableGuidedTourContext = ({\n children,\n tours: registeredTours,\n}: {\n children: React.ReactNode;\n // NOTE: Maybe we just import this directly instead of a prop?\n tours: Tours;\n}) => {\n // TODO: Get local storage to init state\n // Derive the tour state from the tours object\n const tours = Object.keys(registeredTours).reduce((acc, tourName) => {\n const tourLength = Object.keys(registeredTours[tourName as ValidTourName]).length;\n\n acc[tourName as ValidTourName] = {\n currentStep: 0,\n length: tourLength,\n isCompleted: false,\n };\n\n return acc;\n }, {} as Tour);\n\n const [state, dispatch] = React.useReducer(reducer, {\n tours,\n });\n\n return (\n <GuidedTourProviderImpl state={state} dispatch={dispatch}>\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\nexport type { Action, State, ValidTourName };\nexport { UnstableGuidedTourContext, unstableUseGuidedTour, reducer };\n"],"names":["GuidedTourProviderImpl","unstableUseGuidedTour","createContext","reducer","state","action","produce","draft","type","nextStep","tours","payload","currentStep","isCompleted","length","UnstableGuidedTourContext","children","registeredTours","Object","keys","reduce","acc","tourName","tourLength","dispatch","React","useReducer","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA6BA,MAAM,CAACA,sBAAAA,EAAwBC,qBAAsB,CAAA,GAAGC,qBAGrD,CAAA,oBAAA;AAEH,SAASC,OAAAA,CAAQC,KAAY,EAAEC,MAAc,EAAA;IAC3C,OAAOC,aAAAA,CAAQF,OAAO,CAACG,KAAAA,GAAAA;QACrB,IAAIF,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;YAC/B,MAAMC,QAAAA,GAAWF,MAAMG,KAAK,CAACL,OAAOM,OAAO,CAAC,CAACC,WAAW,GAAG,CAAA;AAC3DL,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACC,WAAW,GAAGH,QAAAA;AAC1CF,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAGJ,QAAaF,KAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACG,MAAM;;AAE3F;QAEA,IAAIT,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;AAC/BD,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAG,IAAA;;AAE5C;AACF,KAAA,CAAA;AACF;AAEA,MAAME,4BAA4B,CAAC,EACjCC,QAAQ,EACRN,KAAAA,EAAOO,eAAe,EAKvB,GAAA;;;IAGC,MAAMP,KAAAA,GAAQQ,OAAOC,IAAI,CAACF,iBAAiBG,MAAM,CAAC,CAACC,GAAKC,EAAAA,QAAAA,GAAAA;QACtD,MAAMC,UAAAA,GAAaL,OAAOC,IAAI,CAACF,eAAe,CAACK,QAAAA,CAA0B,EAAER,MAAM;QAEjFO,GAAG,CAACC,SAA0B,GAAG;YAC/BV,WAAa,EAAA,CAAA;YACbE,MAAQS,EAAAA,UAAAA;YACRV,WAAa,EAAA;AACf,SAAA;QAEA,OAAOQ,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AAEJ,IAAA,MAAM,CAACjB,KAAOoB,EAAAA,QAAAA,CAAS,GAAGC,gBAAMC,CAAAA,UAAU,CAACvB,OAAS,EAAA;AAClDO,QAAAA;AACF,KAAA,CAAA;AAEA,IAAA,qBACEiB,cAAC3B,CAAAA,sBAAAA,EAAAA;QAAuBI,KAAOA,EAAAA,KAAAA;QAAOoB,QAAUA,EAAAA,QAAAA;AAC7CR,QAAAA,QAAAA,EAAAA;;AAGP;;;;;;"}
@@ -0,0 +1,44 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { produce } from 'immer';
4
+ import { createContext } from '../Context.mjs';
5
+
6
+ const [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext('UnstableGuidedTour');
7
+ function reducer(state, action) {
8
+ return produce(state, (draft)=>{
9
+ if (action.type === 'next_step') {
10
+ const nextStep = draft.tours[action.payload].currentStep + 1;
11
+ draft.tours[action.payload].currentStep = nextStep;
12
+ draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;
13
+ // TODO: Update local storage
14
+ }
15
+ if (action.type === 'skip_tour') {
16
+ draft.tours[action.payload].isCompleted = true;
17
+ // TODO: Update local storage
18
+ }
19
+ });
20
+ }
21
+ const UnstableGuidedTourContext = ({ children, tours: registeredTours })=>{
22
+ // TODO: Get local storage to init state
23
+ // Derive the tour state from the tours object
24
+ const tours = Object.keys(registeredTours).reduce((acc, tourName)=>{
25
+ const tourLength = Object.keys(registeredTours[tourName]).length;
26
+ acc[tourName] = {
27
+ currentStep: 0,
28
+ length: tourLength,
29
+ isCompleted: false
30
+ };
31
+ return acc;
32
+ }, {});
33
+ const [state, dispatch] = React.useReducer(reducer, {
34
+ tours
35
+ });
36
+ return /*#__PURE__*/ jsx(GuidedTourProviderImpl, {
37
+ state: state,
38
+ dispatch: dispatch,
39
+ children: children
40
+ });
41
+ };
42
+
43
+ export { UnstableGuidedTourContext, reducer, unstableUseGuidedTour };
44
+ //# sourceMappingURL=Context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.mjs","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Context.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { createContext } from '../Context';\n\nimport type { Tours } from './Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\ntype ValidTourName = keyof Tours;\n\ntype Action =\n | {\n type: 'next_step';\n payload: ValidTourName;\n }\n | {\n type: 'skip_tour';\n payload: ValidTourName;\n };\n\ntype Tour = Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>;\ntype State = {\n tours: Tour;\n};\n\nconst [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext<{\n state: State;\n dispatch: React.Dispatch<Action>;\n}>('UnstableGuidedTour');\n\nfunction reducer(state: State, action: Action): State {\n return produce(state, (draft) => {\n if (action.type === 'next_step') {\n const nextStep = draft.tours[action.payload].currentStep + 1;\n draft.tours[action.payload].currentStep = nextStep;\n draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;\n // TODO: Update local storage\n }\n\n if (action.type === 'skip_tour') {\n draft.tours[action.payload].isCompleted = true;\n // TODO: Update local storage\n }\n });\n}\n\nconst UnstableGuidedTourContext = ({\n children,\n tours: registeredTours,\n}: {\n children: React.ReactNode;\n // NOTE: Maybe we just import this directly instead of a prop?\n tours: Tours;\n}) => {\n // TODO: Get local storage to init state\n // Derive the tour state from the tours object\n const tours = Object.keys(registeredTours).reduce((acc, tourName) => {\n const tourLength = Object.keys(registeredTours[tourName as ValidTourName]).length;\n\n acc[tourName as ValidTourName] = {\n currentStep: 0,\n length: tourLength,\n isCompleted: false,\n };\n\n return acc;\n }, {} as Tour);\n\n const [state, dispatch] = React.useReducer(reducer, {\n tours,\n });\n\n return (\n <GuidedTourProviderImpl state={state} dispatch={dispatch}>\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\nexport type { Action, State, ValidTourName };\nexport { UnstableGuidedTourContext, unstableUseGuidedTour, reducer };\n"],"names":["GuidedTourProviderImpl","unstableUseGuidedTour","createContext","reducer","state","action","produce","draft","type","nextStep","tours","payload","currentStep","isCompleted","length","UnstableGuidedTourContext","children","registeredTours","Object","keys","reduce","acc","tourName","tourLength","dispatch","React","useReducer","_jsx"],"mappings":";;;;;AA6BA,MAAM,CAACA,sBAAAA,EAAwBC,qBAAsB,CAAA,GAAGC,aAGrD,CAAA,oBAAA;AAEH,SAASC,OAAAA,CAAQC,KAAY,EAAEC,MAAc,EAAA;IAC3C,OAAOC,OAAAA,CAAQF,OAAO,CAACG,KAAAA,GAAAA;QACrB,IAAIF,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;YAC/B,MAAMC,QAAAA,GAAWF,MAAMG,KAAK,CAACL,OAAOM,OAAO,CAAC,CAACC,WAAW,GAAG,CAAA;AAC3DL,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACC,WAAW,GAAGH,QAAAA;AAC1CF,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAGJ,QAAaF,KAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACG,MAAM;;AAE3F;QAEA,IAAIT,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;AAC/BD,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAG,IAAA;;AAE5C;AACF,KAAA,CAAA;AACF;AAEA,MAAME,4BAA4B,CAAC,EACjCC,QAAQ,EACRN,KAAAA,EAAOO,eAAe,EAKvB,GAAA;;;IAGC,MAAMP,KAAAA,GAAQQ,OAAOC,IAAI,CAACF,iBAAiBG,MAAM,CAAC,CAACC,GAAKC,EAAAA,QAAAA,GAAAA;QACtD,MAAMC,UAAAA,GAAaL,OAAOC,IAAI,CAACF,eAAe,CAACK,QAAAA,CAA0B,EAAER,MAAM;QAEjFO,GAAG,CAACC,SAA0B,GAAG;YAC/BV,WAAa,EAAA,CAAA;YACbE,MAAQS,EAAAA,UAAAA;YACRV,WAAa,EAAA;AACf,SAAA;QAEA,OAAOQ,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;AAEJ,IAAA,MAAM,CAACjB,KAAOoB,EAAAA,QAAAA,CAAS,GAAGC,KAAMC,CAAAA,UAAU,CAACvB,OAAS,EAAA;AAClDO,QAAAA;AACF,KAAA,CAAA;AAEA,IAAA,qBACEiB,GAAC3B,CAAAA,sBAAAA,EAAAA;QAAuBI,KAAOA,EAAAA,KAAAA;QAAOoB,QAAUA,EAAAA,QAAAA;AAC7CR,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}
@@ -0,0 +1,137 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var designSystem = require('@strapi/design-system');
6
+ var reactIntl = require('react-intl');
7
+ var styled = require('styled-components');
8
+ var Context = require('./Context.js');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
28
+
29
+ const ActionsContainer = styled.styled(designSystem.Flex)`
30
+ border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
31
+ `;
32
+ const createStepComponents = (tourName)=>({
33
+ Root: /*#__PURE__*/ React__namespace.forwardRef((props, ref)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Popover.Content, {
34
+ ref: ref,
35
+ side: "top",
36
+ align: "center",
37
+ ...props,
38
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
39
+ width: "360px",
40
+ direction: "column",
41
+ alignItems: "start",
42
+ children: props.children
43
+ })
44
+ })),
45
+ Title: (props)=>{
46
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
47
+ paddingTop: 5,
48
+ paddingLeft: 5,
49
+ paddingRight: 5,
50
+ paddingBottom: 1,
51
+ width: "100%",
52
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
53
+ tag: "div",
54
+ variant: "omega",
55
+ fontWeight: "bold",
56
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
57
+ tagName: "h1",
58
+ id: props.id,
59
+ defaultMessage: props.defaultMessage
60
+ })
61
+ })
62
+ });
63
+ },
64
+ Content: (props)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
65
+ paddingBottom: 5,
66
+ paddingLeft: 5,
67
+ paddingRight: 5,
68
+ width: "100%",
69
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
70
+ tag: "div",
71
+ variant: "omega",
72
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
73
+ tagName: "p",
74
+ id: props.id,
75
+ defaultMessage: props.defaultMessage
76
+ })
77
+ })
78
+ }),
79
+ Actions: ({ showStepCount = true, showSkip = false, ...props })=>{
80
+ const dispatch = Context.unstableUseGuidedTour('GuidedTourPopover', (s)=>s.dispatch);
81
+ const state = Context.unstableUseGuidedTour('GuidedTourPopover', (s)=>s.state);
82
+ const currentStep = state.tours[tourName].currentStep + 1;
83
+ const tourLength = state.tours[tourName].length;
84
+ return /*#__PURE__*/ jsxRuntime.jsx(ActionsContainer, {
85
+ width: "100%",
86
+ padding: 3,
87
+ paddingLeft: 5,
88
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
89
+ flex: 1,
90
+ justifyContent: showStepCount ? 'space-between' : 'flex-end',
91
+ children: [
92
+ showStepCount && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
93
+ variant: "omega",
94
+ fontSize: "12px",
95
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
96
+ id: "tours.stepCount",
97
+ defaultMessage: "Step {currentStep} of {tourLength}",
98
+ values: {
99
+ currentStep,
100
+ tourLength
101
+ }
102
+ })
103
+ }),
104
+ /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
105
+ gap: 2,
106
+ children: [
107
+ showSkip && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
108
+ variant: "tertiary",
109
+ onClick: ()=>dispatch({
110
+ type: 'skip_tour',
111
+ payload: tourName
112
+ }),
113
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
114
+ id: "tours.skip",
115
+ defaultMessage: "Skip"
116
+ })
117
+ }),
118
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
119
+ onClick: ()=>dispatch({
120
+ type: 'next_step',
121
+ payload: tourName
122
+ }),
123
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
124
+ id: "tours.next",
125
+ defaultMessage: "Next"
126
+ })
127
+ })
128
+ ]
129
+ })
130
+ ]
131
+ })
132
+ });
133
+ }
134
+ });
135
+
136
+ exports.createStepComponents = createStepComponents;
137
+ //# sourceMappingURL=Step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Step.js","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Step.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Popover, Box, Flex, Button, Typography } from '@strapi/design-system';\nimport { FormattedMessage, type MessageDescriptor } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { unstableUseGuidedTour, ValidTourName } from './Context';\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};\n\ntype WithActionsChildren = {\n children: React.ReactNode;\n showStepCount?: boolean;\n showSkip?: boolean;\n};\n\ntype WithActionsProps = {\n children?: undefined;\n showStepCount?: boolean;\n showSkip?: boolean;\n};\n\ntype StepProps = WithChildren | WithIntl;\ntype ActionsProps = WithActionsChildren | WithActionsProps;\n\ntype Step = {\n Root: React.ForwardRefExoticComponent<React.ComponentProps<typeof Popover.Content>>;\n Title: (props: StepProps) => React.ReactNode;\n Content: (props: StepProps) => React.ReactNode;\n Actions: (props: ActionsProps) => React.ReactNode;\n};\n\nconst ActionsContainer = styled(Flex)`\n border-top: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n`;\n\nconst createStepComponents = (tourName: ValidTourName): Step => ({\n Root: React.forwardRef((props, ref) => (\n <Popover.Content ref={ref} side=\"top\" align=\"center\" {...props}>\n <Flex width=\"360px\" direction=\"column\" alignItems=\"start\">\n {props.children}\n </Flex>\n </Popover.Content>\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=\"div\" variant=\"omega\" fontWeight=\"bold\">\n <FormattedMessage tagName=\"h1\" 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 tagName=\"p\" id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n ),\n\n Actions: ({ showStepCount = true, showSkip = false, ...props }) => {\n const dispatch = unstableUseGuidedTour('GuidedTourPopover', (s) => s.dispatch);\n const state = unstableUseGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = state.tours[tourName].currentStep + 1;\n const tourLength = state.tours[tourName].length;\n\n return (\n <ActionsContainer width=\"100%\" padding={3} paddingLeft={5}>\n {'children' in props ? (\n props.children\n ) : (\n <Flex flex={1} justifyContent={showStepCount ? 'space-between' : 'flex-end'}>\n {showStepCount && (\n <Typography variant=\"omega\" fontSize=\"12px\">\n <FormattedMessage\n id=\"tours.stepCount\"\n defaultMessage=\"Step {currentStep} of {tourLength}\"\n values={{ currentStep, tourLength }}\n />\n </Typography>\n )}\n <Flex gap={2}>\n {showSkip && (\n <Button\n variant=\"tertiary\"\n onClick={() => dispatch({ type: 'skip_tour', payload: tourName })}\n >\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\n </Button>\n )}\n <Button onClick={() => dispatch({ type: 'next_step', payload: tourName })}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </Button>\n </Flex>\n </Flex>\n )}\n </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents };\n"],"names":["ActionsContainer","styled","Flex","theme","colors","neutral150","createStepComponents","tourName","Root","React","forwardRef","props","ref","_jsx","Popover","Content","side","align","width","direction","alignItems","children","Title","Box","paddingTop","paddingLeft","paddingRight","paddingBottom","Typography","tag","variant","fontWeight","FormattedMessage","tagName","id","defaultMessage","Actions","showStepCount","showSkip","dispatch","unstableUseGuidedTour","s","state","currentStep","tours","tourLength","length","padding","_jsxs","flex","justifyContent","fontSize","values","gap","Button","onClick","type","payload"],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Flex, Popover, Box, Typography, Button } from '@strapi/design-system';
4
+ import { FormattedMessage } from 'react-intl';
5
+ import { styled } from 'styled-components';
6
+ import { unstableUseGuidedTour } from './Context.mjs';
7
+
8
+ const ActionsContainer = styled(Flex)`
9
+ border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
10
+ `;
11
+ const createStepComponents = (tourName)=>({
12
+ Root: /*#__PURE__*/ React.forwardRef((props, ref)=>/*#__PURE__*/ jsx(Popover.Content, {
13
+ ref: ref,
14
+ side: "top",
15
+ align: "center",
16
+ ...props,
17
+ children: /*#__PURE__*/ jsx(Flex, {
18
+ width: "360px",
19
+ direction: "column",
20
+ alignItems: "start",
21
+ children: props.children
22
+ })
23
+ })),
24
+ Title: (props)=>{
25
+ return /*#__PURE__*/ jsx(Box, {
26
+ paddingTop: 5,
27
+ paddingLeft: 5,
28
+ paddingRight: 5,
29
+ paddingBottom: 1,
30
+ width: "100%",
31
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsx(Typography, {
32
+ tag: "div",
33
+ variant: "omega",
34
+ fontWeight: "bold",
35
+ children: /*#__PURE__*/ jsx(FormattedMessage, {
36
+ tagName: "h1",
37
+ id: props.id,
38
+ defaultMessage: props.defaultMessage
39
+ })
40
+ })
41
+ });
42
+ },
43
+ Content: (props)=>/*#__PURE__*/ jsx(Box, {
44
+ paddingBottom: 5,
45
+ paddingLeft: 5,
46
+ paddingRight: 5,
47
+ width: "100%",
48
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsx(Typography, {
49
+ tag: "div",
50
+ variant: "omega",
51
+ children: /*#__PURE__*/ jsx(FormattedMessage, {
52
+ tagName: "p",
53
+ id: props.id,
54
+ defaultMessage: props.defaultMessage
55
+ })
56
+ })
57
+ }),
58
+ Actions: ({ showStepCount = true, showSkip = false, ...props })=>{
59
+ const dispatch = unstableUseGuidedTour('GuidedTourPopover', (s)=>s.dispatch);
60
+ const state = unstableUseGuidedTour('GuidedTourPopover', (s)=>s.state);
61
+ const currentStep = state.tours[tourName].currentStep + 1;
62
+ const tourLength = state.tours[tourName].length;
63
+ return /*#__PURE__*/ jsx(ActionsContainer, {
64
+ width: "100%",
65
+ padding: 3,
66
+ paddingLeft: 5,
67
+ children: 'children' in props ? props.children : /*#__PURE__*/ jsxs(Flex, {
68
+ flex: 1,
69
+ justifyContent: showStepCount ? 'space-between' : 'flex-end',
70
+ children: [
71
+ showStepCount && /*#__PURE__*/ jsx(Typography, {
72
+ variant: "omega",
73
+ fontSize: "12px",
74
+ children: /*#__PURE__*/ jsx(FormattedMessage, {
75
+ id: "tours.stepCount",
76
+ defaultMessage: "Step {currentStep} of {tourLength}",
77
+ values: {
78
+ currentStep,
79
+ tourLength
80
+ }
81
+ })
82
+ }),
83
+ /*#__PURE__*/ jsxs(Flex, {
84
+ gap: 2,
85
+ children: [
86
+ showSkip && /*#__PURE__*/ jsx(Button, {
87
+ variant: "tertiary",
88
+ onClick: ()=>dispatch({
89
+ type: 'skip_tour',
90
+ payload: tourName
91
+ }),
92
+ children: /*#__PURE__*/ jsx(FormattedMessage, {
93
+ id: "tours.skip",
94
+ defaultMessage: "Skip"
95
+ })
96
+ }),
97
+ /*#__PURE__*/ jsx(Button, {
98
+ onClick: ()=>dispatch({
99
+ type: 'next_step',
100
+ payload: tourName
101
+ }),
102
+ children: /*#__PURE__*/ jsx(FormattedMessage, {
103
+ id: "tours.next",
104
+ defaultMessage: "Next"
105
+ })
106
+ })
107
+ ]
108
+ })
109
+ ]
110
+ })
111
+ });
112
+ }
113
+ });
114
+
115
+ export { createStepComponents };
116
+ //# sourceMappingURL=Step.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Step.mjs","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Step.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Popover, Box, Flex, Button, Typography } from '@strapi/design-system';\nimport { FormattedMessage, type MessageDescriptor } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { unstableUseGuidedTour, ValidTourName } from './Context';\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};\n\ntype WithActionsChildren = {\n children: React.ReactNode;\n showStepCount?: boolean;\n showSkip?: boolean;\n};\n\ntype WithActionsProps = {\n children?: undefined;\n showStepCount?: boolean;\n showSkip?: boolean;\n};\n\ntype StepProps = WithChildren | WithIntl;\ntype ActionsProps = WithActionsChildren | WithActionsProps;\n\ntype Step = {\n Root: React.ForwardRefExoticComponent<React.ComponentProps<typeof Popover.Content>>;\n Title: (props: StepProps) => React.ReactNode;\n Content: (props: StepProps) => React.ReactNode;\n Actions: (props: ActionsProps) => React.ReactNode;\n};\n\nconst ActionsContainer = styled(Flex)`\n border-top: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n`;\n\nconst createStepComponents = (tourName: ValidTourName): Step => ({\n Root: React.forwardRef((props, ref) => (\n <Popover.Content ref={ref} side=\"top\" align=\"center\" {...props}>\n <Flex width=\"360px\" direction=\"column\" alignItems=\"start\">\n {props.children}\n </Flex>\n </Popover.Content>\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=\"div\" variant=\"omega\" fontWeight=\"bold\">\n <FormattedMessage tagName=\"h1\" 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 tagName=\"p\" id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n ),\n\n Actions: ({ showStepCount = true, showSkip = false, ...props }) => {\n const dispatch = unstableUseGuidedTour('GuidedTourPopover', (s) => s.dispatch);\n const state = unstableUseGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = state.tours[tourName].currentStep + 1;\n const tourLength = state.tours[tourName].length;\n\n return (\n <ActionsContainer width=\"100%\" padding={3} paddingLeft={5}>\n {'children' in props ? (\n props.children\n ) : (\n <Flex flex={1} justifyContent={showStepCount ? 'space-between' : 'flex-end'}>\n {showStepCount && (\n <Typography variant=\"omega\" fontSize=\"12px\">\n <FormattedMessage\n id=\"tours.stepCount\"\n defaultMessage=\"Step {currentStep} of {tourLength}\"\n values={{ currentStep, tourLength }}\n />\n </Typography>\n )}\n <Flex gap={2}>\n {showSkip && (\n <Button\n variant=\"tertiary\"\n onClick={() => dispatch({ type: 'skip_tour', payload: tourName })}\n >\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\n </Button>\n )}\n <Button onClick={() => dispatch({ type: 'next_step', payload: tourName })}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </Button>\n </Flex>\n </Flex>\n )}\n </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents };\n"],"names":["ActionsContainer","styled","Flex","theme","colors","neutral150","createStepComponents","tourName","Root","React","forwardRef","props","ref","_jsx","Popover","Content","side","align","width","direction","alignItems","children","Title","Box","paddingTop","paddingLeft","paddingRight","paddingBottom","Typography","tag","variant","fontWeight","FormattedMessage","tagName","id","defaultMessage","Actions","showStepCount","showSkip","dispatch","unstableUseGuidedTour","s","state","currentStep","tours","tourLength","length","padding","_jsxs","flex","justifyContent","fontSize","values","gap","Button","onClick","type","payload"],"mappings":"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"}