@owp/core 2.5.10 → 2.5.11

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 (61) hide show
  1. package/dist/_virtual/index16.js +4 -4
  2. package/dist/_virtual/index17.js +4 -4
  3. package/dist/_virtual/index18.js +4 -4
  4. package/dist/_virtual/index19.js +4 -4
  5. package/dist/components/OwpTable/OwpFieldTable.js +108 -92
  6. package/dist/components/OwpTable/OwpFieldTable.js.map +1 -1
  7. package/dist/components/OwpTable/OwpTable.js +161 -141
  8. package/dist/components/OwpTable/OwpTable.js.map +1 -1
  9. package/dist/components/OwpTable/internal/FieldTableValue.js +43 -0
  10. package/dist/components/OwpTable/internal/FieldTableValue.js.map +1 -0
  11. package/dist/components/OwpTable/internal/defaultTableStyle.js +13 -10
  12. package/dist/components/OwpTable/internal/defaultTableStyle.js.map +1 -1
  13. package/dist/components/OwpTreeGrid/OwpTreeGrid.js +170 -169
  14. package/dist/components/OwpTreeGrid/OwpTreeGrid.js.map +1 -1
  15. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js +79 -76
  16. package/dist/components/OwpTreeGrid/internal/treeGridTheme.js.map +1 -1
  17. package/dist/configs/defaultConfig.js +110 -70
  18. package/dist/configs/defaultConfig.js.map +1 -1
  19. package/dist/constants/tableTheme.js +7 -6
  20. package/dist/constants/tableTheme.js.map +1 -1
  21. package/dist/features/themePreview/components/ThemePreviewCanvas.js +275 -273
  22. package/dist/features/themePreview/components/ThemePreviewCanvas.js.map +1 -1
  23. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js +552 -316
  24. package/dist/features/themePreview/components/ThemePreviewCanvasSections.js.map +1 -1
  25. package/dist/features/themePreview/components/ThemePreviewColorField.js +227 -201
  26. package/dist/features/themePreview/components/ThemePreviewColorField.js.map +1 -1
  27. package/dist/features/themePreview/components/ThemePreviewControls.js +176 -160
  28. package/dist/features/themePreview/components/ThemePreviewControls.js.map +1 -1
  29. package/dist/features/themePreview/components/themePreviewCanvas.shared.js +38 -38
  30. package/dist/features/themePreview/components/themePreviewCanvas.shared.js.map +1 -1
  31. package/dist/features/themePreview/configs/settings.js +33 -20
  32. package/dist/features/themePreview/configs/settings.js.map +1 -1
  33. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js +227 -220
  34. package/dist/features/themePreview/dialogs/ThemePreviewDialog.js.map +1 -1
  35. package/dist/features/themePreview/hooks/useThemePreview.js +213 -204
  36. package/dist/features/themePreview/hooks/useThemePreview.js.map +1 -1
  37. package/dist/features/themePreview/utils/themePreviewDefinitions.js +63 -30
  38. package/dist/features/themePreview/utils/themePreviewDefinitions.js.map +1 -1
  39. package/dist/layout/components/navbar/NavbarToggleButton.js +46 -42
  40. package/dist/layout/components/navbar/NavbarToggleButton.js.map +1 -1
  41. package/dist/layout/components/toggles/NavigationSearchToggle.js +3 -3
  42. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/CODE128/constants.js +1 -1
  43. package/dist/node_modules/.pnpm/jsbarcode@3.12.1/node_modules/jsbarcode/bin/barcodes/EAN_UPC/constants.js +1 -1
  44. package/dist/node_modules/.pnpm/react-overlays@5.2.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/react-overlays/esm/Portal.js +1 -1
  45. package/dist/owp-app.css +1 -1
  46. package/dist/types/components/OwpTable/OwpFieldTable.d.ts +7 -3
  47. package/dist/types/components/OwpTable/OwpTable.d.ts +3 -1
  48. package/dist/types/components/OwpTable/internal/FieldTableValue.d.ts +17 -0
  49. package/dist/types/components/OwpTable/internal/defaultTableStyle.d.ts +3 -0
  50. package/dist/types/components/OwpTreeGrid/OwpTreeGrid.d.ts +3 -1
  51. package/dist/types/components/OwpTreeGrid/internal/treeGridTheme.d.ts +1 -1
  52. package/dist/types/configs/defaultConfig.d.ts +42 -3
  53. package/dist/types/constants/tableTheme.d.ts +1 -0
  54. package/dist/types/features/themePreview/components/ThemePreviewCanvasSections.d.ts +8 -0
  55. package/dist/types/features/themePreview/components/themePreviewCanvas.shared.d.ts +3 -3
  56. package/dist/types/features/themePreview/configs/settings.d.ts +12 -0
  57. package/dist/types/index.d.ts +1 -0
  58. package/dist/types/types/OwpMuiThemeTypes.d.ts +9 -0
  59. package/dist/types/types/OwpTableThemeTypes.d.ts +1 -0
  60. package/dist/types/types/index.d.ts +1 -0
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemePreviewCanvas.js","sources":["../../../../src/features/themePreview/components/ThemePreviewCanvas.tsx"],"sourcesContent":["import {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n snackbarVariantKeys,\n} from '@/features/themePreview/configs/snackbar';\nimport {\n defaultTableTheme,\n type ThemePreviewTableConfigType,\n} from '@/features/themePreview/configs/table';\nimport KeyboardArrowUpRoundedIcon from '@mui/icons-material/KeyboardArrowUpRounded';\nimport MenuRoundedIcon from '@mui/icons-material/MenuRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SpaceDashboardOutlinedIcon from '@mui/icons-material/SpaceDashboardOutlined';\nimport { ButtonBase, CircularProgress, Typography } from '@mui/material';\nimport { alpha, darken } from '@mui/material/styles';\nimport dayjs from 'dayjs';\nimport { merge } from 'es-toolkit/compat';\nimport { closeSnackbar, type SnackbarKey } from 'notistack';\nimport { Fragment, useEffect, useMemo, useRef } from 'react';\nimport type {\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n createThemePreviewVersionKey,\n getPaletteValue,\n getPreviewContrastColor,\n getPreviewSectionOrder,\n getThemePreviewStyleValue,\n gridPreviewBodyBackground,\n gridPreviewBodyText,\n navbarPreviewItems,\n previewChromeBorder,\n snackbarPreviewMessageByVariant,\n themePreviewEditableTreeGridId,\n themePreviewReadonlyTreeGridId,\n} from './themePreviewCanvas.shared';\nimport {\n ThemePreviewButtonsSection,\n ThemePreviewGridPreviewTable,\n ThemePreviewGridSection,\n ThemePreviewSearchHeaderSection,\n ThemePreviewSnackbarsSection,\n ThemePreviewTablesSection,\n} from './ThemePreviewCanvasSections';\nimport { snackbarPreviewIconByVariant } from './themePreviewCanvas.icons';\n\ninterface ThemePreviewCanvasProps {\n activeSection: ThemePreviewSectionKey;\n isLoading?: boolean;\n settings: ThemePreviewSettings;\n}\n\ntype ThemePreviewHighlightTarget = 'main' | 'navbar' | 'toolbar';\n\nconst themePreviewHighlightColor = '#ff4d2d';\nconst themePreviewHighlightShadowColor = 'rgba(255, 77, 45, 0.14)';\n\nexport function ThemePreviewCanvas({\n activeSection,\n isLoading = false,\n settings,\n}: ThemePreviewCanvasProps) {\n const previewSnackbarKeysRef = useRef<SnackbarKey[]>([]);\n const tablePreviewCanTableRadiusZero = false;\n const tableTheme = useMemo(\n () =>\n merge(\n {},\n defaultTableTheme,\n settings.theme.main.table as ThemePreviewTableConfigType | undefined,\n ) as ThemePreviewTableConfigType,\n [settings.theme.main.table],\n );\n\n const toolbarMode = settings.theme.toolbar.palette.mode;\n const toolbarBackground = getPaletteValue(settings, 'toolbar', 'background.default');\n const toolbarPaper = getPaletteValue(settings, 'toolbar', 'background.paper');\n const toolbarText = getPaletteValue(settings, 'toolbar', 'text.primary');\n const toolbarDivider = getPaletteValue(settings, 'toolbar', 'divider');\n const toolbarWhite = getPaletteValue(settings, 'toolbar', 'common.white');\n const toolbarBlack = getPaletteValue(settings, 'toolbar', 'common.black');\n const toolbarButtonBackground = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.78);\n const toolbarButtonBorder = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.1 : 0.62);\n const toolbarButtonHighlight = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.05 : 0.54);\n\n const navbarMode = settings.theme.navbar.palette.mode;\n const navbarBackground = getPaletteValue(settings, 'navbar', 'background.default');\n const navbarDivider = getPaletteValue(settings, 'navbar', 'divider') || previewChromeBorder;\n const navbarText = getPaletteValue(settings, 'navbar', 'text.primary');\n const navbarTextSecondary = getPaletteValue(settings, 'navbar', 'text.secondary');\n const navbarPrimary = getPaletteValue(settings, 'navbar', 'primary.main');\n const navbarSecondary = getPaletteValue(settings, 'navbar', 'secondary.main');\n const navbarHeaderForeground = getPreviewContrastColor(\n navbarBackground,\n navbarText || '#111827',\n );\n const navbarHeaderSecondary = alpha(navbarHeaderForeground, navbarMode === 'dark' ? 0.72 : 0.64);\n const navbarSurfaceButtonBackground = alpha(\n navbarSecondary,\n navbarMode === 'dark' ? 0.2 : 0.12,\n );\n const navbarSurfaceButtonBorder = alpha(navbarSecondary, navbarMode === 'dark' ? 0.42 : 0.28);\n const navbarSurfaceButtonHoverBackground = alpha(\n navbarPrimary,\n navbarMode === 'dark' ? 0.2 : 0.12,\n );\n const navbarSurfaceButtonHoverBorder = alpha(\n navbarPrimary,\n navbarMode === 'dark' ? 0.42 : 0.28,\n );\n const navbarHeaderIconColor = navbarSecondary;\n const navbarInactiveText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.72);\n const navbarActiveBackground = alpha(navbarSecondary, navbarMode === 'dark' ? 0.22 : 0.12);\n const navbarUserAvatarBackground = darken(navbarBackground, navbarMode === 'dark' ? 0.08 : 0.05);\n const navbarUserAvatarText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.62);\n\n const mainBackground = getPaletteValue(settings, 'main', 'background.default');\n const mainPaper = getPaletteValue(settings, 'main', 'background.paper');\n const mainText = getPaletteValue(settings, 'main', 'text.primary');\n const mainTextSecondary = getPaletteValue(settings, 'main', 'text.secondary');\n const mainPrimary = getPaletteValue(settings, 'main', 'primary.main');\n const mainPrimaryContrast = getPaletteValue(settings, 'main', 'primary.contrastText');\n const mainSecondary = getPaletteValue(settings, 'main', 'secondary.main');\n const mainSecondaryContrast = getPaletteValue(settings, 'main', 'secondary.contrastText');\n const mainSuccess = getPaletteValue(settings, 'main', 'success.main');\n const mainSuccessContrast = getPaletteValue(settings, 'main', 'success.contrastText');\n const mainInfo = getPaletteValue(settings, 'main', 'info.main');\n const mainInfoContrast = getPaletteValue(settings, 'main', 'info.contrastText');\n const mainWarning = getPaletteValue(settings, 'main', 'warning.main');\n const mainWarningContrast = getPaletteValue(settings, 'main', 'warning.contrastText');\n const mainError = getPaletteValue(settings, 'main', 'error.main');\n const mainErrorContrast = getPaletteValue(settings, 'main', 'error.contrastText');\n const mainGrid = settings.theme.main.grid;\n\n const gridThemePreviewVersionKey = createThemePreviewVersionKey(mainGrid);\n const tableThemePreviewVersionKey = createThemePreviewVersionKey(settings.theme.main.table);\n const searchHeaderPreviewVersionKey = createThemePreviewVersionKey({\n palette: settings.theme.main.palette ?? {},\n table: settings.theme.main.table ?? {},\n });\n\n const editableThemePreviewGridId = `${themePreviewEditableTreeGridId}-${gridThemePreviewVersionKey}`;\n const readonlyThemePreviewGridId = `${themePreviewReadonlyTreeGridId}-${gridThemePreviewVersionKey}`;\n const layoutPreviewGridHeaderBackground = '#586980';\n const layoutPreviewGridHeaderColor = '#ffffff';\n const layoutPreviewGridHeaderFontSize = '14px';\n const layoutPreviewGridCellFontSize = '13px';\n const layoutPreviewGridCellBackground =\n mainGrid?.body?.backgroundColor ?? gridPreviewBodyBackground;\n const layoutPreviewGridHeaderBorder = alpha(layoutPreviewGridHeaderColor, 0.22);\n const gridBodyBorder = alpha(gridPreviewBodyText, 0.14);\n\n const mainThemePreviewSettings = useMemo(\n () => ({\n ...settings,\n theme: {\n ...settings.theme,\n navbar: settings.theme.main,\n toolbar: settings.theme.main,\n },\n }),\n [settings],\n );\n const mainThemePreviewStoreKey = createThemePreviewVersionKey(\n mainThemePreviewSettings.theme.main,\n );\n const mainThemePreviewStoreState = useMemo(\n () =>\n ({\n owpSettings: {\n current: mainThemePreviewSettings,\n defaults: mainThemePreviewSettings,\n initial: mainThemePreviewSettings,\n },\n }) as const,\n [mainThemePreviewSettings],\n );\n\n const searchHeaderPreviewDate = dayjs().format('YYYY-MM-DD');\n const searchHeaderPreviewNumber = useMemo(\n () => `OWP-${searchHeaderPreviewDate.replace(/-/g, '')}-001`,\n [searchHeaderPreviewDate],\n );\n\n const previewSectionCardSx = useMemo(\n () => ({\n backgroundColor: mainPaper,\n border: `1px solid ${previewChromeBorder}`,\n }),\n [mainPaper],\n );\n const highlightTarget: ThemePreviewHighlightTarget =\n activeSection === 'navbar'\n ? 'navbar'\n : activeSection === 'toolbar'\n ? 'toolbar'\n : 'main';\n const toolbarPreviewButtonStyle = useMemo(\n () => ({\n backgroundColor: toolbarButtonBackground,\n borderColor: toolbarButtonBorder,\n boxShadow: `inset 0 1px 0 ${toolbarButtonHighlight}`,\n }),\n [toolbarButtonBackground, toolbarButtonBorder, toolbarButtonHighlight],\n );\n const navbarPreviewButtonSx = useMemo(\n () => ({\n backgroundColor: navbarSurfaceButtonBackground,\n borderColor: navbarSurfaceButtonBorder,\n color: navbarHeaderIconColor,\n transition: 'background-color 160ms ease, border-color 160ms ease, color 160ms ease',\n '&:hover, &:focus-visible, &:active': {\n backgroundColor: navbarSurfaceButtonHoverBackground,\n borderColor: navbarSurfaceButtonHoverBorder,\n color: navbarPrimary,\n },\n }),\n [\n navbarHeaderIconColor,\n navbarPrimary,\n navbarSurfaceButtonBackground,\n navbarSurfaceButtonBorder,\n navbarSurfaceButtonHoverBackground,\n navbarSurfaceButtonHoverBorder,\n ],\n );\n const buttonPreviewItems = useMemo(\n () =>\n [\n { label: 'primary', color: mainPrimary, contrastColor: mainPrimaryContrast },\n { label: 'secondary', color: mainSecondary, contrastColor: mainSecondaryContrast },\n { label: 'info', color: mainInfo, contrastColor: mainInfoContrast },\n { label: 'warning', color: mainWarning, contrastColor: mainWarningContrast },\n { label: 'error', color: mainError, contrastColor: mainErrorContrast },\n { label: 'success', color: mainSuccess, contrastColor: mainSuccessContrast },\n ].map((item) => ({\n ...item,\n previewContrastColor:\n item.label === 'error' || item.label === 'success'\n ? getPreviewContrastColor(item.color, item.contrastColor)\n : item.contrastColor,\n })),\n [\n mainError,\n mainErrorContrast,\n mainInfo,\n mainInfoContrast,\n mainPrimary,\n mainPrimaryContrast,\n mainSecondary,\n mainSecondaryContrast,\n mainSuccess,\n mainSuccessContrast,\n mainWarning,\n mainWarningContrast,\n ],\n );\n\n const snackbarTheme = settings.snackbar ?? defaultSnackbarTheme;\n const snackbarProviderProps = useMemo(\n () => merge({}, defaultSnackbarProviderProps, settings.snackbarProviderProps),\n [settings.snackbarProviderProps],\n );\n const snackbarPreviewAnchorHorizontal =\n snackbarProviderProps.anchorOrigin?.horizontal ??\n defaultSnackbarProviderProps.anchorOrigin.horizontal;\n const snackbarPreviewAnchorVertical =\n snackbarProviderProps.anchorOrigin?.vertical ??\n defaultSnackbarProviderProps.anchorOrigin.vertical;\n const snackbarPreviewMaxSnack =\n snackbarProviderProps.maxSnack ?? defaultSnackbarProviderProps.maxSnack;\n const snackbarPreviewFontSize = getThemePreviewStyleValue(snackbarProviderProps.style?.fontSize);\n const snackbarPreviewLineHeight = getThemePreviewStyleValue(\n snackbarProviderProps.style?.lineHeight,\n );\n const snackbarPreviewItems = useMemo(\n () =>\n snackbarVariantKeys.map((variantKey) => {\n const snackbarVariantTheme = snackbarTheme[variantKey];\n\n return {\n actionHoverColor: alpha(\n snackbarVariantTheme.color,\n variantKey === 'default' ? 0.18 : 0.16,\n ),\n backgroundColor: snackbarVariantTheme.backgroundColor,\n color: snackbarVariantTheme.color,\n icon: snackbarPreviewIconByVariant[variantKey],\n key: variantKey,\n message: snackbarPreviewMessageByVariant[variantKey],\n };\n }),\n [snackbarTheme],\n );\n\n const orderedPreviewSectionKeys = useMemo(\n () => getPreviewSectionOrder(activeSection),\n [activeSection],\n );\n const previewSectionMountKeyBySection = useMemo(\n () =>\n ({\n buttons: createThemePreviewVersionKey({\n error: mainError,\n info: mainInfo,\n primary: mainPrimary,\n secondary: mainSecondary,\n success: mainSuccess,\n warning: mainWarning,\n }),\n grid: `${mainThemePreviewStoreKey}-${gridThemePreviewVersionKey}`,\n searchHeader: searchHeaderPreviewVersionKey,\n snackbars: createThemePreviewVersionKey({\n provider: settings.snackbarProviderProps,\n snackbar: settings.snackbar,\n }),\n tables: tableThemePreviewVersionKey,\n }) as const,\n [\n gridThemePreviewVersionKey,\n mainError,\n mainInfo,\n mainPrimary,\n mainSecondary,\n mainSuccess,\n mainThemePreviewStoreKey,\n mainWarning,\n searchHeaderPreviewVersionKey,\n settings.snackbar,\n settings.snackbarProviderProps,\n tableThemePreviewVersionKey,\n ],\n );\n const gridPreviewTable = useMemo(\n () => (\n <ThemePreviewGridPreviewTable\n gridBodyBorder={gridBodyBorder}\n layoutPreviewGridCellBackground={layoutPreviewGridCellBackground}\n layoutPreviewGridCellFontSize={layoutPreviewGridCellFontSize}\n layoutPreviewGridHeaderBackground={layoutPreviewGridHeaderBackground}\n layoutPreviewGridHeaderBorder={layoutPreviewGridHeaderBorder}\n layoutPreviewGridHeaderColor={layoutPreviewGridHeaderColor}\n layoutPreviewGridHeaderFontSize={layoutPreviewGridHeaderFontSize}\n />\n ),\n [\n gridBodyBorder,\n layoutPreviewGridCellBackground,\n layoutPreviewGridCellFontSize,\n layoutPreviewGridHeaderBackground,\n layoutPreviewGridHeaderBorder,\n layoutPreviewGridHeaderColor,\n layoutPreviewGridHeaderFontSize,\n ],\n );\n\n useEffect(() => {\n return () => {\n previewSnackbarKeysRef.current.forEach((snackbarKey) => {\n closeSnackbar(snackbarKey);\n });\n previewSnackbarKeysRef.current = [];\n };\n }, []);\n\n const renderPreviewSection = (sectionKey: keyof typeof previewSectionMountKeyBySection) => {\n switch (sectionKey) {\n case 'buttons':\n return (\n <ThemePreviewButtonsSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'snackbars':\n return (\n <ThemePreviewSnackbarsSection\n previewSectionCardSx={previewSectionCardSx}\n previewSnackbarKeysRef={previewSnackbarKeysRef}\n snackbarAnchorOrigin={snackbarProviderProps.anchorOrigin}\n snackbarAutoHideDuration={snackbarProviderProps.autoHideDuration}\n snackbarPreviewAnchorHorizontal={snackbarPreviewAnchorHorizontal}\n snackbarPreviewAnchorVertical={snackbarPreviewAnchorVertical}\n snackbarPreviewFontSize={snackbarPreviewFontSize}\n snackbarPreviewItems={snackbarPreviewItems}\n snackbarPreviewLineHeight={snackbarPreviewLineHeight}\n snackbarPreviewMaxSnack={snackbarPreviewMaxSnack}\n />\n );\n case 'searchHeader':\n return (\n <ThemePreviewSearchHeaderSection\n gridPreviewTable={gridPreviewTable}\n mainBackground={mainBackground}\n mainPaper={mainPaper}\n mainText={mainText}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n searchHeaderPreviewDate={searchHeaderPreviewDate}\n searchHeaderPreviewNumber={searchHeaderPreviewNumber}\n searchHeaderPreviewVersionKey={searchHeaderPreviewVersionKey}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n case 'grid':\n return (\n <ThemePreviewGridSection\n editableThemePreviewGridId={editableThemePreviewGridId}\n mainGridChangedBackgroundColor={mainGrid?.changed?.backgroundColor}\n mainThemePreviewStoreKey={mainThemePreviewStoreKey}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n readonlyThemePreviewGridId={readonlyThemePreviewGridId}\n />\n );\n case 'tables':\n return (\n <ThemePreviewTablesSection\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n default:\n return null;\n }\n };\n const renderHighlightOverlay = (target: ThemePreviewHighlightTarget, inset: number, radius = 0) =>\n highlightTarget === target ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute z-[2]\"\n style={{\n inset,\n border: `4px solid ${themePreviewHighlightColor}`,\n borderRadius: radius,\n boxShadow: `0 0 0 1px ${themePreviewHighlightShadowColor}`,\n }}\n />\n ) : null;\n\n return (\n <div className=\"flex h-full min-h-0 flex-col\">\n <div\n className=\"grid min-h-0 flex-1 grid-cols-[224px_minmax(0,1fr)] grid-rows-[76px_minmax(0,1fr)] overflow-hidden rounded-lg border border-solid\"\n style={{\n backgroundColor: mainBackground,\n borderColor: previewChromeBorder,\n }}\n >\n <div\n className=\"col-span-2 relative flex items-center justify-between px-20\"\n style={{\n backgroundColor: toolbarBackground,\n backgroundImage: `linear-gradient(180deg, ${toolbarBackground} 0%, ${toolbarPaper} 100%)`,\n borderBottom: `1px solid ${toolbarDivider}`,\n boxShadow: `inset 0 1px 0 ${alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.82)}, 0 4px 16px ${alpha(toolbarBlack, toolbarMode === 'dark' ? 0.18 : 0.05)}`,\n color: toolbarText,\n }}\n >\n {renderHighlightOverlay('toolbar', 0, 0)}\n <div className=\"flex items-center gap-12\">\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"flex items-center gap-2\"\n style={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.72 : 0.64),\n }}\n >\n <Typography variant=\"caption\">OWP</Typography>\n <NavigateNextIcon sx={{ fontSize: 18 }} />\n <Typography variant=\"caption\">Theme Preview</Typography>\n </div>\n <Typography variant=\"subtitle1\" fontWeight={700}>\n Toolbar\n </Typography>\n </div>\n </div>\n <div className=\"pointer-events-none absolute left-1/2 top-1/2 flex w-full max-w-[520px] -translate-x-1/2 -translate-y-1/2 justify-center px-12 text-center\">\n <Typography\n variant=\"body2\"\n sx={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.92 : 0.84),\n fontSize: 13,\n fontWeight: 700,\n }}\n >\n 로그인 화면 배경색은 Toolbar{' '}\n <NavigateNextIcon sx={{ mx: 0.25, fontSize: 18, verticalAlign: 'middle' }} />{' '}\n Background Default 색상을 따라갑니다.\n </Typography>\n </div>\n <div className=\"flex items-center gap-8\">\n {[SearchIcon, SpaceDashboardOutlinedIcon].map((IconComponent, index) => (\n <div\n key={`${index}`}\n className=\"flex h-32 w-32 items-center justify-center rounded-[10px] border border-solid\"\n style={toolbarPreviewButtonStyle}\n >\n <IconComponent sx={{ color: toolbarText, fontSize: 18 }} />\n </div>\n ))}\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col\"\n style={{\n backgroundColor: navbarBackground,\n borderRight: `1px solid ${navbarDivider}`,\n color: navbarText,\n }}\n >\n {renderHighlightOverlay('navbar', 0, 0)}\n <div\n className=\"flex items-center justify-between gap-8 px-16 py-14\"\n style={{\n borderBottom: `1px solid ${navbarDivider}`,\n }}\n >\n <div className=\"flex items-center gap-10\">\n <div className=\"flex flex-col gap-2\">\n <Typography\n variant=\"subtitle2\"\n fontWeight={700}\n sx={{\n color: navbarHeaderForeground,\n }}\n >\n Navbar\n </Typography>\n <Typography variant=\"caption\" sx={{ color: navbarHeaderSecondary }}>\n Navigation\n </Typography>\n </div>\n </div>\n <ButtonBase\n aria-label=\"navbar menu\"\n className=\"flex h-28 w-28 items-center justify-center rounded-[10px] border border-solid\"\n sx={navbarPreviewButtonSx}\n >\n <MenuRoundedIcon sx={{ color: 'inherit', fontSize: 16 }} />\n </ButtonBase>\n </div>\n\n <div className=\"flex flex-1 flex-col gap-4 px-10 py-10\">\n {navbarPreviewItems.map((label, index) => {\n const isActive = index === 1;\n\n return (\n <div\n key={label}\n className=\"rounded-lg px-12 py-10\"\n style={{\n backgroundColor: isActive ? navbarActiveBackground : 'transparent',\n color: isActive ? navbarSecondary : navbarInactiveText,\n }}\n >\n <Typography variant=\"body2\" fontWeight={isActive ? 700 : 500}>\n {label}\n </Typography>\n </div>\n );\n })}\n </div>\n\n <div\n className=\"px-12 py-12\"\n style={{\n borderTop: `1px solid ${navbarDivider}`,\n }}\n >\n <div\n className=\"flex min-h-[56px] items-center gap-12 rounded-lg px-8 py-8\"\n style={{ color: navbarText }}\n >\n <div\n className=\"flex h-36 w-36 shrink-0 items-center justify-center rounded-full\"\n style={{\n backgroundColor: navbarUserAvatarBackground,\n color: navbarUserAvatarText,\n }}\n >\n <Typography sx={{ fontSize: 18, fontWeight: 700, lineHeight: 1 }}>관</Typography>\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarText,\n fontSize: 16,\n fontWeight: 600,\n letterSpacing: '-0.01em',\n lineHeight: 1,\n }}\n >\n Impix\n </Typography>\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarInactiveText,\n fontSize: 14,\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: 1.05,\n }}\n >\n Owp/Admin\n </Typography>\n </div>\n <div className=\"flex shrink-0 items-center justify-center\" style={{ color: navbarText }}>\n <KeyboardArrowUpRoundedIcon sx={{ fontSize: 16 }} />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col gap-14 overflow-auto p-14\"\n style={{\n backgroundColor: mainBackground,\n color: mainText,\n }}\n >\n {renderHighlightOverlay('main', 8)}\n {isLoading ? (\n <div\n className=\"absolute inset-14 z-10 flex items-center justify-center rounded-lg\"\n style={{\n backgroundColor: alpha(mainPaper, 0.88),\n border: `1px solid ${previewChromeBorder}`,\n }}\n >\n <div className=\"flex flex-col items-center gap-10\">\n <CircularProgress color=\"secondary\" size={34} thickness={4.5} />\n <Typography variant=\"body2\" color=\"text.secondary\" fontWeight={700}>\n 로딩 중...\n </Typography>\n </div>\n </div>\n ) : null}\n {orderedPreviewSectionKeys.map((sectionKey) => (\n <Fragment key={`${sectionKey}-${previewSectionMountKeyBySection[sectionKey]}`}>\n {renderPreviewSection(sectionKey)}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["themePreviewHighlightColor","themePreviewHighlightShadowColor","ThemePreviewCanvas","activeSection","isLoading","settings","previewSnackbarKeysRef","useRef","tablePreviewCanTableRadiusZero","tableTheme","useMemo","merge","defaultTableTheme","toolbarMode","toolbarBackground","getPaletteValue","toolbarPaper","toolbarText","toolbarDivider","toolbarWhite","toolbarBlack","toolbarButtonBackground","alpha","toolbarButtonBorder","toolbarButtonHighlight","navbarMode","navbarBackground","navbarDivider","previewChromeBorder","navbarText","navbarTextSecondary","navbarPrimary","navbarSecondary","navbarHeaderForeground","getPreviewContrastColor","navbarHeaderSecondary","navbarSurfaceButtonBackground","navbarSurfaceButtonBorder","navbarSurfaceButtonHoverBackground","navbarSurfaceButtonHoverBorder","navbarHeaderIconColor","navbarInactiveText","navbarActiveBackground","navbarUserAvatarBackground","darken","navbarUserAvatarText","mainBackground","mainPaper","mainText","mainTextSecondary","mainPrimary","mainPrimaryContrast","mainSecondary","mainSecondaryContrast","mainSuccess","mainSuccessContrast","mainInfo","mainInfoContrast","mainWarning","mainWarningContrast","mainError","mainErrorContrast","mainGrid","gridThemePreviewVersionKey","createThemePreviewVersionKey","tableThemePreviewVersionKey","searchHeaderPreviewVersionKey","editableThemePreviewGridId","themePreviewEditableTreeGridId","readonlyThemePreviewGridId","themePreviewReadonlyTreeGridId","layoutPreviewGridHeaderBackground","layoutPreviewGridHeaderColor","layoutPreviewGridHeaderFontSize","layoutPreviewGridCellFontSize","layoutPreviewGridCellBackground","_a","gridPreviewBodyBackground","layoutPreviewGridHeaderBorder","gridBodyBorder","gridPreviewBodyText","mainThemePreviewSettings","mainThemePreviewStoreKey","mainThemePreviewStoreState","searchHeaderPreviewDate","dayjs","searchHeaderPreviewNumber","previewSectionCardSx","highlightTarget","toolbarPreviewButtonStyle","navbarPreviewButtonSx","buttonPreviewItems","item","snackbarTheme","defaultSnackbarTheme","snackbarProviderProps","defaultSnackbarProviderProps","snackbarPreviewAnchorHorizontal","_b","snackbarPreviewAnchorVertical","_c","snackbarPreviewMaxSnack","snackbarPreviewFontSize","getThemePreviewStyleValue","_d","snackbarPreviewLineHeight","_e","snackbarPreviewItems","snackbarVariantKeys","variantKey","snackbarVariantTheme","snackbarPreviewIconByVariant","snackbarPreviewMessageByVariant","orderedPreviewSectionKeys","getPreviewSectionOrder","previewSectionMountKeyBySection","gridPreviewTable","jsx","ThemePreviewGridPreviewTable","useEffect","snackbarKey","closeSnackbar","renderPreviewSection","__name","sectionKey","ThemePreviewButtonsSection","ThemePreviewSnackbarsSection","ThemePreviewSearchHeaderSection","ThemePreviewGridSection","ThemePreviewTablesSection","renderHighlightOverlay","target","inset","radius","jsxs","Typography","NavigateNextIcon","SearchIcon","SpaceDashboardOutlinedIcon","IconComponent","index","ButtonBase","MenuRoundedIcon","label","isActive","KeyboardArrowUpRoundedIcon","CircularProgress","Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"ThemePreviewCanvas.js","sources":["../../../../src/features/themePreview/components/ThemePreviewCanvas.tsx"],"sourcesContent":["import {\n defaultSnackbarProviderProps,\n defaultSnackbarTheme,\n snackbarVariantKeys,\n} from '@/features/themePreview/configs/snackbar';\nimport {\n defaultTableTheme,\n type ThemePreviewTableConfigType,\n} from '@/features/themePreview/configs/table';\nimport KeyboardArrowUpRoundedIcon from '@mui/icons-material/KeyboardArrowUpRounded';\nimport MenuRoundedIcon from '@mui/icons-material/MenuRounded';\nimport NavigateNextIcon from '@mui/icons-material/NavigateNext';\nimport SearchIcon from '@mui/icons-material/Search';\nimport SpaceDashboardOutlinedIcon from '@mui/icons-material/SpaceDashboardOutlined';\nimport { ButtonBase, CircularProgress, Typography } from '@mui/material';\nimport { alpha, darken } from '@mui/material/styles';\nimport dayjs from 'dayjs';\nimport { merge } from 'es-toolkit/compat';\nimport { closeSnackbar, type SnackbarKey } from 'notistack';\nimport { Fragment, useDeferredValue, useEffect, useMemo, useRef } from 'react';\nimport type {\n ThemePreviewSectionKey,\n ThemePreviewSettings,\n} from '../types';\nimport {\n createThemePreviewVersionKey,\n getPaletteValue,\n getPreviewContrastColor,\n getPreviewSectionOrder,\n getThemePreviewStyleValue,\n gridPreviewBodyBackground,\n gridPreviewBodyText,\n navbarPreviewItems,\n previewChromeBorder,\n snackbarPreviewMessageByVariant,\n themePreviewEditableTreeGridId,\n themePreviewReadonlyTreeGridId,\n} from './themePreviewCanvas.shared';\nimport {\n ThemePreviewCommonSection,\n ThemePreviewButtonsSection,\n ThemePreviewGridPreviewTable,\n ThemePreviewGridSection,\n ThemePreviewSearchHeaderSection,\n ThemePreviewSnackbarsSection,\n ThemePreviewTablesSection,\n} from './ThemePreviewCanvasSections';\nimport { snackbarPreviewIconByVariant } from './themePreviewCanvas.icons';\n\ninterface ThemePreviewCanvasProps {\n activeSection: ThemePreviewSectionKey;\n isLoading?: boolean;\n settings: ThemePreviewSettings;\n}\n\ntype ThemePreviewHighlightTarget = 'main' | 'navbar' | 'toolbar';\n\nconst themePreviewHighlightColor = '#ff4d2d';\nconst themePreviewHighlightShadowColor = 'rgba(255, 77, 45, 0.14)';\n\nexport function ThemePreviewCanvas({\n activeSection,\n isLoading = false,\n settings,\n}: ThemePreviewCanvasProps) {\n const previewSnackbarKeysRef = useRef<SnackbarKey[]>([]);\n const deferredActiveSection = useDeferredValue(activeSection);\n const tablePreviewCanTableRadiusZero = false;\n const tableTheme = useMemo(\n () =>\n merge(\n {},\n defaultTableTheme,\n settings.theme.main.table as ThemePreviewTableConfigType | undefined,\n ) as ThemePreviewTableConfigType,\n [settings.theme.main.table],\n );\n\n const toolbarMode = settings.theme.toolbar.palette.mode;\n const toolbarBackground = getPaletteValue(settings, 'toolbar', 'background.default');\n const toolbarPaper = getPaletteValue(settings, 'toolbar', 'background.paper');\n const toolbarText = getPaletteValue(settings, 'toolbar', 'text.primary');\n const toolbarDivider = getPaletteValue(settings, 'toolbar', 'divider');\n const toolbarWhite = getPaletteValue(settings, 'toolbar', 'common.white');\n const toolbarBlack = getPaletteValue(settings, 'toolbar', 'common.black');\n const toolbarButtonBackground = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.78);\n const toolbarButtonBorder = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.1 : 0.62);\n const toolbarButtonHighlight = alpha(toolbarWhite, toolbarMode === 'dark' ? 0.05 : 0.54);\n\n const navbarMode = settings.theme.navbar.palette.mode;\n const navbarBackground = getPaletteValue(settings, 'navbar', 'background.default');\n const navbarDivider = getPaletteValue(settings, 'navbar', 'divider') || previewChromeBorder;\n const navbarText = getPaletteValue(settings, 'navbar', 'text.primary');\n const navbarTextSecondary = getPaletteValue(settings, 'navbar', 'text.secondary');\n const navbarSecondary = getPaletteValue(settings, 'navbar', 'secondary.main');\n const navbarSecondaryDark =\n getPaletteValue(settings, 'navbar', 'secondary.dark') || navbarSecondary;\n const navbarHeaderForeground = getPreviewContrastColor(\n navbarBackground,\n navbarText || '#111827',\n );\n const navbarHeaderSecondary = alpha(navbarHeaderForeground, navbarMode === 'dark' ? 0.72 : 0.64);\n const navbarSurfaceButtonBackground = alpha(\n navbarSecondary,\n navbarMode === 'dark' ? 0.2 : 0.12,\n );\n const navbarSurfaceButtonBorder = alpha(navbarSecondary, navbarMode === 'dark' ? 0.42 : 0.28);\n const navbarSurfaceButtonHoverBackground = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.22 : 0.14,\n );\n const navbarSurfaceButtonHoverBorder = alpha(\n navbarSecondaryDark,\n navbarMode === 'dark' ? 0.56 : 0.36,\n );\n const navbarHeaderIconColor = navbarSecondary;\n const navbarInactiveText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.72);\n const navbarActiveBackground = alpha(navbarSecondary, navbarMode === 'dark' ? 0.22 : 0.12);\n const navbarUserAvatarBackground = darken(navbarBackground, navbarMode === 'dark' ? 0.08 : 0.05);\n const navbarUserAvatarText =\n navbarTextSecondary || alpha(navbarText, navbarMode === 'dark' ? 0.78 : 0.62);\n\n const mainBackground = getPaletteValue(settings, 'main', 'background.default');\n const mainPaper = getPaletteValue(settings, 'main', 'background.paper');\n const mainText = getPaletteValue(settings, 'main', 'text.primary');\n const mainTextSecondary = getPaletteValue(settings, 'main', 'text.secondary');\n const mainSuccess = getPaletteValue(settings, 'main', 'success.main');\n const mainSuccessContrast = getPaletteValue(settings, 'main', 'success.contrastText');\n const mainInfo = getPaletteValue(settings, 'main', 'info.main');\n const mainInfoContrast = getPaletteValue(settings, 'main', 'info.contrastText');\n const mainWarning = getPaletteValue(settings, 'main', 'warning.main');\n const mainWarningContrast = getPaletteValue(settings, 'main', 'warning.contrastText');\n const mainError = getPaletteValue(settings, 'main', 'error.main');\n const mainErrorContrast = getPaletteValue(settings, 'main', 'error.contrastText');\n const mainGrid = settings.theme.main.grid;\n\n const gridThemePreviewVersionKey = createThemePreviewVersionKey(mainGrid);\n const tableThemePreviewVersionKey = createThemePreviewVersionKey(settings.theme.main.table);\n const searchHeaderPreviewVersionKey = createThemePreviewVersionKey({\n palette: settings.theme.main.palette ?? {},\n table: settings.theme.main.table ?? {},\n });\n\n const editableThemePreviewGridId = `${themePreviewEditableTreeGridId}-${gridThemePreviewVersionKey}`;\n const readonlyThemePreviewGridId = `${themePreviewReadonlyTreeGridId}-${gridThemePreviewVersionKey}`;\n const layoutPreviewGridHeaderBackground = '#586980';\n const layoutPreviewGridHeaderColor = '#ffffff';\n const layoutPreviewGridHeaderFontSize = '14px';\n const layoutPreviewGridCellFontSize = '13px';\n const layoutPreviewGridCellBackground =\n mainGrid?.body?.backgroundColor ?? gridPreviewBodyBackground;\n const layoutPreviewGridHeaderBorder = alpha(layoutPreviewGridHeaderColor, 0.22);\n const gridBodyBorder = alpha(gridPreviewBodyText, 0.14);\n\n const mainThemePreviewSettings = useMemo(\n () => ({\n ...settings,\n theme: {\n ...settings.theme,\n navbar: settings.theme.main,\n toolbar: settings.theme.main,\n },\n }),\n [settings],\n );\n const mainThemePreviewStoreKey = createThemePreviewVersionKey(\n mainThemePreviewSettings.theme.main,\n );\n const mainThemePreviewStoreState = useMemo(\n () =>\n ({\n owpSettings: {\n current: mainThemePreviewSettings,\n defaults: mainThemePreviewSettings,\n initial: mainThemePreviewSettings,\n },\n }) as const,\n [mainThemePreviewSettings],\n );\n\n const searchHeaderPreviewDate = dayjs().format('YYYY-MM-DD');\n const searchHeaderPreviewNumber = useMemo(\n () => `OWP-${searchHeaderPreviewDate.replace(/-/g, '')}-001`,\n [searchHeaderPreviewDate],\n );\n\n const previewSectionCardSx = useMemo(\n () => ({\n backgroundColor: mainPaper,\n border: `1px solid ${previewChromeBorder}`,\n }),\n [mainPaper],\n );\n const highlightTarget: ThemePreviewHighlightTarget =\n deferredActiveSection === 'navbar'\n ? 'navbar'\n : deferredActiveSection === 'toolbar'\n ? 'toolbar'\n : 'main';\n const isPreviewSectionPending = isLoading || deferredActiveSection !== activeSection;\n const toolbarPreviewButtonStyle = useMemo(\n () => ({\n backgroundColor: toolbarButtonBackground,\n borderColor: toolbarButtonBorder,\n boxShadow: `inset 0 1px 0 ${toolbarButtonHighlight}`,\n }),\n [toolbarButtonBackground, toolbarButtonBorder, toolbarButtonHighlight],\n );\n const navbarPreviewButtonSx = useMemo(\n () => ({\n backgroundColor: navbarSurfaceButtonBackground,\n borderColor: navbarSurfaceButtonBorder,\n color: navbarHeaderIconColor,\n transition: 'background-color 160ms ease, border-color 160ms ease, color 160ms ease',\n '&:hover, &:focus-visible, &:active': {\n backgroundColor: navbarSurfaceButtonHoverBackground,\n borderColor: navbarSurfaceButtonHoverBorder,\n color: navbarSecondaryDark,\n },\n }),\n [\n navbarHeaderIconColor,\n navbarSecondaryDark,\n navbarSurfaceButtonBackground,\n navbarSurfaceButtonBorder,\n navbarSurfaceButtonHoverBackground,\n navbarSurfaceButtonHoverBorder,\n ],\n );\n const buttonPreviewItems = useMemo(\n () =>\n [\n { label: 'info', color: mainInfo, contrastColor: mainInfoContrast },\n { label: 'warning', color: mainWarning, contrastColor: mainWarningContrast },\n { label: 'error', color: mainError, contrastColor: mainErrorContrast },\n { label: 'success', color: mainSuccess, contrastColor: mainSuccessContrast },\n ].map((item) => ({\n ...item,\n previewContrastColor:\n item.label === 'error' || item.label === 'success'\n ? getPreviewContrastColor(item.color, item.contrastColor)\n : item.contrastColor,\n })),\n [\n mainError,\n mainErrorContrast,\n mainInfo,\n mainInfoContrast,\n mainSuccess,\n mainSuccessContrast,\n mainWarning,\n mainWarningContrast,\n ],\n );\n\n const snackbarTheme = settings.snackbar ?? defaultSnackbarTheme;\n const snackbarProviderProps = useMemo(\n () => merge({}, defaultSnackbarProviderProps, settings.snackbarProviderProps),\n [settings.snackbarProviderProps],\n );\n const snackbarPreviewAnchorHorizontal =\n snackbarProviderProps.anchorOrigin?.horizontal ??\n defaultSnackbarProviderProps.anchorOrigin.horizontal;\n const snackbarPreviewAnchorVertical =\n snackbarProviderProps.anchorOrigin?.vertical ??\n defaultSnackbarProviderProps.anchorOrigin.vertical;\n const snackbarPreviewMaxSnack =\n snackbarProviderProps.maxSnack ?? defaultSnackbarProviderProps.maxSnack;\n const snackbarPreviewFontSize = getThemePreviewStyleValue(snackbarProviderProps.style?.fontSize);\n const snackbarPreviewLineHeight = getThemePreviewStyleValue(\n snackbarProviderProps.style?.lineHeight,\n );\n const snackbarPreviewItems = useMemo(\n () =>\n snackbarVariantKeys.map((variantKey) => {\n const snackbarVariantTheme = snackbarTheme[variantKey];\n\n return {\n actionHoverColor: alpha(\n snackbarVariantTheme.color,\n variantKey === 'default' ? 0.18 : 0.16,\n ),\n backgroundColor: snackbarVariantTheme.backgroundColor,\n color: snackbarVariantTheme.color,\n icon: snackbarPreviewIconByVariant[variantKey],\n key: variantKey,\n message: snackbarPreviewMessageByVariant[variantKey],\n };\n }),\n [snackbarTheme],\n );\n\n const orderedPreviewSectionKeys = useMemo(\n () => getPreviewSectionOrder(deferredActiveSection),\n [deferredActiveSection],\n );\n const previewSectionMountKeyBySection = useMemo(\n () =>\n ({\n common: mainThemePreviewStoreKey,\n buttons: createThemePreviewVersionKey({\n error: mainError,\n info: mainInfo,\n success: mainSuccess,\n warning: mainWarning,\n }),\n grid: `${mainThemePreviewStoreKey}-${gridThemePreviewVersionKey}`,\n searchHeader: searchHeaderPreviewVersionKey,\n snackbars: createThemePreviewVersionKey({\n provider: settings.snackbarProviderProps,\n snackbar: settings.snackbar,\n }),\n tables: tableThemePreviewVersionKey,\n }) as const,\n [\n gridThemePreviewVersionKey,\n mainError,\n mainInfo,\n mainSuccess,\n mainThemePreviewStoreKey,\n mainWarning,\n searchHeaderPreviewVersionKey,\n settings.snackbar,\n settings.snackbarProviderProps,\n tableThemePreviewVersionKey,\n ],\n );\n const gridPreviewTable = useMemo(\n () => (\n <ThemePreviewGridPreviewTable\n gridBodyBorder={gridBodyBorder}\n layoutPreviewGridCellBackground={layoutPreviewGridCellBackground}\n layoutPreviewGridCellFontSize={layoutPreviewGridCellFontSize}\n layoutPreviewGridHeaderBackground={layoutPreviewGridHeaderBackground}\n layoutPreviewGridHeaderBorder={layoutPreviewGridHeaderBorder}\n layoutPreviewGridHeaderColor={layoutPreviewGridHeaderColor}\n layoutPreviewGridHeaderFontSize={layoutPreviewGridHeaderFontSize}\n />\n ),\n [\n gridBodyBorder,\n layoutPreviewGridCellBackground,\n layoutPreviewGridCellFontSize,\n layoutPreviewGridHeaderBackground,\n layoutPreviewGridHeaderBorder,\n layoutPreviewGridHeaderColor,\n layoutPreviewGridHeaderFontSize,\n ],\n );\n\n useEffect(() => {\n return () => {\n previewSnackbarKeysRef.current.forEach((snackbarKey) => {\n closeSnackbar(snackbarKey);\n });\n previewSnackbarKeysRef.current = [];\n };\n }, []);\n\n const renderPreviewSection = (sectionKey: keyof typeof previewSectionMountKeyBySection) => {\n switch (sectionKey) {\n case 'common':\n return (\n <ThemePreviewCommonSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'buttons':\n return (\n <ThemePreviewButtonsSection\n buttonPreviewItems={buttonPreviewItems}\n mainTextSecondary={mainTextSecondary}\n previewSectionCardSx={previewSectionCardSx}\n />\n );\n case 'snackbars':\n return (\n <ThemePreviewSnackbarsSection\n previewSectionCardSx={previewSectionCardSx}\n previewSnackbarKeysRef={previewSnackbarKeysRef}\n snackbarAnchorOrigin={snackbarProviderProps.anchorOrigin}\n snackbarAutoHideDuration={snackbarProviderProps.autoHideDuration}\n snackbarPreviewAnchorHorizontal={snackbarPreviewAnchorHorizontal}\n snackbarPreviewAnchorVertical={snackbarPreviewAnchorVertical}\n snackbarPreviewFontSize={snackbarPreviewFontSize}\n snackbarPreviewItems={snackbarPreviewItems}\n snackbarPreviewLineHeight={snackbarPreviewLineHeight}\n snackbarPreviewMaxSnack={snackbarPreviewMaxSnack}\n />\n );\n case 'searchHeader':\n return (\n <ThemePreviewSearchHeaderSection\n activeSection={\n deferredActiveSection === 'navbar' || deferredActiveSection === 'toolbar'\n ? deferredActiveSection\n : 'main'\n }\n gridPreviewTable={gridPreviewTable}\n mainBackground={mainBackground}\n mainPaper={mainPaper}\n mainText={mainText}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n searchHeaderPreviewDate={searchHeaderPreviewDate}\n searchHeaderPreviewNumber={searchHeaderPreviewNumber}\n searchHeaderPreviewVersionKey={searchHeaderPreviewVersionKey}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n case 'grid':\n return (\n <ThemePreviewGridSection\n editableThemePreviewGridId={editableThemePreviewGridId}\n mainGridChangedBackgroundColor={mainGrid?.changed?.backgroundColor}\n mainThemePreviewStoreKey={mainThemePreviewStoreKey}\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n readonlyThemePreviewGridId={readonlyThemePreviewGridId}\n />\n );\n case 'tables':\n return (\n <ThemePreviewTablesSection\n mainThemePreviewStoreState={mainThemePreviewStoreState}\n previewSectionCardSx={previewSectionCardSx}\n tablePreviewCanTableRadiusZero={tablePreviewCanTableRadiusZero}\n tableTheme={tableTheme}\n tableThemePreviewVersionKey={tableThemePreviewVersionKey}\n />\n );\n default:\n return null;\n }\n };\n const renderHighlightOverlay = (target: ThemePreviewHighlightTarget, inset: number, radius = 0) =>\n highlightTarget === target ? (\n <div\n aria-hidden\n className=\"pointer-events-none absolute z-[2]\"\n style={{\n inset,\n border: `4px solid ${themePreviewHighlightColor}`,\n borderRadius: radius,\n boxShadow: `0 0 0 1px ${themePreviewHighlightShadowColor}`,\n }}\n />\n ) : null;\n\n return (\n <div className=\"flex h-full min-h-0 min-w-0 flex-1 flex-col overflow-hidden\">\n <div\n className=\"grid min-h-0 flex-1 grid-cols-[224px_minmax(0,1fr)] grid-rows-[76px_minmax(0,1fr)] overflow-hidden rounded-lg border border-solid\"\n style={{\n backgroundColor: mainBackground,\n borderColor: previewChromeBorder,\n }}\n >\n <div\n className=\"col-span-2 relative flex items-center justify-between px-20\"\n style={{\n backgroundColor: toolbarBackground,\n backgroundImage: `linear-gradient(180deg, ${toolbarBackground} 0%, ${toolbarPaper} 100%)`,\n borderBottom: `1px solid ${toolbarDivider}`,\n boxShadow: `inset 0 1px 0 ${alpha(toolbarWhite, toolbarMode === 'dark' ? 0.06 : 0.82)}, 0 4px 16px ${alpha(toolbarBlack, toolbarMode === 'dark' ? 0.18 : 0.05)}`,\n color: toolbarText,\n }}\n >\n {renderHighlightOverlay('toolbar', 0, 0)}\n <div className=\"flex items-center gap-12\">\n <div className=\"flex flex-col gap-2\">\n <div\n className=\"flex items-center gap-2\"\n style={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.72 : 0.64),\n }}\n >\n <Typography variant=\"caption\">OWP</Typography>\n <NavigateNextIcon sx={{ fontSize: 18 }} />\n <Typography variant=\"caption\">Theme Preview</Typography>\n </div>\n <Typography variant=\"subtitle1\" fontWeight={700}>\n Toolbar\n </Typography>\n </div>\n </div>\n <div className=\"pointer-events-none absolute left-1/2 top-1/2 flex w-full max-w-[520px] -translate-x-1/2 -translate-y-1/2 justify-center px-12 text-center\">\n <Typography\n variant=\"body2\"\n sx={{\n color: alpha(toolbarText, toolbarMode === 'dark' ? 0.92 : 0.84),\n fontSize: 13,\n fontWeight: 700,\n }}\n >\n 로그인 화면 배경색은 Toolbar{' '}\n <NavigateNextIcon sx={{ mx: 0.25, fontSize: 18, verticalAlign: 'middle' }} />{' '}\n Background Default 색상을 따라갑니다.\n </Typography>\n </div>\n <div className=\"flex items-center gap-8\">\n {[SearchIcon, SpaceDashboardOutlinedIcon].map((IconComponent, index) => (\n <div\n key={`${index}`}\n className=\"flex h-32 w-32 items-center justify-center rounded-[10px] border border-solid\"\n style={toolbarPreviewButtonStyle}\n >\n <IconComponent sx={{ color: toolbarText, fontSize: 18 }} />\n </div>\n ))}\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col\"\n style={{\n backgroundColor: navbarBackground,\n borderRight: `1px solid ${navbarDivider}`,\n color: navbarText,\n }}\n >\n {renderHighlightOverlay('navbar', 0, 0)}\n <div\n className=\"flex items-center justify-between gap-8 px-16 py-14\"\n style={{\n borderBottom: `1px solid ${navbarDivider}`,\n }}\n >\n <div className=\"flex items-center gap-10\">\n <div className=\"flex flex-col gap-2\">\n <Typography\n variant=\"subtitle2\"\n fontWeight={700}\n sx={{\n color: navbarHeaderForeground,\n }}\n >\n Navbar\n </Typography>\n <Typography variant=\"caption\" sx={{ color: navbarHeaderSecondary }}>\n Navigation\n </Typography>\n </div>\n </div>\n <ButtonBase\n aria-label=\"navbar menu\"\n className=\"flex h-28 w-28 items-center justify-center rounded-[10px] border border-solid\"\n sx={navbarPreviewButtonSx}\n >\n <MenuRoundedIcon sx={{ color: 'inherit', fontSize: 16 }} />\n </ButtonBase>\n </div>\n\n <div className=\"flex flex-1 flex-col gap-4 px-10 py-10\">\n {navbarPreviewItems.map((label, index) => {\n const isActive = index === 1;\n\n return (\n <div\n key={label}\n className=\"rounded-lg px-12 py-10\"\n style={{\n backgroundColor: isActive ? navbarActiveBackground : 'transparent',\n color: isActive ? navbarSecondary : navbarInactiveText,\n }}\n >\n <Typography variant=\"body2\" fontWeight={isActive ? 700 : 500}>\n {label}\n </Typography>\n </div>\n );\n })}\n </div>\n\n <div\n className=\"px-12 py-12\"\n style={{\n borderTop: `1px solid ${navbarDivider}`,\n }}\n >\n <div\n className=\"flex min-h-[56px] items-center gap-12 rounded-lg px-8 py-8\"\n style={{ color: navbarText }}\n >\n <div\n className=\"flex h-36 w-36 shrink-0 items-center justify-center rounded-full\"\n style={{\n backgroundColor: navbarUserAvatarBackground,\n color: navbarUserAvatarText,\n }}\n >\n <Typography sx={{ fontSize: 18, fontWeight: 700, lineHeight: 1 }}>관</Typography>\n </div>\n <div className=\"flex min-w-0 flex-1 flex-col gap-1\">\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarText,\n fontSize: 16,\n fontWeight: 600,\n letterSpacing: '-0.01em',\n lineHeight: 1,\n }}\n >\n Impix\n </Typography>\n <Typography\n className=\"truncate\"\n sx={{\n color: navbarInactiveText,\n fontSize: 14,\n fontWeight: 500,\n letterSpacing: '-0.02em',\n lineHeight: 1.05,\n }}\n >\n Owp/Admin\n </Typography>\n </div>\n <div className=\"flex shrink-0 items-center justify-center\" style={{ color: navbarText }}>\n <KeyboardArrowUpRoundedIcon sx={{ fontSize: 16 }} />\n </div>\n </div>\n </div>\n </div>\n\n <div\n className=\"relative flex min-h-0 flex-col gap-14 overflow-y-auto overflow-x-hidden p-14\"\n style={{\n backgroundColor: mainBackground,\n color: mainText,\n }}\n >\n {renderHighlightOverlay('main', 8)}\n {isPreviewSectionPending ? (\n <div\n className=\"absolute inset-14 z-10 flex items-center justify-center rounded-lg\"\n style={{\n backgroundColor: alpha(mainPaper, 0.88),\n border: `1px solid ${previewChromeBorder}`,\n }}\n >\n <div className=\"flex flex-col items-center gap-10\">\n <CircularProgress color=\"secondary\" size={34} thickness={4.5} />\n <Typography variant=\"body2\" color=\"text.secondary\" fontWeight={700}>\n 로딩 중...\n </Typography>\n </div>\n </div>\n ) : null}\n {orderedPreviewSectionKeys.map((sectionKey) => (\n <Fragment key={`${sectionKey}-${previewSectionMountKeyBySection[sectionKey]}`}>\n {renderPreviewSection(sectionKey)}\n </Fragment>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"names":["themePreviewHighlightColor","themePreviewHighlightShadowColor","ThemePreviewCanvas","activeSection","isLoading","settings","previewSnackbarKeysRef","useRef","deferredActiveSection","useDeferredValue","tablePreviewCanTableRadiusZero","tableTheme","useMemo","merge","defaultTableTheme","toolbarMode","toolbarBackground","getPaletteValue","toolbarPaper","toolbarText","toolbarDivider","toolbarWhite","toolbarBlack","toolbarButtonBackground","alpha","toolbarButtonBorder","toolbarButtonHighlight","navbarMode","navbarBackground","navbarDivider","previewChromeBorder","navbarText","navbarTextSecondary","navbarSecondary","navbarSecondaryDark","navbarHeaderForeground","getPreviewContrastColor","navbarHeaderSecondary","navbarSurfaceButtonBackground","navbarSurfaceButtonBorder","navbarSurfaceButtonHoverBackground","navbarSurfaceButtonHoverBorder","navbarHeaderIconColor","navbarInactiveText","navbarActiveBackground","navbarUserAvatarBackground","darken","navbarUserAvatarText","mainBackground","mainPaper","mainText","mainTextSecondary","mainSuccess","mainSuccessContrast","mainInfo","mainInfoContrast","mainWarning","mainWarningContrast","mainError","mainErrorContrast","mainGrid","gridThemePreviewVersionKey","createThemePreviewVersionKey","tableThemePreviewVersionKey","searchHeaderPreviewVersionKey","editableThemePreviewGridId","themePreviewEditableTreeGridId","readonlyThemePreviewGridId","themePreviewReadonlyTreeGridId","layoutPreviewGridHeaderBackground","layoutPreviewGridHeaderColor","layoutPreviewGridHeaderFontSize","layoutPreviewGridCellFontSize","layoutPreviewGridCellBackground","_a","gridPreviewBodyBackground","layoutPreviewGridHeaderBorder","gridBodyBorder","gridPreviewBodyText","mainThemePreviewSettings","mainThemePreviewStoreKey","mainThemePreviewStoreState","searchHeaderPreviewDate","dayjs","searchHeaderPreviewNumber","previewSectionCardSx","highlightTarget","isPreviewSectionPending","toolbarPreviewButtonStyle","navbarPreviewButtonSx","buttonPreviewItems","item","snackbarTheme","defaultSnackbarTheme","snackbarProviderProps","defaultSnackbarProviderProps","snackbarPreviewAnchorHorizontal","_b","snackbarPreviewAnchorVertical","_c","snackbarPreviewMaxSnack","snackbarPreviewFontSize","getThemePreviewStyleValue","_d","snackbarPreviewLineHeight","_e","snackbarPreviewItems","snackbarVariantKeys","variantKey","snackbarVariantTheme","snackbarPreviewIconByVariant","snackbarPreviewMessageByVariant","orderedPreviewSectionKeys","getPreviewSectionOrder","previewSectionMountKeyBySection","gridPreviewTable","jsx","ThemePreviewGridPreviewTable","useEffect","snackbarKey","closeSnackbar","renderPreviewSection","__name","sectionKey","ThemePreviewCommonSection","ThemePreviewButtonsSection","ThemePreviewSnackbarsSection","ThemePreviewSearchHeaderSection","ThemePreviewGridSection","ThemePreviewTablesSection","renderHighlightOverlay","target","inset","radius","jsxs","Typography","NavigateNextIcon","SearchIcon","SpaceDashboardOutlinedIcon","IconComponent","index","ButtonBase","MenuRoundedIcon","label","isActive","KeyboardArrowUpRoundedIcon","CircularProgress","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;AAyDA,MAAMA,KAA6B,WAC7BC,KAAmC;AAElC,SAASC,GAAmB;AAAA,EACjC,eAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,UAAAC;AACF,GAA4B;;AAC1B,QAAMC,IAAyBC,GAAsB,EAAE,GACjDC,IAAwBC,GAAiBN,CAAa,GACtDO,IAAiC,IACjCC,IAAaC;AAAA,IACjB,MACEC;AAAA,MACE,CAAA;AAAA,MACAC;AAAA,MACAT,EAAS,MAAM,KAAK;AAAA,IAAA;AAAA,IAExB,CAACA,EAAS,MAAM,KAAK,KAAK;AAAA,EAAA,GAGtBU,IAAcV,EAAS,MAAM,QAAQ,QAAQ,MAC7CW,IAAoBC,EAAgBZ,GAAU,WAAW,oBAAoB,GAC7Ea,KAAeD,EAAgBZ,GAAU,WAAW,kBAAkB,GACtEc,IAAcF,EAAgBZ,GAAU,WAAW,cAAc,GACjEe,KAAiBH,EAAgBZ,GAAU,WAAW,SAAS,GAC/DgB,IAAeJ,EAAgBZ,GAAU,WAAW,cAAc,GAClEiB,KAAeL,EAAgBZ,GAAU,WAAW,cAAc,GAClEkB,IAA0BC,EAAMH,GAAcN,MAAgB,SAAS,OAAO,IAAI,GAClFU,IAAsBD,EAAMH,GAAcN,MAAgB,SAAS,MAAM,IAAI,GAC7EW,IAAyBF,EAAMH,GAAcN,MAAgB,SAAS,OAAO,IAAI,GAEjFY,IAAatB,EAAS,MAAM,OAAO,QAAQ,MAC3CuB,IAAmBX,EAAgBZ,GAAU,UAAU,oBAAoB,GAC3EwB,IAAgBZ,EAAgBZ,GAAU,UAAU,SAAS,KAAKyB,GAClEC,IAAad,EAAgBZ,GAAU,UAAU,cAAc,GAC/D2B,IAAsBf,EAAgBZ,GAAU,UAAU,gBAAgB,GAC1E4B,IAAkBhB,EAAgBZ,GAAU,UAAU,gBAAgB,GACtE6B,IACJjB,EAAgBZ,GAAU,UAAU,gBAAgB,KAAK4B,GACrDE,IAAyBC;AAAA,IAC7BR;AAAA,IACAG,KAAc;AAAA,EAAA,GAEVM,KAAwBb,EAAMW,GAAwBR,MAAe,SAAS,OAAO,IAAI,GACzFW,IAAgCd;AAAA,IACpCS;AAAA,IACAN,MAAe,SAAS,MAAM;AAAA,EAAA,GAE1BY,KAA4Bf,EAAMS,GAAiBN,MAAe,SAAS,OAAO,IAAI,GACtFa,KAAqChB;AAAA,IACzCU;AAAA,IACAP,MAAe,SAAS,OAAO;AAAA,EAAA,GAE3Bc,KAAiCjB;AAAA,IACrCU;AAAA,IACAP,MAAe,SAAS,OAAO;AAAA,EAAA,GAE3Be,KAAwBT,GACxBU,KACJX,KAAuBR,EAAMO,GAAYJ,MAAe,SAAS,OAAO,IAAI,GACxEiB,KAAyBpB,EAAMS,GAAiBN,MAAe,SAAS,OAAO,IAAI,GACnFkB,KAA6BC,GAAOlB,GAAkBD,MAAe,SAAS,OAAO,IAAI,GACzFoB,KACJf,KAAuBR,EAAMO,GAAYJ,MAAe,SAAS,OAAO,IAAI,GAExEqB,IAAiB/B,EAAgBZ,GAAU,QAAQ,oBAAoB,GACvE4C,IAAYhC,EAAgBZ,GAAU,QAAQ,kBAAkB,GAChE6C,KAAWjC,EAAgBZ,GAAU,QAAQ,cAAc,GAC3D8C,KAAoBlC,EAAgBZ,GAAU,QAAQ,gBAAgB,GACtE+C,IAAcnC,EAAgBZ,GAAU,QAAQ,cAAc,GAC9DgD,KAAsBpC,EAAgBZ,GAAU,QAAQ,sBAAsB,GAC9EiD,IAAWrC,EAAgBZ,GAAU,QAAQ,WAAW,GACxDkD,KAAmBtC,EAAgBZ,GAAU,QAAQ,mBAAmB,GACxEmD,IAAcvC,EAAgBZ,GAAU,QAAQ,cAAc,GAC9DoD,KAAsBxC,EAAgBZ,GAAU,QAAQ,sBAAsB,GAC9EqD,IAAYzC,EAAgBZ,GAAU,QAAQ,YAAY,GAC1DsD,KAAoB1C,EAAgBZ,GAAU,QAAQ,oBAAoB,GAC1EuD,IAAWvD,EAAS,MAAM,KAAK,MAE/BwD,IAA6BC,EAA6BF,CAAQ,GAClEG,IAA8BD,EAA6BzD,EAAS,MAAM,KAAK,KAAK,GACpF2D,IAAgCF,EAA6B;AAAA,IACjE,SAASzD,EAAS,MAAM,KAAK,WAAW,CAAA;AAAA,IACxC,OAAOA,EAAS,MAAM,KAAK,SAAS,CAAA;AAAA,EAAC,CACtC,GAEK4D,KAA6B,GAAGC,EAA8B,IAAIL,CAA0B,IAC5FM,KAA6B,GAAGC,EAA8B,IAAIP,CAA0B,IAC5FQ,KAAoC,WACpCC,IAA+B,WAC/BC,KAAkC,QAClCC,KAAgC,QAChCC,OACJC,KAAAd,KAAA,gBAAAA,EAAU,SAAV,gBAAAc,GAAgB,oBAAmBC,IAC/BC,KAAgCpD,EAAM8C,GAA8B,IAAI,GACxEO,KAAiBrD,EAAMsD,IAAqB,IAAI,GAEhDC,IAA2BnE;AAAA,IAC/B,OAAO;AAAA,MACL,GAAGP;AAAA,MACH,OAAO;AAAA,QACL,GAAGA,EAAS;AAAA,QACZ,QAAQA,EAAS,MAAM;AAAA,QACvB,SAASA,EAAS,MAAM;AAAA,MAAA;AAAA,IAC1B;AAAA,IAEF,CAACA,CAAQ;AAAA,EAAA,GAEL2E,IAA2BlB;AAAA,IAC/BiB,EAAyB,MAAM;AAAA,EAAA,GAE3BE,IAA6BrE;AAAA,IACjC,OACG;AAAA,MACC,aAAa;AAAA,QACX,SAASmE;AAAA,QACT,UAAUA;AAAA,QACV,SAASA;AAAA,MAAA;AAAA,IACX;AAAA,IAEJ,CAACA,CAAwB;AAAA,EAAA,GAGrBG,IAA0BC,KAAQ,OAAO,YAAY,GACrDC,KAA4BxE;AAAA,IAChC,MAAM,OAAOsE,EAAwB,QAAQ,MAAM,EAAE,CAAC;AAAA,IACtD,CAACA,CAAuB;AAAA,EAAA,GAGpBG,IAAuBzE;AAAA,IAC3B,OAAO;AAAA,MACL,iBAAiBqC;AAAA,MACjB,QAAQ,aAAanB,CAAmB;AAAA,IAAA;AAAA,IAE1C,CAACmB,CAAS;AAAA,EAAA,GAENqC,KACJ9E,MAA0B,WACtB,WACAA,MAA0B,YACxB,YACA,QACF+E,KAA0BnF,KAAaI,MAA0BL,GACjEqF,KAA4B5E;AAAA,IAChC,OAAO;AAAA,MACL,iBAAiBW;AAAA,MACjB,aAAaE;AAAA,MACb,WAAW,iBAAiBC,CAAsB;AAAA,IAAA;AAAA,IAEpD,CAACH,GAAyBE,GAAqBC,CAAsB;AAAA,EAAA,GAEjE+D,KAAwB7E;AAAA,IAC5B,OAAO;AAAA,MACL,iBAAiB0B;AAAA,MACjB,aAAaC;AAAA,MACb,OAAOG;AAAA,MACP,YAAY;AAAA,MACZ,sCAAsC;AAAA,QACpC,iBAAiBF;AAAA,QACjB,aAAaC;AAAA,QACb,OAAOP;AAAA,MAAA;AAAA,IACT;AAAA,IAEF;AAAA,MACEQ;AAAA,MACAR;AAAA,MACAI;AAAA,MACAC;AAAA,MACAC;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAEIiD,KAAqB9E;AAAA,IACzB,MACE;AAAA,MACE,EAAE,OAAO,QAAQ,OAAO0C,GAAU,eAAeC,GAAA;AAAA,MACjD,EAAE,OAAO,WAAW,OAAOC,GAAa,eAAeC,GAAA;AAAA,MACvD,EAAE,OAAO,SAAS,OAAOC,GAAW,eAAeC,GAAA;AAAA,MACnD,EAAE,OAAO,WAAW,OAAOP,GAAa,eAAeC,GAAA;AAAA,IAAoB,EAC3E,IAAI,CAACsC,OAAU;AAAA,MACf,GAAGA;AAAA,MACH,sBACEA,EAAK,UAAU,WAAWA,EAAK,UAAU,YACrCvD,GAAwBuD,EAAK,OAAOA,EAAK,aAAa,IACtDA,EAAK;AAAA,IAAA,EACX;AAAA,IACJ;AAAA,MACEjC;AAAA,MACAC;AAAA,MACAL;AAAA,MACAC;AAAA,MACAH;AAAA,MACAC;AAAA,MACAG;AAAA,MACAC;AAAA,IAAA;AAAA,EACF,GAGImC,KAAgBvF,EAAS,YAAYwF,IACrCC,IAAwBlF;AAAA,IAC5B,MAAMC,GAAM,CAAA,GAAIkF,GAA8B1F,EAAS,qBAAqB;AAAA,IAC5E,CAACA,EAAS,qBAAqB;AAAA,EAAA,GAE3B2F,OACJC,KAAAH,EAAsB,iBAAtB,gBAAAG,GAAoC,eACpCF,EAA6B,aAAa,YACtCG,OACJC,KAAAL,EAAsB,iBAAtB,gBAAAK,GAAoC,aACpCJ,EAA6B,aAAa,UACtCK,KACJN,EAAsB,YAAYC,EAA6B,UAC3DM,KAA0BC,IAA0BC,KAAAT,EAAsB,UAAtB,gBAAAS,GAA6B,QAAQ,GACzFC,KAA4BF;AAAA,KAChCG,KAAAX,EAAsB,UAAtB,gBAAAW,GAA6B;AAAA,EAAA,GAEzBC,KAAuB9F;AAAA,IAC3B,MACE+F,GAAoB,IAAI,CAACC,MAAe;AACtC,YAAMC,IAAuBjB,GAAcgB,CAAU;AAErD,aAAO;AAAA,QACL,kBAAkBpF;AAAA,UAChBqF,EAAqB;AAAA,UACrBD,MAAe,YAAY,OAAO;AAAA,QAAA;AAAA,QAEpC,iBAAiBC,EAAqB;AAAA,QACtC,OAAOA,EAAqB;AAAA,QAC5B,MAAMC,GAA6BF,CAAU;AAAA,QAC7C,KAAKA;AAAA,QACL,SAASG,GAAgCH,CAAU;AAAA,MAAA;AAAA,IAEvD,CAAC;AAAA,IACH,CAAChB,EAAa;AAAA,EAAA,GAGVoB,KAA4BpG;AAAA,IAChC,MAAMqG,GAAuBzG,CAAqB;AAAA,IAClD,CAACA,CAAqB;AAAA,EAAA,GAElB0G,KAAkCtG;AAAA,IACtC,OACG;AAAA,MACC,QAAQoE;AAAA,MACR,SAASlB,EAA6B;AAAA,QACpC,OAAOJ;AAAA,QACP,MAAMJ;AAAA,QACN,SAASF;AAAA,QACT,SAASI;AAAA,MAAA,CACV;AAAA,MACD,MAAM,GAAGwB,CAAwB,IAAInB,CAA0B;AAAA,MAC/D,cAAcG;AAAA,MACd,WAAWF,EAA6B;AAAA,QACtC,UAAUzD,EAAS;AAAA,QACnB,UAAUA,EAAS;AAAA,MAAA,CACpB;AAAA,MACD,QAAQ0D;AAAA,IAAA;AAAA,IAEZ;AAAA,MACEF;AAAA,MACAH;AAAA,MACAJ;AAAA,MACAF;AAAA,MACA4B;AAAA,MACAxB;AAAA,MACAQ;AAAA,MACA3D,EAAS;AAAA,MACTA,EAAS;AAAA,MACT0D;AAAA,IAAA;AAAA,EACF,GAEIoD,KAAmBvG;AAAA,IACvB,MACE,gBAAAwG;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,gBAAAxC;AAAA,QACA,iCAAAJ;AAAA,QACA,+BAAAD;AAAA,QACA,mCAAAH;AAAA,QACA,+BAAAO;AAAA,QACA,8BAAAN;AAAA,QACA,iCAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGJ;AAAA,MACEM;AAAA,MACAJ;AAAA,MACAD;AAAA,MACAH;AAAA,MACAO;AAAA,MACAN;AAAA,MACAC;AAAA,IAAA;AAAA,EACF;AAGF,EAAA+C,GAAU,MACD,MAAM;AACX,IAAAhH,EAAuB,QAAQ,QAAQ,CAACiH,MAAgB;AACtD,MAAAC,GAAcD,CAAW;AAAA,IAC3B,CAAC,GACDjH,EAAuB,UAAU,CAAA;AAAA,EACnC,GACC,CAAA,CAAE;AAEL,QAAMmH,KAAuB,gBAAAC,EAAA,CAACC,MAA6D;;AACzF,YAAQA,GAAA;AAAA,MACN,KAAK;AACH,eACE,gBAAAP;AAAA,UAACQ;AAAA,UAAA;AAAA,YACC,oBAAAlC;AAAA,YACA,mBAAAvC;AAAA,YACA,4BAAA8B;AAAA,YACA,sBAAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AACH,eACE,gBAAA+B;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,oBAAAnC;AAAA,YACA,mBAAAvC;AAAA,YACA,sBAAAkC;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AACH,eACE,gBAAA+B;AAAA,UAACU;AAAA,UAAA;AAAA,YACC,sBAAAzC;AAAA,YACA,wBAAA/E;AAAA,YACA,sBAAsBwF,EAAsB;AAAA,YAC5C,0BAA0BA,EAAsB;AAAA,YAChD,iCAAAE;AAAA,YACA,+BAAAE;AAAA,YACA,yBAAAG;AAAA,YACA,sBAAAK;AAAA,YACA,2BAAAF;AAAA,YACA,yBAAAJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AACH,eACE,gBAAAgB;AAAA,UAACW;AAAA,UAAA;AAAA,YACC,eACEvH,MAA0B,YAAYA,MAA0B,YAC5DA,IACA;AAAA,YAEN,kBAAA2G;AAAA,YACA,gBAAAnE;AAAA,YACA,WAAAC;AAAA,YACA,UAAAC;AAAA,YACA,4BAAA+B;AAAA,YACA,sBAAAI;AAAA,YACA,yBAAAH;AAAA,YACA,2BAAAE;AAAA,YACA,+BAAApB;AAAA,YACA,gCAAAtD;AAAA,YACA,YAAAC;AAAA,YACA,6BAAAoD;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AACH,eACE,gBAAAqD;AAAA,UAACY;AAAA,UAAA;AAAA,YACC,4BAAA/D;AAAA,YACA,iCAAgCS,IAAAd,KAAA,gBAAAA,EAAU,YAAV,gBAAAc,EAAmB;AAAA,YACnD,0BAAAM;AAAA,YACA,4BAAAC;AAAA,YACA,sBAAAI;AAAA,YACA,4BAAAlB;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN,KAAK;AACH,eACE,gBAAAiD;AAAA,UAACa;AAAA,UAAA;AAAA,YACC,4BAAAhD;AAAA,YACA,sBAAAI;AAAA,YACA,gCAAA3E;AAAA,YACA,YAAAC;AAAA,YACA,6BAAAoD;AAAA,UAAA;AAAA,QAAA;AAAA,MAGN;AACE,eAAO;AAAA,IAAA;AAAA,EAEb,GAhF6B,yBAiFvBmE,IAAyB,gBAAAR,EAAA,CAACS,GAAqCC,GAAeC,IAAS,MAC3F/C,OAAoB6C,IAClB,gBAAAf;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAW;AAAA,MACX,WAAU;AAAA,MACV,OAAO;AAAA,QACL,OAAAgB;AAAA,QACA,QAAQ,aAAapI,EAA0B;AAAA,QAC/C,cAAcqI;AAAA,QACd,WAAW,aAAapI,EAAgC;AAAA,MAAA;AAAA,IAC1D;AAAA,EAAA,IAEA,MAZyB;AAc/B,SACE,gBAAAmH,EAAC,OAAA,EAAI,WAAU,+DACb,UAAA,gBAAAkB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAO;AAAA,QACL,iBAAiBtF;AAAA,QACjB,aAAalB;AAAA,MAAA;AAAA,MAGf,UAAA;AAAA,QAAA,gBAAAwG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,iBAAiBtH;AAAA,cACjB,iBAAiB,2BAA2BA,CAAiB,QAAQE,EAAY;AAAA,cACjF,cAAc,aAAaE,EAAc;AAAA,cACzC,WAAW,iBAAiBI,EAAMH,GAAcN,MAAgB,SAAS,OAAO,IAAI,CAAC,gBAAgBS,EAAMF,IAAcP,MAAgB,SAAS,OAAO,IAAI,CAAC;AAAA,cAC9J,OAAOI;AAAA,YAAA;AAAA,YAGR,UAAA;AAAA,cAAA+G,EAAuB,WAAW,GAAG,CAAC;AAAA,gCACtC,OAAA,EAAI,WAAU,4BACb,UAAA,gBAAAI,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,gBAAA,gBAAAA;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,OAAO9G,EAAML,GAAaJ,MAAgB,SAAS,OAAO,IAAI;AAAA,oBAAA;AAAA,oBAGhE,UAAA;AAAA,sBAAA,gBAAAqG,EAACmB,GAAA,EAAW,SAAQ,WAAU,UAAA,OAAG;AAAA,wCAChCC,IAAA,EAAiB,IAAI,EAAE,UAAU,MAAM;AAAA,sBACxC,gBAAApB,EAACmB,GAAA,EAAW,SAAQ,WAAU,UAAA,gBAAA,CAAa;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBAAA;AAAA,kCAE5CA,GAAA,EAAW,SAAQ,aAAY,YAAY,KAAK,UAAA,UAAA,CAEjD;AAAA,cAAA,EAAA,CACF,EAAA,CACF;AAAA,cACA,gBAAAnB,EAAC,OAAA,EAAI,WAAU,8IACb,UAAA,gBAAAkB;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,SAAQ;AAAA,kBACR,IAAI;AAAA,oBACF,OAAO/G,EAAML,GAAaJ,MAAgB,SAAS,OAAO,IAAI;AAAA,oBAC9D,UAAU;AAAA,oBACV,YAAY;AAAA,kBAAA;AAAA,kBAEf,UAAA;AAAA,oBAAA;AAAA,oBACqB;AAAA,oBACpB,gBAAAqG,EAACoB,IAAA,EAAiB,IAAI,EAAE,IAAI,MAAM,UAAU,IAAI,eAAe,SAAA,EAAS,CAAG;AAAA,oBAAG;AAAA,oBAAI;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA,GAGtF;AAAA,cACA,gBAAApB,EAAC,OAAA,EAAI,WAAU,2BACZ,UAAA,CAACqB,IAAYC,EAA0B,EAAE,IAAI,CAACC,GAAeC,MAC5D,gBAAAxB;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBAEC,WAAU;AAAA,kBACV,OAAO5B;AAAA,kBAEP,UAAA,gBAAA4B,EAACuB,KAAc,IAAI,EAAE,OAAOxH,GAAa,UAAU,KAAG,CAAG;AAAA,gBAAA;AAAA,gBAJpD,GAAGyH,CAAK;AAAA,cAAA,CAMhB,EAAA,CACH;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,gBAAAN;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,iBAAiB1G;AAAA,cACjB,aAAa,aAAaC,CAAa;AAAA,cACvC,OAAOE;AAAA,YAAA;AAAA,YAGR,UAAA;AAAA,cAAAmG,EAAuB,UAAU,GAAG,CAAC;AAAA,cACtC,gBAAAI;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,cAAc,aAAazG,CAAa;AAAA,kBAAA;AAAA,kBAG1C,UAAA;AAAA,oBAAA,gBAAAuF,EAAC,SAAI,WAAU,4BACb,UAAA,gBAAAkB,EAAC,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,sBAAA,gBAAAlB;AAAA,wBAACmB;AAAA,wBAAA;AAAA,0BACC,SAAQ;AAAA,0BACR,YAAY;AAAA,0BACZ,IAAI;AAAA,4BACF,OAAOpG;AAAA,0BAAA;AAAA,0BAEV,UAAA;AAAA,wBAAA;AAAA,sBAAA;AAAA,sBAGD,gBAAAiF,EAACmB,KAAW,SAAQ,WAAU,IAAI,EAAE,OAAOlG,GAAA,GAAyB,UAAA,aAAA,CAEpE;AAAA,oBAAA,EAAA,CACF,EAAA,CACF;AAAA,oBACA,gBAAA+E;AAAA,sBAACyB;AAAA,sBAAA;AAAA,wBACC,cAAW;AAAA,wBACX,WAAU;AAAA,wBACV,IAAIpD;AAAA,wBAEJ,UAAA,gBAAA2B,EAAC0B,MAAgB,IAAI,EAAE,OAAO,WAAW,UAAU,KAAG,CAAG;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAC3D;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGF,gBAAA1B,EAAC,SAAI,WAAU,0CACZ,aAAmB,IAAI,CAAC2B,GAAOH,MAAU;AACxC,sBAAMI,IAAWJ,MAAU;AAE3B,uBACE,gBAAAxB;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,WAAU;AAAA,oBACV,OAAO;AAAA,sBACL,iBAAiB4B,IAAWpG,KAAyB;AAAA,sBACrD,OAAOoG,IAAW/G,IAAkBU;AAAA,oBAAA;AAAA,oBAGtC,UAAA,gBAAAyE,EAACmB,KAAW,SAAQ,SAAQ,YAAYS,IAAW,MAAM,KACtD,UAAAD,EAAA,CACH;AAAA,kBAAA;AAAA,kBATKA;AAAA,gBAAA;AAAA,cAYX,CAAC,EAAA,CACH;AAAA,cAEA,gBAAA3B;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,WAAW,aAAavF,CAAa;AAAA,kBAAA;AAAA,kBAGvC,UAAA,gBAAAyG;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,WAAU;AAAA,sBACV,OAAO,EAAE,OAAOvG,EAAA;AAAA,sBAEhB,UAAA;AAAA,wBAAA,gBAAAqF;AAAA,0BAAC;AAAA,0BAAA;AAAA,4BACC,WAAU;AAAA,4BACV,OAAO;AAAA,8BACL,iBAAiBvE;AAAA,8BACjB,OAAOE;AAAA,4BAAA;AAAA,4BAGT,UAAA,gBAAAqE,EAACmB,GAAA,EAAW,IAAI,EAAE,UAAU,IAAI,YAAY,KAAK,YAAY,EAAA,GAAK,UAAA,IAAA,CAAC;AAAA,0BAAA;AAAA,wBAAA;AAAA,wBAErE,gBAAAD,EAAC,OAAA,EAAI,WAAU,sCACb,UAAA;AAAA,0BAAA,gBAAAlB;AAAA,4BAACmB;AAAA,4BAAA;AAAA,8BACC,WAAU;AAAA,8BACV,IAAI;AAAA,gCACF,OAAOxG;AAAA,gCACP,UAAU;AAAA,gCACV,YAAY;AAAA,gCACZ,eAAe;AAAA,gCACf,YAAY;AAAA,8BAAA;AAAA,8BAEf,UAAA;AAAA,4BAAA;AAAA,0BAAA;AAAA,0BAGD,gBAAAqF;AAAA,4BAACmB;AAAA,4BAAA;AAAA,8BACC,WAAU;AAAA,8BACV,IAAI;AAAA,gCACF,OAAO5F;AAAA,gCACP,UAAU;AAAA,gCACV,YAAY;AAAA,gCACZ,eAAe;AAAA,gCACf,YAAY;AAAA,8BAAA;AAAA,8BAEf,UAAA;AAAA,4BAAA;AAAA,0BAAA;AAAA,wBAED,GACF;AAAA,0CACC,OAAA,EAAI,WAAU,6CAA4C,OAAO,EAAE,OAAOZ,EAAA,GACzE,UAAA,gBAAAqF,EAAC6B,MAA2B,IAAI,EAAE,UAAU,GAAA,GAAM,EAAA,CACpD;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACF;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA;AAAA,QAGF,gBAAAX;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO;AAAA,cACL,iBAAiBtF;AAAA,cACjB,OAAOE;AAAA,YAAA;AAAA,YAGR,UAAA;AAAA,cAAAgF,EAAuB,QAAQ,CAAC;AAAA,cAChC3C,KACC,gBAAA6B;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAU;AAAA,kBACV,OAAO;AAAA,oBACL,iBAAiB5F,EAAMyB,GAAW,IAAI;AAAA,oBACtC,QAAQ,aAAanB,CAAmB;AAAA,kBAAA;AAAA,kBAG1C,UAAA,gBAAAwG,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,oBAAA,gBAAAlB,EAAC8B,MAAiB,OAAM,aAAY,MAAM,IAAI,WAAW,KAAK;AAAA,oBAC9D,gBAAA9B,EAACmB,KAAW,SAAQ,SAAQ,OAAM,kBAAiB,YAAY,KAAK,UAAA,UAAA,CAEpE;AAAA,kBAAA,EAAA,CACF;AAAA,gBAAA;AAAA,cAAA,IAEA;AAAA,cACHvB,GAA0B,IAAI,CAACW,MAC9B,gBAAAP,EAAC+B,MACE,UAAA1B,GAAqBE,CAAU,EAAA,GADnB,GAAGA,CAAU,IAAIT,GAAgCS,CAAU,CAAC,EAE3E,CACD;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;AA7lBgBD,EAAAxH,IAAA;"}