@strapi/admin 5.17.0 → 5.18.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 (118) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +27 -4
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +27 -4
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/GuidedTour/Provider.js +2 -1
  6. package/dist/admin/admin/src/components/GuidedTour/Provider.js.map +1 -1
  7. package/dist/admin/admin/src/components/GuidedTour/Provider.mjs +2 -1
  8. package/dist/admin/admin/src/components/GuidedTour/Provider.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/LeftMenu.js +1 -1
  10. package/dist/admin/admin/src/components/LeftMenu.js.map +1 -1
  11. package/dist/admin/admin/src/components/LeftMenu.mjs +2 -2
  12. package/dist/admin/admin/src/components/LeftMenu.mjs.map +1 -1
  13. package/dist/admin/admin/src/components/MainNav/NavLink.js +40 -4
  14. package/dist/admin/admin/src/components/MainNav/NavLink.js.map +1 -1
  15. package/dist/admin/admin/src/components/MainNav/NavLink.mjs +21 -4
  16. package/dist/admin/admin/src/components/MainNav/NavLink.mjs.map +1 -1
  17. package/dist/admin/admin/src/components/MainNav/NavUser.js +1 -1
  18. package/dist/admin/admin/src/components/MainNav/NavUser.js.map +1 -1
  19. package/dist/admin/admin/src/components/MainNav/NavUser.mjs +1 -1
  20. package/dist/admin/admin/src/components/MainNav/NavUser.mjs.map +1 -1
  21. package/dist/admin/admin/src/components/Providers.js +0 -2
  22. package/dist/admin/admin/src/components/Providers.js.map +1 -1
  23. package/dist/admin/admin/src/components/Providers.mjs +0 -2
  24. package/dist/admin/admin/src/components/Providers.mjs.map +1 -1
  25. package/dist/admin/admin/src/components/SubNav.js +27 -7
  26. package/dist/admin/admin/src/components/SubNav.js.map +1 -1
  27. package/dist/admin/admin/src/components/SubNav.mjs +28 -8
  28. package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
  29. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js +31 -9
  30. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.js.map +1 -1
  31. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs +31 -9
  32. package/dist/admin/admin/src/components/UnstableGuidedTour/Context.mjs.map +1 -1
  33. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.js +306 -0
  34. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.js.map +1 -0
  35. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.mjs +304 -0
  36. package/dist/admin/admin/src/components/UnstableGuidedTour/Overview.mjs.map +1 -0
  37. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js +73 -27
  38. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.js.map +1 -1
  39. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs +75 -30
  40. package/dist/admin/admin/src/components/UnstableGuidedTour/Step.mjs.map +1 -1
  41. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js +316 -28
  42. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.js.map +1 -1
  43. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs +319 -30
  44. package/dist/admin/admin/src/components/UnstableGuidedTour/Tours.mjs.map +1 -1
  45. package/dist/admin/admin/src/components/Widgets.js +52 -0
  46. package/dist/admin/admin/src/components/Widgets.js.map +1 -0
  47. package/dist/admin/admin/src/components/Widgets.mjs +50 -0
  48. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -0
  49. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  50. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  51. package/dist/admin/admin/src/features/Auth.js.map +1 -1
  52. package/dist/admin/admin/src/features/Auth.mjs.map +1 -1
  53. package/dist/admin/admin/src/layouts/AuthenticatedLayout.js.map +1 -1
  54. package/dist/admin/admin/src/layouts/AuthenticatedLayout.mjs.map +1 -1
  55. package/dist/admin/admin/src/pages/Home/HomePage.js +3 -1
  56. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  57. package/dist/admin/admin/src/pages/Home/HomePage.mjs +3 -1
  58. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  59. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +93 -0
  60. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
  61. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +95 -3
  62. package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
  63. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js +8 -3
  64. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
  65. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs +10 -5
  66. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
  67. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js +6 -1
  68. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.js.map +1 -1
  69. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs +6 -1
  70. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/components/CollapsableContentType.mjs.map +1 -1
  71. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +58 -53
  72. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
  73. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +58 -53
  74. package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
  75. package/dist/admin/admin/src/translations/en.json.js +38 -2
  76. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  77. package/dist/admin/admin/src/translations/en.json.mjs +38 -2
  78. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  79. package/dist/admin/admin/src/translations/es.json.js +3 -1
  80. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  81. package/dist/admin/admin/src/translations/es.json.mjs +3 -1
  82. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  83. package/dist/admin/admin/src/translations/fr.json.js +3 -1
  84. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  85. package/dist/admin/admin/src/translations/fr.json.mjs +3 -1
  86. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  87. package/dist/admin/admin/src/utils/users.js +8 -0
  88. package/dist/admin/admin/src/utils/users.js.map +1 -1
  89. package/dist/admin/admin/src/utils/users.mjs +8 -1
  90. package/dist/admin/admin/src/utils/users.mjs.map +1 -1
  91. package/dist/admin/admin/tests/server.js +8 -0
  92. package/dist/admin/admin/tests/server.js.map +1 -1
  93. package/dist/admin/admin/tests/server.mjs +8 -0
  94. package/dist/admin/admin/tests/server.mjs.map +1 -1
  95. package/dist/admin/admin/tests/utils.js +25 -21
  96. package/dist/admin/admin/tests/utils.js.map +1 -1
  97. package/dist/admin/admin/tests/utils.mjs +25 -21
  98. package/dist/admin/admin/tests/utils.mjs.map +1 -1
  99. package/dist/admin/src/components/UnstableGuidedTour/Context.d.ts +12 -3
  100. package/dist/admin/src/components/UnstableGuidedTour/Overview.d.ts +1 -0
  101. package/dist/admin/src/components/UnstableGuidedTour/Step.d.ts +11 -3
  102. package/dist/admin/src/components/UnstableGuidedTour/Tours.d.ts +40 -9
  103. package/dist/admin/src/components/Widgets.d.ts +2 -0
  104. package/dist/admin/src/core/apis/Widgets.d.ts +1 -1
  105. package/dist/admin/src/features/Auth.d.ts +1 -1
  106. package/dist/admin/src/pages/Settings/components/Tokens/TokenBox.d.ts +1 -0
  107. package/dist/admin/src/utils/users.d.ts +5 -1
  108. package/dist/server/server/src/services/guided-tour.js +20 -2
  109. package/dist/server/server/src/services/guided-tour.js.map +1 -1
  110. package/dist/server/server/src/services/guided-tour.mjs +20 -2
  111. package/dist/server/server/src/services/guided-tour.mjs.map +1 -1
  112. package/dist/server/server/src/strategies/api-token.js +15 -4
  113. package/dist/server/server/src/strategies/api-token.js.map +1 -1
  114. package/dist/server/server/src/strategies/api-token.mjs +15 -4
  115. package/dist/server/server/src/strategies/api-token.mjs.map +1 -1
  116. package/dist/server/src/services/guided-tour.d.ts.map +1 -1
  117. package/dist/server/src/strategies/api-token.d.ts.map +1 -1
  118. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Provider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nconst GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';\nconst GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';\nconst GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';\n\nconst GUIDED_TOUR_KEYS = {\n GUIDED_TOUR_COMPLETED_STEPS,\n GUIDED_TOUR_CURRENT_STEP,\n GUIDED_TOUR_SKIPPED,\n} as const;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\nimport { createContext } from '../Context';\n\ntype SectionKey = keyof GuidedTourContextValue['guidedTourState'];\ntype StepKey = keyof GuidedTourContextValue['guidedTourState'][SectionKey];\ntype Step = `${SectionKey}.${StepKey}`;\ninterface GuidedTourContextValue {\n currentStep: Step | null;\n guidedTourState: {\n contentTypeBuilder: {\n create: boolean;\n success: boolean;\n };\n contentManager: {\n create: boolean;\n success: boolean;\n };\n apiTokens: {\n create: boolean;\n success: boolean;\n };\n };\n isGuidedTourVisible: boolean;\n isSkipped: boolean;\n setCurrentStep: (step: Step | null) => void | null;\n setGuidedTourVisibility: (isVisible: boolean) => void;\n setSkipped: (isSkipped: boolean) => void;\n setStepState: (step: Step, state: boolean) => void;\n startSection: (section: SectionKey) => void;\n}\n\nconst [GuidedTourProviderImpl, useGuidedTour] = createContext<GuidedTourContextValue>('GuidedTour');\n\ninterface GuidedTourProviderProps {\n children: React.ReactNode;\n}\n\nconst GuidedTourProvider = ({ children }: GuidedTourProviderProps) => {\n const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] =\n React.useReducer(reducer, initialState, initialiseState);\n\n const setCurrentStep = (step: SetCurrentStepAction['step']) => {\n // if step is null it is intentional, we need to dispatch it\n if (step !== null) {\n const isStepAlreadyDone = get(guidedTourState, step);\n const [sectionName, stepName] = step.split('.') as [SectionKey, StepKey];\n const sectionArray = Object.entries(guidedTourState[sectionName]);\n\n const currentStepIndex = sectionArray.findIndex(([key]) => key === stepName);\n const previousSteps = sectionArray.slice(0, currentStepIndex);\n\n const isStepToShow = previousSteps.every(([, sectionValue]) => sectionValue);\n\n if (isStepAlreadyDone || isSkipped || !isStepToShow) {\n return null;\n }\n }\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n\n return dispatch({\n type: 'SET_CURRENT_STEP',\n step,\n });\n };\n\n const setGuidedTourVisibility = (value: SetGuidedTourVisibilityAction['value']) => {\n dispatch({\n type: 'SET_GUIDED_TOUR_VISIBILITY',\n value,\n });\n };\n\n const setStepState = (currentStep: Step, value: SetStepStateAction['value']) => {\n addCompletedStep(currentStep);\n\n dispatch({\n type: 'SET_STEP_STATE',\n currentStep,\n value,\n });\n };\n\n const startSection = (sectionName: SectionKey) => {\n const sectionSteps = guidedTourState[sectionName];\n\n if (sectionSteps) {\n const guidedTourArray = Object.entries(guidedTourState);\n\n // Find current section position in the guidedTourArray\n // Get only previous sections based on current section position\n const currentSectionIndex = guidedTourArray.findIndex(([key]) => key === sectionName);\n const previousSections = guidedTourArray.slice(0, currentSectionIndex);\n\n // Check if every steps from previous section are done\n const isSectionToShow = previousSections.every(([, sectionValue]) =>\n Object.values(sectionValue).every(Boolean)\n );\n\n const [firstStep] = Object.keys(sectionSteps) as [StepKey];\n const isFirstStepDone = sectionSteps[firstStep];\n\n if (isSectionToShow && !currentStep && !isFirstStepDone) {\n setCurrentStep(`${sectionName}.${firstStep}`);\n }\n }\n };\n\n const setSkipped = (value: SetSkippedAction['value']) => {\n window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));\n\n dispatch({\n type: 'SET_SKIPPED',\n value,\n });\n };\n\n return (\n <GuidedTourProviderImpl\n guidedTourState={guidedTourState}\n currentStep={currentStep}\n setCurrentStep={setCurrentStep}\n setGuidedTourVisibility={setGuidedTourVisibility}\n setSkipped={setSkipped}\n setStepState={setStepState}\n startSection={startSection}\n isGuidedTourVisible={isGuidedTourVisible}\n isSkipped={isSkipped}\n >\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\ntype State = Pick<\n GuidedTourContextValue,\n 'guidedTourState' | 'currentStep' | 'isGuidedTourVisible' | 'isSkipped'\n>;\n\nconst initialState = {\n currentStep: null,\n guidedTourState: {\n contentTypeBuilder: {\n create: false,\n success: false,\n },\n contentManager: {\n create: false,\n success: false,\n },\n apiTokens: {\n create: false,\n success: false,\n },\n },\n isGuidedTourVisible: false,\n isSkipped: false,\n} satisfies State;\n\ninterface SetCurrentStepAction {\n type: 'SET_CURRENT_STEP';\n step: Step | null;\n}\n\ninterface SetStepStateAction {\n type: 'SET_STEP_STATE';\n currentStep: Step;\n value: boolean;\n}\n\ninterface SetSkippedAction {\n type: 'SET_SKIPPED';\n value: boolean;\n}\n\ninterface SetGuidedTourVisibilityAction {\n type: 'SET_GUIDED_TOUR_VISIBILITY';\n value: boolean;\n}\n\ntype Action =\n | SetCurrentStepAction\n | SetStepStateAction\n | SetSkippedAction\n | SetGuidedTourVisibilityAction;\n\nconst reducer: React.Reducer<State, Action> = (state: State = initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_CURRENT_STEP': {\n draftState.currentStep = action.step;\n break;\n }\n case 'SET_STEP_STATE': {\n const [section, step] = action.currentStep.split('.') as [SectionKey, StepKey];\n draftState.guidedTourState[section][step] = action.value;\n break;\n }\n case 'SET_SKIPPED': {\n draftState.isSkipped = action.value;\n break;\n }\n case 'SET_GUIDED_TOUR_VISIBILITY': {\n draftState.isGuidedTourVisible = action.value;\n break;\n }\n default: {\n return draftState;\n }\n }\n });\n\nconst initialiseState = (initialState: State) => {\n const copyInitialState = { ...initialState };\n const guidedTourLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]'\n );\n const currentStepLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null'\n );\n const skippedLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'null'\n );\n\n if (Array.isArray(guidedTourLocaleStorage)) {\n guidedTourLocaleStorage.forEach((step) => {\n const [sectionName, stepName] = step.split('.');\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n });\n }\n\n // if current step when initializing mark it as done\n if (currentStepLocaleStorage) {\n const [sectionName, stepName] = currentStepLocaleStorage.split('.') as [SectionKey, StepKey];\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n\n addCompletedStep(currentStepLocaleStorage as Step);\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n }\n\n if (skippedLocaleStorage !== null) {\n set(copyInitialState, 'isSkipped', skippedLocaleStorage);\n }\n\n return copyInitialState;\n};\n\n/**\n * @description Add a completed step to the local storage if it does not already exist.\n */\nconst addCompletedStep = (completedStep: Step) => {\n const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');\n\n if (!Array.isArray(currentSteps)) {\n return;\n }\n\n const isAlreadyStored = currentSteps.includes(completedStep);\n\n if (isAlreadyStored) {\n return;\n }\n\n window.localStorage.setItem(\n GUIDED_TOUR_COMPLETED_STEPS,\n JSON.stringify([...currentSteps, completedStep])\n );\n};\n\nexport { GuidedTourProvider, useGuidedTour, GuidedTourContextValue, GUIDED_TOUR_KEYS };\n"],"names":["GUIDED_TOUR_COMPLETED_STEPS","GUIDED_TOUR_CURRENT_STEP","GUIDED_TOUR_SKIPPED","GuidedTourProviderImpl","useGuidedTour","createContext","GuidedTourProvider","children","currentStep","guidedTourState","isGuidedTourVisible","isSkipped","dispatch","React","useReducer","reducer","initialState","initialiseState","setCurrentStep","step","isStepAlreadyDone","get","sectionName","stepName","split","sectionArray","Object","entries","currentStepIndex","findIndex","key","previousSteps","slice","isStepToShow","every","sectionValue","window","localStorage","setItem","JSON","stringify","type","setGuidedTourVisibility","value","setStepState","addCompletedStep","startSection","sectionSteps","guidedTourArray","currentSectionIndex","previousSections","isSectionToShow","values","Boolean","firstStep","keys","isFirstStepDone","setSkipped","_jsx","contentTypeBuilder","create","success","contentManager","apiTokens","state","action","produce","draftState","section","copyInitialState","guidedTourLocaleStorage","parse","getItem","currentStepLocaleStorage","skippedLocaleStorage","Array","isArray","forEach","set","completedStep","currentSteps","isAlreadyStored","includes"],"mappings":"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"}
