@strapi/admin 5.16.0 → 5.16.1

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 (41) hide show
  1. package/dist/admin/admin/src/components/MainNav/NavUser.js +4 -15
  2. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  3. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +4 -15
  4. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/Providers.js +10 -5
  6. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  7. package/dist/admin/admin/src/components/Providers.mjs +10 -5
  8. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/SearchInput.js +5 -0
  10. package/dist/admin/admin/src/components/SearchInput.js.map +1 -1
  11. package/dist/admin/admin/src/components/SearchInput.mjs +5 -0
  12. package/dist/admin/admin/src/components/SearchInput.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js +66 -0
  14. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +1 -0
  15. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs +43 -0
  16. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +1 -0
  17. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js +137 -0
  18. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +1 -0
  19. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs +116 -0
  20. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +1 -0
  21. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js +116 -0
  22. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +1 -0
  23. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs +94 -0
  24. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +1 -0
  25. package/dist/admin/admin/src/translations/en.json.js +9 -1
  26. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  27. package/dist/admin/admin/src/translations/en.json.mjs +9 -1
  28. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  29. package/dist/admin/admin/src/translations/fr.json.js +3 -0
  30. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  31. package/dist/admin/admin/src/translations/fr.json.mjs +3 -0
  32. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  33. package/dist/admin/index.js +2 -0
  34. package/dist/admin/index.js.map +1 -1
  35. package/dist/admin/index.mjs +1 -0
  36. package/dist/admin/index.mjs.map +1 -1
  37. package/dist/admin/src/components/UnstableGuidedTour/Context.d.ts +28 -0
  38. package/dist/admin/src/components/UnstableGuidedTour/Step.d.ts +35 -0
  39. package/dist/admin/src/components/UnstableGuidedTour/Tours.d.ts +24 -0
  40. package/dist/admin/src/index.d.ts +1 -0
  41. package/package.json +9 -9
@@ -34,21 +34,9 @@ const BadgeWrapper = styled.styled(designSystem.Flex)`
34
34
  width: 100%;
35
35
  `;
36
36
  const StyledTypography = styled.styled(designSystem.Typography)`
37
+ word-break: break-word;
37
38
  margin-bottom: ${({ theme })=>theme.spaces[3]};
38
39
  `;
39
- const MenuItem = styled.styled(designSystem.Menu.Item)`
40
- & > span {
41
- width: 100%;
42
- display: flex;
43
- align-items: center;
44
- gap: ${({ theme })=>theme.spaces[3]};
45
- }
46
- `;
47
- const MenuItemDanger = styled.styled(MenuItem)`
48
- &:hover {
49
- background: ${({ theme })=>theme.colors.danger100};
50
- }
51
- `;
52
40
  const NavUser = ({ children, initials, ...props })=>{
53
41
  const { formatMessage } = reactIntl.useIntl();
54
42
  const navigate = reactRouterDom.useNavigate();
@@ -113,14 +101,15 @@ const NavUser = ({ children, initials, ...props })=>{
113
101
  ]
114
102
  }),
115
103
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Separator, {}),
116
- /*#__PURE__*/ jsxRuntime.jsx(MenuItem, {
104
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
117
105
  onSelect: handleProfile,
118
106
  children: formatMessage({
119
107
  id: 'global.profile',
120
108
  defaultMessage: 'Profile settings'
121
109
  })
122
110
  }),
