@burdenoff/microfe-tours 2026.527.2 → 2026.527.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/tours/ToursUserRoutes.js +2 -4
- package/dist/tours/ToursUserRoutes.js.map +1 -1
- package/dist/tours/components/RouteHelpers.js +4 -4
- package/dist/tours/components/RouteHelpers.js.map +1 -1
- package/dist/tours/hooks/useTourPreview.js +39 -39
- package/dist/tours/hooks/useTourPreview.js.map +1 -1
- package/dist/tours/hooks/useToursList.js.map +1 -1
- package/dist/tours/pages/MediaLibraryPage.js +11 -8
- package/dist/tours/pages/MediaLibraryPage.js.map +1 -1
- package/dist/tours/pages/MyToursPage.js +59 -57
- package/dist/tours/pages/MyToursPage.js.map +1 -1
- package/dist/tours/pages/MyToursProgressPage.js +65 -61
- package/dist/tours/pages/MyToursProgressPage.js.map +1 -1
- package/dist/tours/pages/SchedulerPage.js +18 -4
- package/dist/tours/pages/SchedulerPage.js.map +1 -1
- package/dist/tours/pages/StepEditorPage.js +330 -276
- package/dist/tours/pages/StepEditorPage.js.map +1 -1
- package/dist/tours/pages/TemplateLibraryPage.js +7 -2
- package/dist/tours/pages/TemplateLibraryPage.js.map +1 -1
- package/dist/tours/pages/TourBuilderPage.js +25 -11
- package/dist/tours/pages/TourBuilderPage.js.map +1 -1
- package/dist/tours/pages/TourPreviewPage.js +12 -4
- package/dist/tours/pages/TourPreviewPage.js.map +1 -1
- package/dist/tours/pages/ToursListPage.js +165 -149
- package/dist/tours/pages/ToursListPage.js.map +1 -1
- package/dist/tours/providers/ToursProvider.js +1 -1
- package/dist/tours/providers/ToursProvider.js.map +1 -1
- package/dist/tours/utils/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToursProvider.js","names":[],"sources":["../../../src/tours/providers/ToursProvider.tsx"],"sourcesContent":["import { createContext,
|
|
1
|
+
{"version":3,"file":"ToursProvider.js","names":[],"sources":["../../../src/tours/providers/ToursProvider.tsx"],"sourcesContent":["import { createContext, use, type ReactNode } from 'react';\nimport { MemoryRouter } from 'react-router-dom';\nimport { PermissionProvider } from '@burdenoff/fe-libs/shared/providers/shell';\nimport type { ToursRootProps, ToursVariant } from '../types';\n\n/**\n * Context value for Tours microfrontend.\n *\n * Carries the ToursRoot props plus a resolved `variant` (always set; defaults\n * to \"admin\" when the caller did not specify one). Pages can read `variant`\n * to branch UI affordances (e.g., the user surface should never attempt\n * admin-only queries).\n */\ntype ToursContextValue = ToursRootProps & { variant: ToursVariant };\n\nconst ToursContext = createContext<ToursContextValue | null>(null);\n\n/**\n * Hook to access Tours context.\n */\nexport const useToursContext = () => {\n const context = use(ToursContext);\n if (!context) {\n throw new Error('useToursContext must be used within ToursProvider');\n }\n return context;\n};\n\n/**\n * Provider component for Tours microfrontend.\n * Sets up routing, context, and global-scoped permission checking.\n */\nexport function ToursProvider({ children, ...props }: ToursRootProps & { children: ReactNode }) {\n // No useMemo here: `props` is a fresh object on every parent render (spread\n // from the shell's JSX), so any memo keyed on `props` would re-create the\n // value every render and defeat itself. Consumer re-rendering is governed\n // by the shell anyway; keeping this lean avoids a false sense of stability.\n const contextValue: ToursContextValue = { ...props, variant: props.variant ?? 'admin' };\n const permissionScopeId = props.tenantId ?? props.organizationId ?? props.workspaceId ?? null;\n\n const coreProviders = (\n <ToursContext.Provider value={contextValue}>\n <PermissionProvider scopeId={permissionScopeId} gateway=\"global\">\n {children}\n </PermissionProvider>\n </ToursContext.Provider>\n );\n\n // When integrated into a shell (basePath provided), the shell already has a router\n // so we don't create another one. When standalone (no basePath), use MemoryRouter.\n if (props.basePath) {\n // Integrated mode: shell already has BrowserRouter, don't create nested router\n return coreProviders;\n }\n\n // Standalone mode: create MemoryRouter for independent operation\n return <MemoryRouter>{coreProviders}</MemoryRouter>;\n}\n"],"mappings":";;;;;AAeA,IAAM,IAAe,EAAwC,KAAK,EAKrD,UAAwB;CACnC,IAAM,IAAU,EAAI,EAAa;AACjC,KAAI,CAAC,EACH,OAAU,MAAM,oDAAoD;AAEtE,QAAO;;AAOT,SAAgB,EAAc,EAAE,aAAU,GAAG,KAAmD;CAK9F,IAAM,IAAkC;EAAE,GAAG;EAAO,SAAS,EAAM,WAAW;EAAS,EACjF,IAAoB,EAAM,YAAY,EAAM,kBAAkB,EAAM,eAAe,MAEnF,IACJ,kBAAC,EAAa,UAAd;EAAuB,OAAO;YAC5B,kBAAC,GAAD;GAAoB,SAAS;GAAmB,SAAQ;GACrD;GACkB,CAAA;EACC,CAAA;AAW1B,QANI,EAAM,WAED,IAIF,kBAAC,GAAD,EAAA,UAAe,GAA6B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/tours/utils/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/tours/utils/index.ts"],"sourcesContent":["/**\n * Format file size\n */\nexport function formatFileSize(bytes: number): string {\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const sizes = ['Bytes', 'KB', 'MB', 'GB'];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];\n}\n\n/**\n * Format duration (seconds to human readable)\n */\nexport function formatDuration(seconds: number): string {\n if (seconds < 60) {\n return `${Math.round(seconds)}s`;\n }\n\n const minutes = Math.floor(seconds / 60);\n const remainingSeconds = Math.round(seconds % 60);\n\n if (minutes < 60) {\n return remainingSeconds > 0 ? `${minutes}m ${remainingSeconds}s` : `${minutes}m`;\n }\n\n const hours = Math.floor(minutes / 60);\n const remainingMinutes = minutes % 60;\n\n return remainingMinutes > 0 ? `${hours}h ${remainingMinutes}m` : `${hours}h`;\n}\n\n/**\n * Format percentage\n */\nexport function formatPercentage(value: number, decimals: number = 1): string {\n return `${value.toFixed(decimals)}%`;\n}\n\n/**\n * Format number with commas\n */\nexport function formatNumber(num: number): string {\n return num.toLocaleString('en-US');\n}\n"],"mappings":";AAGA,SAAgB,EAAe,GAAuB;AACpD,KAAI,MAAU,EAAG,QAAO;CAExB,IAAM,IAAI,MACJ,IAAQ;EAAC;EAAS;EAAM;EAAM;EAAK,EACnC,IAAI,KAAK,MAAM,KAAK,IAAI,EAAM,GAAG,KAAK,IAAI,EAAE,CAAC;AAEnD,QAAO,KAAK,MAAO,IAAiB,MAAG,IAAM,IAAI,GAAG,MAAM,MAAM,EAAM;;AAMxE,SAAgB,EAAe,GAAyB;AACtD,KAAI,IAAU,GACZ,QAAO,GAAG,KAAK,MAAM,EAAQ,CAAC;CAGhC,IAAM,IAAU,KAAK,MAAM,IAAU,GAAG,EAClC,IAAmB,KAAK,MAAM,IAAU,GAAG;AAEjD,KAAI,IAAU,GACZ,QAAO,IAAmB,IAAI,GAAG,EAAQ,IAAI,EAAiB,KAAK,GAAG,EAAQ;CAGhF,IAAM,IAAQ,KAAK,MAAM,IAAU,GAAG,EAChC,IAAmB,IAAU;AAEnC,QAAO,IAAmB,IAAI,GAAG,EAAM,IAAI,EAAiB,KAAK,GAAG,EAAM;;AAM5E,SAAgB,EAAiB,GAAe,IAAmB,GAAW;AAC5E,QAAO,GAAG,EAAM,QAAQ,EAAS,CAAC;;AAMpC,SAAgB,EAAa,GAAqB;AAChD,QAAO,EAAI,eAAe,QAAQ"}
|