1
+ {"version":3,"file":"Provider.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Provider.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { produce } from 'immer';\nimport get from 'lodash/get';\nimport set from 'lodash/set';\n\nconst GUIDED_TOUR_COMPLETED_STEPS = 'GUIDED_TOUR_COMPLETED_STEPS';\nconst GUIDED_TOUR_CURRENT_STEP = 'GUIDED_TOUR_CURRENT_STEP';\nconst GUIDED_TOUR_SKIPPED = 'GUIDED_TOUR_SKIPPED';\n\nconst GUIDED_TOUR_KEYS = {\n GUIDED_TOUR_COMPLETED_STEPS,\n GUIDED_TOUR_CURRENT_STEP,\n GUIDED_TOUR_SKIPPED,\n} as const;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourProvider\n * -----------------------------------------------------------------------------------------------*/\n\nimport { createContext } from '../Context';\n\ntype SectionKey = keyof GuidedTourContextValue['guidedTourState'];\ntype StepKey = keyof GuidedTourContextValue['guidedTourState'][SectionKey];\ntype Step = `${SectionKey}.${StepKey}`;\ninterface GuidedTourContextValue {\n currentStep: Step | null;\n guidedTourState: {\n contentTypeBuilder: {\n create: boolean;\n success: boolean;\n };\n contentManager: {\n create: boolean;\n success: boolean;\n };\n apiTokens: {\n create: boolean;\n success: boolean;\n };\n };\n isGuidedTourVisible: boolean;\n isSkipped: boolean;\n setCurrentStep: (step: Step | null) => void | null;\n setGuidedTourVisibility: (isVisible: boolean) => void;\n setSkipped: (isSkipped: boolean) => void;\n setStepState: (step: Step, state: boolean) => void;\n startSection: (section: SectionKey) => void;\n}\n\nconst [GuidedTourProviderImpl, useGuidedTour] = createContext<GuidedTourContextValue>('GuidedTour');\n\ninterface GuidedTourProviderProps {\n children: React.ReactNode;\n}\n\nconst GuidedTourProvider = ({ children }: GuidedTourProviderProps) => {\n const [{ currentStep, guidedTourState, isGuidedTourVisible, isSkipped }, dispatch] =\n React.useReducer(reducer, initialState, initialiseState);\n\n const setCurrentStep = (step: SetCurrentStepAction['step']) => {\n // if step is null it is intentional, we need to dispatch it\n if (step !== null) {\n const isStepAlreadyDone = get(guidedTourState, step);\n const [sectionName, stepName] = step.split('.') as [SectionKey, StepKey];\n const sectionArray = Object.entries(guidedTourState[sectionName]);\n\n const currentStepIndex = sectionArray.findIndex(([key]) => key === stepName);\n const previousSteps = sectionArray.slice(0, currentStepIndex);\n\n const isStepToShow = previousSteps.every(([, sectionValue]) => sectionValue);\n\n if (isStepAlreadyDone || isSkipped || !isStepToShow) {\n return null;\n }\n }\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n\n return dispatch({\n type: 'SET_CURRENT_STEP',\n step,\n });\n };\n\n const setGuidedTourVisibility = (value: SetGuidedTourVisibilityAction['value']) => {\n dispatch({\n type: 'SET_GUIDED_TOUR_VISIBILITY',\n value,\n });\n };\n\n const setStepState = (currentStep: Step, value: SetStepStateAction['value']) => {\n addCompletedStep(currentStep);\n\n dispatch({\n type: 'SET_STEP_STATE',\n currentStep,\n value,\n });\n };\n\n const startSection = (sectionName: SectionKey) => {\n const sectionSteps = guidedTourState[sectionName];\n\n if (sectionSteps) {\n const guidedTourArray = Object.entries(guidedTourState);\n\n // Find current section position in the guidedTourArray\n // Get only previous sections based on current section position\n const currentSectionIndex = guidedTourArray.findIndex(([key]) => key === sectionName);\n const previousSections = guidedTourArray.slice(0, currentSectionIndex);\n\n // Check if every steps from previous section are done\n const isSectionToShow = previousSections.every(([, sectionValue]) =>\n Object.values(sectionValue).every(Boolean)\n );\n\n const [firstStep] = Object.keys(sectionSteps) as [StepKey];\n const isFirstStepDone = sectionSteps[firstStep];\n\n if (isSectionToShow && !currentStep && !isFirstStepDone) {\n setCurrentStep(`${sectionName}.${firstStep}`);\n }\n }\n };\n\n const setSkipped = (value: SetSkippedAction['value']) => {\n window.localStorage.setItem(GUIDED_TOUR_SKIPPED, JSON.stringify(value));\n\n dispatch({\n type: 'SET_SKIPPED',\n value,\n });\n };\n\n return (\n <GuidedTourProviderImpl\n guidedTourState={guidedTourState}\n currentStep={currentStep}\n setCurrentStep={setCurrentStep}\n setGuidedTourVisibility={setGuidedTourVisibility}\n setSkipped={setSkipped}\n setStepState={setStepState}\n startSection={startSection}\n // TODO: remove the future condition when the unstable guided tour will be released\n isGuidedTourVisible={\n isGuidedTourVisible && !window.strapi.future.isEnabled('unstableGuidedTour')\n }\n isSkipped={isSkipped}\n >\n {children}\n </GuidedTourProviderImpl>\n );\n};\n\ntype State = Pick<\n GuidedTourContextValue,\n 'guidedTourState' | 'currentStep' | 'isGuidedTourVisible' | 'isSkipped'\n>;\n\nconst initialState = {\n currentStep: null,\n guidedTourState: {\n contentTypeBuilder: {\n create: false,\n success: false,\n },\n contentManager: {\n create: false,\n success: false,\n },\n apiTokens: {\n create: false,\n success: false,\n },\n },\n isGuidedTourVisible: false,\n isSkipped: false,\n} satisfies State;\n\ninterface SetCurrentStepAction {\n type: 'SET_CURRENT_STEP';\n step: Step | null;\n}\n\ninterface SetStepStateAction {\n type: 'SET_STEP_STATE';\n currentStep: Step;\n value: boolean;\n}\n\ninterface SetSkippedAction {\n type: 'SET_SKIPPED';\n value: boolean;\n}\n\ninterface SetGuidedTourVisibilityAction {\n type: 'SET_GUIDED_TOUR_VISIBILITY';\n value: boolean;\n}\n\ntype Action =\n | SetCurrentStepAction\n | SetStepStateAction\n | SetSkippedAction\n | SetGuidedTourVisibilityAction;\n\nconst reducer: React.Reducer<State, Action> = (state: State = initialState, action: Action) =>\n produce(state, (draftState) => {\n switch (action.type) {\n case 'SET_CURRENT_STEP': {\n draftState.currentStep = action.step;\n break;\n }\n case 'SET_STEP_STATE': {\n const [section, step] = action.currentStep.split('.') as [SectionKey, StepKey];\n draftState.guidedTourState[section][step] = action.value;\n break;\n }\n case 'SET_SKIPPED': {\n draftState.isSkipped = action.value;\n break;\n }\n case 'SET_GUIDED_TOUR_VISIBILITY': {\n draftState.isGuidedTourVisible = action.value;\n break;\n }\n default: {\n return draftState;\n }\n }\n });\n\nconst initialiseState = (initialState: State) => {\n const copyInitialState = { ...initialState };\n const guidedTourLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]'\n );\n const currentStepLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_CURRENT_STEP) ?? 'null'\n );\n const skippedLocaleStorage = JSON.parse(\n window.localStorage.getItem(GUIDED_TOUR_SKIPPED) ?? 'null'\n );\n\n if (Array.isArray(guidedTourLocaleStorage)) {\n guidedTourLocaleStorage.forEach((step) => {\n const [sectionName, stepName] = step.split('.');\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n });\n }\n\n // if current step when initializing mark it as done\n if (currentStepLocaleStorage) {\n const [sectionName, stepName] = currentStepLocaleStorage.split('.') as [SectionKey, StepKey];\n set(copyInitialState, ['guidedTourState', sectionName, stepName], true);\n\n addCompletedStep(currentStepLocaleStorage as Step);\n\n window.localStorage.setItem(GUIDED_TOUR_CURRENT_STEP, JSON.stringify(null));\n }\n\n if (skippedLocaleStorage !== null) {\n set(copyInitialState, 'isSkipped', skippedLocaleStorage);\n }\n\n return copyInitialState;\n};\n\n/**\n * @description Add a completed step to the local storage if it does not already exist.\n */\nconst addCompletedStep = (completedStep: Step) => {\n const currentSteps = JSON.parse(window.localStorage.getItem(GUIDED_TOUR_COMPLETED_STEPS) ?? '[]');\n\n if (!Array.isArray(currentSteps)) {\n return;\n }\n\n const isAlreadyStored = currentSteps.includes(completedStep);\n\n if (isAlreadyStored) {\n return;\n }\n\n window.localStorage.setItem(\n GUIDED_TOUR_COMPLETED_STEPS,\n JSON.stringify([...currentSteps, completedStep])\n );\n};\n\nexport { GuidedTourProvider, useGuidedTour, GuidedTourContextValue, GUIDED_TOUR_KEYS };\n"],"names":["GUIDED_TOUR_COMPLETED_STEPS","GUIDED_TOUR_CURRENT_STEP","GUIDED_TOUR_SKIPPED","GuidedTourProviderImpl","useGuidedTour","createContext","GuidedTourProvider","children","currentStep","guidedTourState","isGuidedTourVisible","isSkipped","dispatch","React","useReducer","reducer","initialState","initialiseState","setCurrentStep","step","isStepAlreadyDone","get","sectionName","stepName","split","sectionArray","Object","entries","currentStepIndex","findIndex","key","previousSteps","slice","isStepToShow","every","sectionValue","window","localStorage","setItem","JSON","stringify","type","setGuidedTourVisibility","value","setStepState","addCompletedStep","startSection","sectionSteps","guidedTourArray","currentSectionIndex","previousSections","isSectionToShow","values","Boolean","firstStep","keys","isFirstStepDone","setSkipped","_jsx","strapi","future","isEnabled","contentTypeBuilder","create","success","contentManager","apiTokens","state","action","produce","draftState","section","copyInitialState","guidedTourLocaleStorage","parse","getItem","currentStepLocaleStorage","skippedLocaleStorage","Array","isArray","forEach","set","completedStep","currentSteps","isAlreadyStored","includes"],"mappings":";;;;;;;AAMA,MAAMA,2BAA8B,GAAA,6BAAA;AACpC,MAAMC,wBAA2B,GAAA,0BAAA;AACjC,MAAMC,mBAAsB,GAAA,qBAAA;AA0C5B,MAAM,CAACC,sBAAAA,EAAwBC,aAAc,CAAA,GAAGC,aAAsC,CAAA,YAAA;AAMtF,MAAMC,kBAAqB,GAAA,CAAC,EAAEC,QAAQ,EAA2B,GAAA;AAC/D,IAAA,MAAM,CAAC,EAAEC,WAAW,EAAEC,eAAe,EAAEC,mBAAmB,EAAEC,SAAS,EAAE,EAAEC,QAAS,CAAA,GAChFC,MAAMC,UAAU,CAACC,SAASC,YAAcC,EAAAA,eAAAA,CAAAA;AAE1C,IAAA,MAAMC,iBAAiB,CAACC,IAAAA,GAAAA;;AAEtB,QAAA,IAAIA,SAAS,IAAM,EAAA;YACjB,MAAMC,iBAAAA,GAAoBC,IAAIZ,eAAiBU,EAAAA,IAAAA,CAAAA;AAC/C,YAAA,MAAM,CAACG,WAAaC,EAAAA,QAAAA,CAAS,GAAGJ,IAAAA,CAAKK,KAAK,CAAC,GAAA,CAAA;AAC3C,YAAA,MAAMC,eAAeC,MAAOC,CAAAA,OAAO,CAAClB,eAAe,CAACa,WAAY,CAAA,CAAA;YAEhE,MAAMM,gBAAAA,GAAmBH,aAAaI,SAAS,CAAC,CAAC,CAACC,GAAAA,CAAI,GAAKA,GAAQP,KAAAA,QAAAA,CAAAA;AACnE,YAAA,MAAMQ,aAAgBN,GAAAA,YAAAA,CAAaO,KAAK,CAAC,CAAGJ,EAAAA,gBAAAA,CAAAA;AAE5C,YAAA,MAAMK,eAAeF,aAAcG,CAAAA,KAAK,CAAC,CAAC,GAAGC,aAAa,GAAKA,YAAAA,CAAAA;YAE/D,IAAIf,iBAAAA,IAAqBT,SAAa,IAAA,CAACsB,YAAc,EAAA;gBACnD,OAAO,IAAA;AACT;AACF;AAEAG,QAAAA,MAAAA,CAAOC,YAAY,CAACC,OAAO,CAACrC,wBAA0BsC,EAAAA,IAAAA,CAAKC,SAAS,CAAC,IAAA,CAAA,CAAA;AAErE,QAAA,OAAO5B,QAAS,CAAA;YACd6B,IAAM,EAAA,kBAAA;AACNtB,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,MAAMuB,0BAA0B,CAACC,KAAAA,GAAAA;QAC/B/B,QAAS,CAAA;YACP6B,IAAM,EAAA,4BAAA;AACNE,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;IAEA,MAAMC,YAAAA,GAAe,CAACpC,WAAmBmC,EAAAA,KAAAA,GAAAA;QACvCE,gBAAiBrC,CAAAA,WAAAA,CAAAA;QAEjBI,QAAS,CAAA;YACP6B,IAAM,EAAA,gBAAA;AACNjC,YAAAA,WAAAA;AACAmC,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,MAAMG,eAAe,CAACxB,WAAAA,GAAAA;QACpB,MAAMyB,YAAAA,GAAetC,eAAe,CAACa,WAAY,CAAA;AAEjD,QAAA,IAAIyB,YAAc,EAAA;YAChB,MAAMC,eAAAA,GAAkBtB,MAAOC,CAAAA,OAAO,CAAClB,eAAAA,CAAAA;;;YAIvC,MAAMwC,mBAAAA,GAAsBD,gBAAgBnB,SAAS,CAAC,CAAC,CAACC,GAAAA,CAAI,GAAKA,GAAQR,KAAAA,WAAAA,CAAAA;AACzE,YAAA,MAAM4B,gBAAmBF,GAAAA,eAAAA,CAAgBhB,KAAK,CAAC,CAAGiB,EAAAA,mBAAAA,CAAAA;;AAGlD,YAAA,MAAME,eAAkBD,GAAAA,gBAAAA,CAAiBhB,KAAK,CAAC,CAAC,GAAGC,YAAa,CAAA,GAC9DT,MAAO0B,CAAAA,MAAM,CAACjB,YAAAA,CAAAA,CAAcD,KAAK,CAACmB,OAAAA,CAAAA,CAAAA;AAGpC,YAAA,MAAM,CAACC,SAAAA,CAAU,GAAG5B,MAAAA,CAAO6B,IAAI,CAACR,YAAAA,CAAAA;YAChC,MAAMS,eAAAA,GAAkBT,YAAY,CAACO,SAAU,CAAA;AAE/C,YAAA,IAAIH,eAAmB,IAAA,CAAC3C,WAAe,IAAA,CAACgD,eAAiB,EAAA;AACvDtC,gBAAAA,cAAAA,CAAe,CAAC,EAAEI,WAAAA,CAAY,CAAC,EAAEgC,UAAU,CAAC,CAAA;AAC9C;AACF;AACF,KAAA;AAEA,IAAA,MAAMG,aAAa,CAACd,KAAAA,GAAAA;AAClBP,QAAAA,MAAAA,CAAOC,YAAY,CAACC,OAAO,CAACpC,mBAAqBqC,EAAAA,IAAAA,CAAKC,SAAS,CAACG,KAAAA,CAAAA,CAAAA;QAEhE/B,QAAS,CAAA;YACP6B,IAAM,EAAA,aAAA;AACNE,YAAAA;AACF,SAAA,CAAA;AACF,KAAA;AAEA,IAAA,qBACEe,GAACvD,CAAAA,sBAAAA,EAAAA;QACCM,eAAiBA,EAAAA,eAAAA;QACjBD,WAAaA,EAAAA,WAAAA;QACbU,cAAgBA,EAAAA,cAAAA;QAChBwB,uBAAyBA,EAAAA,uBAAAA;QACzBe,UAAYA,EAAAA,UAAAA;QACZb,YAAcA,EAAAA,YAAAA;QACdE,YAAcA,EAAAA,YAAAA;;QAEdpC,mBACEA,EAAAA,mBAAAA,IAAuB,CAAC0B,MAAOuB,CAAAA,MAAM,CAACC,MAAM,CAACC,SAAS,CAAC,oBAAA,CAAA;QAEzDlD,SAAWA,EAAAA,SAAAA;AAEVJ,QAAAA,QAAAA,EAAAA;;AAGP;AAOA,MAAMS,YAAe,GAAA;IACnBR,WAAa,EAAA,IAAA;IACbC,eAAiB,EAAA;QACfqD,kBAAoB,EAAA;YAClBC,MAAQ,EAAA,KAAA;YACRC,OAAS,EAAA;AACX,SAAA;QACAC,cAAgB,EAAA;YACdF,MAAQ,EAAA,KAAA;YACRC,OAAS,EAAA;AACX,SAAA;QACAE,SAAW,EAAA;YACTH,MAAQ,EAAA,KAAA;YACRC,OAAS,EAAA;AACX;AACF,KAAA;IACAtD,mBAAqB,EAAA,KAAA;IACrBC,SAAW,EAAA;AACb,CAAA;AA6BA,MAAMI,OAAAA,GAAwC,CAACoD,KAAenD,GAAAA,YAAY,EAAEoD,MAC1EC,GAAAA,OAAAA,CAAQF,OAAO,CAACG,UAAAA,GAAAA;AACd,QAAA,OAAQF,OAAO3B,IAAI;YACjB,KAAK,kBAAA;AAAoB,gBAAA;oBACvB6B,UAAW9D,CAAAA,WAAW,GAAG4D,MAAAA,CAAOjD,IAAI;AACpC,oBAAA;AACF;YACA,KAAK,gBAAA;AAAkB,gBAAA;oBACrB,MAAM,CAACoD,SAASpD,IAAK,CAAA,GAAGiD,OAAO5D,WAAW,CAACgB,KAAK,CAAC,GAAA,CAAA;AACjD8C,oBAAAA,UAAAA,CAAW7D,eAAe,CAAC8D,OAAAA,CAAQ,CAACpD,IAAK,CAAA,GAAGiD,OAAOzB,KAAK;AACxD,oBAAA;AACF;YACA,KAAK,aAAA;AAAe,gBAAA;oBAClB2B,UAAW3D,CAAAA,SAAS,GAAGyD,MAAAA,CAAOzB,KAAK;AACnC,oBAAA;AACF;YACA,KAAK,4BAAA;AAA8B,gBAAA;oBACjC2B,UAAW5D,CAAAA,mBAAmB,GAAG0D,MAAAA,CAAOzB,KAAK;AAC7C,oBAAA;AACF;AACA,YAAA;AAAS,gBAAA;oBACP,OAAO2B,UAAAA;AACT;AACF;AACF,KAAA,CAAA;AAEF,MAAMrD,kBAAkB,CAACD,YAAAA,GAAAA;AACvB,IAAA,MAAMwD,gBAAmB,GAAA;AAAE,QAAA,GAAGxD;AAAa,KAAA;IAC3C,MAAMyD,uBAAAA,GAA0BlC,KAAKmC,KAAK,CACxCtC,OAAOC,YAAY,CAACsC,OAAO,CAAC3E,2BAAgC,CAAA,IAAA,IAAA,CAAA;IAE9D,MAAM4E,wBAAAA,GAA2BrC,KAAKmC,KAAK,CACzCtC,OAAOC,YAAY,CAACsC,OAAO,CAAC1E,wBAA6B,CAAA,IAAA,MAAA,CAAA;IAE3D,MAAM4E,oBAAAA,GAAuBtC,KAAKmC,KAAK,CACrCtC,OAAOC,YAAY,CAACsC,OAAO,CAACzE,mBAAwB,CAAA,IAAA,MAAA,CAAA;IAGtD,IAAI4E,KAAAA,CAAMC,OAAO,CAACN,uBAA0B,CAAA,EAAA;QAC1CA,uBAAwBO,CAAAA,OAAO,CAAC,CAAC7D,IAAAA,GAAAA;AAC/B,YAAA,MAAM,CAACG,WAAaC,EAAAA,QAAAA,CAAS,GAAGJ,IAAAA,CAAKK,KAAK,CAAC,GAAA,CAAA;AAC3CyD,YAAAA,GAAAA,CAAIT,gBAAkB,EAAA;AAAC,gBAAA,iBAAA;AAAmBlD,gBAAAA,WAAAA;AAAaC,gBAAAA;aAAS,EAAE,IAAA,CAAA;AACpE,SAAA,CAAA;AACF;;AAGA,IAAA,IAAIqD,wBAA0B,EAAA;AAC5B,QAAA,MAAM,CAACtD,WAAaC,EAAAA,QAAAA,CAAS,GAAGqD,wBAAAA,CAAyBpD,KAAK,CAAC,GAAA,CAAA;AAC/DyD,QAAAA,GAAAA,CAAIT,gBAAkB,EAAA;AAAC,YAAA,iBAAA;AAAmBlD,YAAAA,WAAAA;AAAaC,YAAAA;SAAS,EAAE,IAAA,CAAA;QAElEsB,gBAAiB+B,CAAAA,wBAAAA,CAAAA;AAEjBxC,QAAAA,MAAAA,CAAOC,YAAY,CAACC,OAAO,CAACrC,wBAA0BsC,EAAAA,IAAAA,CAAKC,SAAS,CAAC,IAAA,CAAA,CAAA;AACvE;AAEA,IAAA,IAAIqC,yBAAyB,IAAM,EAAA;AACjCI,QAAAA,GAAAA,CAAIT,kBAAkB,WAAaK,EAAAA,oBAAAA,CAAAA;AACrC;IAEA,OAAOL,gBAAAA;AACT,CAAA;AAEA;;IAGA,MAAM3B,mBAAmB,CAACqC,aAAAA,GAAAA;IACxB,MAAMC,YAAAA,GAAe5C,KAAKmC,KAAK,CAACtC,OAAOC,YAAY,CAACsC,OAAO,CAAC3E,2BAAgC,CAAA,IAAA,IAAA,CAAA;AAE5F,IAAA,IAAI,CAAC8E,KAAAA,CAAMC,OAAO,CAACI,YAAe,CAAA,EAAA;AAChC,QAAA;AACF;IAEA,MAAMC,eAAAA,GAAkBD,YAAaE,CAAAA,QAAQ,CAACH,aAAAA,CAAAA;AAE9C,IAAA,IAAIE,eAAiB,EAAA;AACnB,QAAA;AACF;AAEAhD,IAAAA,MAAAA,CAAOC,YAAY,CAACC,OAAO,CACzBtC,2BACAuC,EAAAA,IAAAA,CAAKC,SAAS,CAAC;AAAI2C,QAAAA,GAAAA,YAAAA;AAAcD,QAAAA;AAAc,KAAA,CAAA,CAAA;AAEnD,CAAA;;;;"}
@@ -48,7 +48,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks })=>{
48
48
  const formatter = designSystem.useCollator(locale, {
49
49
  sensitivity: 'base'
50
50
  });
51
- const initials = userDisplayName.split(' ').map((name)=>name.substring(0, 1)).join('').substring(0, 2);
51
+ const initials = users.getInitials(user);
52
52
  const handleClickOnLink = (destination)=>{
53
53
  trackUsage('willNavigate', {
54
54
  from: pathname,
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName } from '../utils/users';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = userDisplayName\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 2);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"primary600\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <TrialCountdown />\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavLinkBadgeCounter","styled","NavLink","Badge","theme","colors","neutral0","NavLinkBadgeLock","NavListWrapper","Flex","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","useAuth","state","trackUsage","useTracking","pathname","useLocation","userDisplayName","getDisplayName","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","initials","split","map","name","substring","join","handleClickOnLink","destination","from","to","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","_jsxs","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","flex","paddingTop","paddingBottom","length","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","toString","labelValue","Tooltip","label","Link","onClick","aria-label","Icon","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","TrialCountdown","NavUser"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.js","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName, getInitials } from '../utils/users';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = getInitials(user);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"primary600\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <TrialCountdown />\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavLinkBadgeCounter","styled","NavLink","Badge","theme","colors","neutral0","NavLinkBadgeLock","NavListWrapper","Flex","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","useAuth","state","trackUsage","useTracking","pathname","useLocation","userDisplayName","getDisplayName","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","initials","getInitials","handleClickOnLink","destination","from","to","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","_jsxs","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","flex","paddingTop","paddingBottom","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","toString","labelValue","Tooltip","label","Link","onClick","aria-label","Icon","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","TrialCountdown","NavUser"],"mappings":"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"}
@@ -7,7 +7,7 @@ import { useLocation } from 'react-router-dom';
7
7
  import { styled } from 'styled-components';