123
- /*#__PURE__*/ jsxRuntime.jsx(MenuItemDanger, {
111
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
112
+ variant: "danger",
124
113
  onSelect: handleLogout,
125
114
  color: "danger600",
126
115
  children: formatMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"NavUser.js","sources":["../../../../../../admin/src/components/MainNav/NavUser.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Menu, VisuallyHidden, Avatar, Typography, Badge } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../../features/Auth';\n\nconst MenuTrigger = styled(Menu.Trigger)`\n height: ${({ theme }) => theme.spaces[7]};\n width: ${({ theme }) => theme.spaces[7]};\n border: none;\n border-radius: 50%;\n padding: 0;\n overflow: hidden;\n`;\n\nconst MenuContent = styled(Menu.Content)`\n max-height: fit-content;\n width: 200px;\n`;\n\nconst UserInfo = styled(Flex)`\n && {\n padding: ${({ theme }) => theme.spaces[3]};\n }\n align-items: flex-start;\n`;\n\nconst BadgeWrapper = styled(Flex)`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.spaces[1]};\n\n width: 100%;\n`;\nconst StyledTypography = styled(Typography)`\n margin-bottom: ${({ theme }) => theme.spaces[3]};\n`;\n\nconst MenuItem = styled(Menu.Item)`\n & > span {\n width: 100%;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst MenuItemDanger = styled(MenuItem)`\n &:hover {\n background: ${({ theme }) => theme.colors.danger100};\n }\n`;\n\nexport interface NavUserProps {\n initials: string;\n children: React.ReactNode;\n}\n\nexport const NavUser = ({ children, initials, ...props }: NavUserProps) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const user = useAuth('User', (state) => state.user);\n const logout = useAuth('Logout', (state) => state.logout);\n\n const handleProfile = () => {\n navigate('/me');\n };\n\n const handleLogout = () => {\n logout();\n navigate('/auth/login');\n };\n\n return (\n <Flex\n justifyContent=\"center\"\n padding={3}\n borderStyle=\"solid\"\n borderWidth=\"1px 0 0 0\"\n borderColor=\"neutral150\"\n {...props}\n >\n <Menu.Root>\n <MenuTrigger endIcon={null} fullWidth justifyContent=\"center\">\n <Avatar.Item delayMs={0} fallback={initials} />\n <VisuallyHidden tag=\"span\">{children}</VisuallyHidden>\n </MenuTrigger>\n\n <MenuContent popoverPlacement=\"top-start\" zIndex={3}>\n <UserInfo direction=\"column\" gap={0} alignItems=\"flex-start\">\n <Typography variant=\"omega\" fontWeight=\"bold\" textTransform=\"none\">\n {children}\n </Typography>\n <StyledTypography variant=\"pi\" textColor=\"neutral600\">\n {user?.email}\n </StyledTypography>\n <BadgeWrapper>\n {user?.roles?.map((role) => <Badge key={role.id}>{role.name}</Badge>)}\n </BadgeWrapper>\n </UserInfo>\n\n <Menu.Separator />\n\n <MenuItem onSelect={handleProfile}>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile settings',\n })}\n </MenuItem>\n\n <MenuItemDanger onSelect={handleLogout} color=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Log out',\n })}\n </MenuItemDanger>\n </MenuContent>\n </Menu.Root>\n </Flex>\n );\n};\n"],"names":["MenuTrigger","styled","Menu","Trigger","theme","spaces","MenuContent","Content","UserInfo","Flex","BadgeWrapper","StyledTypography","Typography","MenuItem","Item","MenuItemDanger","colors","danger100","NavUser","children","initials","props","formatMessage","useIntl","navigate","useNavigate","user","useAuth","state","logout","handleProfile","handleLogout","_jsx","justifyContent","padding","borderStyle","borderWidth","borderColor","_jsxs","Root","endIcon","fullWidth","Avatar","delayMs","fallback","VisuallyHidden","tag","popoverPlacement","zIndex","direction","gap","alignItems","variant","fontWeight","textTransform","textColor","email","roles","map","role","Badge","name","id","Separator","onSelect","defaultMessage","color"],"mappings":"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"}
1
+ {"version":3,"file":"NavUser.js","sources":["../../../../../../admin/src/components/MainNav/NavUser.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Menu, VisuallyHidden, Avatar, Typography, Badge } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../../features/Auth';\n\nconst MenuTrigger = styled(Menu.Trigger)`\n height: ${({ theme }) => theme.spaces[7]};\n width: ${({ theme }) => theme.spaces[7]};\n border: none;\n border-radius: 50%;\n padding: 0;\n overflow: hidden;\n`;\n\nconst MenuContent = styled(Menu.Content)`\n max-height: fit-content;\n width: 200px;\n`;\n\nconst UserInfo = styled(Flex)`\n && {\n padding: ${({ theme }) => theme.spaces[3]};\n }\n align-items: flex-start;\n`;\n\nconst BadgeWrapper = styled(Flex)`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.spaces[1]};\n\n width: 100%;\n`;\nconst StyledTypography = styled(Typography)`\n word-break: break-word;\n margin-bottom: ${({ theme }) => theme.spaces[3]};\n`;\n\nexport interface NavUserProps {\n initials: string;\n children: React.ReactNode;\n}\n\nexport const NavUser = ({ children, initials, ...props }: NavUserProps) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const user = useAuth('User', (state) => state.user);\n const logout = useAuth('Logout', (state) => state.logout);\n\n const handleProfile = () => {\n navigate('/me');\n };\n\n const handleLogout = () => {\n logout();\n navigate('/auth/login');\n };\n\n return (\n <Flex\n justifyContent=\"center\"\n padding={3}\n borderStyle=\"solid\"\n borderWidth=\"1px 0 0 0\"\n borderColor=\"neutral150\"\n {...props}\n >\n <Menu.Root>\n <MenuTrigger endIcon={null} fullWidth justifyContent=\"center\">\n <Avatar.Item delayMs={0} fallback={initials} />\n <VisuallyHidden tag=\"span\">{children}</VisuallyHidden>\n </MenuTrigger>\n\n <MenuContent popoverPlacement=\"top-start\" zIndex={3}>\n <UserInfo direction=\"column\" gap={0} alignItems=\"flex-start\">\n <Typography variant=\"omega\" fontWeight=\"bold\" textTransform=\"none\">\n {children}\n </Typography>\n <StyledTypography variant=\"pi\" textColor=\"neutral600\">\n {user?.email}\n </StyledTypography>\n <BadgeWrapper>\n {user?.roles?.map((role) => <Badge key={role.id}>{role.name}</Badge>)}\n </BadgeWrapper>\n </UserInfo>\n\n <Menu.Separator />\n\n <Menu.Item onSelect={handleProfile}>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile settings',\n })}\n </Menu.Item>\n\n <Menu.Item variant=\"danger\" onSelect={handleLogout} color=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Log out',\n })}\n </Menu.Item>\n </MenuContent>\n </Menu.Root>\n </Flex>\n );\n};\n"],"names":["MenuTrigger","styled","Menu","Trigger","theme","spaces","MenuContent","Content","UserInfo","Flex","BadgeWrapper","StyledTypography","Typography","NavUser","children","initials","props","formatMessage","useIntl","navigate","useNavigate","user","useAuth","state","logout","handleProfile","handleLogout","_jsx","justifyContent","padding","borderStyle","borderWidth","borderColor","_jsxs","Root","endIcon","fullWidth","Avatar","Item","delayMs","fallback","VisuallyHidden","tag","popoverPlacement","zIndex","direction","gap","alignItems","variant","fontWeight","textTransform","textColor","email","roles","map","role","Badge","name","id","Separator","onSelect","defaultMessage","color"],"mappings":"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"}
@@ -32,21 +32,9 @@ const BadgeWrapper = styled(Flex)`
32
32
  width: 100%;
33
33
  `;
34
34
  const StyledTypography = styled(Typography)`
35
+ word-break: break-word;
35
36
  margin-bottom: ${({ theme })=>theme.spaces[3]};
36
37
  `;
37
- const MenuItem = styled(Menu.Item)`
38
- & > span {
39
- width: 100%;
40
- display: flex;
41
- align-items: center;
42
- gap: ${({ theme })=>theme.spaces[3]};
43
- }
44
- `;
45
- const MenuItemDanger = styled(MenuItem)`
46
- &:hover {
47
- background: ${({ theme })=>theme.colors.danger100};
48
- }
49
- `;
50
38
  const NavUser = ({ children, initials, ...props })=>{
51
39
  const { formatMessage } = useIntl();
52
40
  const navigate = useNavigate();
@@ -111,14 +99,15 @@ const NavUser = ({ children, initials, ...props })=>{
111
99
  ]
112
100
  }),
113
101
  /*#__PURE__*/ jsx(Menu.Separator, {}),
