@strapi/admin 5.21.0 → 5.23.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 (132) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +38 -8
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +36 -6
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/GuidedTour/Context.js +23 -8
  6. package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
  7. package/dist/admin/admin/src/components/GuidedTour/Context.mjs +23 -8
  8. package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/GuidedTour/Overview.js +7 -5
  10. package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
  11. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +7 -5
  12. package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js +156 -0
  14. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -0
  15. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +154 -0
  16. package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js +221 -0
  18. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -0
  19. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs +219 -0
  20. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -0
  21. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +219 -0
  22. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -0
  23. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +217 -0
  24. package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -0
  25. package/dist/admin/admin/src/components/GuidedTour/{Step.js → Steps/Step.js} +116 -71
  26. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -0
  27. package/dist/admin/admin/src/components/GuidedTour/{Step.mjs → Steps/Step.mjs} +117 -74
  28. package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -0
  29. package/dist/admin/admin/src/components/GuidedTour/Tours.js +47 -322
  30. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  31. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +48 -324
  32. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js +19 -0
  34. package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -0
  35. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs +17 -0
  36. package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -0
  37. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +31 -0
  38. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -0
  39. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +29 -0
  40. package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -0
  41. package/dist/admin/admin/src/components/SubNav.js +3 -1
  42. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  43. package/dist/admin/admin/src/components/SubNav.mjs +3 -1
  44. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Widgets.js +27 -9
  46. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  47. package/dist/admin/admin/src/components/Widgets.mjs +28 -10
  48. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  49. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  50. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  51. package/dist/admin/admin/src/pages/Home/HomePage.js +40 -33
  52. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  53. package/dist/admin/admin/src/pages/Home/HomePage.mjs +41 -34
  54. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  55. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +17 -14
  56. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
  57. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +17 -14
  58. package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +31 -6
  60. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +12 -6
  62. package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +28 -24
  64. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +28 -24
  66. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  68. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +56 -57
  70. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +57 -58
  72. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  73. package/dist/admin/admin/src/services/apiTokens.js +0 -1
  74. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  75. package/dist/admin/admin/src/services/apiTokens.mjs +0 -1
  76. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  77. package/dist/admin/admin/src/translations/en.json.js +35 -21
  78. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  79. package/dist/admin/admin/src/translations/en.json.mjs +35 -21
  80. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  81. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +131 -0
  82. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -0
  83. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs +129 -0
  84. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -0
  85. package/dist/admin/ee/admin/src/constants.js +3 -1
  86. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  87. package/dist/admin/ee/admin/src/constants.mjs +3 -2
  88. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  89. package/dist/admin/index.js +6 -2
  90. package/dist/admin/index.js.map +1 -1
  91. package/dist/admin/index.mjs +2 -0
  92. package/dist/admin/index.mjs.map +1 -1
  93. package/dist/admin/src/components/GuidedTour/Context.d.ts +26 -9
  94. package/dist/admin/src/components/GuidedTour/Steps/ApiTokensSteps.d.ts +20 -0
  95. package/dist/admin/src/components/GuidedTour/Steps/ContentManagerSteps.d.ts +21 -0
  96. package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +30 -0
  97. package/dist/admin/src/components/GuidedTour/{Step.d.ts → Steps/Step.d.ts} +25 -6
  98. package/dist/admin/src/components/GuidedTour/Tours.d.ts +53 -14
  99. package/dist/admin/src/components/GuidedTour/utils/constants.d.ts +15 -0
  100. package/dist/admin/src/components/GuidedTour/utils/migrations.d.ts +6 -0
  101. package/dist/admin/src/features/Tracking.d.ts +20 -2
  102. package/dist/admin/src/index.d.ts +5 -0
  103. package/dist/admin/src/pages/Home/HomePage.d.ts +2 -2
  104. package/dist/ee/admin/src/components/AuditLogs/Widgets.d.ts +2 -0
  105. package/dist/ee/admin/src/constants.d.ts +1 -0
  106. package/dist/server/server/src/controllers/admin.js +2 -5
  107. package/dist/server/server/src/controllers/admin.js.map +1 -1
  108. package/dist/server/server/src/controllers/admin.mjs +2 -5
  109. package/dist/server/server/src/controllers/admin.mjs.map +1 -1
  110. package/dist/server/server/src/services/index.js +0 -2
  111. package/dist/server/server/src/services/index.js.map +1 -1
  112. package/dist/server/server/src/services/index.mjs +0 -2
  113. package/dist/server/server/src/services/index.mjs.map +1 -1
  114. package/dist/server/src/controllers/admin.d.ts +1 -1
  115. package/dist/server/src/controllers/admin.d.ts.map +1 -1
  116. package/dist/server/src/controllers/index.d.ts +1 -1
  117. package/dist/server/src/index.d.ts +1 -6
  118. package/dist/server/src/index.d.ts.map +1 -1
  119. package/dist/server/src/services/constants.d.ts +1 -0
  120. package/dist/server/src/services/guided-tour.d.ts +2 -3
  121. package/dist/server/src/services/guided-tour.d.ts.map +1 -1
  122. package/dist/server/src/services/index.d.ts +0 -5
  123. package/dist/server/src/services/index.d.ts.map +1 -1
  124. package/dist/shared/contracts/admin.d.ts +2 -2
  125. package/dist/shared/contracts/admin.d.ts.map +1 -1
  126. package/package.json +7 -7
  127. package/dist/admin/admin/src/components/GuidedTour/Step.js.map +0 -1
  128. package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +0 -1
  129. package/dist/server/server/src/services/guided-tour.js +0 -61
  130. package/dist/server/server/src/services/guided-tour.js.map +0 -1
  131. package/dist/server/server/src/services/guided-tour.mjs +0 -59
  132. package/dist/server/server/src/services/guided-tour.mjs.map +0 -1
