@strapi/admin 5.19.0 → 5.20.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 (149) hide show
  1. package/dist/admin/admin/src/components/Filters.js +10 -1
  2. package/dist/admin/admin/src/components/Filters.js.map +1 -1
  3. package/dist/admin/admin/src/components/Filters.mjs +10 -1
  4. package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.js +18 -43
  6. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -0
  7. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.mjs +17 -42
  8. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -0
  9. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.js +10 -6
  10. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -0
  11. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.mjs +11 -7
  12. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -0
  13. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.js +6 -6
  14. package/dist/admin/admin/src/components/GuidedTour/Step.js.map +1 -0
  15. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.mjs +7 -7
  16. package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.js +10 -16
  18. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -0
  19. package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.mjs +11 -17
  20. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -0
  21. package/dist/admin/admin/src/components/LeftMenu.js +1 -1
  22. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  23. package/dist/admin/admin/src/components/LeftMenu.mjs +1 -1
  24. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/Providers.js +9 -10
  26. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  27. package/dist/admin/admin/src/components/Providers.mjs +9 -10
  28. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/SubNav.js +1 -1
  30. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  31. package/dist/admin/admin/src/components/SubNav.mjs +1 -1
  32. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  33. package/dist/admin/admin/src/core/apis/Widgets.js +34 -16
  34. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  35. package/dist/admin/admin/src/core/apis/Widgets.mjs +34 -16
  36. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  37. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  38. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  39. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -18
  40. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  41. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -18
  42. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  43. package/dist/admin/admin/src/pages/Auth/components/Register.js +0 -11
  44. package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
  45. package/dist/admin/admin/src/pages/Auth/components/Register.mjs +0 -11
  46. package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
  47. package/dist/admin/admin/src/pages/Home/HomePage.js +2 -3
  48. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  49. package/dist/admin/admin/src/pages/Home/HomePage.mjs +2 -3
  50. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  51. package/dist/admin/admin/src/pages/ProfilePage.js +2 -2
  52. package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
  53. package/dist/admin/admin/src/pages/ProfilePage.mjs +2 -2
  54. package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
  55. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +6 -6
  56. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  57. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +6 -6
  58. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +1 -7
  60. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +2 -8
  62. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -8
  64. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -8
  66. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +0 -2
  68. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +0 -2
  70. package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
  72. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
  74. package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
  75. package/dist/admin/admin/src/translations/en.json.js +7 -3
  76. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  77. package/dist/admin/admin/src/translations/en.json.mjs +7 -3
  78. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  79. package/dist/admin/admin/tests/utils.js +25 -28
  80. package/dist/admin/admin/tests/utils.js.map +1 -1
  81. package/dist/admin/admin/tests/utils.mjs +25 -28
  82. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  83. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -1
  84. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
  85. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -1
  86. package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
  87. package/dist/admin/index.js +2 -4
  88. package/dist/admin/index.js.map +1 -1
  89. package/dist/admin/index.mjs +1 -2
  90. package/dist/admin/index.mjs.map +1 -1
  91. package/dist/admin/src/components/Filters.d.ts +3 -1
  92. package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.d.ts +3 -3
  93. package/dist/admin/src/components/GuidedTour/Overview.d.ts +1 -0
  94. package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.d.ts +1 -1
  95. package/dist/admin/src/core/apis/Widgets.d.ts +8 -5
  96. package/dist/admin/src/features/Tracking.d.ts +1 -1
  97. package/dist/admin/src/index.d.ts +2 -3
  98. package/dist/admin/src/pages/Settings/components/Tokens/TokenBox.d.ts +1 -1
  99. package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
  100. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +9 -8
  101. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  102. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +9 -8
  103. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  104. package/dist/server/server/src/domain/user.js +3 -1
  105. package/dist/server/server/src/domain/user.js.map +1 -1
  106. package/dist/server/server/src/domain/user.mjs +3 -1
  107. package/dist/server/server/src/domain/user.mjs.map +1 -1
  108. package/dist/server/src/domain/user.d.ts.map +1 -1
  109. package/package.json +8 -9
  110. package/dist/admin/admin/src/components/GuidedTour/Homepage.js +0 -132
  111. package/dist/admin/admin/src/components/GuidedTour/Homepage.js.map +0 -1
  112. package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs +0 -130
  113. package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs.map +0 -1
  114. package/dist/admin/admin/src/components/GuidedTour/Modal.js +0 -278
  115. package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +0 -1
  116. package/dist/admin/admin/src/components/GuidedTour/Modal.mjs +0 -276
  117. package/dist/admin/admin/src/components/GuidedTour/Modal.mjs.map +0 -1
  118. package/dist/admin/admin/src/components/GuidedTour/Ornaments.js +0 -54
  119. package/dist/admin/admin/src/components/GuidedTour/Ornaments.js.map +0 -1
  120. package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs +0 -51
  121. package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs.map +0 -1
  122. package/dist/admin/admin/src/components/GuidedTour/Provider.js +0 -206
  123. package/dist/admin/admin/src/components/GuidedTour/Provider.js.map +0 -1
  124. package/dist/admin/admin/src/components/GuidedTour/Provider.mjs +0 -184
  125. package/dist/admin/admin/src/components/GuidedTour/Provider.mjs.map +0 -1
  126. package/dist/admin/admin/src/components/GuidedTour/constants.js +0 -167
  127. package/dist/admin/admin/src/components/GuidedTour/constants.js.map +0 -1
  128. package/dist/admin/admin/src/components/GuidedTour/constants.mjs +0 -164
  129. package/dist/admin/admin/src/components/GuidedTour/constants.mjs.map +0 -1
  130. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +0 -1
  131. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +0 -1
  132. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.js.map +0 -1
  133. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.mjs.map +0 -1
  134. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +0 -1
  135. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +0 -1
  136. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +0 -1
  137. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +0 -1
  138. package/dist/admin/admin/src/pages/Home/components/GuidedTour.js +0 -19
  139. package/dist/admin/admin/src/pages/Home/components/GuidedTour.js.map +0 -1
  140. package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs +0 -17
  141. package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs.map +0 -1
  142. package/dist/admin/src/components/GuidedTour/Homepage.d.ts +0 -2
  143. package/dist/admin/src/components/GuidedTour/Modal.d.ts +0 -2
  144. package/dist/admin/src/components/GuidedTour/Ornaments.d.ts +0 -13
  145. package/dist/admin/src/components/GuidedTour/Provider.d.ts +0 -39
  146. package/dist/admin/src/components/GuidedTour/constants.d.ts +0 -165
  147. package/dist/admin/src/components/UnstableGuidedTour/Overview.d.ts +0 -1
  148. package/dist/admin/src/pages/Home/components/GuidedTour.d.ts +0 -1
  149. /package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/admin",