8
8
  import { useAuth } from '../features/Auth.mjs';
9
9
  import { useTracking } from '../features/Tracking.mjs';
10
- import { getDisplayName } from '../utils/users.mjs';
10
+ import { getInitials, getDisplayName } from '../utils/users.mjs';
11
11
  import { MainNav } from './MainNav/MainNav.mjs';
12
12
  import { NavBrand } from './MainNav/NavBrand.mjs';
13
13
  import { NavLink } from './MainNav/NavLink.mjs';
@@ -46,7 +46,7 @@ const LeftMenu = ({ generalSectionLinks, pluginsSectionLinks })=>{
46
46
  const formatter = useCollator(locale, {
47
47
  sensitivity: 'base'
48
48
  });
49
- const initials = userDisplayName.split(' ').map((name)=>name.substring(0, 1)).join('').substring(0, 2);
49
+ const initials = getInitials(user);
50
50
  const handleClickOnLink = (destination)=>{
51
51
  trackUsage('willNavigate', {
52
52
  from: pathname,
@@ -1 +1 @@
1
- {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName } from '../utils/users';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = userDisplayName\n .split(' ')\n .map((name) => name.substring(0, 1))\n .join('')\n .substring(0, 2);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"primary600\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <TrialCountdown />\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavLinkBadgeCounter","styled","NavLink","Badge","theme","colors","neutral0","NavLinkBadgeLock","NavListWrapper","Flex","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","useAuth","state","trackUsage","useTracking","pathname","useLocation","userDisplayName","getDisplayName","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","initials","split","map","name","substring","join","handleClickOnLink","destination","from","to","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","_jsxs","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","flex","paddingTop","paddingBottom","length","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","toString","labelValue","Tooltip","label","Link","onClick","aria-label","Icon","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","TrialCountdown","NavUser"],"mappings":"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"}
1
+ {"version":3,"file":"LeftMenu.mjs","sources":["../../../../../admin/src/components/LeftMenu.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Divider, Flex, FlexComponent, useCollator } from '@strapi/design-system';\nimport { Lightning } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { useAuth } from '../features/Auth';\nimport { useTracking } from '../features/Tracking';\nimport { Menu, MenuItem } from '../hooks/useMenu';\nimport { getDisplayName, getInitials } from '../utils/users';\n\nimport { MainNav } from './MainNav/MainNav';\nimport { NavBrand } from './MainNav/NavBrand';\nimport { NavLink } from './MainNav/NavLink';\nimport { NavUser } from './MainNav/NavUser';\nimport { TrialCountdown } from './MainNav/TrialCountdown';\n\nconst sortLinks = (links: MenuItem[]) => {\n return links.sort((a, b) => {\n // if no position is defined, we put the link in the position of the external plugins, before the plugins list\n const positionA = a.position ?? 6;\n const positionB = b.position ?? 6;\n\n if (positionA < positionB) {\n return -1;\n } else {\n return 1;\n }\n });\n};\n\nconst NavLinkBadgeCounter = styled(NavLink.Badge)`\n span {\n color: ${({ theme }) => theme.colors.neutral0};\n }\n`;\n\nconst NavLinkBadgeLock = styled(NavLink.Badge)`\n background-color: transparent;\n`;\n\nconst NavListWrapper = styled<FlexComponent<'ul'>>(Flex)`\n overflow-y: auto;\n`;\n\ninterface LeftMenuProps extends Pick<Menu, 'generalSectionLinks' | 'pluginsSectionLinks'> {}\n\nconst LeftMenu = ({ generalSectionLinks, pluginsSectionLinks }: LeftMenuProps) => {\n const user = useAuth('AuthenticatedApp', (state) => state.user);\n const { trackUsage } = useTracking();\n const { pathname } = useLocation();\n const userDisplayName = getDisplayName(user);\n const { formatMessage, locale } = useIntl();\n const formatter = useCollator(locale, {\n sensitivity: 'base',\n });\n\n const initials = getInitials(user);\n\n const handleClickOnLink = (destination: string) => {\n trackUsage('willNavigate', { from: pathname, to: destination });\n };\n\n const listLinksAlphabeticallySorted = [...pluginsSectionLinks, ...generalSectionLinks].sort(\n (a, b) => formatter.compare(formatMessage(a.intlLabel), formatMessage(b.intlLabel))\n );\n const listLinks = sortLinks(listLinksAlphabeticallySorted);\n\n return (\n <MainNav>\n <NavBrand />\n\n <Divider />\n\n <NavListWrapper tag=\"ul\" gap={3} direction=\"column\" flex={1} paddingTop={3} paddingBottom={3}>\n {listLinks.length > 0\n ? listLinks.map((link) => {\n const LinkIcon = link.icon;\n const badgeContentLock = link?.licenseOnly ? (\n <Lightning fill=\"primary600\" />\n ) : undefined;\n\n const badgeContentNumeric =\n link.notificationsCount && link.notificationsCount > 0\n ? link.notificationsCount.toString()\n : undefined;\n\n const labelValue = formatMessage(link.intlLabel);\n return (\n <Flex tag=\"li\" key={link.to}>\n <NavLink.Tooltip label={labelValue}>\n <NavLink.Link\n to={link.to}\n onClick={() => handleClickOnLink(link.to)}\n aria-label={labelValue}\n >\n <NavLink.Icon label={labelValue}>\n <LinkIcon width=\"20\" height=\"20\" fill=\"neutral500\" />\n </NavLink.Icon>\n {badgeContentLock ? (\n <NavLinkBadgeLock\n label=\"locked\"\n textColor=\"neutral500\"\n paddingLeft={0}\n paddingRight={0}\n >\n {badgeContentLock}\n </NavLinkBadgeLock>\n ) : badgeContentNumeric ? (\n <NavLinkBadgeCounter\n label={badgeContentNumeric}\n backgroundColor=\"primary600\"\n width=\"2.3rem\"\n color=\"neutral0\"\n >\n {badgeContentNumeric}\n </NavLinkBadgeCounter>\n ) : null}\n </NavLink.Link>\n </NavLink.Tooltip>\n </Flex>\n );\n })\n : null}\n </NavListWrapper>\n <TrialCountdown />\n <NavUser initials={initials}>{userDisplayName}</NavUser>\n </MainNav>\n );\n};\n\nexport { LeftMenu };\n"],"names":["sortLinks","links","sort","a","b","positionA","position","positionB","NavLinkBadgeCounter","styled","NavLink","Badge","theme","colors","neutral0","NavLinkBadgeLock","NavListWrapper","Flex","LeftMenu","generalSectionLinks","pluginsSectionLinks","user","useAuth","state","trackUsage","useTracking","pathname","useLocation","userDisplayName","getDisplayName","formatMessage","locale","useIntl","formatter","useCollator","sensitivity","initials","getInitials","handleClickOnLink","destination","from","to","listLinksAlphabeticallySorted","compare","intlLabel","listLinks","_jsxs","MainNav","_jsx","NavBrand","Divider","tag","gap","direction","flex","paddingTop","paddingBottom","length","map","link","LinkIcon","icon","badgeContentLock","licenseOnly","Lightning","fill","undefined","badgeContentNumeric","notificationsCount","toString","labelValue","Tooltip","label","Link","onClick","aria-label","Icon","width","height","textColor","paddingLeft","paddingRight","backgroundColor","color","TrialCountdown","NavUser"],"mappings":"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"}
@@ -1,10 +1,30 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- require('react');
4
+ var React = require('react');
5
5
  var designSystem = require('@strapi/design-system');
6
6
  var reactRouterDom = require('react-router-dom');
7
7
  var styled = require('styled-components');
8
+ var Tours = require('../UnstableGuidedTour/Tours.js');
9
+
10
+ function _interopNamespaceDefault(e) {
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n.default = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
8
28
 
9
29
  /* -------------------------------------------------------------------------------------------------
10
30
  * Link
@@ -33,10 +53,26 @@ var styled = require('styled-components');
33
53
  background: ${({ theme })=>theme.colors.primary100};
34
54
  }
35
55
  `;
56
+ const getGuidedTourTooltip = (to)=>{
57
+ const normalizedTo = to.toString().replace(/\//g, '');
58
+ switch(normalizedTo){
59
+ case 'content-manager':
60
+ return Tours.tours.contentTypeBuilder.Finish;
61
+ case '':
62
+ return Tours.tours.apiTokens.Finish;
63
+ case 'settings':
64
+ return Tours.tours.contentManager.Finish;
65
+ default:
66
+ return React__namespace.Fragment;
67
+ }
68
+ };
36
69
  const LinkImpl = ({ children, ...props })=>{
37
- return /*#__PURE__*/ jsxRuntime.jsx(MainNavLinkWrapper, {
38
- ...props,
39
- children: children
70
+ const GuidedTourTooltip = getGuidedTourTooltip(props.to);
71
+ return /*#__PURE__*/ jsxRuntime.jsx(GuidedTourTooltip, {
72
+ children: /*#__PURE__*/ jsxRuntime.jsx(MainNavLinkWrapper, {
73
+ ...props,
74
+ children: children
75
+ })
40
76
  });
41
77
  };
42
78
  /* -------------------------------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.js","sources":["../../../../../../admin/src/components/MainNav/NavLink.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Tooltip,\n TooltipProps as DSTooltipProps,\n Badge,\n BadgeProps,\n AccessibleIcon,\n} from '@strapi/design-system';\nimport { NavLink as RouterLink, LinkProps } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * Link\n * -----------------------------------------------------------------------------------------------*/\nconst MainNavLinkWrapper = styled(RouterLink)`\n text-decoration: none;\n display: flex;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral500};\n position: relative;\n width: fit-content;\n padding-block: 0.6rem;\n padding-inline: 0.6rem;\n\n &:hover {\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n &.active {\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\nconst LinkImpl = ({ children, ...props }: LinkProps) => {\n return <MainNavLinkWrapper {...props}>{children}</MainNavLinkWrapper>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\nconst TooltipImpl = ({ children, label, position = 'right' }: NavLink.TooltipProps) => {\n return (\n <Tooltip side={position} label={label} delayDuration={0}>\n <span>{children}</span>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Icon\n * -----------------------------------------------------------------------------------------------*/\nconst IconImpl = ({ label, children }: { label: string; children: React.ReactNode }) => {\n if (!children) {\n return null;\n }\n return <AccessibleIcon label={label}>{children}</AccessibleIcon>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Badge\n * -----------------------------------------------------------------------------------------------*/\nconst CustomBadge = styled(Badge)`\n /* override default badge styles to change the border radius of the Base element in the Design System */\n border-radius: ${({ theme }) => theme.spaces[10]};\n height: 2rem;\n`;\n\nconst BadgeImpl = ({ children, label, ...props }: NavLink.NavBadgeProps) => {\n if (!children) {\n return null;\n }\n return (\n <CustomBadge\n position=\"absolute\"\n top=\"-0.8rem\"\n left=\"1.7rem\"\n aria-label={label}\n active={false}\n {...props}\n >\n {children}\n </CustomBadge>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst NavLink = {\n Link: LinkImpl,\n Tooltip: TooltipImpl,\n Icon: IconImpl,\n Badge: BadgeImpl,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace NavLink {\n export interface NavBadgeProps extends BadgeProps {\n children: React.ReactNode;\n label: string;\n }\n\n export interface TooltipProps {\n children: React.ReactNode;\n label?: string;\n position?: DSTooltipProps['side'];\n }\n}\n\nexport { NavLink };\n"],"names":["MainNavLinkWrapper","styled","RouterLink","theme","borderRadius","colors","neutral0","neutral500","neutral600","neutral100","primary600","primary100","LinkImpl","children","props","_jsx","TooltipImpl","label","position","Tooltip","side","delayDuration","span","IconImpl","AccessibleIcon","CustomBadge","Badge","spaces","BadgeImpl","top","left","aria-label","active","NavLink","Link","Icon"],"mappings":";;;;;;;;AAYA;;AAEkG,qGAClG,MAAMA,kBAAAA,GAAqBC,aAAOC,CAAAA,sBAAAA,CAAW;;;AAG5B,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;cACvC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACC,QAAQ,CAAC;SAC5C,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;;;;;YAQtC,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACG,UAAU,CAAC;;gBAErC,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACI,UAAU,CAAC;;;;;YAK7C,EAAE,CAAC,EAAEN,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACK,UAAU,CAAC;;gBAErC,EAAE,CAAC,EAAEP,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACM,UAAU,CAAC;;AAEzD,CAAC;AAED,MAAMC,WAAW,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAAkB,EAAA,GAAA;AACjD,IAAA,qBAAOC,cAACf,CAAAA,kBAAAA,EAAAA;AAAoB,QAAA,GAAGc,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AACzC,CAAA;AAEA;;qGAGA,MAAMG,WAAc,GAAA,CAAC,EAAEH,QAAQ,EAAEI,KAAK,EAAEC,QAAW,GAAA,OAAO,EAAwB,GAAA;AAChF,IAAA,qBACEH,cAACI,CAAAA,oBAAAA,EAAAA;QAAQC,IAAMF,EAAAA,QAAAA;QAAUD,KAAOA,EAAAA,KAAAA;QAAOI,aAAe,EAAA,CAAA;AACpD,QAAA,QAAA,gBAAAN,cAACO,CAAAA,MAAAA,EAAAA;AAAMT,YAAAA,QAAAA,EAAAA;;;AAGb,CAAA;AAEA;;AAEkG,qGAClG,MAAMU,QAAW,GAAA,CAAC,EAAEN,KAAK,EAAEJ,QAAQ,EAAgD,GAAA;AACjF,IAAA,IAAI,CAACA,QAAU,EAAA;QACb,OAAO,IAAA;AACT;AACA,IAAA,qBAAOE,cAACS,CAAAA,2BAAAA,EAAAA;QAAeP,KAAOA,EAAAA,KAAAA;AAAQJ,QAAAA,QAAAA,EAAAA;;AACxC,CAAA;AAEA;;AAEkG,qGAClG,MAAMY,WAAAA,GAAcxB,aAAOyB,CAAAA,kBAAAA,CAAM;;iBAEhB,EAAE,CAAC,EAAEvB,KAAK,EAAE,GAAKA,KAAMwB,CAAAA,MAAM,CAAC,EAAA,CAAG,CAAC;;AAEnD,CAAC;AAED,MAAMC,SAAAA,GAAY,CAAC,EAAEf,QAAQ,EAAEI,KAAK,EAAE,GAAGH,KAA8B,EAAA,GAAA;AACrE,IAAA,IAAI,CAACD,QAAU,EAAA;QACb,OAAO,IAAA;AACT;AACA,IAAA,qBACEE,cAACU,CAAAA,WAAAA,EAAAA;QACCP,QAAS,EAAA,UAAA;QACTW,GAAI,EAAA,SAAA;QACJC,IAAK,EAAA,QAAA;QACLC,YAAYd,EAAAA,KAAAA;QACZe,MAAQ,EAAA,KAAA;AACP,QAAA,GAAGlB,KAAK;AAERD,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;AAEA;;AAEkG,2GAE5FoB,OAAU,GAAA;IACdC,IAAMtB,EAAAA,QAAAA;IACNO,OAASH,EAAAA,WAAAA;IACTmB,IAAMZ,EAAAA,QAAAA;IACNG,KAAOE,EAAAA;AACT;;;;"}
1
+ {"version":3,"file":"NavLink.js","sources":["../../../../../../admin/src/components/MainNav/NavLink.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Tooltip,\n TooltipProps as DSTooltipProps,\n Badge,\n BadgeProps,\n AccessibleIcon,\n} from '@strapi/design-system';\nimport { NavLink as RouterLink, LinkProps, To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { tours as unstable_tours } from '../UnstableGuidedTour/Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * Link\n * -----------------------------------------------------------------------------------------------*/\nconst MainNavLinkWrapper = styled(RouterLink)`\n text-decoration: none;\n display: flex;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral500};\n position: relative;\n width: fit-content;\n padding-block: 0.6rem;\n padding-inline: 0.6rem;\n\n &:hover {\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n &.active {\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\nconst getGuidedTourTooltip = (to: To) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n case 'content-manager':\n return unstable_tours.contentTypeBuilder.Finish;\n case '':\n return unstable_tours.apiTokens.Finish;\n case 'settings':\n return unstable_tours.contentManager.Finish;\n default:\n return React.Fragment;\n }\n};\n\nconst LinkImpl = ({ children, ...props }: LinkProps) => {\n const GuidedTourTooltip = getGuidedTourTooltip(props.to);\n\n return (\n <GuidedTourTooltip>\n <MainNavLinkWrapper {...props}>{children}</MainNavLinkWrapper>\n </GuidedTourTooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\nconst TooltipImpl = ({ children, label, position = 'right' }: NavLink.TooltipProps) => {\n return (\n <Tooltip side={position} label={label} delayDuration={0}>\n <span>{children}</span>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Icon\n * -----------------------------------------------------------------------------------------------*/\nconst IconImpl = ({ label, children }: { label: string; children: React.ReactNode }) => {\n if (!children) {\n return null;\n }\n return <AccessibleIcon label={label}>{children}</AccessibleIcon>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Badge\n * -----------------------------------------------------------------------------------------------*/\nconst CustomBadge = styled(Badge)`\n /* override default badge styles to change the border radius of the Base element in the Design System */\n border-radius: ${({ theme }) => theme.spaces[10]};\n height: 2rem;\n`;\n\nconst BadgeImpl = ({ children, label, ...props }: NavLink.NavBadgeProps) => {\n if (!children) {\n return null;\n }\n return (\n <CustomBadge\n position=\"absolute\"\n top=\"-0.8rem\"\n left=\"1.7rem\"\n aria-label={label}\n active={false}\n {...props}\n >\n {children}\n </CustomBadge>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst NavLink = {\n Link: LinkImpl,\n Tooltip: TooltipImpl,\n Icon: IconImpl,\n Badge: BadgeImpl,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace NavLink {\n export interface NavBadgeProps extends BadgeProps {\n children: React.ReactNode;\n label: string;\n }\n\n export interface TooltipProps {\n children: React.ReactNode;\n label?: string;\n position?: DSTooltipProps['side'];\n }\n}\n\nexport { NavLink };\n"],"names":["MainNavLinkWrapper","styled","RouterLink","theme","borderRadius","colors","neutral0","neutral500","neutral600","neutral100","primary600","primary100","getGuidedTourTooltip","to","normalizedTo","toString","replace","unstable_tours","contentTypeBuilder","Finish","apiTokens","contentManager","React","Fragment","LinkImpl","children","props","GuidedTourTooltip","_jsx","TooltipImpl","label","position","Tooltip","side","delayDuration","span","IconImpl","AccessibleIcon","CustomBadge","Badge","spaces","BadgeImpl","top","left","aria-label","active","NavLink","Link","Icon"],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import 'react';
2
+ import * as React from 'react';
3
3
  import { Badge, Tooltip, AccessibleIcon } from '@strapi/design-system';
4
4
  import { NavLink as NavLink$1 } from 'react-router-dom';
5
5
  import { styled } from 'styled-components';
6
+ import { tours } from '../UnstableGuidedTour/Tours.mjs';
6
7
 
7
8
  /* -------------------------------------------------------------------------------------------------
8
9
  * Link
@@ -31,10 +32,26 @@ import { styled } from 'styled-components';
31
32
  background: ${({ theme })=>theme.colors.primary100};
32
33
  }
33
34
  `;
35
+ const getGuidedTourTooltip = (to)=>{
36
+ const normalizedTo = to.toString().replace(/\//g, '');
37
+ switch(normalizedTo){
38
+ case 'content-manager':
39
+ return tours.contentTypeBuilder.Finish;
40
+ case '':
41
+ return tours.apiTokens.Finish;
42
+ case 'settings':
43
+ return tours.contentManager.Finish;
44
+ default:
45
+ return React.Fragment;
46
+ }
47
+ };
34
48
  const LinkImpl = ({ children, ...props })=>{
35
- return /*#__PURE__*/ jsx(MainNavLinkWrapper, {
36
- ...props,
37
- children: children
49
+ const GuidedTourTooltip = getGuidedTourTooltip(props.to);
50
+ return /*#__PURE__*/ jsx(GuidedTourTooltip, {
51
+ children: /*#__PURE__*/ jsx(MainNavLinkWrapper, {
52
+ ...props,
53
+ children: children
54
+ })
38
55
  });
39
56
  };
40
57
  /* -------------------------------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"NavLink.mjs","sources":["../../../../../../admin/src/components/MainNav/NavLink.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Tooltip,\n TooltipProps as DSTooltipProps,\n Badge,\n BadgeProps,\n AccessibleIcon,\n} from '@strapi/design-system';\nimport { NavLink as RouterLink, LinkProps } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\n/* -------------------------------------------------------------------------------------------------\n * Link\n * -----------------------------------------------------------------------------------------------*/\nconst MainNavLinkWrapper = styled(RouterLink)`\n text-decoration: none;\n display: flex;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral500};\n position: relative;\n width: fit-content;\n padding-block: 0.6rem;\n padding-inline: 0.6rem;\n\n &:hover {\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n &.active {\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\nconst LinkImpl = ({ children, ...props }: LinkProps) => {\n return <MainNavLinkWrapper {...props}>{children}</MainNavLinkWrapper>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\nconst TooltipImpl = ({ children, label, position = 'right' }: NavLink.TooltipProps) => {\n return (\n <Tooltip side={position} label={label} delayDuration={0}>\n <span>{children}</span>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Icon\n * -----------------------------------------------------------------------------------------------*/\nconst IconImpl = ({ label, children }: { label: string; children: React.ReactNode }) => {\n if (!children) {\n return null;\n }\n return <AccessibleIcon label={label}>{children}</AccessibleIcon>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Badge\n * -----------------------------------------------------------------------------------------------*/\nconst CustomBadge = styled(Badge)`\n /* override default badge styles to change the border radius of the Base element in the Design System */\n border-radius: ${({ theme }) => theme.spaces[10]};\n height: 2rem;\n`;\n\nconst BadgeImpl = ({ children, label, ...props }: NavLink.NavBadgeProps) => {\n if (!children) {\n return null;\n }\n return (\n <CustomBadge\n position=\"absolute\"\n top=\"-0.8rem\"\n left=\"1.7rem\"\n aria-label={label}\n active={false}\n {...props}\n >\n {children}\n </CustomBadge>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst NavLink = {\n Link: LinkImpl,\n Tooltip: TooltipImpl,\n Icon: IconImpl,\n Badge: BadgeImpl,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace NavLink {\n export interface NavBadgeProps extends BadgeProps {\n children: React.ReactNode;\n label: string;\n }\n\n export interface TooltipProps {\n children: React.ReactNode;\n label?: string;\n position?: DSTooltipProps['side'];\n }\n}\n\nexport { NavLink };\n"],"names":["MainNavLinkWrapper","styled","RouterLink","theme","borderRadius","colors","neutral0","neutral500","neutral600","neutral100","primary600","primary100","LinkImpl","children","props","_jsx","TooltipImpl","label","position","Tooltip","side","delayDuration","span","IconImpl","AccessibleIcon","CustomBadge","Badge","spaces","BadgeImpl","top","left","aria-label","active","NavLink","Link","Icon"],"mappings":";;;;;;AAYA;;AAEkG,qGAClG,MAAMA,kBAAAA,GAAqBC,MAAOC,CAAAA,SAAAA,CAAW;;;AAG5B,iBAAA,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAAA,CAAMC,YAAY,CAAC;cACvC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACC,QAAQ,CAAC;SAC5C,EAAE,CAAC,EAAEH,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACE,UAAU,CAAC;;;;;;;;YAQtC,EAAE,CAAC,EAAEJ,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACG,UAAU,CAAC;;gBAErC,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACI,UAAU,CAAC;;;;;YAK7C,EAAE,CAAC,EAAEN,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACK,UAAU,CAAC;;gBAErC,EAAE,CAAC,EAAEP,KAAK,EAAE,GAAKA,KAAME,CAAAA,MAAM,CAACM,UAAU,CAAC;;AAEzD,CAAC;AAED,MAAMC,WAAW,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAAkB,EAAA,GAAA;AACjD,IAAA,qBAAOC,GAACf,CAAAA,kBAAAA,EAAAA;AAAoB,QAAA,GAAGc,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AACzC,CAAA;AAEA;;qGAGA,MAAMG,WAAc,GAAA,CAAC,EAAEH,QAAQ,EAAEI,KAAK,EAAEC,QAAW,GAAA,OAAO,EAAwB,GAAA;AAChF,IAAA,qBACEH,GAACI,CAAAA,OAAAA,EAAAA;QAAQC,IAAMF,EAAAA,QAAAA;QAAUD,KAAOA,EAAAA,KAAAA;QAAOI,aAAe,EAAA,CAAA;AACpD,QAAA,QAAA,gBAAAN,GAACO,CAAAA,MAAAA,EAAAA;AAAMT,YAAAA,QAAAA,EAAAA;;;AAGb,CAAA;AAEA;;AAEkG,qGAClG,MAAMU,QAAW,GAAA,CAAC,EAAEN,KAAK,EAAEJ,QAAQ,EAAgD,GAAA;AACjF,IAAA,IAAI,CAACA,QAAU,EAAA;QACb,OAAO,IAAA;AACT;AACA,IAAA,qBAAOE,GAACS,CAAAA,cAAAA,EAAAA;QAAeP,KAAOA,EAAAA,KAAAA;AAAQJ,QAAAA,QAAAA,EAAAA;;AACxC,CAAA;AAEA;;AAEkG,qGAClG,MAAMY,WAAAA,GAAcxB,MAAOyB,CAAAA,KAAAA,CAAM;;iBAEhB,EAAE,CAAC,EAAEvB,KAAK,EAAE,GAAKA,KAAMwB,CAAAA,MAAM,CAAC,EAAA,CAAG,CAAC;;AAEnD,CAAC;AAED,MAAMC,SAAAA,GAAY,CAAC,EAAEf,QAAQ,EAAEI,KAAK,EAAE,GAAGH,KAA8B,EAAA,GAAA;AACrE,IAAA,IAAI,CAACD,QAAU,EAAA;QACb,OAAO,IAAA;AACT;AACA,IAAA,qBACEE,GAACU,CAAAA,WAAAA,EAAAA;QACCP,QAAS,EAAA,UAAA;QACTW,GAAI,EAAA,SAAA;QACJC,IAAK,EAAA,QAAA;QACLC,YAAYd,EAAAA,KAAAA;QACZe,MAAQ,EAAA,KAAA;AACP,QAAA,GAAGlB,KAAK;AAERD,QAAAA,QAAAA,EAAAA;;AAGP,CAAA;AAEA;;AAEkG,2GAE5FoB,OAAU,GAAA;IACdC,IAAMtB,EAAAA,QAAAA;IACNO,OAASH,EAAAA,WAAAA;IACTmB,IAAMZ,EAAAA,QAAAA;IACNG,KAAOE,EAAAA;AACT;;;;"}
1
+ {"version":3,"file":"NavLink.mjs","sources":["../../../../../../admin/src/components/MainNav/NavLink.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n Tooltip,\n TooltipProps as DSTooltipProps,\n Badge,\n BadgeProps,\n AccessibleIcon,\n} from '@strapi/design-system';\nimport { NavLink as RouterLink, LinkProps, To } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { tours as unstable_tours } from '../UnstableGuidedTour/Tours';\n\n/* -------------------------------------------------------------------------------------------------\n * Link\n * -----------------------------------------------------------------------------------------------*/\nconst MainNavLinkWrapper = styled(RouterLink)`\n text-decoration: none;\n display: flex;\n border-radius: ${({ theme }) => theme.borderRadius};\n background: ${({ theme }) => theme.colors.neutral0};\n color: ${({ theme }) => theme.colors.neutral500};\n position: relative;\n width: fit-content;\n padding-block: 0.6rem;\n padding-inline: 0.6rem;\n\n &:hover {\n svg path {\n fill: ${({ theme }) => theme.colors.neutral600};\n }\n background: ${({ theme }) => theme.colors.neutral100};\n }\n\n &.active {\n svg path {\n fill: ${({ theme }) => theme.colors.primary600};\n }\n background: ${({ theme }) => theme.colors.primary100};\n }\n`;\n\nconst getGuidedTourTooltip = (to: To) => {\n const normalizedTo = to.toString().replace(/\\//g, '');\n\n switch (normalizedTo) {\n case 'content-manager':\n return unstable_tours.contentTypeBuilder.Finish;\n case '':\n return unstable_tours.apiTokens.Finish;\n case 'settings':\n return unstable_tours.contentManager.Finish;\n default:\n return React.Fragment;\n }\n};\n\nconst LinkImpl = ({ children, ...props }: LinkProps) => {\n const GuidedTourTooltip = getGuidedTourTooltip(props.to);\n\n return (\n <GuidedTourTooltip>\n <MainNavLinkWrapper {...props}>{children}</MainNavLinkWrapper>\n </GuidedTourTooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tooltip\n * -----------------------------------------------------------------------------------------------*/\nconst TooltipImpl = ({ children, label, position = 'right' }: NavLink.TooltipProps) => {\n return (\n <Tooltip side={position} label={label} delayDuration={0}>\n <span>{children}</span>\n </Tooltip>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Icon\n * -----------------------------------------------------------------------------------------------*/\nconst IconImpl = ({ label, children }: { label: string; children: React.ReactNode }) => {\n if (!children) {\n return null;\n }\n return <AccessibleIcon label={label}>{children}</AccessibleIcon>;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Badge\n * -----------------------------------------------------------------------------------------------*/\nconst CustomBadge = styled(Badge)`\n /* override default badge styles to change the border radius of the Base element in the Design System */\n border-radius: ${({ theme }) => theme.spaces[10]};\n height: 2rem;\n`;\n\nconst BadgeImpl = ({ children, label, ...props }: NavLink.NavBadgeProps) => {\n if (!children) {\n return null;\n }\n return (\n <CustomBadge\n position=\"absolute\"\n top=\"-0.8rem\"\n left=\"1.7rem\"\n aria-label={label}\n active={false}\n {...props}\n >\n {children}\n </CustomBadge>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * EXPORTS\n * -----------------------------------------------------------------------------------------------*/\n\nconst NavLink = {\n Link: LinkImpl,\n Tooltip: TooltipImpl,\n Icon: IconImpl,\n Badge: BadgeImpl,\n};\n\n// eslint-disable-next-line @typescript-eslint/no-namespace\nnamespace NavLink {\n export interface NavBadgeProps extends BadgeProps {\n children: React.ReactNode;\n label: string;\n }\n\n export interface TooltipProps {\n children: React.ReactNode;\n label?: string;\n position?: DSTooltipProps['side'];\n }\n}\n\nexport { NavLink };\n"],"names":["MainNavLinkWrapper","styled","RouterLink","theme","borderRadius","colors","neutral0","neutral500","neutral600","neutral100","primary600","primary100","getGuidedTourTooltip","to","normalizedTo","toString","replace","unstable_tours","contentTypeBuilder","Finish","apiTokens","contentManager","React","Fragment","LinkImpl","children","props","GuidedTourTooltip","_jsx","TooltipImpl","label","position","Tooltip","side","delayDuration","span","IconImpl","AccessibleIcon","CustomBadge","Badge","spaces","BadgeImpl","top","left","aria-label","active","NavLink","Link","Icon"],"mappings":"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"}
@@ -104,7 +104,7 @@ const NavUser = ({ children, initials, ...props })=>{
104
104
  /*#__PURE__*/ jsxRuntime.jsx(designSystem.Menu.Item, {
105
105
  onSelect: handleProfile,
106
106
  children: formatMessage({
107
- id: 'global.profile',
107
+ id: 'global.profile.settings',
108
108
  defaultMessage: 'Profile settings'
109
109
  })
110
110
  }),
@@ -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 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":";;;;;;;;;;AASA,MAAMA,WAAcC,GAAAA,aAAAA,CAAOC,iBAAKC,CAAAA,OAAO,CAAC;UAC9B,EAAE,CAAC,EAAEC,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;SAClC,EAAE,CAAC,EAAED,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;;;AAK1C,CAAC;AAED,MAAMC,WAAcL,GAAAA,aAAAA,CAAOC,iBAAKK,CAAAA,OAAO,CAAC;;;AAGxC,CAAC;AAED,MAAMC,QAAAA,GAAWP,aAAOQ,CAAAA,iBAAAA,CAAK;;aAEhB,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;AAG9C,CAAC;AAED,MAAMK,YAAAA,GAAeT,aAAOQ,CAAAA,iBAAAA,CAAK;;;OAG1B,EAAE,CAAC,EAAEL,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;;;AAGxC,CAAC;AACD,MAAMM,gBAAAA,GAAmBV,aAAOW,CAAAA,uBAAAA,CAAW;;iBAE1B,EAAE,CAAC,EAAER,KAAK,EAAE,GAAKA,KAAMC,CAAAA,MAAM,CAAC,CAAA,CAAE,CAAC;AAClD,CAAC;AAOM,MAAMQ,UAAU,CAAC,EAAEC,QAAQ,EAAEC,QAAQ,EAAE,GAAGC,KAAqB,EAAA,GAAA;IACpE,MAAM,EAAEC,aAAa,EAAE,GAAGC,iBAAAA,EAAAA;AAC1B,IAAA,MAAMC,QAAWC,GAAAA,0BAAAA,EAAAA;AACjB,IAAA,MAAMC,OAAOC,YAAQ,CAAA,MAAA,EAAQ,CAACC,KAAAA,GAAUA,MAAMF,IAAI,CAAA;AAClD,IAAA,MAAMG,SAASF,YAAQ,CAAA,QAAA,EAAU,CAACC,KAAAA,GAAUA,MAAMC,MAAM,CAAA;AAExD,IAAA,MAAMC,aAAgB,GAAA,IAAA;QACpBN,QAAS,CAAA,KAAA,CAAA;AACX,KAAA;AAEA,IAAA,MAAMO,YAAe,GAAA,IAAA;AACnBF,QAAAA,MAAAA,EAAAA;QACAL,QAAS,CAAA,aAAA,CAAA;AACX,KAAA;AAEA,IAAA,qBACEQ,cAAClB,CAAAA,iBAAAA,EAAAA;QACCmB,cAAe,EAAA,QAAA;QACfC,OAAS,EAAA,CAAA;QACTC,WAAY,EAAA,OAAA;QACZC,WAAY,EAAA,WAAA;QACZC,WAAY,EAAA,YAAA;AACX,QAAA,GAAGhB,KAAK;gCAETiB,eAAA,CAAC/B,kBAAKgC,IAAI,EAAA;;8BACRD,eAACjC,CAAAA,WAAAA,EAAAA;oBAAYmC,OAAS,EAAA,IAAA;oBAAMC,SAAS,EAAA,IAAA;oBAACR,cAAe,EAAA,QAAA;;AACnD,sCAAAD,cAAA,CAACU,oBAAOC,IAAI,EAAA;4BAACC,OAAS,EAAA,CAAA;4BAAGC,QAAUzB,EAAAA;;sCACnCY,cAACc,CAAAA,2BAAAA,EAAAA;4BAAeC,GAAI,EAAA,MAAA;AAAQ5B,4BAAAA,QAAAA,EAAAA;;;;8BAG9BmB,eAAC3B,CAAAA,WAAAA,EAAAA;oBAAYqC,gBAAiB,EAAA,WAAA;oBAAYC,MAAQ,EAAA,CAAA;;sCAChDX,eAACzB,CAAAA,QAAAA,EAAAA;4BAASqC,SAAU,EAAA,QAAA;4BAASC,GAAK,EAAA,CAAA;4BAAGC,UAAW,EAAA,YAAA;;8CAC9CpB,cAACf,CAAAA,uBAAAA,EAAAA;oCAAWoC,OAAQ,EAAA,OAAA;oCAAQC,UAAW,EAAA,MAAA;oCAAOC,aAAc,EAAA,MAAA;AACzDpC,oCAAAA,QAAAA,EAAAA;;8CAEHa,cAAChB,CAAAA,gBAAAA,EAAAA;oCAAiBqC,OAAQ,EAAA,IAAA;oCAAKG,SAAU,EAAA,YAAA;8CACtC9B,IAAM+B,EAAAA;;8CAETzB,cAACjB,CAAAA,YAAAA,EAAAA;AACEW,oCAAAA,QAAAA,EAAAA,IAAAA,EAAMgC,KAAOC,EAAAA,GAAAA,CAAI,CAACC,IAAAA,iBAAS5B,cAAC6B,CAAAA,kBAAAA,EAAAA;AAAqBD,4CAAAA,QAAAA,EAAAA,IAAAA,CAAKE;AAAfF,yCAAAA,EAAAA,IAAAA,CAAKG,EAAE,CAAA;;;;AAInD,sCAAA/B,cAAA,CAACzB,kBAAKyD,SAAS,EAAA,EAAA,CAAA;AAEf,sCAAAhC,cAAA,CAACzB,kBAAKoC,IAAI,EAAA;4BAACsB,QAAUnC,EAAAA,aAAAA;sCAClBR,aAAc,CAAA;gCACbyC,EAAI,EAAA,gBAAA;gCACJG,cAAgB,EAAA;AAClB,6BAAA;;AAGF,sCAAAlC,cAAA,CAACzB,kBAAKoC,IAAI,EAAA;4BAACU,OAAQ,EAAA,QAAA;4BAASY,QAAUlC,EAAAA,YAAAA;4BAAcoC,KAAM,EAAA,WAAA;sCACvD7C,aAAc,CAAA;gCACbyC,EAAI,EAAA,gCAAA;gCACJG,cAAgB,EAAA;AAClB,6BAAA;;;;;;;AAMZ;;;;"}
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.settings',\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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"}
@@ -102,7 +102,7 @@ const NavUser = ({ children, initials, ...props })=>{
102
102
  /*#__PURE__*/ jsx(Menu.Item, {
103
103
  onSelect: handleProfile,
104
104
  children: formatMessage({
105
- id: 'global.profile',
105
+ id: 'global.profile.settings',
106
106
  defaultMessage: 'Profile settings'
107
107
  })
108
108
  }),
@@ -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 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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"}
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.settings',\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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"}
@@ -14,7 +14,6 @@ var Provider = require('./GuidedTour/Provider.js');
14
14
  var LanguageProvider = require('./LanguageProvider.js');
15
15
  var Theme = require('./Theme.js');
16
16
  var Context = require('./UnstableGuidedTour/Context.js');
17
- var Tours = require('./UnstableGuidedTour/Tours.js');
18
17
 
19
18
  const queryClient = new reactQuery.QueryClient({
20
19
  defaultOptions: {
@@ -52,7 +51,6 @@ const Providers = ({ children, strapi, store })=>{
52
51
  children: /*#__PURE__*/ jsxRuntime.jsx(Tracking.TrackingProvider, {
53
52
  children: /*#__PURE__*/ jsxRuntime.jsx(Provider.GuidedTourProvider, {
54
53
  children: /*#__PURE__*/ jsxRuntime.jsx(Context.UnstableGuidedTourContext, {
55
- tours: Tours.tours,
56
54
  children: /*#__PURE__*/ jsxRuntime.jsx(Configuration.ConfigurationProvider, {
57
55
  defaultAuthLogo: strapi.configurations.authLogo,
58
56
  defaultMenuLogo: strapi.configurations.menuLogo,
@@ -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';\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;;;;"}
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';\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>\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","ConfigurationProvider","defaultAuthLogo","authLogo","defaultMenuLogo","menuLogo","showReleaseNotification","notifications","releases"],"mappings":";;;;;;;;;;;;;;;;;AAoBA,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;AACC,gDAAA,QAAA,gBAAAjC,cAACkC,CAAAA,mCAAAA,EAAAA;oDACCC,eAAiBrC,EAAAA,MAAAA,CAAO4B,cAAc,CAACU,QAAQ;oDAC/CC,eAAiBvC,EAAAA,MAAAA,CAAO4B,cAAc,CAACY,QAAQ;AAC/CC,oDAAAA,uBAAAA,EAAyBzC,MAAO4B,CAAAA,cAAc,CAACc,aAAa,CAACC,QAAQ;AAEpE5C,oDAAAA,QAAAA,EAAAA;;;;;;;;;;;;;AAc7B;;;;"}
@@ -12,7 +12,6 @@ import { GuidedTourProvider } from './GuidedTour/Provider.mjs';
12
12
  import { LanguageProvider } from './LanguageProvider.mjs';
13
13
  import { Theme } from './Theme.mjs';
14
14
  import { UnstableGuidedTourContext } from './UnstableGuidedTour/Context.mjs';
15
- import { tours } from './UnstableGuidedTour/Tours.mjs';
16
15
 
17
16
  const queryClient = new QueryClient({
18
17
  defaultOptions: {
@@ -50,7 +49,6 @@ const Providers = ({ children, strapi, store })=>{
50
49
  children: /*#__PURE__*/ jsx(TrackingProvider, {
51
50
  children: /*#__PURE__*/ jsx(GuidedTourProvider, {
52
51
  children: /*#__PURE__*/ jsx(UnstableGuidedTourContext, {
53
- tours: tours,
54
52
  children: /*#__PURE__*/ jsx(ConfigurationProvider, {
55
53
  defaultAuthLogo: strapi.configurations.authLogo,
56
54
  defaultMenuLogo: strapi.configurations.menuLogo,