@@ -0,0 +1,217 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useParams } from 'react-router-dom';
3
+ import { useGetGuidedTourMetaQuery } from '../../../services/admin.mjs';
4
+ import { GUIDED_TOUR_REQUIRED_ACTIONS } from '../utils/constants.mjs';
5
+ import { StepCount, GotItAction } from './Step.mjs';
6
+
7
+ /* -------------------------------------------------------------------------------------------------
8
+ * Step Components
9
+ * -----------------------------------------------------------------------------------------------*/ const Introduction = ({ Step })=>/*#__PURE__*/ jsxs(Step.Root, {
10
+ sideOffset: 33,
11
+ withArrow: false,
12
+ children: [
13
+ /*#__PURE__*/ jsx(Step.Title, {
14
+ id: "tours.contentTypeBuilder.Introduction.title",
15
+ defaultMessage: "Content-Type Builder"
16
+ }),
17
+ /*#__PURE__*/ jsx(Step.Content, {
18
+ id: "tours.contentTypeBuilder.Introduction.content",
19
+ defaultMessage: "Create and manage your content structure with collection types, single types and components."
20
+ }),
21
+ /*#__PURE__*/ jsx(Step.Actions, {
22
+ showPrevious: false
23
+ })
24
+ ]
25
+ });
26
+ const CollectionTypes = ({ Step })=>/*#__PURE__*/ jsxs(Step.Root, {
27
+ side: "right",
28
+ sideOffset: 16,
29
+ children: [
30
+ /*#__PURE__*/ jsx(Step.Title, {
31
+ id: "tours.contentTypeBuilder.CollectionTypes.title",
32
+ defaultMessage: "Collection Types"
33
+ }),
34
+ /*#__PURE__*/ jsx(Step.Content, {
35
+ id: "tours.contentTypeBuilder.CollectionTypes.content",
36
+ defaultMessage: "A content structure that can manage multiple entries, such as articles or products."
37
+ }),
38
+ /*#__PURE__*/ jsx(Step.Actions, {})
39
+ ]
40
+ });
41
+ const SingleTypes = ({ Step })=>/*#__PURE__*/ jsxs(Step.Root, {
42
+ side: "right",
43
+ sideOffset: 16,
44
+ children: [
45
+ /*#__PURE__*/ jsx(Step.Title, {
46
+ id: "tours.contentTypeBuilder.SingleTypes.title",
47
+ defaultMessage: "Single Types"
48
+ }),
49
+ /*#__PURE__*/ jsx(Step.Content, {
50
+ id: "tours.contentTypeBuilder.SingleTypes.content",
51
+ defaultMessage: "A content structure that can manage a single entry, such as a homepage or a header."
52
+ }),
53
+ /*#__PURE__*/ jsx(Step.Actions, {})
54
+ ]
55
+ });
56
+ const Components = ({ Step })=>/*#__PURE__*/ jsxs(Step.Root, {
57
+ side: "right",
58
+ sideOffset: 16,
59
+ children: [
60
+ /*#__PURE__*/ jsx(Step.Title, {
61
+ id: "tours.contentTypeBuilder.Components.title",
62
+ defaultMessage: "Components"
63
+ }),
64
+ /*#__PURE__*/ jsx(Step.Content, {
65
+ id: "tours.contentTypeBuilder.Components.content",
66
+ defaultMessage: "A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards."
67
+ }),
68
+ /*#__PURE__*/ jsx(Step.Actions, {})
69
+ ]
70
+ });
71
+ const YourTurn = ({ Step })=>/*#__PURE__*/ jsxs(Step.Root, {
72
+ side: "right",
73
+ sideOffset: 16,
74
+ children: [
75
+ /*#__PURE__*/ jsx(Step.Title, {
76
+ id: "tours.contentTypeBuilder.YourTurn.title",
77
+ defaultMessage: "Your turn"
78
+ }),
79
+ /*#__PURE__*/ jsx(Step.Content, {
80
+ id: "tours.contentTypeBuilder.YourTurn.content",
81
+ defaultMessage: "Create a collection type or single type and configure it."
82
+ }),
83
+ /*#__PURE__*/ jsx(Step.Actions, {})
84
+ ]
85
+ });
86
+ const AddFields = ({ Step, dispatch })=>/*#__PURE__*/ jsxs(Step.Root, {
87
+ side: "bottom",
88
+ children: [
89
+ /*#__PURE__*/ jsx(Step.Title, {
90
+ id: "tours.contentTypeBuilder.AddFields.title",
91
+ defaultMessage: "Don't forget to add a field to your content type"
92
+ }),
93
+ /*#__PURE__*/ jsx(Step.Content, {
94
+ id: "tours.contentTypeBuilder.AddFields.content",
95
+ defaultMessage: "Add the fields your content needs such as text, media and relations."
96
+ }),
97
+ /*#__PURE__*/ jsxs(Step.Actions, {
98
+ children: [
99
+ /*#__PURE__*/ jsx(StepCount, {
100
+ tourName: "contentTypeBuilder"
101
+ }),
102
+ /*#__PURE__*/ jsx(GotItAction, {
103
+ onClick: ()=>dispatch({
104
+ type: 'next_step',
105
+ payload: 'contentTypeBuilder'
106
+ })
107
+ })
108
+ ]
109
+ })
110
+ ]
111
+ });
112
+ const Save = ({ Step, dispatch })=>/*#__PURE__*/ jsxs(Step.Root, {
113
+ side: "right",
114
+ children: [
115
+ /*#__PURE__*/ jsx(Step.Title, {
116
+ id: "tours.contentTypeBuilder.Save.title",
117
+ defaultMessage: "Save before you leave!"
118
+ }),
119
+ /*#__PURE__*/ jsx(Step.Content, {
120
+ id: "tours.contentTypeBuilder.Save.content",
121
+ defaultMessage: "Save the changes you made here before leaving this page."
122
+ }),
123
+ /*#__PURE__*/ jsxs(Step.Actions, {
124
+ children: [
125
+ /*#__PURE__*/ jsx(StepCount, {
126
+ tourName: "contentTypeBuilder"
127
+ }),
128
+ /*#__PURE__*/ jsx(GotItAction, {
129
+ onClick: ()=>{
130
+ // Ensure the completed action is removed
131
+ // in the event the user already has a schema but is still doing the tour
132
+ dispatch({
133
+ type: 'remove_completed_action',
134
+ payload: GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema
135
+ });
136
+ dispatch({
137
+ type: 'next_step',
138
+ payload: 'contentTypeBuilder'
139
+ });
140
+ }
141
+ })
142
+ ]
143
+ })
144
+ ]
145
+ });
146
+ const Finish = ({ Step })=>{
147
+ const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();
148
+ const { '*': routeParams } = useParams();
149
+ // Get the uid from the params
150
+ const uid = routeParams?.split('/').pop();
151
+ const contentType = uid ? guidedTourMeta?.data?.schemas?.[uid] : null;
152
+ const contentTypeKindDictionary = {
153
+ collectionType: 'collection-types',
154
+ singleType: 'single-types'
155
+ };
156
+ const to = contentType ? `/content-manager/${contentTypeKindDictionary[contentType.kind]}/${contentType.uid}` : '/content-manager';
157
+ return /*#__PURE__*/ jsxs(Step.Root, {
158
+ side: "right",
159
+ children: [
160
+ /*#__PURE__*/ jsx(Step.Title, {
161
+ id: "tours.contentTypeBuilder.Finish.title",
162
+ defaultMessage: "It's time to create content!"
163
+ }),
164
+ /*#__PURE__*/ jsx(Step.Content, {
165
+ id: "tours.contentTypeBuilder.Finish.content",
166
+ defaultMessage: "Now that you created content types, you'll be able to create content in the content manager."
167
+ }),
168
+ /*#__PURE__*/ jsx(Step.Actions, {
169
+ showStepCount: false,
170
+ showPrevious: false,
171
+ to: to
172
+ })
173
+ ]
174
+ });
175
+ };
176
+ /* -------------------------------------------------------------------------------------------------
177
+ * Steps
178
+ * -----------------------------------------------------------------------------------------------*/ const contentTypeBuilderSteps = [
179
+ {
180
+ name: 'Introduction',
181
+ content: Introduction
182
+ },
183
+ {
184
+ name: 'CollectionTypes',
185
+ content: CollectionTypes
186
+ },
187
+ {
188
+ name: 'SingleTypes',
189
+ content: SingleTypes
190
+ },
191
+ {
192
+ name: 'Components',
193
+ content: Components
194
+ },
195
+ {
196
+ name: 'YourTurn',
197
+ content: YourTurn
198
+ },
199
+ {
200
+ name: 'AddFields',
201
+ content: AddFields
202
+ },
203
+ {
204
+ name: 'Save',
205
+ when: (completedActions)=>completedActions.includes(GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.addField),
206
+ content: Save
207
+ },
208
+ {
209
+ name: 'Finish',
210
+ content: Finish,
211
+ excludeFromStepCount: true,
212
+ when: (completedActions)=>completedActions.includes(GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema)
213
+ }
214
+ ];
215
+
216
+ export { contentTypeBuilderSteps };
217
+ //# sourceMappingURL=ContentTypeBuilderSteps.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContentTypeBuilderSteps.mjs","sources":["../../../../../../../admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.tsx"],"sourcesContent":["import { UID } from '@strapi/types';\nimport { useParams } from 'react-router-dom';\n\nimport { useGetGuidedTourMetaQuery } from '../../../services/admin';\nimport { CompletedActions } from '../Context';\nimport { type StepContentProps } from '../Tours';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from '../utils/constants';\n\nimport { GotItAction, StepCount } from './Step';\n\n/* -------------------------------------------------------------------------------------------------\n * Step Components\n * -----------------------------------------------------------------------------------------------*/\n\nconst Introduction = ({ Step }: StepContentProps) => (\n <Step.Root sideOffset={33} withArrow={false}>\n <Step.Title\n id=\"tours.contentTypeBuilder.Introduction.title\"\n defaultMessage=\"Content-Type Builder\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.Introduction.content\"\n defaultMessage=\"Create and manage your content structure with collection types, single types and components.\"\n />\n <Step.Actions showPrevious={false} />\n </Step.Root>\n);\n\nconst CollectionTypes = ({ Step }: StepContentProps) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title\n id=\"tours.contentTypeBuilder.CollectionTypes.title\"\n defaultMessage=\"Collection Types\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.CollectionTypes.content\"\n defaultMessage=\"A content structure that can manage multiple entries, such as articles or products.\"\n />\n <Step.Actions />\n </Step.Root>\n);\n\nconst SingleTypes = ({ Step }: StepContentProps) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title id=\"tours.contentTypeBuilder.SingleTypes.title\" defaultMessage=\"Single Types\" />\n <Step.Content\n id=\"tours.contentTypeBuilder.SingleTypes.content\"\n defaultMessage=\"A content structure that can manage a single entry, such as a homepage or a header.\"\n />\n <Step.Actions />\n </Step.Root>\n);\n\nconst Components = ({ Step }: StepContentProps) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title id=\"tours.contentTypeBuilder.Components.title\" defaultMessage=\"Components\" />\n <Step.Content\n id=\"tours.contentTypeBuilder.Components.content\"\n defaultMessage=\"A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards.\"\n />\n <Step.Actions />\n </Step.Root>\n);\n\nconst YourTurn = ({ Step }: StepContentProps) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title id=\"tours.contentTypeBuilder.YourTurn.title\" defaultMessage=\"Your turn\" />\n <Step.Content\n id=\"tours.contentTypeBuilder.YourTurn.content\"\n defaultMessage=\"Create a collection type or single type and configure it.\"\n />\n <Step.Actions />\n </Step.Root>\n);\n\nconst AddFields = ({ Step, dispatch }: StepContentProps) => (\n <Step.Root side=\"bottom\">\n <Step.Title\n id=\"tours.contentTypeBuilder.AddFields.title\"\n defaultMessage=\"Don't forget to add a field to your content type\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.AddFields.content\"\n defaultMessage=\"Add the fields your content needs such as text, media and relations.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentTypeBuilder\" />\n <GotItAction onClick={() => dispatch({ type: 'next_step', payload: 'contentTypeBuilder' })} />\n </Step.Actions>\n </Step.Root>\n);\n\nconst Save = ({ Step, dispatch }: StepContentProps) => (\n <Step.Root side=\"right\">\n <Step.Title id=\"tours.contentTypeBuilder.Save.title\" defaultMessage=\"Save before you leave!\" />\n <Step.Content\n id=\"tours.contentTypeBuilder.Save.content\"\n defaultMessage=\"Save the changes you made here before leaving this page.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentTypeBuilder\" />\n <GotItAction\n onClick={() => {\n // Ensure the completed action is removed\n // in the event the user already has a schema but is still doing the tour\n dispatch({\n type: 'remove_completed_action',\n payload: GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema,\n });\n dispatch({ type: 'next_step', payload: 'contentTypeBuilder' });\n }}\n />\n </Step.Actions>\n </Step.Root>\n);\n\nconst Finish = ({ Step }: StepContentProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n const { '*': routeParams } = useParams();\n // Get the uid from the params\n const uid = routeParams?.split('/').pop();\n const contentType = uid ? guidedTourMeta?.data?.schemas?.[uid as UID.ContentType] : null;\n const contentTypeKindDictionary = {\n collectionType: 'collection-types',\n singleType: 'single-types',\n };\n\n const to = contentType\n ? `/content-manager/${contentTypeKindDictionary[contentType.kind]}/${contentType.uid}`\n : '/content-manager';\n\n return (\n <Step.Root side=\"right\">\n <Step.Title\n id=\"tours.contentTypeBuilder.Finish.title\"\n defaultMessage=\"It's time to create content!\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.Finish.content\"\n defaultMessage=\"Now that you created content types, you'll be able to create content in the content manager.\"\n />\n <Step.Actions showStepCount={false} showPrevious={false} to={to} />\n </Step.Root>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Steps\n * -----------------------------------------------------------------------------------------------*/\n\nexport const contentTypeBuilderSteps = [\n {\n name: 'Introduction',\n content: Introduction,\n },\n {\n name: 'CollectionTypes',\n content: CollectionTypes,\n },\n {\n name: 'SingleTypes',\n content: SingleTypes,\n },\n {\n name: 'Components',\n content: Components,\n },\n {\n name: 'YourTurn',\n content: YourTurn,\n },\n {\n name: 'AddFields',\n content: AddFields,\n },\n {\n name: 'Save',\n when: (completedActions: CompletedActions) =>\n completedActions.includes(GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.addField),\n content: Save,\n },\n {\n name: 'Finish',\n content: Finish,\n excludeFromStepCount: true,\n when: (completedActions: CompletedActions) =>\n completedActions.includes(GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema),\n },\n] as const;\n"],"names":["Introduction","Step","_jsxs","Root","sideOffset","withArrow","_jsx","Title","id","defaultMessage","Content","Actions","showPrevious","CollectionTypes","side","SingleTypes","Components","YourTurn","AddFields","dispatch","StepCount","tourName","GotItAction","onClick","type","payload","Save","GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","Finish","data","guidedTourMeta","useGetGuidedTourMetaQuery","routeParams","useParams","uid","split","pop","contentType","schemas","contentTypeKindDictionary","collectionType","singleType","to","kind","showStepCount","contentTypeBuilderSteps","name","content","when","completedActions","includes","addField","excludeFromStepCount"],"mappings":"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"}
@@ -6,8 +6,9 @@ var designSystem = require('@strapi/design-system');
6
6
  var reactIntl = require('react-intl');