3
- "version": "5.19.0",
3
+ "version": "5.20.0",
4
4
  "description": "Strapi Admin",
5
5
  "repository": {
6
6
  "type": "git",
@@ -86,10 +86,10 @@
86
86
  "@reduxjs/toolkit": "1.9.7",
87
87
  "@strapi/design-system": "2.0.0-rc.29",
88
88
  "@strapi/icons": "2.0.0-rc.29",
89
- "@strapi/permissions": "5.19.0",
90
- "@strapi/types": "5.19.0",
91
- "@strapi/typescript-utils": "5.19.0",
92
- "@strapi/utils": "5.19.0",
89
+ "@strapi/permissions": "5.20.0",
90
+ "@strapi/types": "5.20.0",
91
+ "@strapi/typescript-utils": "5.20.0",
92
+ "@strapi/utils": "5.20.0",
93
93
  "@testing-library/dom": "10.1.0",
94
94
  "@testing-library/react": "15.0.7",
95
95
  "@testing-library/user-event": "14.5.2",
@@ -118,7 +118,6 @@
118
118
  "koa-static": "5.0.0",
119
119
  "koa2-ratelimit": "^1.1.3",
120
120
  "lodash": "4.17.21",
121
- "node-schedule": "2.1.1",
122
121
  "ora": "5.4.1",
123
122
  "p-map": "4.0.0",
124
123
  "passport-local": "1.0.0",
@@ -141,11 +140,11 @@
141
140
  "typescript": "5.4.4",
142
141
  "use-context-selector": "1.4.1",
143
142
  "yup": "0.32.9",
144
- "zod": "3.24.2"
143
+ "zod": "3.25.67"
145
144
  },