114
- /*#__PURE__*/ jsx(MenuItem, {
102
+ /*#__PURE__*/ jsx(Menu.Item, {
115
103
  onSelect: handleProfile,
116
104
  children: formatMessage({
117
105
  id: 'global.profile',
118
106
  defaultMessage: 'Profile settings'
119
107
  })
120
108
  }),
121
- /*#__PURE__*/ jsx(MenuItemDanger, {
109
+ /*#__PURE__*/ jsx(Menu.Item, {
110
+ variant: "danger",
122
111
  onSelect: handleLogout,
123
112
  color: "danger600",
124
113
  children: formatMessage({
@@ -1 +1 @@
1
- {"version":3,"file":"NavUser.mjs","sources":["../../../../../../admin/src/components/MainNav/NavUser.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Menu, VisuallyHidden, Avatar, Typography, Badge } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../../features/Auth';\n\nconst MenuTrigger = styled(Menu.Trigger)`\n height: ${({ theme }) => theme.spaces[7]};\n width: ${({ theme }) => theme.spaces[7]};\n border: none;\n border-radius: 50%;\n padding: 0;\n overflow: hidden;\n`;\n\nconst MenuContent = styled(Menu.Content)`\n max-height: fit-content;\n width: 200px;\n`;\n\nconst UserInfo = styled(Flex)`\n && {\n padding: ${({ theme }) => theme.spaces[3]};\n }\n align-items: flex-start;\n`;\n\nconst BadgeWrapper = styled(Flex)`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.spaces[1]};\n\n width: 100%;\n`;\nconst StyledTypography = styled(Typography)`\n margin-bottom: ${({ theme }) => theme.spaces[3]};\n`;\n\nconst MenuItem = styled(Menu.Item)`\n & > span {\n width: 100%;\n display: flex;\n align-items: center;\n gap: ${({ theme }) => theme.spaces[3]};\n }\n`;\n\nconst MenuItemDanger = styled(MenuItem)`\n &:hover {\n background: ${({ theme }) => theme.colors.danger100};\n }\n`;\n\nexport interface NavUserProps {\n initials: string;\n children: React.ReactNode;\n}\n\nexport const NavUser = ({ children, initials, ...props }: NavUserProps) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const user = useAuth('User', (state) => state.user);\n const logout = useAuth('Logout', (state) => state.logout);\n\n const handleProfile = () => {\n navigate('/me');\n };\n\n const handleLogout = () => {\n logout();\n navigate('/auth/login');\n };\n\n return (\n <Flex\n justifyContent=\"center\"\n padding={3}\n borderStyle=\"solid\"\n borderWidth=\"1px 0 0 0\"\n borderColor=\"neutral150\"\n {...props}\n >\n <Menu.Root>\n <MenuTrigger endIcon={null} fullWidth justifyContent=\"center\">\n <Avatar.Item delayMs={0} fallback={initials} />\n <VisuallyHidden tag=\"span\">{children}</VisuallyHidden>\n </MenuTrigger>\n\n <MenuContent popoverPlacement=\"top-start\" zIndex={3}>\n <UserInfo direction=\"column\" gap={0} alignItems=\"flex-start\">\n <Typography variant=\"omega\" fontWeight=\"bold\" textTransform=\"none\">\n {children}\n </Typography>\n <StyledTypography variant=\"pi\" textColor=\"neutral600\">\n {user?.email}\n </StyledTypography>\n <BadgeWrapper>\n {user?.roles?.map((role) => <Badge key={role.id}>{role.name}</Badge>)}\n </BadgeWrapper>\n </UserInfo>\n\n <Menu.Separator />\n\n <MenuItem onSelect={handleProfile}>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile settings',\n })}\n </MenuItem>\n\n <MenuItemDanger onSelect={handleLogout} color=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Log out',\n })}\n </MenuItemDanger>\n </MenuContent>\n </Menu.Root>\n </Flex>\n );\n};\n"],"names":["MenuTrigger","styled","Menu","Trigger","theme","spaces","MenuContent","Content","UserInfo","Flex","BadgeWrapper","StyledTypography","Typography","MenuItem","Item","MenuItemDanger","colors","danger100","NavUser","children","initials","props","formatMessage","useIntl","navigate","useNavigate","user","useAuth","state","logout","handleProfile","handleLogout","_jsx","justifyContent","padding","borderStyle","borderWidth","borderColor","_jsxs","Root","endIcon","fullWidth","Avatar","delayMs","fallback","VisuallyHidden","tag","popoverPlacement","zIndex","direction","gap","alignItems","variant","fontWeight","textTransform","textColor","email","roles","map","role","Badge","name","id","Separator","onSelect","defaultMessage","color"],"mappings":"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"}
1
+ {"version":3,"file":"NavUser.mjs","sources":["../../../../../../admin/src/components/MainNav/NavUser.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Flex, Menu, VisuallyHidden, Avatar, Typography, Badge } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\nimport { useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../../features/Auth';\n\nconst MenuTrigger = styled(Menu.Trigger)`\n height: ${({ theme }) => theme.spaces[7]};\n width: ${({ theme }) => theme.spaces[7]};\n border: none;\n border-radius: 50%;\n padding: 0;\n overflow: hidden;\n`;\n\nconst MenuContent = styled(Menu.Content)`\n max-height: fit-content;\n width: 200px;\n`;\n\nconst UserInfo = styled(Flex)`\n && {\n padding: ${({ theme }) => theme.spaces[3]};\n }\n align-items: flex-start;\n`;\n\nconst BadgeWrapper = styled(Flex)`\n display: flex;\n flex-wrap: wrap;\n gap: ${({ theme }) => theme.spaces[1]};\n\n width: 100%;\n`;\nconst StyledTypography = styled(Typography)`\n word-break: break-word;\n margin-bottom: ${({ theme }) => theme.spaces[3]};\n`;\n\nexport interface NavUserProps {\n initials: string;\n children: React.ReactNode;\n}\n\nexport const NavUser = ({ children, initials, ...props }: NavUserProps) => {\n const { formatMessage } = useIntl();\n const navigate = useNavigate();\n const user = useAuth('User', (state) => state.user);\n const logout = useAuth('Logout', (state) => state.logout);\n\n const handleProfile = () => {\n navigate('/me');\n };\n\n const handleLogout = () => {\n logout();\n navigate('/auth/login');\n };\n\n return (\n <Flex\n justifyContent=\"center\"\n padding={3}\n borderStyle=\"solid\"\n borderWidth=\"1px 0 0 0\"\n borderColor=\"neutral150\"\n {...props}\n >\n <Menu.Root>\n <MenuTrigger endIcon={null} fullWidth justifyContent=\"center\">\n <Avatar.Item delayMs={0} fallback={initials} />\n <VisuallyHidden tag=\"span\">{children}</VisuallyHidden>\n </MenuTrigger>\n\n <MenuContent popoverPlacement=\"top-start\" zIndex={3}>\n <UserInfo direction=\"column\" gap={0} alignItems=\"flex-start\">\n <Typography variant=\"omega\" fontWeight=\"bold\" textTransform=\"none\">\n {children}\n </Typography>\n <StyledTypography variant=\"pi\" textColor=\"neutral600\">\n {user?.email}\n </StyledTypography>\n <BadgeWrapper>\n {user?.roles?.map((role) => <Badge key={role.id}>{role.name}</Badge>)}\n </BadgeWrapper>\n </UserInfo>\n\n <Menu.Separator />\n\n <Menu.Item onSelect={handleProfile}>\n {formatMessage({\n id: 'global.profile',\n defaultMessage: 'Profile settings',\n })}\n </Menu.Item>\n\n <Menu.Item variant=\"danger\" onSelect={handleLogout} color=\"danger600\">\n {formatMessage({\n id: 'app.components.LeftMenu.logout',\n defaultMessage: 'Log out',\n })}\n </Menu.Item>\n </MenuContent>\n </Menu.Root>\n </Flex>\n );\n};\n"],"names":["MenuTrigger","styled","Menu","Trigger","theme","spaces","MenuContent","Content","UserInfo","Flex","BadgeWrapper","StyledTypography","Typography","NavUser","children","initials","props","formatMessage","useIntl","navigate","useNavigate","user","useAuth","state","logout","handleProfile","handleLogout","_jsx","justifyContent","padding","borderStyle","borderWidth","borderColor","_jsxs","Root","endIcon","fullWidth","Avatar","Item","delayMs","fallback","VisuallyHidden","tag","popoverPlacement","zIndex","direction","gap","alignItems","variant","fontWeight","textTransform","textColor","email","roles","map","role","Badge","name","id","Separator","onSelect","defaultMessage","color"],"mappings":"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"}
@@ -13,6 +13,8 @@ var Tracking = require('../features/Tracking.js');
13
13
  var Provider = require('./GuidedTour/Provider.js');
14
14
  var LanguageProvider = require('./LanguageProvider.js');
15
15
  var Theme = require('./Theme.js');
16
+ var Context = require('./UnstableGuidedTour/Context.js');
17
+ var Tours = require('./UnstableGuidedTour/Tours.js');
16
18
 
17
19
  const queryClient = new reactQuery.QueryClient({
18
20
  defaultOptions: {
@@ -49,11 +51,14 @@ const Providers = ({ children, strapi, store })=>{
49
51
  children: /*#__PURE__*/ jsxRuntime.jsx(Notifications.NotificationsProvider, {
50
52
  children: /*#__PURE__*/ jsxRuntime.jsx(Tracking.TrackingProvider, {
51
53
  children: /*#__PURE__*/ jsxRuntime.jsx(Provider.GuidedTourProvider, {
52
- children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
53
- defaultAuthLogo: strapi.configurations.authLogo,
54
- defaultMenuLogo: strapi.configurations.menuLogo,
55
- showReleaseNotification: strapi.configurations.notifications.releases,
56
- children: children
54
+ children: /*#__PURE__*/ jsxRuntime.jsx(Context.UnstableGuidedTourContext, {
55
+ tours: Tours.tours,
56
+ children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
57
+ defaultAuthLogo: strapi.configurations.authLogo,
58
+ defaultMenuLogo: strapi.configurations.menuLogo,
59
+ showReleaseNotification: strapi.configurations.notifications.releases,
60
+ children: children
61
+ })
57
62
  })
58
63
  })
59
64
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,2BAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,mCAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.js","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\nimport { UnstableGuidedTourContext } from './UnstableGuidedTour/Context';\nimport { tours } from './UnstableGuidedTour/Tours';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext tours={tours}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","UnstableGuidedTourContext","tours","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;;;AAqBA,MAAMA,WAAAA,GAAc,IAAIC,sBAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,cAACC,CAAAA,2BAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,cAACmB,CAAAA,mBAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,cAACoB,CAAAA,8BAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,cAACsB,CAAAA,iBAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,cAACuB,CAAAA,0BAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,cAACwB,CAAAA,iCAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,cAAC4B,CAAAA,WAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,cAAC8B,CAAAA,mCAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,cAAC+B,CAAAA,yBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,cAACgC,CAAAA,2BAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,cAACiC,CAAAA,iCAAAA,EAAAA;gDAA0BC,KAAOA,EAAAA,WAAAA;AAChC,gDAAA,QAAA,gBAAAlC,cAACmC,CAAAA,mCAAAA,EAAAA;oDACCC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;oDAC/CC,eAAiBxC,EAAAA,MAAAA,CAAO4B,cAAc,CAACa,QAAQ;AAC/CC,oDAAAA,uBAAAA,EAAyB1C,MAAO4B,CAAAA,cAAc,CAACe,aAAa,CAACC,QAAQ;AAEpE7C,oDAAAA,QAAAA,EAAAA;;;;;;;;;;;;;AAc7B;;;;"}
@@ -11,6 +11,8 @@ import { TrackingProvider } from '../features/Tracking.mjs';
11
11
  import { GuidedTourProvider } from './GuidedTour/Provider.mjs';
12
12
  import { LanguageProvider } from './LanguageProvider.mjs';
13
13
  import { Theme } from './Theme.mjs';
14
+ import { UnstableGuidedTourContext } from './UnstableGuidedTour/Context.mjs';
15
+ import { tours } from './UnstableGuidedTour/Tours.mjs';
14
16
 
15
17
  const queryClient = new QueryClient({
16
18
  defaultOptions: {
@@ -47,11 +49,14 @@ const Providers = ({ children, strapi, store })=>{
47
49
  children: /*#__PURE__*/ jsx(NotificationsProvider, {
48
50
  children: /*#__PURE__*/ jsx(TrackingProvider, {
49
51
  children: /*#__PURE__*/ jsx(GuidedTourProvider, {
50
- children: /*#__PURE__*/ jsx(ConfigurationProvider, {
51
- defaultAuthLogo: strapi.configurations.authLogo,
52
- defaultMenuLogo: strapi.configurations.menuLogo,
53
- showReleaseNotification: strapi.configurations.notifications.releases,
54
- children: children
52
+ children: /*#__PURE__*/ jsx(UnstableGuidedTourContext, {
53
+ tours: tours,
54
+ children: /*#__PURE__*/ jsx(ConfigurationProvider, {
55
+ defaultAuthLogo: strapi.configurations.authLogo,
56
+ defaultMenuLogo: strapi.configurations.menuLogo,
57
+ showReleaseNotification: strapi.configurations.notifications.releases,
58
+ children: children
59
+ })
55
60
  })
56
61
  })
57
62
  })
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,qBAAAA,EAAAA;gDACCC,eAAiBpC,EAAAA,MAAAA,CAAO4B,cAAc,CAACS,QAAQ;gDAC/CC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;AAC/CC,gDAAAA,uBAAAA,EAAyBxC,MAAO4B,CAAAA,cAAc,CAACa,aAAa,CAACC,QAAQ;AAEpE3C,gDAAAA,QAAAA,EAAAA;;;;;;;;;;;;AAa3B;;;;"}
1
+ {"version":3,"file":"Providers.mjs","sources":["../../../../../admin/src/components/Providers.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { QueryClient, QueryClientProvider } from 'react-query';\nimport { Provider } from 'react-redux';\n\nimport { AuthProvider } from '../features/Auth';\nimport { HistoryProvider } from '../features/BackButton';\nimport { ConfigurationProvider } from '../features/Configuration';\nimport { NotificationsProvider } from '../features/Notifications';\nimport { StrapiAppProvider } from '../features/StrapiApp';\nimport { TrackingProvider } from '../features/Tracking';\n\nimport { GuidedTourProvider } from './GuidedTour/Provider';\nimport { LanguageProvider } from './LanguageProvider';\nimport { Theme } from './Theme';\nimport { UnstableGuidedTourContext } from './UnstableGuidedTour/Context';\nimport { tours } from './UnstableGuidedTour/Tours';\n\nimport type { Store } from '../core/store/configure';\nimport type { StrapiApp } from '../StrapiApp';\n\nconst queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n refetchOnWindowFocus: false,\n },\n },\n});\n\ninterface ProvidersProps {\n children: React.ReactNode;\n strapi: StrapiApp;\n store: Store;\n}\n\nconst Providers = ({ children, strapi, store }: ProvidersProps) => {\n return (\n <StrapiAppProvider\n components={strapi.library.components}\n customFields={strapi.customFields}\n widgets={strapi.widgets}\n fields={strapi.library.fields}\n menu={strapi.router.menu}\n getAdminInjectedComponents={strapi.getAdminInjectedComponents}\n getPlugin={strapi.getPlugin}\n plugins={strapi.plugins}\n rbac={strapi.rbac}\n runHookParallel={strapi.runHookParallel}\n runHookWaterfall={(name, initialValue) => strapi.runHookWaterfall(name, initialValue, store)}\n runHookSeries={strapi.runHookSeries}\n settings={strapi.router.settings}\n >\n <Provider store={store}>\n <QueryClientProvider client={queryClient}>\n <AuthProvider>\n <HistoryProvider>\n <LanguageProvider messages={strapi.configurations.translations}>\n <Theme themes={strapi.configurations.themes}>\n <NotificationsProvider>\n <TrackingProvider>\n <GuidedTourProvider>\n <UnstableGuidedTourContext tours={tours}>\n <ConfigurationProvider\n defaultAuthLogo={strapi.configurations.authLogo}\n defaultMenuLogo={strapi.configurations.menuLogo}\n showReleaseNotification={strapi.configurations.notifications.releases}\n >\n {children}\n </ConfigurationProvider>\n </UnstableGuidedTourContext>\n </GuidedTourProvider>\n </TrackingProvider>\n </NotificationsProvider>\n </Theme>\n </LanguageProvider>\n </HistoryProvider>\n </AuthProvider>\n </QueryClientProvider>\n </Provider>\n </StrapiAppProvider>\n );\n};\n\nexport { Providers };\n"],"names":["queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","Providers","children","strapi","store","_jsx","StrapiAppProvider","components","library","customFields","widgets","fields","menu","router","getAdminInjectedComponents","getPlugin","plugins","rbac","runHookParallel","runHookWaterfall","name","initialValue","runHookSeries","settings","Provider","QueryClientProvider","client","AuthProvider","HistoryProvider","LanguageProvider","messages","configurations","translations","Theme","themes","NotificationsProvider","TrackingProvider","GuidedTourProvider","UnstableGuidedTourContext","tours","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;AAqBA,MAAMA,WAAAA,GAAc,IAAIC,WAAY,CAAA;IAClCC,cAAgB,EAAA;QACdC,OAAS,EAAA;YACPC,oBAAsB,EAAA;AACxB;AACF;AACF,CAAA,CAAA;AAQMC,MAAAA,SAAAA,GAAY,CAAC,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,KAAK,EAAkB,GAAA;AAC5D,IAAA,qBACEC,GAACC,CAAAA,iBAAAA,EAAAA;QACCC,UAAYJ,EAAAA,MAAAA,CAAOK,OAAO,CAACD,UAAU;AACrCE,QAAAA,YAAAA,EAAcN,OAAOM,YAAY;AACjCC,QAAAA,OAAAA,EAASP,OAAOO,OAAO;QACvBC,MAAQR,EAAAA,MAAAA,CAAOK,OAAO,CAACG,MAAM;QAC7BC,IAAMT,EAAAA,MAAAA,CAAOU,MAAM,CAACD,IAAI;AACxBE,QAAAA,0BAAAA,EAA4BX,OAAOW,0BAA0B;AAC7DC,QAAAA,SAAAA,EAAWZ,OAAOY,SAAS;AAC3BC,QAAAA,OAAAA,EAASb,OAAOa,OAAO;AACvBC,QAAAA,IAAAA,EAAMd,OAAOc,IAAI;AACjBC,QAAAA,eAAAA,EAAiBf,OAAOe,eAAe;AACvCC,QAAAA,gBAAAA,EAAkB,CAACC,IAAMC,EAAAA,YAAAA,GAAiBlB,OAAOgB,gBAAgB,CAACC,MAAMC,YAAcjB,EAAAA,KAAAA,CAAAA;AACtFkB,QAAAA,aAAAA,EAAenB,OAAOmB,aAAa;QACnCC,QAAUpB,EAAAA,MAAAA,CAAOU,MAAM,CAACU,QAAQ;AAEhC,QAAA,QAAA,gBAAAlB,GAACmB,CAAAA,QAAAA,EAAAA;YAASpB,KAAOA,EAAAA,KAAAA;AACf,YAAA,QAAA,gBAAAC,GAACoB,CAAAA,mBAAAA,EAAAA;gBAAoBC,MAAQ9B,EAAAA,WAAAA;AAC3B,gBAAA,QAAA,gBAAAS,GAACsB,CAAAA,YAAAA,EAAAA;AACC,oBAAA,QAAA,gBAAAtB,GAACuB,CAAAA,eAAAA,EAAAA;AACC,wBAAA,QAAA,gBAAAvB,GAACwB,CAAAA,gBAAAA,EAAAA;4BAAiBC,QAAU3B,EAAAA,MAAAA,CAAO4B,cAAc,CAACC,YAAY;AAC5D,4BAAA,QAAA,gBAAA3B,GAAC4B,CAAAA,KAAAA,EAAAA;gCAAMC,MAAQ/B,EAAAA,MAAAA,CAAO4B,cAAc,CAACG,MAAM;AACzC,gCAAA,QAAA,gBAAA7B,GAAC8B,CAAAA,qBAAAA,EAAAA;AACC,oCAAA,QAAA,gBAAA9B,GAAC+B,CAAAA,gBAAAA,EAAAA;AACC,wCAAA,QAAA,gBAAA/B,GAACgC,CAAAA,kBAAAA,EAAAA;AACC,4CAAA,QAAA,gBAAAhC,GAACiC,CAAAA,yBAAAA,EAAAA;gDAA0BC,KAAOA,EAAAA,KAAAA;AAChC,gDAAA,QAAA,gBAAAlC,GAACmC,CAAAA,qBAAAA,EAAAA;oDACCC,eAAiBtC,EAAAA,MAAAA,CAAO4B,cAAc,CAACW,QAAQ;oDAC/CC,eAAiBxC,EAAAA,MAAAA,CAAO4B,cAAc,CAACa,QAAQ;AAC/CC,oDAAAA,uBAAAA,EAAyB1C,MAAO4B,CAAAA,cAAc,CAACe,aAAa,CAACC,QAAQ;AAEpE7C,oDAAAA,QAAAA,EAAAA;;;;;;;;;;;;;AAc7B;;;;"}
@@ -81,6 +81,11 @@ const SearchInput = ({ disabled, label, placeholder, trackedEvent, trackedEventD
81
81
  }),
82
82
  onClear: handleClear,
83
83
  placeholder: placeholder,
84
+ onBlur: (e)=>{
85
+ if (!e.currentTarget.contains(e.relatedTarget) && e.currentTarget.value === '') {
86
+ setIsOpen(false);
87
+ }
88
+ },
84
89
  children: label
85
90
  })
86
91
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.js","sources":["../../../../../admin/src/components/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Searchbar, SearchForm } from '@strapi/design-system';\nimport { Search as SearchIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { TrackingEvent, useTracking } from '../features/Tracking';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\ninterface SearchInputProps {\n disabled?: boolean;\n label: string;\n placeholder?: string;\n trackedEvent?: TrackingEvent['name'] | null;\n trackedEventDetails?: TrackingEvent['properties'];\n}\n\nconst SearchInput = ({\n disabled,\n label,\n placeholder,\n trackedEvent,\n trackedEventDetails,\n}: SearchInputProps) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const iconButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const [{ query }, setQuery] = useQueryParams<{ _q: string; page?: number }>();\n\n const [value, setValue] = React.useState(query?._q || '');\n const [isOpen, setIsOpen] = React.useState(!!value);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleToggle = () => setIsOpen((prev) => !prev);\n\n React.useLayoutEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleClear = () => {\n setValue('');\n setQuery({ _q: '' }, 'remove');\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Ensure value is a string\n if (value) {\n if (trackedEvent) {\n trackUsage(trackedEvent, trackedEventDetails);\n }\n setQuery({ _q: encodeURIComponent(value), page: 1 });\n } else {\n handleToggle();\n setQuery({ _q: '' }, 'remove');\n }\n };\n\n if (isOpen) {\n return (\n <SearchForm onSubmit={handleSubmit}>\n <Searchbar\n ref={inputRef}\n name=\"search\"\n onChange={(e) => setValue(e.target.value)}\n value={value}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onClear={handleClear}\n placeholder={placeholder}\n >\n {label}\n </Searchbar>\n </SearchForm>\n );\n }\n\n return (\n <IconButton\n ref={iconButtonRef}\n disabled={disabled}\n label={formatMessage({ id: 'global.search', defaultMessage: 'Search' })}\n onClick={handleToggle}\n >\n <SearchIcon />\n </IconButton>\n );\n};\n\nexport { SearchInput };\nexport type { SearchInputProps };\n"],"names":["SearchInput","disabled","label","placeholder","trackedEvent","trackedEventDetails","inputRef","React","useRef","iconButtonRef","query","setQuery","useQueryParams","value","setValue","useState","_q","isOpen","setIsOpen","formatMessage","useIntl","trackUsage","useTracking","handleToggle","prev","useLayoutEffect","current","focus","handleClear","handleSubmit","e","preventDefault","encodeURIComponent","page","_jsx","SearchForm","onSubmit","Searchbar","ref","name","onChange","target","clearLabel","id","defaultMessage","onClear","IconButton","onClick","SearchIcon"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput.js","sources":["../../../../../admin/src/components/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Searchbar, SearchForm } from '@strapi/design-system';\nimport { Search as SearchIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { TrackingEvent, useTracking } from '../features/Tracking';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\ninterface SearchInputProps {\n disabled?: boolean;\n label: string;\n placeholder?: string;\n trackedEvent?: TrackingEvent['name'] | null;\n trackedEventDetails?: TrackingEvent['properties'];\n}\n\nconst SearchInput = ({\n disabled,\n label,\n placeholder,\n trackedEvent,\n trackedEventDetails,\n}: SearchInputProps) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const iconButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const [{ query }, setQuery] = useQueryParams<{ _q: string; page?: number }>();\n\n const [value, setValue] = React.useState(query?._q || '');\n const [isOpen, setIsOpen] = React.useState(!!value);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleToggle = () => setIsOpen((prev) => !prev);\n\n React.useLayoutEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleClear = () => {\n setValue('');\n setQuery({ _q: '' }, 'remove');\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Ensure value is a string\n if (value) {\n if (trackedEvent) {\n trackUsage(trackedEvent, trackedEventDetails);\n }\n setQuery({ _q: encodeURIComponent(value), page: 1 });\n } else {\n handleToggle();\n setQuery({ _q: '' }, 'remove');\n }\n };\n\n if (isOpen) {\n return (\n <SearchForm onSubmit={handleSubmit}>\n <Searchbar\n ref={inputRef}\n name=\"search\"\n onChange={(e) => setValue(e.target.value)}\n value={value}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onClear={handleClear}\n placeholder={placeholder}\n onBlur={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget) && e.currentTarget.value === '') {\n setIsOpen(false);\n }\n }}\n >\n {label}\n </Searchbar>\n </SearchForm>\n );\n }\n\n return (\n <IconButton\n ref={iconButtonRef}\n disabled={disabled}\n label={formatMessage({ id: 'global.search', defaultMessage: 'Search' })}\n onClick={handleToggle}\n >\n <SearchIcon />\n </IconButton>\n );\n};\n\nexport { SearchInput };\nexport type { SearchInputProps };\n"],"names":["SearchInput","disabled","label","placeholder","trackedEvent","trackedEventDetails","inputRef","React","useRef","iconButtonRef","query","setQuery","useQueryParams","value","setValue","useState","_q","isOpen","setIsOpen","formatMessage","useIntl","trackUsage","useTracking","handleToggle","prev","useLayoutEffect","current","focus","handleClear","handleSubmit","e","preventDefault","encodeURIComponent","page","_jsx","SearchForm","onSubmit","Searchbar","ref","name","onChange","target","clearLabel","id","defaultMessage","onClear","onBlur","currentTarget","contains","relatedTarget","IconButton","onClick","SearchIcon"],"mappings":"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"}
@@ -60,6 +60,11 @@ const SearchInput = ({ disabled, label, placeholder, trackedEvent, trackedEventD
60
60
  }),
61
61
  onClear: handleClear,
62
62
  placeholder: placeholder,
63
+ onBlur: (e)=>{
64
+ if (!e.currentTarget.contains(e.relatedTarget) && e.currentTarget.value === '') {
65
+ setIsOpen(false);
66
+ }
67
+ },
63
68
  children: label
64
69
  })
65
70
  });
@@ -1 +1 @@
1
- {"version":3,"file":"SearchInput.mjs","sources":["../../../../../admin/src/components/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Searchbar, SearchForm } from '@strapi/design-system';\nimport { Search as SearchIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { TrackingEvent, useTracking } from '../features/Tracking';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\ninterface SearchInputProps {\n disabled?: boolean;\n label: string;\n placeholder?: string;\n trackedEvent?: TrackingEvent['name'] | null;\n trackedEventDetails?: TrackingEvent['properties'];\n}\n\nconst SearchInput = ({\n disabled,\n label,\n placeholder,\n trackedEvent,\n trackedEventDetails,\n}: SearchInputProps) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const iconButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const [{ query }, setQuery] = useQueryParams<{ _q: string; page?: number }>();\n\n const [value, setValue] = React.useState(query?._q || '');\n const [isOpen, setIsOpen] = React.useState(!!value);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleToggle = () => setIsOpen((prev) => !prev);\n\n React.useLayoutEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleClear = () => {\n setValue('');\n setQuery({ _q: '' }, 'remove');\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Ensure value is a string\n if (value) {\n if (trackedEvent) {\n trackUsage(trackedEvent, trackedEventDetails);\n }\n setQuery({ _q: encodeURIComponent(value), page: 1 });\n } else {\n handleToggle();\n setQuery({ _q: '' }, 'remove');\n }\n };\n\n if (isOpen) {\n return (\n <SearchForm onSubmit={handleSubmit}>\n <Searchbar\n ref={inputRef}\n name=\"search\"\n onChange={(e) => setValue(e.target.value)}\n value={value}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onClear={handleClear}\n placeholder={placeholder}\n >\n {label}\n </Searchbar>\n </SearchForm>\n );\n }\n\n return (\n <IconButton\n ref={iconButtonRef}\n disabled={disabled}\n label={formatMessage({ id: 'global.search', defaultMessage: 'Search' })}\n onClick={handleToggle}\n >\n <SearchIcon />\n </IconButton>\n );\n};\n\nexport { SearchInput };\nexport type { SearchInputProps };\n"],"names":["SearchInput","disabled","label","placeholder","trackedEvent","trackedEventDetails","inputRef","React","useRef","iconButtonRef","query","setQuery","useQueryParams","value","setValue","useState","_q","isOpen","setIsOpen","formatMessage","useIntl","trackUsage","useTracking","handleToggle","prev","useLayoutEffect","current","focus","handleClear","handleSubmit","e","preventDefault","encodeURIComponent","page","_jsx","SearchForm","onSubmit","Searchbar","ref","name","onChange","target","clearLabel","id","defaultMessage","onClear","IconButton","onClick","SearchIcon"],"mappings":"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"}
1
+ {"version":3,"file":"SearchInput.mjs","sources":["../../../../../admin/src/components/SearchInput.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { IconButton, Searchbar, SearchForm } from '@strapi/design-system';\nimport { Search as SearchIcon } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\n\nimport { TrackingEvent, useTracking } from '../features/Tracking';\nimport { useQueryParams } from '../hooks/useQueryParams';\n\ninterface SearchInputProps {\n disabled?: boolean;\n label: string;\n placeholder?: string;\n trackedEvent?: TrackingEvent['name'] | null;\n trackedEventDetails?: TrackingEvent['properties'];\n}\n\nconst SearchInput = ({\n disabled,\n label,\n placeholder,\n trackedEvent,\n trackedEventDetails,\n}: SearchInputProps) => {\n const inputRef = React.useRef<HTMLInputElement>(null);\n const iconButtonRef = React.useRef<HTMLButtonElement>(null);\n\n const [{ query }, setQuery] = useQueryParams<{ _q: string; page?: number }>();\n\n const [value, setValue] = React.useState(query?._q || '');\n const [isOpen, setIsOpen] = React.useState(!!value);\n\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n\n const handleToggle = () => setIsOpen((prev) => !prev);\n\n React.useLayoutEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleClear = () => {\n setValue('');\n setQuery({ _q: '' }, 'remove');\n };\n\n const handleSubmit = (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n\n // Ensure value is a string\n if (value) {\n if (trackedEvent) {\n trackUsage(trackedEvent, trackedEventDetails);\n }\n setQuery({ _q: encodeURIComponent(value), page: 1 });\n } else {\n handleToggle();\n setQuery({ _q: '' }, 'remove');\n }\n };\n\n if (isOpen) {\n return (\n <SearchForm onSubmit={handleSubmit}>\n <Searchbar\n ref={inputRef}\n name=\"search\"\n onChange={(e) => setValue(e.target.value)}\n value={value}\n clearLabel={formatMessage({ id: 'clearLabel', defaultMessage: 'Clear' })}\n onClear={handleClear}\n placeholder={placeholder}\n onBlur={(e) => {\n if (!e.currentTarget.contains(e.relatedTarget) && e.currentTarget.value === '') {\n setIsOpen(false);\n }\n }}\n >\n {label}\n </Searchbar>\n </SearchForm>\n );\n }\n\n return (\n <IconButton\n ref={iconButtonRef}\n disabled={disabled}\n label={formatMessage({ id: 'global.search', defaultMessage: 'Search' })}\n onClick={handleToggle}\n >\n <SearchIcon />\n </IconButton>\n );\n};\n\nexport { SearchInput };\nexport type { SearchInputProps };\n"],"names":["SearchInput","disabled","label","placeholder","trackedEvent","trackedEventDetails","inputRef","React","useRef","iconButtonRef","query","setQuery","useQueryParams","value","setValue","useState","_q","isOpen","setIsOpen","formatMessage","useIntl","trackUsage","useTracking","handleToggle","prev","useLayoutEffect","current","focus","handleClear","handleSubmit","e","preventDefault","encodeURIComponent","page","_jsx","SearchForm","onSubmit","Searchbar","ref","name","onChange","target","clearLabel","id","defaultMessage","onClear","onBlur","currentTarget","contains","relatedTarget","IconButton","onClick","SearchIcon"],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var immer = require('immer');
6
+ var Context = require('../Context.js');
7
+
8
+ function _interopNamespaceDefault(e) {
9
+ var n = Object.create(null);
10
+ if (e) {
11
+ Object.keys(e).forEach(function (k) {
12
+ if (k !== 'default') {
13
+ var d = Object.getOwnPropertyDescriptor(e, k);
14
+ Object.defineProperty(n, k, d.get ? d : {
15
+ enumerable: true,
16
+ get: function () { return e[k]; }
17
+ });
18
+ }
19
+ });
20
+ }
21
+ n.default = e;
22
+ return Object.freeze(n);
23
+ }
24
+
25
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
26
+
27
+ const [GuidedTourProviderImpl, unstableUseGuidedTour] = Context.createContext('UnstableGuidedTour');
28
+ function reducer(state, action) {
29
+ return immer.produce(state, (draft)=>{
30
+ if (action.type === 'next_step') {
31
+ const nextStep = draft.tours[action.payload].currentStep + 1;
32
+ draft.tours[action.payload].currentStep = nextStep;
33
+ draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;
34
+ // TODO: Update local storage
35
+ }
36
+ if (action.type === 'skip_tour') {
37
+ draft.tours[action.payload].isCompleted = true;
38
+ // TODO: Update local storage
39
+ }
40
+ });
41
+ }
42
+ const UnstableGuidedTourContext = ({ children, tours: registeredTours })=>{
43
+ // Derive the tour state from the tours object
44
+ const tours = Object.keys(registeredTours).reduce((acc, tourName)=>{
45
+ const tourLength = Object.keys(registeredTours[tourName]).length;
46
+ acc[tourName] = {
47
+ currentStep: 0,
48
+ length: tourLength,
49
+ isCompleted: false
50
+ };
51
+ return acc;
52
+ }, {});
53
+ const [state, dispatch] = React__namespace.useReducer(reducer, {
54
+ tours
55
+ });
56
+ return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourProviderImpl, {
57
+ state: state,
58
+ dispatch: dispatch,
59
+ children: children
60
+ });
61
+ };
62
+
63
+ exports.UnstableGuidedTourContext = UnstableGuidedTourContext;
64
+ exports.reducer = reducer;
65
+ exports.unstableUseGuidedTour = unstableUseGuidedTour;
66
+ //# sourceMappingURL=Context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.js","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Context.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { createContext } from '../Context';\n\nimport type { Tours } from './Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\ntype ValidTourName = keyof Tours;\n\ntype Action =\n | {\n type: 'next_step';\n payload: ValidTourName;\n }\n | {\n type: 'skip_tour';\n payload: ValidTourName;\n };\n\ntype State = {\n tours: Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>;\n};\n\nconst [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext<{\n state: State;\n dispatch: React.Dispatch<Action>;\n}>('UnstableGuidedTour');\n\nfunction reducer(state: State, action: Action): State {\n return produce(state, (draft) => {\n if (action.type === 'next_step') {\n const nextStep = draft.tours[action.payload].currentStep + 1;\n draft.tours[action.payload].currentStep = nextStep;\n draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;\n // TODO: Update local storage\n }\n\n if (action.type === 'skip_tour') {\n draft.tours[action.payload].isCompleted = true;\n // TODO: Update local storage\n }\n });\n}\n\nconst UnstableGuidedTourContext = ({\n children,\n tours: registeredTours,\n}: {\n children: React.ReactNode;\n // NOTE: Maybe we just import this directly instead of a prop?\n tours: Tours;\n}) => {\n // Derive the tour state from the tours object\n const tours = Object.keys(registeredTours).reduce(\n (acc, tourName) => {\n const tourLength = Object.keys(registeredTours[tourName as ValidTourName]).length;\n acc[tourName as ValidTourName] = {\n currentStep: 0,\n length: tourLength,\n isCompleted: false,\n };\n return acc;\n },\n {} as Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>\n );\n const [state, dispatch] = React.useReducer(reducer, {\n tours,\n });\n\n return (\n <GuidedTourProviderImpl state={state} dispatch={dispatch}>\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\nexport type { Action, State, ValidTourName };\nexport { UnstableGuidedTourContext, unstableUseGuidedTour, reducer };\n"],"names":["GuidedTourProviderImpl","unstableUseGuidedTour","createContext","reducer","state","action","produce","draft","type","nextStep","tours","payload","currentStep","isCompleted","length","UnstableGuidedTourContext","children","registeredTours","Object","keys","reduce","acc","tourName","tourLength","dispatch","React","useReducer","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,MAAM,CAACA,sBAAAA,EAAwBC,qBAAsB,CAAA,GAAGC,qBAGrD,CAAA,oBAAA;AAEH,SAASC,OAAAA,CAAQC,KAAY,EAAEC,MAAc,EAAA;IAC3C,OAAOC,aAAAA,CAAQF,OAAO,CAACG,KAAAA,GAAAA;QACrB,IAAIF,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;YAC/B,MAAMC,QAAAA,GAAWF,MAAMG,KAAK,CAACL,OAAOM,OAAO,CAAC,CAACC,WAAW,GAAG,CAAA;AAC3DL,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACC,WAAW,GAAGH,QAAAA;AAC1CF,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAGJ,QAAaF,KAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACG,MAAM;;AAE3F;QAEA,IAAIT,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;AAC/BD,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAG,IAAA;;AAE5C;AACF,KAAA,CAAA;AACF;AAEA,MAAME,4BAA4B,CAAC,EACjCC,QAAQ,EACRN,KAAAA,EAAOO,eAAe,EAKvB,GAAA;;IAEC,MAAMP,KAAAA,GAAQQ,OAAOC,IAAI,CAACF,iBAAiBG,MAAM,CAC/C,CAACC,GAAKC,EAAAA,QAAAA,GAAAA;QACJ,MAAMC,UAAAA,GAAaL,OAAOC,IAAI,CAACF,eAAe,CAACK,QAAAA,CAA0B,EAAER,MAAM;QACjFO,GAAG,CAACC,SAA0B,GAAG;YAC/BV,WAAa,EAAA,CAAA;YACbE,MAAQS,EAAAA,UAAAA;YACRV,WAAa,EAAA;AACf,SAAA;QACA,OAAOQ,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;AAEH,IAAA,MAAM,CAACjB,KAAOoB,EAAAA,QAAAA,CAAS,GAAGC,gBAAMC,CAAAA,UAAU,CAACvB,OAAS,EAAA;AAClDO,QAAAA;AACF,KAAA,CAAA;AAEA,IAAA,qBACEiB,cAAC3B,CAAAA,sBAAAA,EAAAA;QAAuBI,KAAOA,EAAAA,KAAAA;QAAOoB,QAAUA,EAAAA,QAAAA;AAC7CR,QAAAA,QAAAA,EAAAA;;AAGP;;;;;;"}
@@ -0,0 +1,43 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { produce } from 'immer';
4
+ import { createContext } from '../Context.mjs';
5
+
6
+ const [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext('UnstableGuidedTour');
7
+ function reducer(state, action) {
8
+ return produce(state, (draft)=>{
9
+ if (action.type === 'next_step') {
10
+ const nextStep = draft.tours[action.payload].currentStep + 1;
11
+ draft.tours[action.payload].currentStep = nextStep;
12
+ draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;
13
+ // TODO: Update local storage
14
+ }
15
+ if (action.type === 'skip_tour') {
16
+ draft.tours[action.payload].isCompleted = true;
17
+ // TODO: Update local storage
18
+ }
19
+ });
20
+ }
21
+ const UnstableGuidedTourContext = ({ children, tours: registeredTours })=>{
22
+ // Derive the tour state from the tours object
23
+ const tours = Object.keys(registeredTours).reduce((acc, tourName)=>{
24
+ const tourLength = Object.keys(registeredTours[tourName]).length;
25
+ acc[tourName] = {
26
+ currentStep: 0,
27
+ length: tourLength,
28
+ isCompleted: false
29
+ };
30
+ return acc;
31
+ }, {});
32
+ const [state, dispatch] = React.useReducer(reducer, {
33
+ tours
34
+ });
35
+ return /*#__PURE__*/ jsx(GuidedTourProviderImpl, {
36
+ state: state,
37
+ dispatch: dispatch,
38
+ children: children
39
+ });
40
+ };
41
+
42
+ export { UnstableGuidedTourContext, reducer, unstableUseGuidedTour };
43
+ //# sourceMappingURL=Context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Context.mjs","sources":["../../../../../../admin/src/components/UnstableGuidedTour/Context.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\n\nimport { createContext } from '../Context';\n\nimport type { Tours } from './Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\ntype ValidTourName = keyof Tours;\n\ntype Action =\n | {\n type: 'next_step';\n payload: ValidTourName;\n }\n | {\n type: 'skip_tour';\n payload: ValidTourName;\n };\n\ntype State = {\n tours: Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>;\n};\n\nconst [GuidedTourProviderImpl, unstableUseGuidedTour] = createContext<{\n state: State;\n dispatch: React.Dispatch<Action>;\n}>('UnstableGuidedTour');\n\nfunction reducer(state: State, action: Action): State {\n return produce(state, (draft) => {\n if (action.type === 'next_step') {\n const nextStep = draft.tours[action.payload].currentStep + 1;\n draft.tours[action.payload].currentStep = nextStep;\n draft.tours[action.payload].isCompleted = nextStep === draft.tours[action.payload].length;\n // TODO: Update local storage\n }\n\n if (action.type === 'skip_tour') {\n draft.tours[action.payload].isCompleted = true;\n // TODO: Update local storage\n }\n });\n}\n\nconst UnstableGuidedTourContext = ({\n children,\n tours: registeredTours,\n}: {\n children: React.ReactNode;\n // NOTE: Maybe we just import this directly instead of a prop?\n tours: Tours;\n}) => {\n // Derive the tour state from the tours object\n const tours = Object.keys(registeredTours).reduce(\n (acc, tourName) => {\n const tourLength = Object.keys(registeredTours[tourName as ValidTourName]).length;\n acc[tourName as ValidTourName] = {\n currentStep: 0,\n length: tourLength,\n isCompleted: false,\n };\n return acc;\n },\n {} as Record<ValidTourName, { currentStep: number; length: number; isCompleted: boolean }>\n );\n const [state, dispatch] = React.useReducer(reducer, {\n tours,\n });\n\n return (\n <GuidedTourProviderImpl state={state} dispatch={dispatch}>\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\nexport type { Action, State, ValidTourName };\nexport { UnstableGuidedTourContext, unstableUseGuidedTour, reducer };\n"],"names":["GuidedTourProviderImpl","unstableUseGuidedTour","createContext","reducer","state","action","produce","draft","type","nextStep","tours","payload","currentStep","isCompleted","length","UnstableGuidedTourContext","children","registeredTours","Object","keys","reduce","acc","tourName","tourLength","dispatch","React","useReducer","_jsx"],"mappings":";;;;;AA4BA,MAAM,CAACA,sBAAAA,EAAwBC,qBAAsB,CAAA,GAAGC,aAGrD,CAAA,oBAAA;AAEH,SAASC,OAAAA,CAAQC,KAAY,EAAEC,MAAc,EAAA;IAC3C,OAAOC,OAAAA,CAAQF,OAAO,CAACG,KAAAA,GAAAA;QACrB,IAAIF,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;YAC/B,MAAMC,QAAAA,GAAWF,MAAMG,KAAK,CAACL,OAAOM,OAAO,CAAC,CAACC,WAAW,GAAG,CAAA;AAC3DL,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACC,WAAW,GAAGH,QAAAA;AAC1CF,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAGJ,QAAaF,KAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACG,MAAM;;AAE3F;QAEA,IAAIT,MAAAA,CAAOG,IAAI,KAAK,WAAa,EAAA;AAC/BD,YAAAA,KAAAA,CAAMG,KAAK,CAACL,MAAAA,CAAOM,OAAO,CAAC,CAACE,WAAW,GAAG,IAAA;;AAE5C;AACF,KAAA,CAAA;AACF;AAEA,MAAME,4BAA4B,CAAC,EACjCC,QAAQ,EACRN,KAAAA,EAAOO,eAAe,EAKvB,GAAA;;IAEC,MAAMP,KAAAA,GAAQQ,OAAOC,IAAI,CAACF,iBAAiBG,MAAM,CAC/C,CAACC,GAAKC,EAAAA,QAAAA,GAAAA;QACJ,MAAMC,UAAAA,GAAaL,OAAOC,IAAI,CAACF,eAAe,CAACK,QAAAA,CAA0B,EAAER,MAAM;QACjFO,GAAG,CAACC,SAA0B,GAAG;YAC/BV,WAAa,EAAA,CAAA;YACbE,MAAQS,EAAAA,UAAAA;YACRV,WAAa,EAAA;AACf,SAAA;QACA,OAAOQ,GAAAA;AACT,KAAA,EACA,EAAC,CAAA;AAEH,IAAA,MAAM,CAACjB,KAAOoB,EAAAA,QAAAA,CAAS,GAAGC,KAAMC,CAAAA,UAAU,CAACvB,OAAS,EAAA;AAClDO,QAAAA;AACF,KAAA,CAAA;AAEA,IAAA,qBACEiB,GAAC3B,CAAAA,sBAAAA,EAAAA;QAAuBI,KAAOA,EAAAA,KAAAA;QAAOoB,QAAUA,EAAAA,QAAAA;AAC7CR,QAAAA,QAAAA,EAAAA;;AAGP;;;;"}