7
7
  var reactRouterDom = require('react-router-dom');
8
8
  var styled = require('styled-components');
9
- var Tracking = require('../../features/Tracking.js');
10
- var Context = require('./Context.js');
9
+ var Tracking = require('../../../features/Tracking.js');
10
+ var Context = require('../Context.js');
11
+ var Tours = require('../Tours.js');
11
12
 
12
13
  function _interopNamespaceDefault(e) {
13
14
  var n = Object.create(null);
@@ -28,21 +29,12 @@ function _interopNamespaceDefault(e) {
28
29
 
29
30
  var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
30
31
 
31
- const ActionsContainer = styled.styled(designSystem.Flex)`
32
- border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
33
- `;
34
- /**
35
- * TODO:
36
- * We should probably move all arrow styles + svg to the DS
37
- */ const PopoverArrow = styled.styled(designSystem.Popover.Arrow)`
38
- fill: ${({ theme })=>theme.colors.neutral0};
39
- transform: translateY(-16px) rotate(-90deg);
40
- `;
41
- const StepCount = ({ tourName })=>{
32
+ /* -------------------------------------------------------------------------------------------------
33
+ * Common Step Components
34
+ * -----------------------------------------------------------------------------------------------*/ const StepCount = ({ tourName, displayedCurrentStep, displayedTourLength })=>{
42
35
  const state = Context.useGuidedTour('GuidedTourPopover', (s)=>s.state);
43
- const currentStep = state.tours[tourName].currentStep + 1;
44
- // TODO: Currently all tours do not count their last step, but we should find a way to make this more smart
45
- const displayedLength = state.tours[tourName].length - 1;
36
+ const currentStep = displayedCurrentStep ?? state.tours[tourName].currentStep + 1;
37
+ const displayedStepCount = displayedTourLength ?? Tours.tours[tourName]._meta.displayedStepCount;
46
38
  return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
47
39
  variant: "omega",
48
40
  fontSize: "12px",
@@ -51,11 +43,107 @@ const StepCount = ({ tourName })=>{
51
43
  defaultMessage: "Step {currentStep} of {tourLength}",
52
44
  values: {
53
45
  currentStep,
54
- tourLength: displayedLength
46
+ tourLength: displayedStepCount
55
47
  }
56
48
  })
57
49
  });
58
50
  };