146
145
  "devDependencies": {
147
- "@strapi/admin-test-utils": "5.19.0",
148
- "@strapi/data-transfer": "5.19.0",
146
+ "@strapi/admin-test-utils": "5.20.0",
147
+ "@strapi/data-transfer": "5.20.0",
149
148
  "@types/codemirror5": "npm:@types/codemirror@^5.60.15",
150
149
  "@types/fs-extra": "11.0.4",
151
150
  "@types/invariant": "2.2.36",
@@ -1,132 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var designSystem = require('@strapi/design-system');
5
- var icons = require('@strapi/icons');
6
- var reactIntl = require('react-intl');
7
- var reactRouterDom = require('react-router-dom');
8
- var Tracking = require('../../features/Tracking.js');
9
- var constants = require('./constants.js');
10
- var Ornaments = require('./Ornaments.js');
11
- var Provider = require('./Provider.js');
12
-
13
- const GuidedTourHomepage = ()=>{
14
- const guidedTourState = Provider.useGuidedTour('GuidedTourHomepage', (state)=>state.guidedTourState);
15
- const setSkipped = Provider.useGuidedTour('GuidedTourHomepage', (state)=>state.setSkipped);
16
- const { formatMessage } = reactIntl.useIntl();
17
- const { trackUsage } = Tracking.useTracking();
18
- const sections = Object.entries(constants.LAYOUT_DATA).map(([key, val])=>({
19
- key: key,
20
- title: val.home.title,
21
- content: /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
22
- onClick: ()=>trackUsage(val.home.trackingEvent),
23
- tag: reactRouterDom.NavLink,
24
- to: val.home.cta.target,
25
- endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ArrowRight, {}),
26
- children: formatMessage(val.home.cta.title)
27
- }),
28
- isDone: Object.values(guidedTourState[key]).every((value)=>value === true)
29
- }));
30
- const activeSectionIndex = sections.findIndex((section)=>!section.isDone);
31
- const handleSkip = ()=>{
32
- setSkipped(true);
33
- trackUsage('didSkipGuidedtour');
34
- };
35
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
36
- hasRadius: true,
37
- shadow: "tableShadow",
38
- paddingTop: 7,
39
- paddingRight: 4,
40
- paddingLeft: 7,
41
- paddingBottom: 4,
42
- background: "neutral0",
43
- children: [
44
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
45
- direction: "column",
46
- alignItems: "stretch",
47
- gap: 6,
48
- children: [
49
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
50
- variant: "beta",
51
- tag: "h2",
52
- children: formatMessage({
53
- id: 'app.components.GuidedTour.title',
54
- defaultMessage: '3 steps to get started'
55
- })
56
- }),
57
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
58
- children: sections.map((section, index)=>{
59
- const state = getState(activeSectionIndex, index);
60
- return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
61
- children: [
62
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
63
- children: [
64
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
65
- minWidth: `3rem`,
66
- marginRight: 5,
67
- children: /*#__PURE__*/ jsxRuntime.jsx(Ornaments.Number, {
68
- state: state,
69
- children: index + 1
70
- })
71
- }),
72
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
73
- variant: "delta",
74
- tag: "h3",
75
- children: formatMessage(section.title)
76
- })
77
- ]
78
- }),
79
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
80
- alignItems: "flex-start",
81
- children: [
82
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
83
- justifyContent: "center",
84
- minWidth: `3rem`,
85
- marginBottom: 3,
86
- marginTop: 3,
87
- marginRight: 5,
88
- children: index === sections.length - 1 ? null : /*#__PURE__*/ jsxRuntime.jsx(Ornaments.VerticalDivider, {
89
- state: state
90
- })
91
- }),
92
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
93
- marginTop: 2,
94
- children: state === constants.STATES.IS_ACTIVE ? section.content : null
95
- })
96
- ]
97
- })
98
- ]
99
- }, section.key);
100
- })
101
- })
102
- ]
103
- }),
104
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
105
- justifyContent: "flex-end",
106
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
107
- variant: "tertiary",
108
- onClick: handleSkip,
109
- children: formatMessage({
110
- id: 'app.components.GuidedTour.skip',
111
- defaultMessage: 'Skip the tour'
112
- })
113
- })
114
- })
115
- ]
116
- });
117
- };
118
- const getState = (activeSectionIndex, index)=>{
119
- if (activeSectionIndex === -1) {
120
- return constants.STATES.IS_DONE;
121
- }
122
- if (index < activeSectionIndex) {
123
- return constants.STATES.IS_DONE;
124
- }
125
- if (index > activeSectionIndex) {
126
- return constants.STATES.IS_NOT_DONE;
127
- }
128
- return constants.STATES.IS_ACTIVE;
129
- };
130
-
131
- exports.GuidedTourHomepage = GuidedTourHomepage;
132
- //# sourceMappingURL=Homepage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Homepage.js","sources":["../../../../../../admin/src/components/GuidedTour/Homepage.tsx"],"sourcesContent":["import { Box, Button, Flex, Typography, LinkButton } from '@strapi/design-system';\nimport { ArrowRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { LAYOUT_DATA, States, STATES } from './constants';\nimport { Number, VerticalDivider } from './Ornaments';\nimport { GuidedTourContextValue, useGuidedTour } from './Provider';\n\ntype SectionName = keyof GuidedTourContextValue['guidedTourState'];\n\nconst GuidedTourHomepage = () => {\n const guidedTourState = useGuidedTour('GuidedTourHomepage', (state) => state.guidedTourState);\n const setSkipped = useGuidedTour('GuidedTourHomepage', (state) => state.setSkipped);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const sections = Object.entries(LAYOUT_DATA).map(([key, val]) => ({\n key: key,\n title: val.home.title,\n content: (\n <LinkButton\n onClick={() => trackUsage(val.home.trackingEvent)}\n tag={NavLink}\n to={val.home.cta.target}\n endIcon={<ArrowRight />}\n >\n {formatMessage(val.home.cta.title)}\n </LinkButton>\n ),\n isDone: Object.values(guidedTourState[key as SectionName]).every((value) => value === true),\n }));\n\n const activeSectionIndex = sections.findIndex((section) => !section.isDone);\n\n const handleSkip = () => {\n setSkipped(true);\n trackUsage('didSkipGuidedtour');\n };\n\n return (\n <Box\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={7}\n paddingRight={4}\n paddingLeft={7}\n paddingBottom={4}\n background=\"neutral0\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.GuidedTour.title',\n defaultMessage: '3 steps to get started',\n })}\n </Typography>\n <Box>\n {sections.map((section, index) => {\n const state = getState(activeSectionIndex, index);\n\n return (\n <Box key={section.key}>\n <Flex>\n <Box minWidth={`3rem`} marginRight={5}>\n <Number state={state}>{index + 1}</Number>\n </Box>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.title)}\n </Typography>\n </Flex>\n <Flex alignItems=\"flex-start\">\n <Flex\n justifyContent=\"center\"\n minWidth={`3rem`}\n marginBottom={3}\n marginTop={3}\n marginRight={5}\n >\n {index === sections.length - 1 ? null : <VerticalDivider state={state} />}\n </Flex>\n <Box marginTop={2}>{state === STATES.IS_ACTIVE ? section.content : null}</Box>\n </Flex>\n </Box>\n );\n })}\n </Box>\n </Flex>\n <Flex justifyContent=\"flex-end\">\n <Button variant=\"tertiary\" onClick={handleSkip}>\n {formatMessage({ id: 'app.components.GuidedTour.skip', defaultMessage: 'Skip the tour' })}\n </Button>\n </Flex>\n </Box>\n );\n};\n\nconst getState = (activeSectionIndex: number, index: number): States => {\n if (activeSectionIndex === -1) {\n return STATES.IS_DONE;\n }\n if (index < activeSectionIndex) {\n return STATES.IS_DONE;\n }\n if (index > activeSectionIndex) {\n return STATES.IS_NOT_DONE;\n }\n return STATES.IS_ACTIVE;\n};\n\nexport { GuidedTourHomepage };\n"],"names":["GuidedTourHomepage","guidedTourState","useGuidedTour","state","setSkipped","formatMessage","useIntl","trackUsage","useTracking","sections","Object","entries","LAYOUT_DATA","map","key","val","title","home","content","_jsx","LinkButton","onClick","trackingEvent","tag","NavLink","to","cta","target","endIcon","ArrowRight","isDone","values","every","value","activeSectionIndex","findIndex","section","handleSkip","_jsxs","Box","hasRadius","shadow","paddingTop","paddingRight","paddingLeft","paddingBottom","background","Flex","direction","alignItems","gap","Typography","variant","id","defaultMessage","index","getState","minWidth","marginRight","Number","justifyContent","marginBottom","marginTop","length","VerticalDivider","STATES","IS_ACTIVE","Button","IS_DONE","IS_NOT_DONE"],"mappings":"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"}
@@ -1,130 +0,0 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { LinkButton, Box, Flex, Typography, Button } from '@strapi/design-system';
3
- import { ArrowRight } from '@strapi/icons';
4
- import { useIntl } from 'react-intl';
5
- import { NavLink } from 'react-router-dom';
6
- import { useTracking } from '../../features/Tracking.mjs';
7
- import { LAYOUT_DATA, STATES } from './constants.mjs';
8
- import { Number, VerticalDivider } from './Ornaments.mjs';
9
- import { useGuidedTour } from './Provider.mjs';
10
-
11
- const GuidedTourHomepage = ()=>{
12
- const guidedTourState = useGuidedTour('GuidedTourHomepage', (state)=>state.guidedTourState);
13
- const setSkipped = useGuidedTour('GuidedTourHomepage', (state)=>state.setSkipped);
14
- const { formatMessage } = useIntl();
15
- const { trackUsage } = useTracking();
16
- const sections = Object.entries(LAYOUT_DATA).map(([key, val])=>({
17
- key: key,
18
- title: val.home.title,
19
- content: /*#__PURE__*/ jsx(LinkButton, {
20
- onClick: ()=>trackUsage(val.home.trackingEvent),
21
- tag: NavLink,
22
- to: val.home.cta.target,
23
- endIcon: /*#__PURE__*/ jsx(ArrowRight, {}),
24
- children: formatMessage(val.home.cta.title)
25
- }),
26
- isDone: Object.values(guidedTourState[key]).every((value)=>value === true)
27
- }));
28
- const activeSectionIndex = sections.findIndex((section)=>!section.isDone);
29
- const handleSkip = ()=>{
30
- setSkipped(true);
31
- trackUsage('didSkipGuidedtour');
32
- };
33
- return /*#__PURE__*/ jsxs(Box, {
34
- hasRadius: true,
35
- shadow: "tableShadow",
36
- paddingTop: 7,
37
- paddingRight: 4,
38
- paddingLeft: 7,
39
- paddingBottom: 4,
40
- background: "neutral0",
41
- children: [
42
- /*#__PURE__*/ jsxs(Flex, {
43
- direction: "column",
44
- alignItems: "stretch",
45
- gap: 6,
46
- children: [
47
- /*#__PURE__*/ jsx(Typography, {
48
- variant: "beta",
49
- tag: "h2",
50
- children: formatMessage({
51
- id: 'app.components.GuidedTour.title',
52
- defaultMessage: '3 steps to get started'
53
- })
54
- }),
55
- /*#__PURE__*/ jsx(Box, {
56
- children: sections.map((section, index)=>{
57
- const state = getState(activeSectionIndex, index);
58
- return /*#__PURE__*/ jsxs(Box, {
59
- children: [
60
- /*#__PURE__*/ jsxs(Flex, {
61
- children: [
62
- /*#__PURE__*/ jsx(Box, {
63
- minWidth: `3rem`,
64
- marginRight: 5,
65
- children: /*#__PURE__*/ jsx(Number, {
66
- state: state,
67
- children: index + 1
68
- })
69
- }),
70
- /*#__PURE__*/ jsx(Typography, {
71
- variant: "delta",
72
- tag: "h3",
73
- children: formatMessage(section.title)
74
- })
75
- ]
76
- }),
77
- /*#__PURE__*/ jsxs(Flex, {
78
- alignItems: "flex-start",
79
- children: [
80
- /*#__PURE__*/ jsx(Flex, {
81
- justifyContent: "center",
82
- minWidth: `3rem`,
83
- marginBottom: 3,
84
- marginTop: 3,
85
- marginRight: 5,
86
- children: index === sections.length - 1 ? null : /*#__PURE__*/ jsx(VerticalDivider, {
87
- state: state
88
- })
89
- }),
90
- /*#__PURE__*/ jsx(Box, {
91
- marginTop: 2,
92
- children: state === STATES.IS_ACTIVE ? section.content : null
93
- })
94
- ]
95
- })
96
- ]
97
- }, section.key);
98
- })
99
- })
100
- ]
101
- }),
102
- /*#__PURE__*/ jsx(Flex, {
103
- justifyContent: "flex-end",
104
- children: /*#__PURE__*/ jsx(Button, {
105
- variant: "tertiary",
106
- onClick: handleSkip,
107
- children: formatMessage({
108
- id: 'app.components.GuidedTour.skip',
109
- defaultMessage: 'Skip the tour'
110
- })
111
- })
112
- })
113
- ]
114
- });
115
- };
116
- const getState = (activeSectionIndex, index)=>{
117
- if (activeSectionIndex === -1) {
118
- return STATES.IS_DONE;
119
- }
120
- if (index < activeSectionIndex) {
121
- return STATES.IS_DONE;
122
- }
123
- if (index > activeSectionIndex) {
124
- return STATES.IS_NOT_DONE;
125
- }
126
- return STATES.IS_ACTIVE;
127
- };
128
-
129
- export { GuidedTourHomepage };
130
- //# sourceMappingURL=Homepage.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Homepage.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Homepage.tsx"],"sourcesContent":["import { Box, Button, Flex, Typography, LinkButton } from '@strapi/design-system';\nimport { ArrowRight } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { NavLink } from 'react-router-dom';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { LAYOUT_DATA, States, STATES } from './constants';\nimport { Number, VerticalDivider } from './Ornaments';\nimport { GuidedTourContextValue, useGuidedTour } from './Provider';\n\ntype SectionName = keyof GuidedTourContextValue['guidedTourState'];\n\nconst GuidedTourHomepage = () => {\n const guidedTourState = useGuidedTour('GuidedTourHomepage', (state) => state.guidedTourState);\n const setSkipped = useGuidedTour('GuidedTourHomepage', (state) => state.setSkipped);\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const sections = Object.entries(LAYOUT_DATA).map(([key, val]) => ({\n key: key,\n title: val.home.title,\n content: (\n <LinkButton\n onClick={() => trackUsage(val.home.trackingEvent)}\n tag={NavLink}\n to={val.home.cta.target}\n endIcon={<ArrowRight />}\n >\n {formatMessage(val.home.cta.title)}\n </LinkButton>\n ),\n isDone: Object.values(guidedTourState[key as SectionName]).every((value) => value === true),\n }));\n\n const activeSectionIndex = sections.findIndex((section) => !section.isDone);\n\n const handleSkip = () => {\n setSkipped(true);\n trackUsage('didSkipGuidedtour');\n };\n\n return (\n <Box\n hasRadius\n shadow=\"tableShadow\"\n paddingTop={7}\n paddingRight={4}\n paddingLeft={7}\n paddingBottom={4}\n background=\"neutral0\"\n >\n <Flex direction=\"column\" alignItems=\"stretch\" gap={6}>\n <Typography variant=\"beta\" tag=\"h2\">\n {formatMessage({\n id: 'app.components.GuidedTour.title',\n defaultMessage: '3 steps to get started',\n })}\n </Typography>\n <Box>\n {sections.map((section, index) => {\n const state = getState(activeSectionIndex, index);\n\n return (\n <Box key={section.key}>\n <Flex>\n <Box minWidth={`3rem`} marginRight={5}>\n <Number state={state}>{index + 1}</Number>\n </Box>\n <Typography variant=\"delta\" tag=\"h3\">\n {formatMessage(section.title)}\n </Typography>\n </Flex>\n <Flex alignItems=\"flex-start\">\n <Flex\n justifyContent=\"center\"\n minWidth={`3rem`}\n marginBottom={3}\n marginTop={3}\n marginRight={5}\n >\n {index === sections.length - 1 ? null : <VerticalDivider state={state} />}\n </Flex>\n <Box marginTop={2}>{state === STATES.IS_ACTIVE ? section.content : null}</Box>\n </Flex>\n </Box>\n );\n })}\n </Box>\n </Flex>\n <Flex justifyContent=\"flex-end\">\n <Button variant=\"tertiary\" onClick={handleSkip}>\n {formatMessage({ id: 'app.components.GuidedTour.skip', defaultMessage: 'Skip the tour' })}\n </Button>\n </Flex>\n </Box>\n );\n};\n\nconst getState = (activeSectionIndex: number, index: number): States => {\n if (activeSectionIndex === -1) {\n return STATES.IS_DONE;\n }\n if (index < activeSectionIndex) {\n return STATES.IS_DONE;\n }\n if (index > activeSectionIndex) {\n return STATES.IS_NOT_DONE;\n }\n return STATES.IS_ACTIVE;\n};\n\nexport { GuidedTourHomepage };\n"],"names":["GuidedTourHomepage","guidedTourState","useGuidedTour","state","setSkipped","formatMessage","useIntl","trackUsage","useTracking","sections","Object","entries","LAYOUT_DATA","map","key","val","title","home","content","_jsx","LinkButton","onClick","trackingEvent","tag","NavLink","to","cta","target","endIcon","ArrowRight","isDone","values","every","value","activeSectionIndex","findIndex","section","handleSkip","_jsxs","Box","hasRadius","shadow","paddingTop","paddingRight","paddingLeft","paddingBottom","background","Flex","direction","alignItems","gap","Typography","variant","id","defaultMessage","index","getState","minWidth","marginRight","Number","justifyContent","marginBottom","marginTop","length","VerticalDivider","STATES","IS_ACTIVE","Button","IS_DONE","IS_NOT_DONE"],"mappings":"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"}
@@ -1,278 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- require('react');
5
- var designSystem = require('@strapi/design-system');
6
- var icons = require('@strapi/icons');
7
- var get = require('lodash/get');
8
- var reactIntl = require('react-intl');
9
- var reactRouterDom = require('react-router-dom');
10
- var styled = require('styled-components');
11
- var Tracking = require('../../features/Tracking.js');
12
- var constants = require('./constants.js');
13
- var Ornaments = require('./Ornaments.js');
14
- var Provider = require('./Provider.js');
15
-
16
- /* -------------------------------------------------------------------------------------------------
17
- * GuidedTourModal
18
- * -----------------------------------------------------------------------------------------------*/ const GuidedTourModal = ()=>{
19
- const guidedTour = Provider.useGuidedTour('GuidedTourModal', (state)=>state);
20
- const { currentStep, guidedTourState, setCurrentStep, setStepState, isGuidedTourVisible, setSkipped } = guidedTour;
21
- const { formatMessage } = reactIntl.useIntl();
22
- const { trackUsage } = Tracking.useTracking();
23
- if (!currentStep || !isGuidedTourVisible) {
24
- return null;
25
- }
26
- const stepData = get(constants.LAYOUT_DATA, currentStep);
27
- const sectionKeys = Object.keys(guidedTourState);
28
- const [sectionName, stepName] = currentStep.split('.');
29
- const sectionIndex = sectionKeys.indexOf(sectionName);
30
- const stepIndex = Object.keys(guidedTourState[sectionName]).indexOf(stepName);
31
- const hasSectionAfter = sectionIndex < sectionKeys.length - 1;
32
- const hasStepAfter = stepIndex < Object.keys(guidedTourState[sectionName]).length - 1;
33
- const handleCtaClick = ()=>{
34
- setStepState(currentStep, true);
35
- if (stepData) {
36
- trackUsage(stepData.trackingEvent);
37
- }
38
- setCurrentStep(null);
39
- };
40
- const handleSkip = ()=>{
41
- setSkipped(true);
42
- setCurrentStep(null);
43
- trackUsage('didSkipGuidedtour');
44
- };
45
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Portal, {
46
- children: /*#__PURE__*/ jsxRuntime.jsx(ModalWrapper, {
47
- onClick: handleCtaClick,
48
- padding: 8,
49
- justifyContent: "center",
50
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.FocusTrap, {
51
- onEscape: handleCtaClick,
52
- children: /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
53
- direction: "column",
54
- alignItems: "stretch",
55
- background: "neutral0",
56
- width: `66rem`,
57
- shadow: "popupShadow",
58
- hasRadius: true,
59
- padding: 4,
60
- gap: 8,
61
- role: "dialog",
62
- "aria-modal": true,
63
- onClick: (e)=>e.stopPropagation(),
64
- children: [
65
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
66
- justifyContent: "flex-end",
67
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
68
- onClick: handleCtaClick,
69
- withTooltip: false,
70
- label: formatMessage({
71
- id: 'app.utils.close-label',
72
- defaultMessage: 'Close'
73
- }),
74
- children: /*#__PURE__*/ jsxRuntime.jsx(icons.Cross, {})
75
- })
76
- }),
77
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
78
- paddingLeft: 7,
79
- paddingRight: 7,
80
- paddingBottom: !hasStepAfter && !hasSectionAfter ? 8 : 0,
81
- children: /*#__PURE__*/ jsxRuntime.jsx(GuidedTourStepper, {
82
- title: stepData && 'title' in stepData ? stepData.title : undefined,
83
- cta: stepData && 'cta' in stepData ? stepData.cta : undefined,
84
- onCtaClick: handleCtaClick,
85
- sectionIndex: sectionIndex,
86
- stepIndex: stepIndex,
87
- hasSectionAfter: hasSectionAfter,
88
- children: stepData && 'content' in stepData && /*#__PURE__*/ jsxRuntime.jsx(GuidedTourContent, {
89
- ...stepData.content
90
- })
91
- })
92
- }),
93
- !(!hasStepAfter && !hasSectionAfter) && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
94
- justifyContent: "flex-end",
95
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
96
- variant: "tertiary",
97
- onClick: handleSkip,
98
- children: formatMessage({
99
- id: 'app.components.GuidedTour.skip',
100
- defaultMessage: 'Skip the tour'
101
- })
102
- })
103
- })
104
- ]
105
- })
106
- })
107
- })
108
- });
109
- };
110
- const ModalWrapper = styled.styled(designSystem.Flex)`
111
- position: fixed;
112
- z-index: 4;
113
- inset: 0;
114
- /* this is theme.colors.neutral800 with opacity */
115
- background: ${({ theme })=>`${theme.colors.neutral800}1F`};
116
- `;
117
- const GuidedTourStepper = ({ title, children, cta, onCtaClick, sectionIndex, stepIndex, hasSectionAfter })=>{
118
- const { formatMessage } = reactIntl.useIntl();
119
- const hasSectionBefore = sectionIndex > 0;
120
- const hasStepsBefore = stepIndex > 0;
121
- const nextSectionIndex = sectionIndex + 1;
122
- return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
123
- children: [
124
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
125
- alignItems: "stretch",
126
- children: [
127
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
128
- marginRight: 8,
129
- justifyContent: "center",
130
- minWidth: `3rem`,
131
- children: hasSectionBefore && /*#__PURE__*/ jsxRuntime.jsx(Ornaments.VerticalDivider, {
132
- state: constants.STATES.IS_DONE,
133
- minHeight: `2.4rem`
134
- })
135
- }),
136
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
137
- variant: "sigma",
138
- textColor: "primary600",
139
- children: formatMessage({
140
- id: 'app.components.GuidedTour.title',
141
- defaultMessage: '3 steps to get started'
142
- })
143
- })
144
- ]
145
- }),
146
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
147
- children: [
148
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
149
- marginRight: 8,
150
- minWidth: `3rem`,
151
- children: /*#__PURE__*/ jsxRuntime.jsx(Ornaments.Number, {
152
- state: hasStepsBefore ? constants.STATES.IS_DONE : constants.STATES.IS_ACTIVE,
153
- paddingTop: 3,
154
- paddingBottom: 3,
155
- children: sectionIndex + 1
156
- })
157
- }),
158
- title && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
159
- variant: "alpha",
160
- fontWeight: "bold",
161
- textColor: "neutral800",
162
- tag: "h3",
163
- id: "title",
164
- children: formatMessage(title)
165
- })
166
- ]
167
- }),
168
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
169
- alignItems: "stretch",
170
- children: [
171
- /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
172
- marginRight: 8,
173
- direction: "column",
174
- justifyContent: "center",
175
- minWidth: `3rem`,
176
- children: hasSectionAfter && /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
177
- children: [
178
- /*#__PURE__*/ jsxRuntime.jsx(Ornaments.VerticalDivider, {
179
- state: constants.STATES.IS_DONE
180
- }),
181
- hasStepsBefore && /*#__PURE__*/ jsxRuntime.jsx(Ornaments.Number, {
182
- state: constants.STATES.IS_ACTIVE,
183
- paddingTop: 3,
184
- children: nextSectionIndex + 1
185
- })
186
- ]
187
- })
188
- }),
189
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Box, {
190
- children: [
191
- children,
192
- cta && (cta.target ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
193
- tag: reactRouterDom.NavLink,
194
- endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ArrowRight, {}),
195
- onClick: onCtaClick,
196
- to: cta.target,
197
- children: formatMessage(cta.title)
198
- }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
199
- endIcon: /*#__PURE__*/ jsxRuntime.jsx(icons.ArrowRight, {}),
200
- onClick: onCtaClick,
201
- children: formatMessage(cta.title)
202
- }))
203
- ]
204
- })
205
- ]
206
- }),
207
- hasStepsBefore && hasSectionAfter && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
208
- paddingTop: 3,
209
- children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
210
- marginRight: 8,
211
- justifyContent: "center",
212
- width: `3rem`,
213
- children: /*#__PURE__*/ jsxRuntime.jsx(Ornaments.VerticalDivider, {
214
- state: constants.STATES.IS_DONE,
215
- minHeight: `2.4rem`
216
- })
217
- })
218
- })
219
- ]
220
- });
221
- };
222
- const GuidedTourContent = ({ id, defaultMessage })=>{
223
- const { formatMessage } = reactIntl.useIntl();
224
- return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Flex, {
225
- direction: "column",
226
- alignItems: "stretch",
227
- gap: 4,
228
- paddingBottom: 6,
229
- children: formatMessage({
230
- id,
231
- defaultMessage
232
- }, {
233
- documentationLink: DocumentationLink,
234
- b: Bold,
235
- p: Paragraph,
236
- light: Light,
237
- ul: List,
238
- li: ListItem
239
- })
240
- });
241
- };
242
- const DocumentationLink = (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
243
- tag: "a",
244
- textColor: "primary600",
245
- target: "_blank",
246
- rel: "noopener noreferrer",
247
- href: "https://docs.strapi.io/developer-docs/latest/developer-resources/database-apis-reference/rest-api.html#api-parameters",
248
- children: children
249
- });
250
- const Bold = (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
251
- fontWeight: "semiBold",
252
- children: children
253
- });
254
- const Paragraph = (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
255
- children: children
256
- });
257
- const Light = (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
258
- textColor: "neutral600",
259
- children: children
260
- });
261
- const List = (children)=>/*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
262
- paddingLeft: 6,
263
- children: /*#__PURE__*/ jsxRuntime.jsx("ul", {
264
- children: children
265
- })
266
- });
267
- const LiStyled = styled.styled.li`
268
- list-style: disc;
269
- &::marker {
270
- color: ${({ theme })=>theme.colors.neutral800};
271
- }
272
- `;
273
- const ListItem = (children)=>/*#__PURE__*/ jsxRuntime.jsx(LiStyled, {
274
- children: children
275
- });
276
-
277
- exports.GuidedTourModal = GuidedTourModal;
278
- //# sourceMappingURL=Modal.js.map