@strapi/admin 5.18.1 → 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.
- package/dist/admin/admin/src/components/Filters.js +10 -1
- package/dist/admin/admin/src/components/Filters.js.map +1 -1
- package/dist/admin/admin/src/components/Filters.mjs +10 -1
- package/dist/admin/admin/src/components/Filters.mjs.map +1 -1
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.js +22 -17
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.mjs +21 -16
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.js +41 -15
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Overview.mjs +42 -16
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.js +33 -17
- package/dist/admin/admin/src/components/GuidedTour/Step.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.mjs +34 -18
- package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.js +41 -40
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -0
- package/dist/admin/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.mjs +36 -35
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -0
- package/dist/admin/admin/src/components/LeftMenu.js +52 -29
- package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
- package/dist/admin/admin/src/components/LeftMenu.mjs +52 -29
- package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.js +4 -42
- package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs +4 -23
- package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.js.map +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs +1 -1
- package/dist/admin/admin/src/components/NpsSurvey.mjs.map +1 -1
- package/dist/admin/admin/src/components/Providers.js +9 -10
- package/dist/admin/admin/src/components/Providers.js.map +1 -1
- package/dist/admin/admin/src/components/Providers.mjs +9 -10
- package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
- package/dist/admin/admin/src/components/SubNav.js +18 -12
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +19 -13
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.js.map +1 -1
- package/dist/admin/admin/src/components/UpsellBanner.mjs +2 -2
- package/dist/admin/admin/src/components/UpsellBanner.mjs.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.js +34 -16
- package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
- package/dist/admin/admin/src/core/apis/Widgets.mjs +34 -16
- package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js +34 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs +34 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.js +10 -0
- package/dist/admin/admin/src/hooks/usePersistentState.js.map +1 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs +10 -1
- package/dist/admin/admin/src/hooks/usePersistentState.mjs.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js +1 -18
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs +1 -18
- package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.js +0 -11
- package/dist/admin/admin/src/pages/Auth/components/Register.js.map +1 -1
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs +0 -11
- package/dist/admin/admin/src/pages/Auth/components/Register.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +2 -3
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +2 -3
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js +2 -2
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs +3 -3
- package/dist/admin/admin/src/pages/Home/components/FreeTrialEndedModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs +2 -2
- package/dist/admin/admin/src/pages/Home/components/FreeTrialWelcomeModal.mjs.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.js +297 -254
- package/dist/admin/admin/src/pages/ProfilePage.js.map +1 -1
- package/dist/admin/admin/src/pages/ProfilePage.mjs +297 -254
- package/dist/admin/admin/src/pages/ProfilePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js +12 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs +12 -1
- package/dist/admin/admin/src/pages/Settings/components/SettingsNav.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +6 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +6 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +1 -7
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +2 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +1 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +1 -8
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs +0 -2
- package/dist/admin/admin/src/pages/Settings/pages/TransferTokens/EditView.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs +3 -1
- package/dist/admin/admin/src/pages/Settings/pages/Users/ListPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.js.map +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs +1 -1
- package/dist/admin/admin/src/pages/UseCasePage.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +11 -3
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +11 -3
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/admin/tests/utils.js +25 -28
- package/dist/admin/admin/tests/utils.js.map +1 -1
- package/dist/admin/admin/tests/utils.mjs +25 -28
- package/dist/admin/admin/tests/utils.mjs.map +1 -1
- package/dist/admin/ee/admin/src/constants.js +4 -2
- package/dist/admin/ee/admin/src/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/constants.mjs +4 -2
- package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js +3 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.js.map +1 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs +3 -1
- package/dist/admin/ee/admin/src/pages/SettingsPage/pages/AuditLogs/ListPage.mjs.map +1 -1
- package/dist/admin/index.js +2 -4
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +1 -2
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/Filters.d.ts +3 -1
- package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Context.d.ts +5 -3
- package/dist/admin/src/components/GuidedTour/Overview.d.ts +1 -0
- package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Step.d.ts +1 -1
- package/dist/admin/src/components/SubNav.d.ts +2 -1
- package/dist/admin/src/core/apis/Widgets.d.ts +8 -5
- package/dist/admin/src/features/Tracking.d.ts +22 -3
- package/dist/admin/src/hooks/usePersistentState.d.ts +2 -1
- package/dist/admin/src/index.d.ts +2 -3
- package/dist/admin/src/pages/Settings/components/Tokens/TokenBox.d.ts +1 -1
- package/dist/ee/server/src/audit-logs/services/lifecycles.d.ts.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +9 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +9 -8
- package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
- package/dist/server/server/src/domain/user.js +3 -1
- package/dist/server/server/src/domain/user.js.map +1 -1
- package/dist/server/server/src/domain/user.mjs +3 -1
- package/dist/server/server/src/domain/user.mjs.map +1 -1
- package/dist/server/src/domain/user.d.ts.map +1 -1
- package/package.json +8 -9
- package/dist/admin/admin/src/components/GuidedTour/Homepage.js +0 -132
- package/dist/admin/admin/src/components/GuidedTour/Homepage.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs +0 -130
- package/dist/admin/admin/src/components/GuidedTour/Homepage.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Modal.js +0 -278
- package/dist/admin/admin/src/components/GuidedTour/Modal.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Modal.mjs +0 -276
- package/dist/admin/admin/src/components/GuidedTour/Modal.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.js +0 -54
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs +0 -51
- package/dist/admin/admin/src/components/GuidedTour/Ornaments.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Provider.js +0 -206
- package/dist/admin/admin/src/components/GuidedTour/Provider.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Provider.mjs +0 -184
- package/dist/admin/admin/src/components/GuidedTour/Provider.mjs.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/constants.js +0 -167
- package/dist/admin/admin/src/components/GuidedTour/constants.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/constants.mjs +0 -164
- package/dist/admin/admin/src/components/GuidedTour/constants.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +0 -1
- package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +0 -1
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.js +0 -19
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.js.map +0 -1
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs +0 -17
- package/dist/admin/admin/src/pages/Home/components/GuidedTour.mjs.map +0 -1
- package/dist/admin/src/components/GuidedTour/Homepage.d.ts +0 -2
- package/dist/admin/src/components/GuidedTour/Modal.d.ts +0 -2
- package/dist/admin/src/components/GuidedTour/Ornaments.d.ts +0 -13
- package/dist/admin/src/components/GuidedTour/Provider.d.ts +0 -39
- package/dist/admin/src/components/GuidedTour/constants.d.ts +0 -165
- package/dist/admin/src/components/UnstableGuidedTour/Overview.d.ts +0 -1
- package/dist/admin/src/pages/Home/components/GuidedTour.d.ts +0 -1
- /package/dist/admin/src/components/{UnstableGuidedTour → GuidedTour}/Tours.d.ts +0 -0
|
@@ -4,7 +4,8 @@ import { Flex, Popover, Typography, Box, Button, LinkButton } from '@strapi/desi
|
|
|
4
4
|
import { FormattedMessage } from 'react-intl';
|
|
5
5
|
import { NavLink } from 'react-router-dom';
|
|
6
6
|
import { styled } from 'styled-components';
|
|
7
|
-
import {
|
|
7
|
+
import { useTracking } from '../../features/Tracking.mjs';
|
|
8
|
+
import { useGuidedTour } from './Context.mjs';
|
|
8
9
|
|
|
9
10
|
const ActionsContainer = styled(Flex)`
|
|
10
11
|
border-top: ${({ theme })=>`1px solid ${theme.colors.neutral150}`};
|
|
@@ -17,7 +18,7 @@ const ActionsContainer = styled(Flex)`
|
|
|
17
18
|
transform: translateY(-16px) rotate(-90deg);
|
|
18
19
|
`;
|
|
19
20
|
const StepCount = ({ tourName })=>{
|
|
20
|
-
const state =
|
|
21
|
+
const state = useGuidedTour('GuidedTourPopover', (s)=>s.state);
|
|
21
22
|
const currentStep = state.tours[tourName].currentStep + 1;
|
|
22
23
|
// TODO: Currently all tours do not count their last step, but we should find a way to make this more smart
|
|
23
24
|
const displayedLength = state.tours[tourName].length - 1;
|
|
@@ -38,6 +39,7 @@ const createStepComponents = (tourName)=>({
|
|
|
38
39
|
Root: /*#__PURE__*/ React.forwardRef(({ withArrow = true, ...props }, ref)=>{
|
|
39
40
|
return /*#__PURE__*/ jsxs(Popover.Content, {
|
|
40
41
|
ref: ref,
|
|
42
|
+
"aria-labelledby": "guided-tour-title",
|
|
41
43
|
side: "top",
|
|
42
44
|
align: "center",
|
|
43
45
|
style: {
|
|
@@ -75,11 +77,11 @@ const createStepComponents = (tourName)=>({
|
|
|
75
77
|
paddingBottom: 1,
|
|
76
78
|
width: "100%",
|
|
77
79
|
children: 'children' in props ? props.children : /*#__PURE__*/ jsx(Typography, {
|
|
78
|
-
tag: "
|
|
80
|
+
tag: "h1",
|
|
81
|
+
id: "guided-tour-title",
|
|
79
82
|
variant: "omega",
|
|
80
83
|
fontWeight: "bold",
|
|
81
84
|
children: /*#__PURE__*/ jsx(FormattedMessage, {
|
|
82
|
-
tagName: "h1",
|
|
83
85
|
id: props.id,
|
|
84
86
|
defaultMessage: props.defaultMessage
|
|
85
87
|
})
|
|
@@ -95,14 +97,37 @@ const createStepComponents = (tourName)=>({
|
|
|
95
97
|
tag: "div",
|
|
96
98
|
variant: "omega",
|
|
97
99
|
children: /*#__PURE__*/ jsx(FormattedMessage, {
|
|
98
|
-
tagName: "p",
|
|
99
100
|
id: props.id,
|
|
100
101
|
defaultMessage: props.defaultMessage
|
|
101
102
|
})
|
|
102
103
|
})
|
|
103
104
|
}),
|
|
104
105
|
Actions: ({ showStepCount = true, showSkip = false, to, children, ...flexProps })=>{
|
|
105
|
-
const
|
|
106
|
+
const { trackUsage } = useTracking();
|
|
107
|
+
const dispatch = useGuidedTour('GuidedTourPopover', (s)=>s.dispatch);
|
|
108
|
+
const state = useGuidedTour('GuidedTourPopover', (s)=>s.state);
|
|
109
|
+
const currentStep = state.tours[tourName].currentStep + 1;
|
|
110
|
+
const actualTourLength = state.tours[tourName].length;
|
|
111
|
+
const handleSkipAction = ()=>{
|
|
112
|
+
trackUsage('didSkipGuidedTour', {
|
|
113
|
+
name: tourName
|
|
114
|
+
});
|
|
115
|
+
dispatch({
|
|
116
|
+
type: 'skip_tour',
|
|
117
|
+
payload: tourName
|
|
118
|
+
});
|
|
119
|
+
};
|
|
120
|
+
const handleNextStep = ()=>{
|
|
121
|
+
if (currentStep === actualTourLength) {
|
|
122
|
+
trackUsage('didCompleteGuidedTour', {
|
|
123
|
+
name: tourName
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
dispatch({
|
|
127
|
+
type: 'next_step',
|
|
128
|
+
payload: tourName
|
|
129
|
+
});
|
|
130
|
+
};
|
|
106
131
|
return /*#__PURE__*/ jsx(ActionsContainer, {
|
|
107
132
|
width: "100%",
|
|
108
133
|
padding: 3,
|
|
@@ -119,10 +144,7 @@ const createStepComponents = (tourName)=>({
|
|
|
119
144
|
children: [
|
|
120
145
|
showSkip && /*#__PURE__*/ jsx(Button, {
|
|
121
146
|
variant: "tertiary",
|
|
122
|
-
onClick:
|
|
123
|
-
type: 'skip_tour',
|
|
124
|
-
payload: tourName
|
|
125
|
-
}),
|
|
147
|
+
onClick: handleSkipAction,
|
|
126
148
|
children: /*#__PURE__*/ jsx(FormattedMessage, {
|
|
127
149
|
id: "tours.skip",
|
|
128
150
|
defaultMessage: "Skip"
|
|
@@ -131,19 +153,13 @@ const createStepComponents = (tourName)=>({
|
|
|
131
153
|
to ? /*#__PURE__*/ jsx(LinkButton, {
|
|
132
154
|
tag: NavLink,
|
|
133
155
|
to: to,
|
|
134
|
-
onClick:
|
|
135
|
-
type: 'next_step',
|
|
136
|
-
payload: tourName
|
|
137
|
-
}),
|
|
156
|
+
onClick: handleNextStep,
|
|
138
157
|
children: /*#__PURE__*/ jsx(FormattedMessage, {
|
|
139
158
|
id: "tours.next",
|
|
140
159
|
defaultMessage: "Next"
|
|
141
160
|
})
|
|
142
161
|
}) : /*#__PURE__*/ jsx(Button, {
|
|
143
|
-
onClick:
|
|
144
|
-
type: 'next_step',
|
|
145
|
-
payload: tourName
|
|
146
|
-
}),
|
|
162
|
+
onClick: handleNextStep,
|
|
147
163
|
children: /*#__PURE__*/ jsx(FormattedMessage, {
|
|
148
164
|
id: "tours.next",
|
|
149
165
|
defaultMessage: "Next"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.mjs","sources":["../../../../../../admin/src/components/GuidedTour/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 { NavLink } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useTracking } from '../../features/Tracking';\n\nimport { useGuidedTour, type 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 withArrow?: boolean;\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<\n React.ComponentProps<typeof Popover.Content> & { withArrow?: boolean }\n >;\n Title: (props: StepProps) => React.ReactNode;\n Content: (props: StepProps) => 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\nexport const StepCount = ({ tourName }: { tourName: ValidTourName }) => {\n const state = useGuidedTour('GuidedTourPopover', (s) => s.state);\n const currentStep = state.tours[tourName].currentStep + 1;\n // TODO: Currently all tours do not count their last step, but we should find a way to make this more smart\n const displayedLength = state.tours[tourName].length - 1;\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: displayedLength }}\n />\n </Typography>\n );\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 {...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 id={props.id} defaultMessage={props.defaultMessage} />\n </Typography>\n )}\n </Box>\n ),\n\n Actions: ({ showStepCount = true, showSkip = false, to, children, ...flexProps }) => {\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 = state.tours[tourName].length;\n\n const handleSkipAction = () => {\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 dispatch({ type: 'next_step', payload: tourName });\n };\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 <Flex gap={2}>\n {showSkip && (\n <Button variant=\"tertiary\" onClick={handleSkipAction}>\n <FormattedMessage id=\"tours.skip\" defaultMessage=\"Skip\" />\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 </ActionsContainer>\n );\n },\n});\n\nexport type { Step };\nexport { createStepComponents };\n"],"names":["ActionsContainer","styled","Flex","theme","colors","neutral150","PopoverArrow","Popover","Arrow","neutral0","StepCount","tourName","state","useGuidedTour","s","currentStep","tours","displayedLength","length","_jsx","Typography","variant","fontSize","FormattedMessage","id","defaultMessage","values","tourLength","createStepComponents","Root","React","forwardRef","withArrow","props","ref","_jsxs","Content","aria-labelledby","side","align","style","border","asChild","svg","xmlns","width","height","viewBox","fill","path","d","direction","alignItems","children","Title","Box","paddingTop","paddingLeft","paddingRight","paddingBottom","tag","fontWeight","Actions","showStepCount","showSkip","to","flexProps","trackUsage","useTracking","dispatch","actualTourLength","handleSkipAction","name","type","payload","handleNextStep","padding","justifyContent","_Fragment","gap","Button","onClick","LinkButton","NavLink"],"mappings":";;;;;;;;;AA4DA,MAAMA,gBAAAA,GAAmBC,MAAOC,CAAAA,IAAAA,CAAK;AACvB,cAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAK,CAAC,UAAU,EAAEA,KAAAA,CAAMC,MAAM,CAACC,UAAU,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;;AAGC,IACD,MAAMC,YAAeL,GAAAA,MAAAA,CAAOM,OAAQC,CAAAA,KAAK,CAAC;QAClC,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAACK,QAAQ,CAAC;;AAE/C,CAAC;AAEYC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAA+B,GAAA;AACjE,IAAA,MAAMC,QAAQC,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,IAAA,MAAMG,cAAcH,KAAMI,CAAAA,KAAK,CAACL,QAAS,CAAA,CAACI,WAAW,GAAG,CAAA;;AAExD,IAAA,MAAME,kBAAkBL,KAAMI,CAAAA,KAAK,CAACL,QAAS,CAAA,CAACO,MAAM,GAAG,CAAA;AAEvD,IAAA,qBACEC,GAACC,CAAAA,UAAAA,EAAAA;QAAWC,OAAQ,EAAA,OAAA;QAAQC,QAAS,EAAA,MAAA;AACnC,QAAA,QAAA,gBAAAH,GAACI,CAAAA,gBAAAA,EAAAA;YACCC,EAAG,EAAA,iBAAA;YACHC,cAAe,EAAA,oCAAA;YACfC,MAAQ,EAAA;AAAEX,gBAAAA,WAAAA;gBAAaY,UAAYV,EAAAA;AAAgB;;;AAI3D;AAEMW,MAAAA,oBAAAA,GAAuB,CAACjB,QAAAA,IAAmC;QAC/DkB,IAAMC,gBAAAA,KAAAA,CAAMC,UAAU,CAAC,CAAC,EAAEC,YAAY,IAAI,EAAE,GAAGC,KAAAA,EAAO,EAAEC,GAAAA,GAAAA;YACtD,qBACEC,IAAA,CAAC5B,QAAQ6B,OAAO,EAAA;gBACdF,GAAKA,EAAAA,GAAAA;gBACLG,iBAAgB,EAAA,mBAAA;gBAChBC,IAAK,EAAA,KAAA;gBACLC,KAAM,EAAA,QAAA;gBACNC,KAAO,EAAA;oBAAEC,MAAQ,EAAA;AAAO,iBAAA;AACvB,gBAAA,GAAGR,KAAK;;AAERD,oBAAAA,SAAAA,kBACCb,GAACb,CAAAA,YAAAA,EAAAA;wBAAaoC,OAAO,EAAA,IAAA;AACnB,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,KAAAA,EAAAA;4BACCC,KAAM,EAAA,4BAAA;4BACNC,KAAM,EAAA,IAAA;4BACNC,MAAO,EAAA,IAAA;4BACPC,OAAQ,EAAA,WAAA;4BACRC,IAAK,EAAA,MAAA;AAEL,4BAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,MAAAA,EAAAA;gCAAKC,CAAE,EAAA;;;;kCAId/B,GAACjB,CAAAA,IAAAA,EAAAA;wBAAK2C,KAAM,EAAA,OAAA;wBAAQM,SAAU,EAAA,QAAA;wBAASC,UAAW,EAAA,OAAA;AAC/CnB,wBAAAA,QAAAA,EAAAA,KAAAA,CAAMoB;;;;AAIf,SAAA,CAAA;AAEAC,QAAAA,KAAAA,EAAO,CAACrB,KAAAA,GAAAA;AACN,YAAA,qBACEd,GAACoC,CAAAA,GAAAA,EAAAA;gBAAIC,UAAY,EAAA,CAAA;gBAAGC,WAAa,EAAA,CAAA;gBAAGC,YAAc,EAAA,CAAA;gBAAGC,aAAe,EAAA,CAAA;gBAAGd,KAAM,EAAA,MAAA;AAC1E,gBAAA,QAAA,EAAA,UAAA,IAAcZ,KACbA,GAAAA,KAAAA,CAAMoB,QAAQ,iBAEdlC,GAACC,CAAAA,UAAAA,EAAAA;oBAAWwC,GAAI,EAAA,IAAA;oBAAKpC,EAAG,EAAA,mBAAA;oBAAoBH,OAAQ,EAAA,OAAA;oBAAQwC,UAAW,EAAA,MAAA;AACrE,oBAAA,QAAA,gBAAA1C,GAACI,CAAAA,gBAAAA,EAAAA;AAAiBC,wBAAAA,EAAAA,EAAIS,MAAMT,EAAE;AAAEC,wBAAAA,cAAAA,EAAgBQ,MAAMR;;;;AAKhE,SAAA;QAEAW,OAAS,EAAA,CAACH,sBACRd,GAACoC,CAAAA,GAAAA,EAAAA;gBAAII,aAAe,EAAA,CAAA;gBAAGF,WAAa,EAAA,CAAA;gBAAGC,YAAc,EAAA,CAAA;gBAAGb,KAAM,EAAA,MAAA;AAC3D,gBAAA,QAAA,EAAA,UAAA,IAAcZ,KACbA,GAAAA,KAAAA,CAAMoB,QAAQ,iBAEdlC,GAACC,CAAAA,UAAAA,EAAAA;oBAAWwC,GAAI,EAAA,KAAA;oBAAMvC,OAAQ,EAAA,OAAA;AAC5B,oBAAA,QAAA,gBAAAF,GAACI,CAAAA,gBAAAA,EAAAA;AAAiBC,wBAAAA,EAAAA,EAAIS,MAAMT,EAAE;AAAEC,wBAAAA,cAAAA,EAAgBQ,MAAMR;;;;AAM9DqC,QAAAA,OAAAA,EAAS,CAAC,EAAEC,aAAgB,GAAA,IAAI,EAAEC,QAAAA,GAAW,KAAK,EAAEC,EAAE,EAAEZ,QAAQ,EAAE,GAAGa,SAAW,EAAA,GAAA;YAC9E,MAAM,EAAEC,UAAU,EAAE,GAAGC,WAAAA,EAAAA;AACvB,YAAA,MAAMC,WAAWxD,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEuD,QAAQ,CAAA;AACrE,YAAA,MAAMzD,QAAQC,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,YAAA,MAAMG,cAAcH,KAAMI,CAAAA,KAAK,CAACL,QAAS,CAAA,CAACI,WAAW,GAAG,CAAA;AACxD,YAAA,MAAMuD,mBAAmB1D,KAAMI,CAAAA,KAAK,CAACL,QAAAA,CAAS,CAACO,MAAM;AAErD,YAAA,MAAMqD,gBAAmB,GAAA,IAAA;AACvBJ,gBAAAA,UAAAA,CAAW,mBAAqB,EAAA;oBAAEK,IAAM7D,EAAAA;AAAS,iBAAA,CAAA;gBACjD0D,QAAS,CAAA;oBAAEI,IAAM,EAAA,WAAA;oBAAaC,OAAS/D,EAAAA;AAAS,iBAAA,CAAA;AAClD,aAAA;AAEA,YAAA,MAAMgE,cAAiB,GAAA,IAAA;AACrB,gBAAA,IAAI5D,gBAAgBuD,gBAAkB,EAAA;AACpCH,oBAAAA,UAAAA,CAAW,uBAAyB,EAAA;wBAAEK,IAAM7D,EAAAA;AAAS,qBAAA,CAAA;AACvD;gBACA0D,QAAS,CAAA;oBAAEI,IAAM,EAAA,WAAA;oBAAaC,OAAS/D,EAAAA;AAAS,iBAAA,CAAA;AAClD,aAAA;AAEA,YAAA,qBACEQ,GAACnB,CAAAA,gBAAAA,EAAAA;gBACC6C,KAAM,EAAA,MAAA;gBACN+B,OAAS,EAAA,CAAA;gBACTnB,WAAa,EAAA,CAAA;AACboB,gBAAAA,cAAAA,EAAgBd,gBAAgB,eAAkB,GAAA,UAAA;AACjD,gBAAA,GAAGG,SAAS;AAEZb,gBAAAA,QAAAA,EAAAA,QAAAA,GACCA,QAEA,iBAAAlB,IAAA,CAAA2C,QAAA,EAAA;;AACGf,wBAAAA,aAAAA,kBAAiB5C,GAACT,CAAAA,SAAAA,EAAAA;4BAAUC,QAAUA,EAAAA;;sCACvCwB,IAACjC,CAAAA,IAAAA,EAAAA;4BAAK6E,GAAK,EAAA,CAAA;;AACRf,gCAAAA,QAAAA,kBACC7C,GAAC6D,CAAAA,MAAAA,EAAAA;oCAAO3D,OAAQ,EAAA,UAAA;oCAAW4D,OAASV,EAAAA,gBAAAA;AAClC,oCAAA,QAAA,gBAAApD,GAACI,CAAAA,gBAAAA,EAAAA;wCAAiBC,EAAG,EAAA,YAAA;wCAAaC,cAAe,EAAA;;;AAGpDwC,gCAAAA,EAAAA,iBACC9C,GAAC+D,CAAAA,UAAAA,EAAAA;oCAAWtB,GAAKuB,EAAAA,OAAAA;oCAASlB,EAAIA,EAAAA,EAAAA;oCAAIgB,OAASN,EAAAA,cAAAA;AACzC,oCAAA,QAAA,gBAAAxD,GAACI,CAAAA,gBAAAA,EAAAA;wCAAiBC,EAAG,EAAA,YAAA;wCAAaC,cAAe,EAAA;;mDAGnDN,GAAC6D,CAAAA,MAAAA,EAAAA;oCAAOC,OAASN,EAAAA,cAAAA;AACf,oCAAA,QAAA,gBAAAxD,GAACI,CAAAA,gBAAAA,EAAAA;wCAAiBC,EAAG,EAAA,YAAA;wCAAaC,cAAe,EAAA;;;;;;;;AAQjE;KACF;;;;"}
|
|
@@ -99,26 +99,30 @@ const tours = {
|
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
name: 'Components',
|
|
102
|
-
content: (Step, { dispatch })=>/*#__PURE__*/ jsxRuntime.jsxs(Step.Root, {
|
|
102
|
+
content: (Step$1, { dispatch })=>/*#__PURE__*/ jsxRuntime.jsxs(Step$1.Root, {
|
|
103
103
|
side: "right",
|
|
104
104
|
sideOffset: 16,
|
|
105
105
|
children: [
|
|
106
|
-
/*#__PURE__*/ jsxRuntime.jsx(Step.Title, {
|
|
106
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step$1.Title, {
|
|
107
107
|
id: "tours.contentTypeBuilder.Components.title",
|
|
108
108
|
defaultMessage: "Components"
|
|
109
109
|
}),
|
|
110
|
-
/*#__PURE__*/ jsxRuntime.jsx(Step.Content, {
|
|
110
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step$1.Content, {
|
|
111
111
|
id: "tours.contentTypeBuilder.Components.content",
|
|
112
112
|
defaultMessage: "A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards."
|
|
113
113
|
}),
|
|
114
|
-
/*#__PURE__*/ jsxRuntime.
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
114
|
+
/*#__PURE__*/ jsxRuntime.jsxs(Step$1.Actions, {
|
|
115
|
+
children: [
|
|
116
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step.StepCount, {
|
|
117
|
+
tourName: "contentTypeBuilder"
|
|
118
|
+
}),
|
|
119
|
+
/*#__PURE__*/ jsxRuntime.jsx(GotItAction, {
|
|
120
|
+
onClick: ()=>dispatch({
|
|
121
|
+
type: 'next_step',
|
|
122
|
+
payload: 'contentTypeBuilder'
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
]
|
|
122
126
|
})
|
|
123
127
|
]
|
|
124
128
|
})
|
|
@@ -130,11 +134,11 @@ const tours = {
|
|
|
130
134
|
children: [
|
|
131
135
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Title, {
|
|
132
136
|
id: "tours.contentTypeBuilder.Finish.title",
|
|
133
|
-
defaultMessage: "It
|
|
137
|
+
defaultMessage: "It's time to create content!"
|
|
134
138
|
}),
|
|
135
139
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Content, {
|
|
136
140
|
id: "tours.contentTypeBuilder.Finish.content",
|
|
137
|
-
defaultMessage: "Now that you created content types, you
|
|
141
|
+
defaultMessage: "Now that you created content types, you'll be able to create content in the content manager."
|
|
138
142
|
}),
|
|
139
143
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Actions, {
|
|
140
144
|
showStepCount: false,
|
|
@@ -148,7 +152,7 @@ const tours = {
|
|
|
148
152
|
contentManager: createTour('contentManager', [
|
|
149
153
|
{
|
|
150
154
|
name: 'Introduction',
|
|
151
|
-
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema')
|
|
155
|
+
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema'),
|
|
152
156
|
content: (Step)=>/*#__PURE__*/ jsxRuntime.jsxs(Step.Root, {
|
|
153
157
|
side: "top",
|
|
154
158
|
withArrow: false,
|
|
@@ -186,26 +190,30 @@ const tours = {
|
|
|
186
190
|
},
|
|
187
191
|
{
|
|
188
192
|
name: 'Publish',
|
|
189
|
-
content: (Step, { dispatch })=>/*#__PURE__*/ jsxRuntime.jsxs(Step.Root, {
|
|
193
|
+
content: (Step$1, { dispatch })=>/*#__PURE__*/ jsxRuntime.jsxs(Step$1.Root, {
|
|
190
194
|
side: "left",
|
|
191
195
|
align: "center",
|
|
192
196
|
children: [
|
|
193
|
-
/*#__PURE__*/ jsxRuntime.jsx(Step.Title, {
|
|
197
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step$1.Title, {
|
|
194
198
|
id: "tours.contentManager.Publish.title",
|
|
195
199
|
defaultMessage: "Publish"
|
|
196
200
|
}),
|
|
197
|
-
/*#__PURE__*/ jsxRuntime.jsx(Step.Content, {
|
|
201
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step$1.Content, {
|
|
198
202
|
id: "tours.contentManager.Publish.content",
|
|
199
203
|
defaultMessage: "Publish entries to make their content available through the Document Service API."
|
|
200
204
|
}),
|
|
201
|
-
/*#__PURE__*/ jsxRuntime.
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
205
|
+
/*#__PURE__*/ jsxRuntime.jsxs(Step$1.Actions, {
|
|
206
|
+
children: [
|
|
207
|
+
/*#__PURE__*/ jsxRuntime.jsx(Step.StepCount, {
|
|
208
|
+
tourName: "contentManager"
|
|
209
|
+
}),
|
|
210
|
+
/*#__PURE__*/ jsxRuntime.jsx(GotItAction, {
|
|
211
|
+
onClick: ()=>dispatch({
|
|
212
|
+
type: 'next_step',
|
|
213
|
+
payload: 'contentManager'
|
|
214
|
+
})
|
|
215
|
+
})
|
|
216
|
+
]
|
|
209
217
|
})
|
|
210
218
|
]
|
|
211
219
|
})
|
|
@@ -217,11 +225,11 @@ const tours = {
|
|
|
217
225
|
children: [
|
|
218
226
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Title, {
|
|
219
227
|
id: "tours.contentManager.FinalStep.title",
|
|
220
|
-
defaultMessage: "It
|
|
228
|
+
defaultMessage: "It's time to create API Tokens!"
|
|
221
229
|
}),
|
|
222
230
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Content, {
|
|
223
231
|
id: "tours.contentManager.FinalStep.content",
|
|
224
|
-
defaultMessage: "Now that you
|
|
232
|
+
defaultMessage: "Now that you've created and published content, time to create API tokens and set up permissions."
|
|
225
233
|
}),
|
|
226
234
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Actions, {
|
|
227
235
|
showStepCount: false,
|
|
@@ -235,7 +243,6 @@ const tours = {
|
|
|
235
243
|
apiTokens: createTour('apiTokens', [
|
|
236
244
|
{
|
|
237
245
|
name: 'Introduction',
|
|
238
|
-
when: (completedActions)=>!completedActions.includes('didCreateApiToken'),
|
|
239
246
|
content: (Step)=>/*#__PURE__*/ jsxRuntime.jsxs(Step.Root, {
|
|
240
247
|
sideOffset: -36,
|
|
241
248
|
withArrow: false,
|
|
@@ -313,7 +320,7 @@ const tours = {
|
|
|
313
320
|
children: [
|
|
314
321
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Title, {
|
|
315
322
|
id: "tours.apiTokens.FinalStep.title",
|
|
316
|
-
defaultMessage: "It
|
|
323
|
+
defaultMessage: "It's time to deploy your application!"
|
|
317
324
|
}),
|
|
318
325
|
/*#__PURE__*/ jsxRuntime.jsx(Step.Content, {
|
|
319
326
|
id: "tours.apiTokens.FinalStep.content",
|
|
@@ -330,19 +337,13 @@ const tours = {
|
|
|
330
337
|
]),
|
|
331
338
|
strapiCloud: createTour('strapiCloud', [])
|
|
332
339
|
};
|
|
333
|
-
const
|
|
334
|
-
const state = Context.
|
|
335
|
-
const hasFutureFlag = window.strapi.future.isEnabled('unstableGuidedTour');
|
|
340
|
+
const GuidedTourTooltip = ({ children, ...props })=>{
|
|
341
|
+
const state = Context.useGuidedTour('TooltipWrapper', (s)=>s.state);
|
|
336
342
|
if (!state.enabled) {
|
|
337
343
|
return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
338
344
|
children: children
|
|
339
345
|
});
|
|
340
346
|
}
|
|
341
|
-
if (!hasFutureFlag) {
|
|
342
|
-
return /*#__PURE__*/ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
343
|
-
children: children
|
|
344
|
-
});
|
|
345
|
-
}
|
|
346
347
|
return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltipImpl, {
|
|
347
348
|
...props,
|
|
348
349
|
children: children
|
|
@@ -359,8 +360,8 @@ const GuidedTourOverlay = styled.styled(designSystem.Box)`
|
|
|
359
360
|
`;
|
|
360
361
|
const GuidedTourTooltipImpl = ({ children, content, tourName, step, when })=>{
|
|
361
362
|
const { data: guidedTourMeta } = admin.useGetGuidedTourMetaQuery();
|
|
362
|
-
const state = Context.
|
|
363
|
-
const dispatch = Context.
|
|
363
|
+
const state = Context.useGuidedTour('GuidedTourTooltip', (s)=>s.state);
|
|
364
|
+
const dispatch = Context.useGuidedTour('GuidedTourTooltip', (s)=>s.dispatch);
|
|
364
365
|
const isCurrentStep = state.tours[tourName].currentStep === step;
|
|
365
366
|
const isStepConditionMet = when ? when(state.completedActions) : true;
|
|
366
367
|
const isPopoverOpen = guidedTourMeta?.data?.isFirstSuperAdminUser && !state.tours[tourName].isCompleted && isCurrentStep && isStepConditionMet;
|
|
@@ -414,7 +415,7 @@ function createTour(tourName, steps) {
|
|
|
414
415
|
throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);
|
|
415
416
|
}
|
|
416
417
|
acc[step.name] = ({ children })=>{
|
|
417
|
-
return /*#__PURE__*/ jsxRuntime.jsx(
|
|
418
|
+
return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltip, {
|
|
418
419
|
tourName: tourName,
|
|
419
420
|
step: index,
|
|
420
421
|
content: step.content,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tours.js","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal, Button } from '@strapi/design-system';\nimport { FormattedMessage } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport {\n type State,\n type Action,\n useGuidedTour,\n ValidTourName,\n ExtendedCompletedActions,\n} from './Context';\nimport { Step, StepCount, createStepComponents } from './Step';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\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\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root side=\"bottom\" 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 showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CollectionTypes',\n content: (Step) => (\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 },\n {\n name: 'SingleTypes',\n content: (Step) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title\n id=\"tours.contentTypeBuilder.SingleTypes.title\"\n defaultMessage=\"Single Types\"\n />\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 },\n {\n name: 'Components',\n content: (Step, { dispatch }) => (\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 <StepCount tourName=\"contentTypeBuilder\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentTypeBuilder' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\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} to=\"/content-manager\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n },\n ]),\n contentManager: createTour('contentManager', [\n {\n name: 'Introduction',\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n content: (Step) => (\n <Step.Root side=\"top\" withArrow={false}>\n <Step.Title\n id=\"tours.contentManager.Introduction.title\"\n defaultMessage=\"Content manager\"\n />\n <Step.Content\n id=\"tours.contentManager.Introduction.content\"\n defaultMessage=\"Create and manage content from your collection types and single types.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'Fields',\n content: (Step) => (\n <Step.Root sideOffset={-12}>\n <Step.Title id=\"tours.contentManager.Fields.title\" defaultMessage=\"Fields\" />\n <Step.Content\n id=\"tours.contentManager.Fields.content\"\n defaultMessage=\"Add content to the fields created in the Content-Type Builder.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'Publish',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"left\" align=\"center\">\n <Step.Title id=\"tours.contentManager.Publish.title\" defaultMessage=\"Publish\" />\n <Step.Content\n id=\"tours.contentManager.Publish.content\"\n defaultMessage=\"Publish entries to make their content available through the Document Service API.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentManager\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentManager' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\">\n <Step.Title\n id=\"tours.contentManager.FinalStep.title\"\n defaultMessage=\"It's time to create API Tokens!\"\n />\n <Step.Content\n id=\"tours.contentManager.FinalStep.content\"\n defaultMessage=\"Now that you've created and published content, time to create API tokens and set up permissions.\"\n />\n <Step.Actions showStepCount={false} to=\"/settings/api-tokens\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContent'),\n },\n ]),\n apiTokens: createTour('apiTokens', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root sideOffset={-36} withArrow={false}>\n <Step.Title id=\"tours.apiTokens.Introduction.title\" defaultMessage=\"API tokens\" />\n <Step.Content\n id=\"tours.apiTokens.Introduction.content\"\n defaultMessage=\"Create and manage API tokens with highly customizable permissions.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CreateAnAPIToken',\n content: (Step) => (\n <Step.Root side=\"bottom\" align=\"end\" sideOffset={-10}>\n <Step.Title\n id=\"tours.apiTokens.CreateAnAPIToken.title\"\n defaultMessage=\"Create an API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CreateAnAPIToken.content\"\n defaultMessage=\"Create a new API token. Choose a name, duration and type.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'CopyAPIToken',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"bottom\" align=\"start\" sideOffset={-5}>\n <Step.Title\n id=\"tours.apiTokens.CopyAPIToken.title\"\n defaultMessage=\"Copy your new API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CopyAPIToken.content\"\n defaultMessage=\"Make sure to do it now, you won’t be able to see it again. You’ll need to generate a new one if you lose it.\"\n />\n <Step.Actions>\n <StepCount tourName=\"apiTokens\" />\n <GotItAction onClick={() => dispatch({ type: 'next_step', payload: 'apiTokens' })} />\n </Step.Actions>\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateApiToken'),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\" align=\"start\">\n <Step.Title\n id=\"tours.apiTokens.FinalStep.title\"\n defaultMessage=\"It's time to deploy your application!\"\n />\n <Step.Content\n id=\"tours.apiTokens.FinalStep.content\"\n defaultMessage=\"Your application is ready to be deployed and its content to be shared with the world!\"\n />\n <Step.Actions showStepCount={false} to=\"/\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCopyApiToken'),\n },\n ]),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\ntype Content = (\n Step: Step,\n {\n state,\n dispatch,\n }: {\n state: State;\n dispatch: React.Dispatch<Action>;\n }\n) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return <>{children}</>;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n // TODO: This isn't great but the only solution for syncing the completed actions\n React.useEffect(() => {\n dispatch({\n type: 'set_completed_actions',\n payload: guidedTourMeta?.data?.completedActions ?? [],\n });\n }, [dispatch, guidedTourMeta?.data?.completedActions]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content(Step, { state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nfunction createTour<const T extends ReadonlyArray<TourStep<string>>>(tourName: string, steps: T) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce((acc, step, index) => {\n if (step.name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n acc[step.name as keyof Components] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n return acc;\n }, {} as Components);\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["GotItAction","onClick","_jsx","Button","FormattedMessage","id","defaultMessage","tours","contentTypeBuilder","createTour","name","content","Step","_jsxs","Root","side","withArrow","Title","Content","Actions","showSkip","sideOffset","dispatch","StepCount","tourName","type","payload","showStepCount","to","when","completedActions","includes","contentManager","align","apiTokens","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_Fragment","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","step","data","guidedTourMeta","useGetGuidedTourMetaQuery","isCurrentStep","currentStep","isStepConditionMet","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","useMemo","createStepComponents","Portal","Popover","open","Anchor","steps","tour","reduce","acc","index","Error"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA;;AAEkG,qGAElG,MAAMA,WAAAA,GAAc,CAAC,EAAEC,OAAO,EAA2B,GAAA;AACvD,IAAA,qBACEC,cAACC,CAAAA,mBAAAA,EAAAA;QAAOF,OAASA,EAAAA,OAAAA;AACf,QAAA,QAAA,gBAAAC,cAACE,CAAAA,0BAAAA,EAAAA;YAAiBC,EAAG,EAAA,aAAA;YAAcC,cAAe,EAAA;;;AAGxD,CAAA;AAEA,MAAMC,KAAQ,GAAA;AACZC,IAAAA,kBAAAA,EAAoBC,WAAW,oBAAsB,EAAA;AACnD,QAAA;YACEC,IAAM,EAAA,cAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASC,SAAW,EAAA,KAAA;;AAClC,sCAAAd,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,6CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,+CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,iBAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,gDAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,kDAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,aAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,4CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,8CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA,CAACC,QAAM,EAAEU,QAAQ,EAAE,iBAC1BT,eAAA,CAACD,OAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,cAAA,CAACU,OAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,2CAAA;4BAA4CC,cAAe,EAAA;;AAC1E,sCAAAJ,cAAA,CAACU,OAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,6CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,eAAA,CAACD,OAAKO,OAAO,EAAA;;8CACXjB,cAACqB,CAAAA,cAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,cAACF,CAAAA,WAAAA,EAAAA;AACCC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAqB,yCAAA;;;;;;AAKrF,SAAA;AACA,QAAA;YACEhB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;;AACd,sCAAAb,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,uCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,yCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,4BAAA;AACxD;AACD,KAAA,CAAA;AACDC,IAAAA,cAAAA,EAAgBvB,WAAW,gBAAkB,EAAA;AAC3C,QAAA;YACEC,IAAM,EAAA,cAAA;AACNmB,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,4BAAA,CAAA;AACtDpB,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,KAAA;oBAAMC,SAAW,EAAA,KAAA;;AAC/B,sCAAAd,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,yCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,2CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;AAACO,oBAAAA,UAAAA,EAAY,CAAC,EAAA;;AACtB,sCAAAnB,cAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,mCAAA;4BAAoCC,cAAe,EAAA;;AAClE,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,qCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,SAAA;YACNC,OAAS,EAAA,CAACC,QAAM,EAAEU,QAAQ,EAAE,iBAC1BT,eAAA,CAACD,OAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,MAAA;oBAAOkB,KAAM,EAAA,QAAA;;AAC3B,sCAAA/B,cAAA,CAACU,OAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,oCAAA;4BAAqCC,cAAe,EAAA;;AACnE,sCAAAJ,cAAA,CAACU,OAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,eAAA,CAACD,OAAKO,OAAO,EAAA;;8CACXjB,cAACqB,CAAAA,cAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,cAACF,CAAAA,WAAAA,EAAAA;AACCC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAiB,yCAAA;;;;;;AAKjF,SAAA;AACA,QAAA;YACEhB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;;AACd,sCAAAb,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,wCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,kBAAA;AACxD;AACD,KAAA,CAAA;AACDG,IAAAA,SAAAA,EAAWzB,WAAW,WAAa,EAAA;AACjC,QAAA;YACEC,IAAM,EAAA,cAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;AAACO,oBAAAA,UAAAA,EAAY,CAAC,EAAA;oBAAIL,SAAW,EAAA,KAAA;;AACrC,sCAAAd,cAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,oCAAA;4BAAqCC,cAAe,EAAA;;AACnE,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,kBAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASkB,KAAM,EAAA,KAAA;AAAMZ,oBAAAA,UAAAA,EAAY,CAAC,EAAA;;AAChD,sCAAAnB,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,wCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,0CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,CAACC,QAAM,EAAEU,QAAQ,EAAE,iBAC1BT,eAAA,CAACD,OAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASkB,KAAM,EAAA,OAAA;AAAQZ,oBAAAA,UAAAA,EAAY,CAAC,CAAA;;AAClD,sCAAAnB,cAAA,CAACU,OAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,oCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,OAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,eAAA,CAACD,OAAKO,OAAO,EAAA;;8CACXjB,cAACqB,CAAAA,cAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,cAACF,CAAAA,WAAAA,EAAAA;AAAYC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAY,yCAAA;;;;;;AAIrFG,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,mBAAA;AACxD,SAAA;AACA,QAAA;YACErB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,eAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQkB,KAAM,EAAA,OAAA;;AAC5B,sCAAA/B,cAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,iCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,mCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,cAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,iBAAA;AACxD;AACD,KAAA,CAAA;IACDI,WAAa1B,EAAAA,UAAAA,CAAW,eAAe,EAAE;AAC3C;AA2BA,MAAM2B,oBAAoB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAA+B,EAAA,GAAA;AACvE,IAAA,MAAMC,QAAQC,qBAAc,CAAA,gBAAA,EAAkB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;IAE5D,IAAI,CAACA,KAAMG,CAAAA,OAAO,EAAE;QAClB,qBAAOxC,cAAA,CAAAyC,mBAAA,EAAA;AAAGN,YAAAA,QAAAA,EAAAA;;AACZ;AAEA,IAAA,qBAAOnC,cAAC0C,CAAAA,qBAAAA,EAAAA;AAAuB,QAAA,GAAGN,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AAC5C,CAAA;AAEA,MAAMQ,iBAAAA,GAAoBC,aAAOC,CAAAA,gBAAAA,CAAI;;;;;;;;AAQrC,CAAC;AAED,MAAMH,qBAAwB,GAAA,CAAC,EAC7BP,QAAQ,EACR1B,OAAO,EACPa,QAAQ,EACRwB,IAAI,EACJnB,IAAI,EACmB,GAAA;AACvB,IAAA,MAAM,EAAEoB,IAAAA,EAAMC,cAAc,EAAE,GAAGC,+BAAAA,EAAAA;AAEjC,IAAA,MAAMZ,QAAQC,qBAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,IAAA,MAAMjB,WAAWkB,qBAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEnB,QAAQ,CAAA;AAErE,IAAA,MAAM8B,gBAAgBb,KAAMhC,CAAAA,KAAK,CAACiB,QAAS,CAAA,CAAC6B,WAAW,KAAKL,IAAAA;AAC5D,IAAA,MAAMM,kBAAqBzB,GAAAA,IAAAA,GAAOA,IAAKU,CAAAA,KAAAA,CAAMT,gBAAgB,CAAI,GAAA,IAAA;AACjE,IAAA,MAAMyB,aACJL,GAAAA,cAAAA,EAAgBD,IAAMO,EAAAA,qBAAAA,IACtB,CAACjB,KAAAA,CAAMhC,KAAK,CAACiB,QAAS,CAAA,CAACiC,WAAW,IAClCL,aACAE,IAAAA,kBAAAA;;AAGFI,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACJ,aAAe,EAAA;AAEpB,QAAA,MAAMK,gBAAgBC,MAAOC,CAAAA,gBAAgB,CAACC,QAASC,CAAAA,IAAI,EAAEC,QAAQ;AACrEF,QAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAG,QAAA;QAE/B,OAAO,IAAA;AACLF,YAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAGL,aAAAA;AACjC,SAAA;KACC,EAAA;AAACL,QAAAA;AAAc,KAAA,CAAA;;AAGlBG,IAAAA,gBAAAA,CAAMC,SAAS,CAAC,IAAA;QACdrC,QAAS,CAAA;YACPG,IAAM,EAAA,uBAAA;YACNC,OAASwB,EAAAA,cAAAA,EAAgBD,IAAMnB,EAAAA,gBAAAA,IAAoB;AACrD,SAAA,CAAA;KACC,EAAA;AAACR,QAAAA,QAAAA;AAAU4B,QAAAA,cAAAA,EAAgBD,IAAMnB,EAAAA;AAAiB,KAAA,CAAA;AAErD,IAAA,MAAMlB,SAAO8C,gBAAMS,CAAAA,OAAO,CAAC,IAAMC,0BAAqB5C,QAAW,CAAA,EAAA;AAACA,QAAAA;AAAS,KAAA,CAAA;IAE3E,qBACEX,eAAA,CAAA8B,mBAAA,EAAA;;AACGY,YAAAA,aAAAA,kBACCrD,cAACmE,CAAAA,mBAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAnE,cAAC2C,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGL,0BAAAhC,eAAA,CAACyD,qBAAQxD,IAAI,EAAA;gBAACyD,IAAMhB,EAAAA,aAAAA;;AAClB,kCAAArD,cAAA,CAACoE,qBAAQE,MAAM,EAAA;AAAEnC,wBAAAA,QAAAA,EAAAA;;AAChB1B,oBAAAA,OAAAA,CAAQC,MAAM,EAAA;AAAE2B,wBAAAA,KAAAA;AAAOjB,wBAAAA;AAAS,qBAAA;;;;;AAIzC,CAAA;AAYA,SAASb,UAAAA,CAA4De,QAAgB,EAAEiD,KAAQ,EAAA;AAK7F,IAAA,MAAMC,OAAOD,KAAME,CAAAA,MAAM,CAAC,CAACC,KAAK5B,IAAM6B,EAAAA,KAAAA,GAAAA;QACpC,IAAI7B,IAAAA,CAAKtC,IAAI,IAAIkE,GAAK,EAAA;YACpB,MAAME,KAAAA,CAAM,CAAC,UAAU,EAAEtD,QAAAA,CAAS,YAAY,EAAEwB,IAAKtC,CAAAA,IAAI,CAAC,4BAA4B,CAAC,CAAA;AACzF;QAEAkE,GAAG,CAAC5B,KAAKtC,IAAI,CAAqB,GAAG,CAAC,EAAE2B,QAAQ,EAAiC,GAAA;AAC/E,YAAA,qBACEnC,cAACkC,CAAAA,iBAAAA,EAAAA;gBACCZ,QAAUA,EAAAA,QAAAA;gBACVwB,IAAM6B,EAAAA,KAAAA;AACNlE,gBAAAA,OAAAA,EAASqC,KAAKrC,OAAO;AACrBkB,gBAAAA,IAAAA,EAAMmB,KAAKnB,IAAI;AAEdQ,gBAAAA,QAAAA,EAAAA;;AAGP,SAAA;QAEA,OAAOuC,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;IAEJ,OAAOF,IAAAA;AACT;;;;"}
|
|
@@ -4,7 +4,7 @@ import { Box, Portal, Popover, Button } from '@strapi/design-system';
|
|
|
4
4
|
import { FormattedMessage } from 'react-intl';
|
|
5
5
|
import { styled } from 'styled-components';
|
|
6
6
|
import { useGetGuidedTourMetaQuery } from '../../services/admin.mjs';
|
|
7
|
-
import {
|
|
7
|
+
import { useGuidedTour } from './Context.mjs';
|
|
8
8
|
import { StepCount, createStepComponents } from './Step.mjs';
|
|
9
9
|
|
|
10
10
|
/* -------------------------------------------------------------------------------------------------
|
|
@@ -90,14 +90,18 @@ const tours = {
|
|
|
90
90
|
id: "tours.contentTypeBuilder.Components.content",
|
|
91
91
|
defaultMessage: "A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards."
|
|
92
92
|
}),
|
|
93
|
-
/*#__PURE__*/
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
93
|
+
/*#__PURE__*/ jsxs(Step.Actions, {
|
|
94
|
+
children: [
|
|
95
|
+
/*#__PURE__*/ jsx(StepCount, {
|
|
96
|
+
tourName: "contentTypeBuilder"
|
|
97
|
+
}),
|
|
98
|
+
/*#__PURE__*/ jsx(GotItAction, {
|
|
99
|
+
onClick: ()=>dispatch({
|
|
100
|
+
type: 'next_step',
|
|
101
|
+
payload: 'contentTypeBuilder'
|
|
102
|
+
})
|
|
103
|
+
})
|
|
104
|
+
]
|
|
101
105
|
})
|
|
102
106
|
]
|
|
103
107
|
})
|
|
@@ -109,11 +113,11 @@ const tours = {
|
|
|
109
113
|
children: [
|
|
110
114
|
/*#__PURE__*/ jsx(Step.Title, {
|
|
111
115
|
id: "tours.contentTypeBuilder.Finish.title",
|
|
112
|
-
defaultMessage: "It
|
|
116
|
+
defaultMessage: "It's time to create content!"
|
|
113
117
|
}),
|
|
114
118
|
/*#__PURE__*/ jsx(Step.Content, {
|
|
115
119
|
id: "tours.contentTypeBuilder.Finish.content",
|
|
116
|
-
defaultMessage: "Now that you created content types, you
|
|
120
|
+
defaultMessage: "Now that you created content types, you'll be able to create content in the content manager."
|
|
117
121
|
}),
|
|
118
122
|
/*#__PURE__*/ jsx(Step.Actions, {
|
|
119
123
|
showStepCount: false,
|
|
@@ -127,7 +131,7 @@ const tours = {
|
|
|
127
131
|
contentManager: createTour('contentManager', [
|
|
128
132
|
{
|
|
129
133
|
name: 'Introduction',
|
|
130
|
-
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema')
|
|
134
|
+
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema'),
|
|
131
135
|
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
132
136
|
side: "top",
|
|
133
137
|
withArrow: false,
|
|
@@ -177,14 +181,18 @@ const tours = {
|
|
|
177
181
|
id: "tours.contentManager.Publish.content",
|
|
178
182
|
defaultMessage: "Publish entries to make their content available through the Document Service API."
|
|
179
183
|
}),
|
|
180
|
-
/*#__PURE__*/
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
/*#__PURE__*/ jsxs(Step.Actions, {
|
|
185
|
+
children: [
|
|
186
|
+
/*#__PURE__*/ jsx(StepCount, {
|
|
187
|
+
tourName: "contentManager"
|
|
188
|
+
}),
|
|
189
|
+
/*#__PURE__*/ jsx(GotItAction, {
|
|
190
|
+
onClick: ()=>dispatch({
|
|
191
|
+
type: 'next_step',
|
|
192
|
+
payload: 'contentManager'
|
|
193
|
+
})
|
|
194
|
+
})
|
|
195
|
+
]
|
|
188
196
|
})
|
|
189
197
|
]
|
|
190
198
|
})
|
|
@@ -196,11 +204,11 @@ const tours = {
|
|
|
196
204
|
children: [
|
|
197
205
|
/*#__PURE__*/ jsx(Step.Title, {
|
|
198
206
|
id: "tours.contentManager.FinalStep.title",
|
|
199
|
-
defaultMessage: "It
|
|
207
|
+
defaultMessage: "It's time to create API Tokens!"
|
|
200
208
|
}),
|
|
201
209
|
/*#__PURE__*/ jsx(Step.Content, {
|
|
202
210
|
id: "tours.contentManager.FinalStep.content",
|
|
203
|
-
defaultMessage: "Now that you
|
|
211
|
+
defaultMessage: "Now that you've created and published content, time to create API tokens and set up permissions."
|
|
204
212
|
}),
|
|
205
213
|
/*#__PURE__*/ jsx(Step.Actions, {
|
|
206
214
|
showStepCount: false,
|
|
@@ -214,7 +222,6 @@ const tours = {
|
|
|
214
222
|
apiTokens: createTour('apiTokens', [
|
|
215
223
|
{
|
|
216
224
|
name: 'Introduction',
|
|
217
|
-
when: (completedActions)=>!completedActions.includes('didCreateApiToken'),
|
|
218
225
|
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
219
226
|
sideOffset: -36,
|
|
220
227
|
withArrow: false,
|
|
@@ -292,7 +299,7 @@ const tours = {
|
|
|
292
299
|
children: [
|
|
293
300
|
/*#__PURE__*/ jsx(Step.Title, {
|
|
294
301
|
id: "tours.apiTokens.FinalStep.title",
|
|
295
|
-
defaultMessage: "It
|
|
302
|
+
defaultMessage: "It's time to deploy your application!"
|
|
296
303
|
}),
|
|
297
304
|
/*#__PURE__*/ jsx(Step.Content, {
|
|
298
305
|
id: "tours.apiTokens.FinalStep.content",
|
|
@@ -309,19 +316,13 @@ const tours = {
|
|
|
309
316
|
]),
|
|
310
317
|
strapiCloud: createTour('strapiCloud', [])
|
|
311
318
|
};
|
|
312
|
-
const
|
|
313
|
-
const state =
|
|
314
|
-
const hasFutureFlag = window.strapi.future.isEnabled('unstableGuidedTour');
|
|
319
|
+
const GuidedTourTooltip = ({ children, ...props })=>{
|
|
320
|
+
const state = useGuidedTour('TooltipWrapper', (s)=>s.state);
|
|
315
321
|
if (!state.enabled) {
|
|
316
322
|
return /*#__PURE__*/ jsx(Fragment, {
|
|
317
323
|
children: children
|
|
318
324
|
});
|
|
319
325
|
}
|
|
320
|
-
if (!hasFutureFlag) {
|
|
321
|
-
return /*#__PURE__*/ jsx(Fragment, {
|
|
322
|
-
children: children
|
|
323
|
-
});
|
|
324
|
-
}
|
|
325
326
|
return /*#__PURE__*/ jsx(GuidedTourTooltipImpl, {
|
|
326
327
|
...props,
|
|
327
328
|
children: children
|
|
@@ -338,8 +339,8 @@ const GuidedTourOverlay = styled(Box)`
|
|
|
338
339
|
`;
|
|
339
340
|
const GuidedTourTooltipImpl = ({ children, content, tourName, step, when })=>{
|
|
340
341
|
const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();
|
|
341
|
-
const state =
|
|
342
|
-
const dispatch =
|
|
342
|
+
const state = useGuidedTour('GuidedTourTooltip', (s)=>s.state);
|
|
343
|
+
const dispatch = useGuidedTour('GuidedTourTooltip', (s)=>s.dispatch);
|
|
343
344
|
const isCurrentStep = state.tours[tourName].currentStep === step;
|
|
344
345
|
const isStepConditionMet = when ? when(state.completedActions) : true;
|
|
345
346
|
const isPopoverOpen = guidedTourMeta?.data?.isFirstSuperAdminUser && !state.tours[tourName].isCompleted && isCurrentStep && isStepConditionMet;
|
|
@@ -393,7 +394,7 @@ function createTour(tourName, steps) {
|
|
|
393
394
|
throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);
|
|
394
395
|
}
|
|
395
396
|
acc[step.name] = ({ children })=>{
|
|
396
|
-
return /*#__PURE__*/ jsx(
|
|
397
|
+
return /*#__PURE__*/ jsx(GuidedTourTooltip, {
|
|
397
398
|
tourName: tourName,
|
|
398
399
|
step: index,
|
|
399
400
|
content: step.content,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tours.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal, Button } from '@strapi/design-system';\nimport { FormattedMessage } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport {\n type State,\n type Action,\n useGuidedTour,\n ValidTourName,\n ExtendedCompletedActions,\n} from './Context';\nimport { Step, StepCount, createStepComponents } from './Step';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\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\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root side=\"bottom\" 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 showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CollectionTypes',\n content: (Step) => (\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 },\n {\n name: 'SingleTypes',\n content: (Step) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title\n id=\"tours.contentTypeBuilder.SingleTypes.title\"\n defaultMessage=\"Single Types\"\n />\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 },\n {\n name: 'Components',\n content: (Step, { dispatch }) => (\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 <StepCount tourName=\"contentTypeBuilder\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentTypeBuilder' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\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} to=\"/content-manager\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n },\n ]),\n contentManager: createTour('contentManager', [\n {\n name: 'Introduction',\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n content: (Step) => (\n <Step.Root side=\"top\" withArrow={false}>\n <Step.Title\n id=\"tours.contentManager.Introduction.title\"\n defaultMessage=\"Content manager\"\n />\n <Step.Content\n id=\"tours.contentManager.Introduction.content\"\n defaultMessage=\"Create and manage content from your collection types and single types.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'Fields',\n content: (Step) => (\n <Step.Root sideOffset={-12}>\n <Step.Title id=\"tours.contentManager.Fields.title\" defaultMessage=\"Fields\" />\n <Step.Content\n id=\"tours.contentManager.Fields.content\"\n defaultMessage=\"Add content to the fields created in the Content-Type Builder.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'Publish',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"left\" align=\"center\">\n <Step.Title id=\"tours.contentManager.Publish.title\" defaultMessage=\"Publish\" />\n <Step.Content\n id=\"tours.contentManager.Publish.content\"\n defaultMessage=\"Publish entries to make their content available through the Document Service API.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentManager\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentManager' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\">\n <Step.Title\n id=\"tours.contentManager.FinalStep.title\"\n defaultMessage=\"It's time to create API Tokens!\"\n />\n <Step.Content\n id=\"tours.contentManager.FinalStep.content\"\n defaultMessage=\"Now that you've created and published content, time to create API tokens and set up permissions.\"\n />\n <Step.Actions showStepCount={false} to=\"/settings/api-tokens\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContent'),\n },\n ]),\n apiTokens: createTour('apiTokens', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root sideOffset={-36} withArrow={false}>\n <Step.Title id=\"tours.apiTokens.Introduction.title\" defaultMessage=\"API tokens\" />\n <Step.Content\n id=\"tours.apiTokens.Introduction.content\"\n defaultMessage=\"Create and manage API tokens with highly customizable permissions.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CreateAnAPIToken',\n content: (Step) => (\n <Step.Root side=\"bottom\" align=\"end\" sideOffset={-10}>\n <Step.Title\n id=\"tours.apiTokens.CreateAnAPIToken.title\"\n defaultMessage=\"Create an API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CreateAnAPIToken.content\"\n defaultMessage=\"Create a new API token. Choose a name, duration and type.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'CopyAPIToken',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"bottom\" align=\"start\" sideOffset={-5}>\n <Step.Title\n id=\"tours.apiTokens.CopyAPIToken.title\"\n defaultMessage=\"Copy your new API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CopyAPIToken.content\"\n defaultMessage=\"Make sure to do it now, you won’t be able to see it again. You’ll need to generate a new one if you lose it.\"\n />\n <Step.Actions>\n <StepCount tourName=\"apiTokens\" />\n <GotItAction onClick={() => dispatch({ type: 'next_step', payload: 'apiTokens' })} />\n </Step.Actions>\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateApiToken'),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\" align=\"start\">\n <Step.Title\n id=\"tours.apiTokens.FinalStep.title\"\n defaultMessage=\"It's time to deploy your application!\"\n />\n <Step.Content\n id=\"tours.apiTokens.FinalStep.content\"\n defaultMessage=\"Your application is ready to be deployed and its content to be shared with the world!\"\n />\n <Step.Actions showStepCount={false} to=\"/\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCopyApiToken'),\n },\n ]),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\ntype Content = (\n Step: Step,\n {\n state,\n dispatch,\n }: {\n state: State;\n dispatch: React.Dispatch<Action>;\n }\n) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return <>{children}</>;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n // TODO: This isn't great but the only solution for syncing the completed actions\n React.useEffect(() => {\n dispatch({\n type: 'set_completed_actions',\n payload: guidedTourMeta?.data?.completedActions ?? [],\n });\n }, [dispatch, guidedTourMeta?.data?.completedActions]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content(Step, { state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nfunction createTour<const T extends ReadonlyArray<TourStep<string>>>(tourName: string, steps: T) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce((acc, step, index) => {\n if (step.name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n acc[step.name as keyof Components] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n return acc;\n }, {} as Components);\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["GotItAction","onClick","_jsx","Button","FormattedMessage","id","defaultMessage","tours","contentTypeBuilder","createTour","name","content","Step","_jsxs","Root","side","withArrow","Title","Content","Actions","showSkip","sideOffset","dispatch","StepCount","tourName","type","payload","showStepCount","to","when","completedActions","includes","contentManager","align","apiTokens","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_Fragment","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","step","data","guidedTourMeta","useGetGuidedTourMetaQuery","isCurrentStep","currentStep","isStepConditionMet","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","useMemo","createStepComponents","Portal","Popover","open","Anchor","steps","tour","reduce","acc","index","Error"],"mappings":"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"}
|