51
+ const GotItAction = ({ onClick })=>{
52
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
53
+ onClick: onClick,
54
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
55
+ id: "tours.gotIt",
56
+ defaultMessage: "Got it"
57
+ })
58
+ });
59
+ };
60
+ const DefaultActions = ({ showSkip, showPrevious, to, tourName, onNextStep, onPreviousStep })=>{
61
+ const { trackUsage } = Tracking.useTracking();
62
+ const dispatch = Context.useGuidedTour('GuidedTourPopover', (s)=>s.dispatch);
63
+ const state = Context.useGuidedTour('GuidedTourPopover', (s)=>s.state);
64
+ const currentStep = state.tours[tourName].currentStep + 1;
65
+ const actualTourLength = Tours.tours[tourName]._meta.totalStepCount;
66
+ const handleSkip = ()=>{
67
+ trackUsage('didSkipGuidedTour', {
68
+ name: tourName
69
+ });
70
+ dispatch({
71
+ type: 'skip_tour',
72
+ payload: tourName
73
+ });
74
+ };
75
+ const handleNextStep = ()=>{
76
+ if (currentStep === actualTourLength) {
77
+ trackUsage('didCompleteGuidedTour', {
78
+ name: tourName
79
+ });
80
+ }
81
+ if (onNextStep) {
82
+ onNextStep();
83
+ } else {
84
+ dispatch({
85
+ type: 'next_step',
86
+ payload: tourName
87
+ });
88
+ }
89
+ };
90
+ const handlePreviousStep = ()=>{
91
+ if (onPreviousStep) {
92
+ onPreviousStep();
93
+ } else {
94
+ dispatch({
95
+ type: 'previous_step',
96
+ payload: tourName
97
+ });
98
+ }
99
+ };
100
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
101
+ gap: 2,
102
+ children: [
103
+ showSkip && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
104
+ variant: "tertiary",
105
+ onClick: handleSkip,
106
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
107
+ id: "tours.skip",
108
+ defaultMessage: "Skip"
109
+ })
110
+ }),
111
+ !showSkip && showPrevious && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
112
+ variant: "tertiary",
113
+ onClick: handlePreviousStep,
114
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
115
+ id: "tours.previous",
116
+ defaultMessage: "Previous"
117
+ })
118
+ }),
119
+ to ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
120
+ tag: reactRouterDom.NavLink,
121
+ to: to,
122
+ onClick: handleNextStep,
123
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
124
+ id: "tours.next",
125
+ defaultMessage: "Next"
126
+ })
127
+ }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
128
+ onClick: handleNextStep,
129
+ children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
130
+ id: "tours.next",
131
+ defaultMessage: "Next"
132
+ })
133
+ })
134
+ ]
135
+ });
136
+ };
137
+ const ActionsContainer = styled.styled(designSystem.Flex)`
138
+ border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
139
+ `;
140
+ /**
141
+ * TODO:
142
+ * We should probably move all arrow styles + svg to the DS
143
+ */ const PopoverArrow = styled.styled(designSystem.Popover.Arrow)`
144
+ fill: ${({ theme })=>theme.colors.neutral0};
145
+ transform: translateY(-16px) rotate(-90deg);
146
+ `;
59
147
  const createStepComponents = (tourName)=>({
60
148
  Root: /*#__PURE__*/ React__namespace.forwardRef(({ withArrow = true, ...props }, ref)=>{
61
149
  return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Popover.Content, {
@@ -66,6 +154,7 @@ const createStepComponents = (tourName)=>({
66
154
  style: {
67
155
  border: 'none'
68
156
  },
157
+ onClick: (e)=>e.stopPropagation(),
69
158
  ...props,
70
159
  children: [
71
160
  withArrow && /*#__PURE__*/ jsxRuntime.jsx(PopoverArrow, {
@@ -119,36 +208,12 @@ const createStepComponents = (tourName)=>({
119
208
  variant: "omega",
120
209
  children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
121
210
  id: props.id,
122
- defaultMessage: props.defaultMessage
211
+ defaultMessage: props.defaultMessage,
212
+ values: props.values
123
213
  })
124
214
  })
125
215
  }),
126
- Actions: ({ showStepCount = true, showSkip = false, to, children, ...flexProps })=>{
127
- const { trackUsage } = Tracking.useTracking();
128
- const dispatch = Context.useGuidedTour('GuidedTourPopover', (s)=>s.dispatch);
129
- const state = Context.useGuidedTour('GuidedTourPopover', (s)=>s.state);
130
- const currentStep = state.tours[tourName].currentStep + 1;
131
- const actualTourLength = state.tours[tourName].length;
132
- const handleSkipAction = ()=>{
133
- trackUsage('didSkipGuidedTour', {
134
- name: tourName
135
- });
136
- dispatch({
137
- type: 'skip_tour',
138
- payload: tourName
139
- });
140
- };
141
- const handleNextStep = ()=>{
142
- if (currentStep === actualTourLength) {
143
- trackUsage('didCompleteGuidedTour', {
144
- name: tourName
145
- });
146
- }
147
- dispatch({
148
- type: 'next_step',
149
- payload: tourName
150
- });
151
- };
216
+ Actions: ({ showStepCount = true, showPrevious = true, showSkip = false, to, children, ...flexProps })=>{
152
217
  return /*#__PURE__*/ jsxRuntime.jsx(ActionsContainer, {
153
218
  width: "100%",
154
219
  padding: 3,
@@ -160,33 +225,11 @@ const createStepComponents = (tourName)=>({
160
225
  showStepCount && /*#__PURE__*/ jsxRuntime.jsx(StepCount, {
161
226
  tourName: tourName
162
227
  }),
163
- /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
164
- gap: 2,
165
- children: [
166
- showSkip && /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
167
- variant: "tertiary",
168
- onClick: handleSkipAction,
169
- children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
170
- id: "tours.skip",
171
- defaultMessage: "Skip"
172
- })
173
- }),
174
- to ? /*#__PURE__*/ jsxRuntime.jsx(designSystem.LinkButton, {
175
- tag: reactRouterDom.NavLink,
176
- to: to,
177
- onClick: handleNextStep,
178
- children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
179
- id: "tours.next",
180
- defaultMessage: "Next"
181
- })
182
- }) : /*#__PURE__*/ jsxRuntime.jsx(designSystem.Button, {
183
- onClick: handleNextStep,
184
- children: /*#__PURE__*/ jsxRuntime.jsx(reactIntl.FormattedMessage, {
185
- id: "tours.next",
186
- defaultMessage: "Next"
187
- })
188
- })
189
- ]
228
+ /*#__PURE__*/ jsxRuntime.jsx(DefaultActions, {
229
+ tourName: tourName,
230
+ showSkip: showSkip,
231
+ showPrevious: !showSkip && showPrevious,
232
+ to: to
190
233
  })
191
234
  ]
192
235
  })
@@ -194,6 +237,8 @@ const createStepComponents = (tourName)=>({
194
237
  }
195
238
  });
196
239
 
240
+ exports.DefaultActions = DefaultActions;
241
+ exports.GotItAction = GotItAction;
197
242
  exports.StepCount = StepCount;
198
243
  exports.createStepComponents = createStepComponents;
199
244
  //# sourceMappingURL=Step.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Step.js","sources":["../../../../../../../admin/src/components/GuidedTour/Steps/Step.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Popover,\n Box,\n Flex,\n Button,\n Typography,\n LinkButton,\n FlexProps,\n} from '@strapi/design-system';\nimport { FormattedMessage, type MessageDescriptor } from 'react-intl';\nimport { To, NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../../features/Tracking';\nimport { useGuidedTour, type ValidTourName } from '../Context';\nimport { tours } from '../Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * Common Step Components\n * -----------------------------------------------------------------------------------------------*/\n\nconst StepCount = ({\n tourName,\n displayedCurrentStep,\n displayedTourLength,\n}: {\n tourName: ValidTourName;\n displayedCurrentStep?: number;\n displayedTourLength?: number;\n}) => {\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = displayedCurrentStep ?? state.tours[tourName].currentStep + 1;\n const displayedStepCount = displayedTourLength ?? tours[tourName]._meta.displayedStepCount;\n\n return (\n <Typography variant=\"omega\" fontSize=\"12px\">\n <FormattedMessage\n id=\"tours.stepCount\"\n defaultMessage=\"Step {currentStep} of {tourLength}\"\n values={{ currentStep, tourLength: displayedStepCount }}\n />\n </Typography>\n );\n};\n\nconst GotItAction = ({ onClick }: { onClick: () => void }) => {\n return (\n <Button onClick={onClick}>\n <FormattedMessage id=\"tours.gotIt\" defaultMessage=\"Got it\" />\n </Button>\n );\n};\n\nexport type DefaultActionsProps = {\n showSkip?: boolean;\n showPrevious?: boolean;\n to?: To;\n onNextStep?: () => void;\n onPreviousStep?: () => void;\n tourName: ValidTourName;\n};\nconst DefaultActions = ({\n showSkip,\n showPrevious,\n to,\n tourName,\n onNextStep,\n onPreviousStep,\n}: DefaultActionsProps) => {\n const { trackUsage } = useTracking();\n const dispatch = useGuidedTour('GuidedTourPopover', (s) => s.dispatch);\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = state.tours[tourName].currentStep + 1;\n const actualTourLength = tours[tourName]._meta.totalStepCount;\n\n const handleSkip = () => {\n trackUsage('didSkipGuidedTour', { name: tourName });\n dispatch({ type: 'skip_tour', payload: tourName });\n };\n\n const handleNextStep = () => {\n if (currentStep === actualTourLength) {\n trackUsage('didCompleteGuidedTour', { name: tourName });\n }\n\n if (onNextStep) {\n onNextStep();\n } else {\n dispatch({ type: 'next_step', payload: tourName });\n }\n };\n\n const handlePreviousStep = () => {\n if (onPreviousStep) {\n onPreviousStep();\n } else {\n dispatch({ type: 'previous_step', payload: tourName });\n }\n };\n\n return (\n <Flex gap={2}>\n {showSkip && (\n <Button variant=\"tertiary\" onClick={handleSkip}>\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\n </Button>\n )}\n {!showSkip && showPrevious && (\n <Button variant=\"tertiary\" onClick={handlePreviousStep}>\n <FormattedMessage id=\"tours.previous\" defaultMessage=\"Previous\" />\n </Button>\n )}\n {to ? (\n <LinkButton tag={NavLink} to={to} onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </LinkButton>\n ) : (\n <Button onClick={handleNextStep}>\n <FormattedMessage id=\"tours.next\" defaultMessage=\"Next\" />\n </Button>\n )}\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Step factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype WithChildren = {\n children: React.ReactNode;\n id?: never;\n defaultMessage?: never;\n};\n\ntype WithIntl = {\n children?: undefined;\n id: MessageDescriptor['id'];\n defaultMessage: MessageDescriptor['defaultMessage'];\n withArrow?: boolean;\n};\n\ntype WithActionsChildren = {\n children: React.ReactNode;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype WithActionsProps = {\n children?: undefined;\n showStepCount?: boolean;\n showSkip?: boolean;\n showPrevious?: boolean;\n};\n\ntype StepProps = WithChildren | WithIntl;\ntype ActionsProps = WithActionsChildren | WithActionsProps;\n\ntype Step = {\n Root: React.ForwardRefExoticComponent<\n React.ComponentProps<typeof Popover.Content> & { withArrow?: boolean }\n >;\n Title: (props: StepProps) => React.ReactNode;\n Content: (\n props: StepProps & {\n values?: Record<string, React.ReactNode | ((chunks: React.ReactNode) => React.ReactNode)>;\n }\n ) => React.ReactNode;\n Actions: (props: ActionsProps & { to?: string } & FlexProps) => React.ReactNode;\n};\n\nconst ActionsContainer = styled(Flex)`\n border-top: ${({ theme }) => `1px solid ${theme.colors.neutral150}`};\n`;\n\n/**\n * TODO:\n * We should probably move all arrow styles + svg to the DS\n */\nconst PopoverArrow = styled(Popover.Arrow)`\n fill: ${({ theme }) => theme.colors.neutral0};\n transform: translateY(-16px) rotate(-90deg);\n`;\n\nconst createStepComponents = (tourName: ValidTourName): Step => ({\n Root: React.forwardRef(({ withArrow = true, ...props }, ref) => {\n return (\n <Popover.Content\n ref={ref}\n aria-labelledby=\"guided-tour-title\"\n side=\"top\"\n align=\"center\"\n style={{ border: 'none' }}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {withArrow && (\n <PopoverArrow asChild>\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"23\"\n height=\"25\"\n viewBox=\"0 0 23 25\"\n fill=\"none\"\n >\n <path d=\"M11 24.5L1.82843 15.3284C0.266332 13.7663 0.26633 11.2337 1.82843 9.67157L11 0.5L23 12.5L11 24.5Z\" />\n </svg>\n </PopoverArrow>\n )}\n <Flex width=\"360px\" direction=\"column\" alignItems=\"start\">\n {props.children}\n </Flex>\n </Popover.Content>\n );\n }),\n\n Title: (props) => {\n return (\n <Box paddingTop={5} paddingLeft={5} paddingRight={5} paddingBottom={1} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <Typography tag=\"h1\" id=\"guided-tour-title\" variant=\"omega\" fontWeight=\"bold\">\n <FormattedMessage id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n );\n },\n\n Content: (props) => (\n <Box paddingBottom={5} paddingLeft={5} paddingRight={5} width=\"100%\">\n {'children' in props ? (\n props.children\n ) : (\n <Typography tag=\"div\" variant=\"omega\">\n <FormattedMessage\n id={props.id}\n defaultMessage={props.defaultMessage}\n values={props.values}\n />\n </Typography>\n )}\n </Box>\n ),\n\n Actions: ({\n showStepCount = true,\n showPrevious = true,\n showSkip = false,\n to,\n children,\n ...flexProps\n }) => {\n return (\n <ActionsContainer\n width=\"100%\"\n padding={3}\n paddingLeft={5}\n justifyContent={showStepCount ? 'space-between' : 'flex-end'}\n {...flexProps}\n >\n {children ? (\n children\n ) : (\n <>\n {showStepCount && <StepCount tourName={tourName} />}\n <DefaultActions\n tourName={tourName}\n showSkip={showSkip}\n showPrevious={!showSkip && showPrevious}\n to={to}\n />\n </>\n )}\n </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents, GotItAction, StepCount, DefaultActions };\n"],"names":["StepCount","tourName","displayedCurrentStep","displayedTourLength","state","useGuidedTour","s","currentStep","tours","displayedStepCount","_meta","_jsx","Typography","variant","fontSize","FormattedMessage","id","defaultMessage","values","tourLength","GotItAction","onClick","Button","DefaultActions","showSkip","showPrevious","to","onNextStep","onPreviousStep","trackUsage","useTracking","dispatch","actualTourLength","totalStepCount","handleSkip","name","type","payload","handleNextStep","handlePreviousStep","_jsxs","Flex","gap","LinkButton","tag","NavLink","ActionsContainer","styled","theme","colors","neutral150","PopoverArrow","Popover","Arrow","neutral0","createStepComponents","Root","React","forwardRef","withArrow","props","ref","Content","aria-labelledby","side","align","style","border","e","stopPropagation","asChild","svg","xmlns","width","height","viewBox","fill","path","d","direction","alignItems","children","Title","Box","paddingTop","paddingLeft","paddingRight","paddingBottom","fontWeight","Actions","showStepCount","flexProps","padding","justifyContent","_Fragment"],"mappings":"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"}