@12-apps/ui 6.50.0 → 6.51.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components-catalog.md +2 -2
- package/dist/_internal/components/data-display/Badge/Badge.js +4 -4
- package/dist/_internal/components/data-display/Badge/Badge.styles.js +4 -4
- package/dist/_internal/components/data-display/Badge/BadgeContent.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.chrome.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.parts.js +4 -4
- package/dist/_internal/components/data-display/Carousel/Carousel.styles.js +4 -4
- package/dist/_internal/components/data-display/Chart/Chart.js +4 -4
- package/dist/_internal/components/data-display/Chart/SpecChart.js +4 -4
- package/dist/_internal/components/data-display/Chart/chart-context.js +4 -4
- package/dist/_internal/components/data-display/Chart/chart-internals.js +4 -4
- package/dist/_internal/components/data-display/Chart/chart-renderers.js +4 -4
- package/dist/_internal/components/data-display/DataGrid/DataGrid.js +6 -6
- package/dist/_internal/components/data-display/DataGrid/DataGrid.model.js +5 -5
- package/dist/_internal/components/data-display/DataViews/DataViewsGrid.js +16 -16
- package/dist/_internal/components/data-display/DataViews/DataViewsTableBase.js +17 -17
- package/dist/_internal/components/data-display/DataViews/base-list-card-geometry.js +8 -8
- package/dist/_internal/components/data-display/DataViews/base-list-card-slots.js +7 -7
- package/dist/_internal/components/data-display/DataViews/base-list-card.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-display-panel.js +7 -7
- package/dist/_internal/components/data-display/DataViews/data-views-display-tabs.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-grid-bodies.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-grid-parts.js +15 -15
- package/dist/_internal/components/data-display/DataViews/data-views-layout-context.js +5 -5
- package/dist/_internal/components/data-display/DataViews/data-views-scope-tabs.js +6 -6
- package/dist/_internal/components/data-display/DataViews/data-views-shell-toolbar.js +9 -9
- package/dist/_internal/components/data-display/DataViews/data-views-toolbar.js +8 -8
- package/dist/_internal/components/data-display/DataViews/list-card-rails.js +6 -6
- package/dist/_internal/components/data-display/FleetMap/FleetMap.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.body.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.js +4 -4
- package/dist/_internal/components/data-display/Sheet/Sheet.styles.js +4 -4
- package/dist/_internal/components/data-display/Table/Table.js +5 -5
- package/dist/_internal/components/data-display/index.js +7 -7
- package/dist/_internal/components/form/Command/Command.js +4 -4
- package/dist/_internal/components/form/Command/Command.styles.js +4 -4
- package/dist/_internal/components/form/Label/Label.js +4 -4
- package/dist/_internal/components/form/Label/Label.styles.js +4 -4
- package/dist/_internal/components/form/Menubar/Menubar.item.js +4 -4
- package/dist/_internal/components/form/Menubar/Menubar.js +4 -4
- package/dist/_internal/components/form/Menubar/Menubar.styles.js +4 -4
- package/dist/_internal/components/form/Menubar/Menubar.toolbar.js +4 -4
- package/dist/_internal/components/form/index.js +4 -4
- package/dist/_internal/components/index.js +23 -23
- package/dist/_internal/components/layout/Box/Box.js +7 -7
- package/dist/_internal/components/layout/SettingCard/SettingCard.js +9 -9
- package/dist/_internal/components/layout/SettingCard/SettingCard.parts.js +8 -8
- package/dist/_internal/components/layout/SettingCard/SettingGrid.js +9 -9
- package/dist/_internal/components/layout/SettingCard/SettingGroup.js +10 -10
- package/dist/_internal/components/layout/SettingCard/SettingSwitch.js +9 -9
- package/dist/_internal/components/layout/SettingCard/SettingToggle.js +10 -10
- package/dist/_internal/components/layout/Stack/Stack.js +8 -8
- package/dist/_internal/components/layout/index.js +13 -13
- package/dist/_internal/components/navigation/AppHeader/AppHeader.details.js +4 -4
- package/dist/_internal/components/navigation/AppHeader/AppHeader.identity.js +4 -4
- package/dist/_internal/components/navigation/SectionNav/SectionNav.bar.js +9 -9
- package/dist/_internal/components/navigation/SectionNav/SectionNav.helpers.js +5 -1
- package/dist/_internal/components/navigation/SectionNav/SectionNav.js +11 -11
- package/dist/_internal/components/navigation/SectionNav/SectionNav.parts.js +12 -6
- package/dist/_internal/components/navigation/SectionNav/SectionNav.primary.js +7 -7
- package/dist/_internal/components/navigation/SectionNav/SectionNav.rail.js +7 -7
- package/dist/_internal/components/navigation/SectionNav/SectionNav.sheet.js +7 -7
- package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js +16 -4
- package/dist/_internal/components/navigation/SectionNav/__stories__/fixtures.js.map +1 -1
- package/dist/_internal/components/navigation/index.js +11 -11
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.helpers.js +4 -4
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.js +4 -4
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStep.parts.js +4 -4
- package/dist/_internal/components/utility/WorkflowStep/WorkflowStepRow.js +4 -4
- package/dist/_internal/components/utility/index.js +4 -4
- package/dist/_internal/icons/Icon.js +7 -7
- package/dist/_internal/provider/UiProvider.js +6 -6
- package/dist/_internal/provider/mui-bridge.js +5 -5
- package/dist/_internal/provider/use-ui-theme.js +6 -6
- package/dist/_internal/tokens/density-overrides.js +3 -3
- package/dist/_internal/tokens/density-overrides.navigation.js +1 -1
- package/dist/_internal/tokens/density-overrides.selection.js +1 -1
- package/dist/_internal/tokens/density.js +4 -4
- package/dist/charts.js +4 -4
- package/dist/{chunk-XK77FY42.js → chunk-25MSGLNU.js} +4 -3
- package/dist/chunk-25MSGLNU.js.map +1 -0
- package/dist/{chunk-7VC6YBD3.js → chunk-3U45DRNS.js} +2 -2
- package/dist/{chunk-ZQCZMSLO.js → chunk-4B5WSVS7.js} +2 -2
- package/dist/{chunk-F4FOBTLJ.js → chunk-4BI5PCOM.js} +2 -2
- package/dist/{chunk-HVZ4HF4M.js → chunk-5N2UJOCT.js} +2 -2
- package/dist/{chunk-DFCX3FNB.js → chunk-5ZBFADBL.js} +2 -2
- package/dist/{chunk-GLKQT2DS.js → chunk-A436VORP.js} +33 -4
- package/dist/chunk-A436VORP.js.map +1 -0
- package/dist/{chunk-LWBR5U6V.js → chunk-ABPTS3XK.js} +2 -2
- package/dist/{chunk-43EQITNF.js → chunk-BHPLHGZP.js} +4 -4
- package/dist/{chunk-YMW2VYGU.js → chunk-DLO5V4AV.js} +2 -2
- package/dist/{chunk-7FQF5BC2.js → chunk-ESW4Z5I7.js} +2 -2
- package/dist/{chunk-ZPD6MGAO.js → chunk-FDJLYYDA.js} +4 -4
- package/dist/{chunk-LZL6HDTZ.js → chunk-FM5RBGG7.js} +2 -2
- package/dist/{chunk-V2SAZOT2.js → chunk-FYTC4LOD.js} +2 -2
- package/dist/{chunk-4ELI2MM3.js → chunk-GAXHYRX6.js} +9 -6
- package/dist/chunk-GAXHYRX6.js.map +1 -0
- package/dist/{chunk-CT45KNCT.js → chunk-GPTICJVN.js} +3 -3
- package/dist/{chunk-URGH4673.js → chunk-H556NMKE.js} +4 -4
- package/dist/{chunk-VOF6QVCF.js → chunk-HF7V3RI5.js} +2 -2
- package/dist/{chunk-NKJMOWY3.js → chunk-HJUR6ZY6.js} +2 -2
- package/dist/{chunk-RX7J6VRI.js → chunk-HKEBTPKY.js} +119 -42
- package/dist/chunk-HKEBTPKY.js.map +1 -0
- package/dist/{chunk-ZC3NEUNQ.js → chunk-I2LF53MJ.js} +2 -2
- package/dist/{chunk-ZFQVT6HZ.js → chunk-II7Z5UB6.js} +2 -2
- package/dist/{chunk-K65NSHQI.js → chunk-L3CQTVFU.js} +4 -4
- package/dist/{chunk-EY4GPLMF.js → chunk-MT7XMJUJ.js} +5 -5
- package/dist/{chunk-TELVW2OI.js → chunk-MYCR7FMI.js} +2 -2
- package/dist/{chunk-56TGECKZ.js → chunk-NP6SHLQ3.js} +4 -3
- package/dist/chunk-NP6SHLQ3.js.map +1 -0
- package/dist/{chunk-WB6BTUXQ.js → chunk-OWILUXWM.js} +2 -2
- package/dist/{chunk-VHVI3D4R.js → chunk-P3GBXE73.js} +11 -2
- package/dist/chunk-P3GBXE73.js.map +1 -0
- package/dist/{chunk-WSBTMZJM.js → chunk-P7YUOH2E.js} +2 -2
- package/dist/{chunk-VOP2BXKL.js → chunk-QWTPK3FT.js} +2 -2
- package/dist/{chunk-XQ6Y5Z7R.js → chunk-RCJOTNIW.js} +2 -2
- package/dist/{chunk-32JMSHEA.js → chunk-S4ZUZ6DS.js} +10 -6
- package/dist/chunk-S4ZUZ6DS.js.map +1 -0
- package/dist/{chunk-SWDDXMV7.js → chunk-SJ4IAZ3V.js} +4 -4
- package/dist/{chunk-FHWBOOS3.js → chunk-TH7RBREI.js} +2 -2
- package/dist/{chunk-SA2ERYVV.js → chunk-VAO63IIP.js} +3 -3
- package/dist/{chunk-43Q6CVPB.js → chunk-VELGOFCL.js} +127 -78
- package/dist/chunk-VELGOFCL.js.map +1 -0
- package/dist/{chunk-RCJYLDXV.js → chunk-VJBTFWDK.js} +4 -4
- package/dist/chunk-WNKRFMSI.js +113 -0
- package/dist/chunk-WNKRFMSI.js.map +1 -0
- package/dist/{chunk-LM2YOONY.js → chunk-XYHNXO6Q.js} +2 -2
- package/dist/{chunk-FT7BNFGS.js → chunk-YK4ZG5Y4.js} +2 -2
- package/dist/data-display/Badge.js +4 -4
- package/dist/data-display/Carousel.js +4 -4
- package/dist/data-display/Chart.js +4 -4
- package/dist/data-display/DataGrid.js +6 -6
- package/dist/data-display/DataViews.js +20 -20
- package/dist/data-display/FleetMap.js +4 -4
- package/dist/data-display/Sheet.js +4 -4
- package/dist/data-display/Table.js +5 -5
- package/dist/form/Command.js +4 -4
- package/dist/form/Label.js +4 -4
- package/dist/form/Menubar.js +4 -4
- package/dist/icons.js +7 -7
- package/dist/layout/Box.js +7 -7
- package/dist/layout/SettingCard.js +13 -13
- package/dist/layout/Stack.js +8 -8
- package/dist/navigation/AppHeader.js +4 -4
- package/dist/navigation/SectionNav.js +11 -11
- package/dist/provider.js +7 -7
- package/dist/tokens.js +4 -4
- package/dist/types/components/navigation/SectionNav/SectionNav.bar.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.helpers.d.ts +12 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.helpers.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.parts.d.ts +36 -2
- package/dist/types/components/navigation/SectionNav/SectionNav.parts.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.primary.d.ts +22 -4
- package/dist/types/components/navigation/SectionNav/SectionNav.primary.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.rail.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.sheet.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/SectionNav.types.d.ts +81 -5
- package/dist/types/components/navigation/SectionNav/SectionNav.types.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/__stories__/fixtures.d.ts +11 -1
- package/dist/types/components/navigation/SectionNav/__stories__/fixtures.d.ts.map +1 -1
- package/dist/types/components/navigation/SectionNav/index.d.ts +1 -1
- package/dist/types/components/navigation/SectionNav/index.d.ts.map +1 -1
- package/dist/types/tokens/density-overrides.d.ts.map +1 -1
- package/dist/types/tokens/density-overrides.navigation.d.ts.map +1 -1
- package/dist/types/tokens/density-overrides.selection.d.ts.map +1 -1
- package/dist/utility/WorkflowStep.js +4 -4
- package/package.json +1 -1
- package/src/components/navigation/SectionNav/SectionNav.bar.tsx +161 -88
- package/src/components/navigation/SectionNav/SectionNav.helpers.ts +16 -1
- package/src/components/navigation/SectionNav/SectionNav.md +40 -4
- package/src/components/navigation/SectionNav/SectionNav.parts.tsx +59 -1
- package/src/components/navigation/SectionNav/SectionNav.primary.tsx +107 -30
- package/src/components/navigation/SectionNav/SectionNav.rail.tsx +154 -41
- package/src/components/navigation/SectionNav/SectionNav.sheet.tsx +6 -2
- package/src/components/navigation/SectionNav/SectionNav.types.ts +82 -5
- package/src/components/navigation/SectionNav/__stories__/fixtures.tsx +21 -1
- package/src/components/navigation/SectionNav/index.ts +1 -0
- package/src/tokens/density-overrides.navigation.ts +15 -2
- package/src/tokens/density-overrides.selection.ts +31 -14
- package/src/tokens/density-overrides.ts +27 -11
- package/dist/chunk-32JMSHEA.js.map +0 -1
- package/dist/chunk-43Q6CVPB.js.map +0 -1
- package/dist/chunk-4ELI2MM3.js.map +0 -1
- package/dist/chunk-56TGECKZ.js.map +0 -1
- package/dist/chunk-GLKQT2DS.js.map +0 -1
- package/dist/chunk-RX7J6VRI.js.map +0 -1
- package/dist/chunk-RZ4SBSLP.js +0 -62
- package/dist/chunk-RZ4SBSLP.js.map +0 -1
- package/dist/chunk-VHVI3D4R.js.map +0 -1
- package/dist/chunk-XK77FY42.js.map +0 -1
- /package/dist/{chunk-7VC6YBD3.js.map → chunk-3U45DRNS.js.map} +0 -0
- /package/dist/{chunk-ZQCZMSLO.js.map → chunk-4B5WSVS7.js.map} +0 -0
- /package/dist/{chunk-F4FOBTLJ.js.map → chunk-4BI5PCOM.js.map} +0 -0
- /package/dist/{chunk-HVZ4HF4M.js.map → chunk-5N2UJOCT.js.map} +0 -0
- /package/dist/{chunk-DFCX3FNB.js.map → chunk-5ZBFADBL.js.map} +0 -0
- /package/dist/{chunk-LWBR5U6V.js.map → chunk-ABPTS3XK.js.map} +0 -0
- /package/dist/{chunk-43EQITNF.js.map → chunk-BHPLHGZP.js.map} +0 -0
- /package/dist/{chunk-YMW2VYGU.js.map → chunk-DLO5V4AV.js.map} +0 -0
- /package/dist/{chunk-7FQF5BC2.js.map → chunk-ESW4Z5I7.js.map} +0 -0
- /package/dist/{chunk-ZPD6MGAO.js.map → chunk-FDJLYYDA.js.map} +0 -0
- /package/dist/{chunk-LZL6HDTZ.js.map → chunk-FM5RBGG7.js.map} +0 -0
- /package/dist/{chunk-V2SAZOT2.js.map → chunk-FYTC4LOD.js.map} +0 -0
- /package/dist/{chunk-CT45KNCT.js.map → chunk-GPTICJVN.js.map} +0 -0
- /package/dist/{chunk-URGH4673.js.map → chunk-H556NMKE.js.map} +0 -0
- /package/dist/{chunk-VOF6QVCF.js.map → chunk-HF7V3RI5.js.map} +0 -0
- /package/dist/{chunk-NKJMOWY3.js.map → chunk-HJUR6ZY6.js.map} +0 -0
- /package/dist/{chunk-ZC3NEUNQ.js.map → chunk-I2LF53MJ.js.map} +0 -0
- /package/dist/{chunk-ZFQVT6HZ.js.map → chunk-II7Z5UB6.js.map} +0 -0
- /package/dist/{chunk-K65NSHQI.js.map → chunk-L3CQTVFU.js.map} +0 -0
- /package/dist/{chunk-EY4GPLMF.js.map → chunk-MT7XMJUJ.js.map} +0 -0
- /package/dist/{chunk-TELVW2OI.js.map → chunk-MYCR7FMI.js.map} +0 -0
- /package/dist/{chunk-WB6BTUXQ.js.map → chunk-OWILUXWM.js.map} +0 -0
- /package/dist/{chunk-WSBTMZJM.js.map → chunk-P7YUOH2E.js.map} +0 -0
- /package/dist/{chunk-VOP2BXKL.js.map → chunk-QWTPK3FT.js.map} +0 -0
- /package/dist/{chunk-XQ6Y5Z7R.js.map → chunk-RCJOTNIW.js.map} +0 -0
- /package/dist/{chunk-SWDDXMV7.js.map → chunk-SJ4IAZ3V.js.map} +0 -0
- /package/dist/{chunk-FHWBOOS3.js.map → chunk-TH7RBREI.js.map} +0 -0
- /package/dist/{chunk-SA2ERYVV.js.map → chunk-VAO63IIP.js.map} +0 -0
- /package/dist/{chunk-RCJYLDXV.js.map → chunk-VJBTFWDK.js.map} +0 -0
- /package/dist/{chunk-LM2YOONY.js.map → chunk-XYHNXO6Q.js.map} +0 -0
- /package/dist/{chunk-FT7BNFGS.js.map → chunk-YK4ZG5Y4.js.map} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.rail.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { ElementType, ReactNode } from 'react';\n\nimport type { SectionNavCopy } from '../../../copy';\nimport { rem } from '../../../tokens/scales';\n\nimport { destinationState, isMenu } from './SectionNav.helpers';\nimport {\n Box,\n CONTROL_RESET,\n CountedIcon,\n NOT_LIVE,\n SlotIcon,\n controlProps,\n destinationControl,\n focusRing,\n} from './SectionNav.parts';\nimport type {\n SectionNavAction,\n SectionNavBack,\n SectionNavDestination,\n SectionNavMenu,\n SectionNavProps,\n} from './SectionNav.types';\n\n/**\n * One rail row: icon, label, and the count at the far end.\n *\n * Destinations and menu entries draw the same row — in the rail there is room\n * for everything, so the difference between \"a place\" and \"an action\" is the\n * section it sits in, not its shape.\n *\n * `active` is the look; `current` is what `aria-current` reports, and is a\n * link's claim only — an action row that is ON says so with `aria-pressed`,\n * which arrives in `control`. Omitted, `current` follows `active`.\n */\nfunction RailRow({\n label,\n description,\n icon,\n count,\n active,\n current = active,\n copy,\n testId,\n control,\n loading = false,\n}: {\n label: string;\n description?: string;\n icon: ReactNode;\n count: number | undefined;\n active: boolean;\n current?: boolean;\n copy: SectionNavCopy;\n testId: string;\n control: Record<string, unknown>;\n loading?: boolean;\n}): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...control}\n aria-current={current ? 'page' : undefined}\n aria-busy={loading || undefined}\n data-testid={testId}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n width: '100%',\n minHeight: rem(theme, 40),\n px: 1.25,\n py: 0.75,\n borderRadius: 1,\n textAlign: 'start',\n color: active ? 'primary.main' : 'text.primary',\n bgcolor: active ? 'action.selected' : 'transparent',\n '&:hover': { bgcolor: active ? 'action.selected' : 'action.hover' },\n '& svg': { color: 'primary.main', fontSize: rem(theme, 20) },\n [NOT_LIVE]: { color: 'text.disabled', '& svg': { color: 'text.disabled' } },\n }}\n >\n <CountedIcon\n icon={<SlotIcon icon={icon} loading={loading} />}\n count={count}\n label={copy.badge}\n testId={`${testId}-badge`}\n />\n <Box component=\"span\" sx={{ display: 'flex', flexDirection: 'column', minWidth: 0 }}>\n <Typography component=\"span\" variant=\"body2\" sx={{ fontWeight: active ? 700 : 500 }}>\n {label}\n </Typography>\n {description ? (\n <Typography component=\"span\" variant=\"caption\" color=\"text.secondary\">\n {description}\n </Typography>\n ) : null}\n </Box>\n </Box>\n );\n}\n\n/** A heading between the rail's sections, in the sidebar's small-caps voice. */\nfunction RailHeading({ children }: { children: ReactNode }): React.JSX.Element {\n return (\n <Typography variant=\"overline\" color=\"text.secondary\" sx={{ px: 1.25, pt: 1.5, lineHeight: 1.6 }}>\n {children}\n </Typography>\n );\n}\n\n/**\n * A menu's groups, listed under its title — nothing folded away on a wide\n * screen. A `disabled` menu has no trigger here to refuse, so every row of it\n * is inert instead.\n */\nfunction RailMenu({\n menu,\n linkComponent,\n copy,\n testId,\n}: {\n menu: SectionNavMenu;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n}): React.JSX.Element {\n return (\n <Box component=\"section\" data-testid={testId} sx={{ display: 'flex', flexDirection: 'column', gap: 0.25 }}>\n <RailHeading>{menu.title}</RailHeading>\n {menu.groups.map((group) => (\n <Box key={group.id} sx={{ display: 'flex', flexDirection: 'column', gap: 0.25 }}>\n {group.title ? (\n <Typography variant=\"caption\" color=\"text.secondary\" sx={{ px: 1.25, pt: 0.5 }}>\n {group.title}\n </Typography>\n ) : null}\n {group.entries.map((entry) => (\n <RailRow\n key={entry.id}\n label={entry.label}\n description={entry.description}\n icon={entry.icon}\n count={entry.badge}\n active={entry.active === true}\n copy={copy}\n testId={entry.dataTestId ?? `${testId}-entry-${entry.id}`}\n control={controlProps({\n href: entry.href,\n linkComponent,\n inert: menu.disabled === true || entry.disabled === true,\n onClick: () => entry.onSelect?.(),\n })}\n />\n ))}\n </Box>\n ))}\n </Box>\n );\n}\n\n/** The way back out of the section, at the top of the rail. */\nfunction RailBack({\n back,\n linkComponent,\n testId,\n}: {\n back: SectionNavBack;\n linkComponent: ElementType | undefined;\n testId: string;\n}): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...controlProps({ href: back.href, linkComponent })}\n data-testid={testId}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n px: 1.25,\n py: 0.75,\n mb: 0.5,\n borderRadius: 1,\n color: 'text.secondary',\n '&:hover': { bgcolor: 'action.hover', color: 'text.primary' },\n '& svg': { fontSize: rem(theme, 20) },\n }}\n >\n {back.icon}\n <Typography component=\"span\" variant=\"body2\" sx={{ fontWeight: 600 }}>\n {back.label}\n </Typography>\n </Box>\n );\n}\n\n/** A primary that ACTS, as one row: there is no sheet to list on a wide screen. */\nfunction RailAction({\n action,\n linkComponent,\n copy,\n testId,\n}: {\n action: SectionNavAction;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n}): React.JSX.Element {\n return (\n <RailRow\n label={action.label}\n icon={action.icon}\n count={undefined}\n active={false}\n copy={copy}\n testId={action.dataTestId ?? testId}\n loading={action.loading === true}\n control={controlProps({\n href: undefined,\n linkComponent,\n inert: action.disabled === true,\n busy: action.loading === true,\n onClick: action.onSelect,\n })}\n />\n );\n}\n\n/** A destination as a row: a link, or an action (a toggle when it carries `active`). */\nfunction RailDestination({\n destination,\n linkComponent,\n copy,\n testId,\n}: {\n destination: SectionNavDestination;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n}): React.JSX.Element {\n const { current, lit } = destinationState(destination);\n return (\n <RailRow\n label={destination.label}\n icon={destination.icon}\n count={destination.badge}\n active={lit}\n current={current}\n copy={copy}\n testId={testId}\n loading={destination.loading === true}\n control={destinationControl(destination, linkComponent, () => destination.onSelect?.())}\n />\n );\n}\n\n/**\n * The wide-screen layout: a vertical rail — the way back, the destinations,\n * then every menu's entries.\n *\n * It fills the column the host gives it and scrolls on its own, like the\n * sidebar it stands in for.\n */\nexport function SectionNavRail({\n label,\n destinations,\n primary,\n more,\n back,\n heading,\n linkComponent,\n copy,\n dataTestId,\n}: Required<Pick<SectionNavProps, 'label' | 'destinations' | 'copy' | 'dataTestId'>> &\n Pick<SectionNavProps, 'primary' | 'more' | 'back' | 'heading'> & {\n linkComponent: ElementType | undefined;\n }): React.JSX.Element {\n return (\n <Box\n component=\"nav\"\n aria-label={label}\n data-testid={dataTestId}\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: 0.25,\n height: '100%',\n overflowY: 'auto',\n px: 1,\n py: 1.5,\n bgcolor: 'background.paper',\n }}\n >\n {back ? <RailBack back={back} linkComponent={linkComponent} testId={`${dataTestId}-back`} /> : null}\n {heading ? <RailHeading>{heading}</RailHeading> : null}\n {destinations.map((destination) => (\n <RailDestination\n key={destination.id}\n destination={destination}\n linkComponent={linkComponent}\n copy={copy}\n testId={destination.dataTestId ?? `${dataTestId}-dest-${destination.id}`}\n />\n ))}\n {primary && !isMenu(primary) ? (\n <RailAction action={primary} linkComponent={linkComponent} copy={copy} testId={`${dataTestId}-primary`} />\n ) : null}\n {isMenu(primary) ? (\n <RailMenu menu={primary} linkComponent={linkComponent} copy={copy} testId={`${dataTestId}-primary`} />\n ) : null}\n {more ? <RailMenu menu={more} linkComponent={linkComponent} copy={copy} testId={`${dataTestId}-more`} /> : null}\n </Box>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-6DPAWXZ3.js";
|
|
13
13
|
import {
|
|
14
14
|
useDensity
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-SJ4IAZ3V.js";
|
|
16
16
|
import {
|
|
17
17
|
sxRem
|
|
18
18
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -196,4 +196,4 @@ export {
|
|
|
196
196
|
useDataViewsLayout,
|
|
197
197
|
DataViewsZoomSlider
|
|
198
198
|
};
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
199
|
+
//# sourceMappingURL=chunk-I2LF53MJ.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
DisplayTab,
|
|
6
6
|
SortTab
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-DLO5V4AV.js";
|
|
8
8
|
import {
|
|
9
9
|
ViewActions,
|
|
10
10
|
ViewFooter,
|
|
@@ -265,4 +265,4 @@ function DataViewsDisplayPanel({
|
|
|
265
265
|
export {
|
|
266
266
|
DataViewsDisplayPanel
|
|
267
267
|
};
|
|
268
|
-
//# sourceMappingURL=chunk-
|
|
268
|
+
//# sourceMappingURL=chunk-II7Z5UB6.js.map
|
|
@@ -12,20 +12,20 @@ import {
|
|
|
12
12
|
} from "./chunk-UWCMMK2T.js";
|
|
13
13
|
import {
|
|
14
14
|
ListCardGroup
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-5ZBFADBL.js";
|
|
16
16
|
import {
|
|
17
17
|
DENSITY_BOARD_SCALE,
|
|
18
18
|
DENSITY_ROW_PADDING,
|
|
19
19
|
cardScaleForZoom,
|
|
20
20
|
cardTargetWidthFor,
|
|
21
21
|
useDataViewsLayout
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-I2LF53MJ.js";
|
|
23
23
|
import {
|
|
24
24
|
useDataViewsCopy
|
|
25
25
|
} from "./chunk-KHG57NAE.js";
|
|
26
26
|
import {
|
|
27
27
|
DataGrid
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-4B5WSVS7.js";
|
|
29
29
|
import {
|
|
30
30
|
default as default2
|
|
31
31
|
} from "./chunk-6DPAWXZ3.js";
|
|
@@ -274,4 +274,4 @@ function GridMain(props) {
|
|
|
274
274
|
export {
|
|
275
275
|
GridMain
|
|
276
276
|
};
|
|
277
|
-
//# sourceMappingURL=chunk-
|
|
277
|
+
//# sourceMappingURL=chunk-L3CQTVFU.js.map
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-MPYIEIBA.js";
|
|
14
14
|
import {
|
|
15
15
|
GridMain
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-L3CQTVFU.js";
|
|
17
17
|
import {
|
|
18
18
|
DataViewsPagination
|
|
19
19
|
} from "./chunk-GPROISHG.js";
|
|
@@ -26,17 +26,17 @@ import {
|
|
|
26
26
|
} from "./chunk-KX75HM5U.js";
|
|
27
27
|
import {
|
|
28
28
|
ScopeTabsSlot
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ESW4Z5I7.js";
|
|
30
30
|
import {
|
|
31
31
|
ShellToolbar
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YK4ZG5Y4.js";
|
|
33
33
|
import {
|
|
34
34
|
togglePillValues
|
|
35
35
|
} from "./chunk-UWCMMK2T.js";
|
|
36
36
|
import {
|
|
37
37
|
DataViewsLayoutProvider,
|
|
38
38
|
useDataViewsLayout
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-I2LF53MJ.js";
|
|
40
40
|
import {
|
|
41
41
|
useDataViewsCopy
|
|
42
42
|
} from "./chunk-KHG57NAE.js";
|
|
@@ -238,4 +238,4 @@ function GridShell(props) {
|
|
|
238
238
|
export {
|
|
239
239
|
GridShell
|
|
240
240
|
};
|
|
241
|
-
//# sourceMappingURL=chunk-
|
|
241
|
+
//# sourceMappingURL=chunk-MT7XMJUJ.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-MKJ4FMEF.js";
|
|
4
4
|
import {
|
|
5
5
|
DataViewsDisplayPanel
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-II7Z5UB6.js";
|
|
7
7
|
import {
|
|
8
8
|
renderBulkActions
|
|
9
9
|
} from "./chunk-UWCMMK2T.js";
|
|
@@ -136,4 +136,4 @@ function GridToolbar(props) {
|
|
|
136
136
|
export {
|
|
137
137
|
GridToolbar
|
|
138
138
|
};
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
139
|
+
//# sourceMappingURL=chunk-MYCR7FMI.js.map
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
} from "./chunk-YKCAJ2TN.js";
|
|
8
8
|
|
|
9
9
|
// src/tokens/density-overrides.navigation.ts
|
|
10
|
-
import
|
|
10
|
+
import generateUtilityClass from "@mui/material/generateUtilityClass/index.js";
|
|
11
11
|
var toggleButtonRootPadding = ({ theme }) => ({
|
|
12
12
|
padding: rem(theme, 11),
|
|
13
13
|
borderRadius: fieldRadius(theme)
|
|
@@ -46,9 +46,10 @@ function tabDensityOverrides() {
|
|
|
46
46
|
}
|
|
47
47
|
var isDefaultTableCellPadding = (padding) => padding === void 0 || padding === "normal";
|
|
48
48
|
var tableCellRootPadding = ({ theme, ownerState }) => isDefaultTableCellPadding(ownerState?.padding) ? { padding: rem(theme, 16) } : {};
|
|
49
|
+
var TABLE_CELL_PADDING_CHECKBOX = generateUtilityClass("MuiTableCell", "paddingCheckbox");
|
|
49
50
|
var tableCellSmallPadding = ({ theme, ownerState }) => {
|
|
50
51
|
const style = {
|
|
51
|
-
[`&.${
|
|
52
|
+
[`&.${TABLE_CELL_PADDING_CHECKBOX}`]: { padding: rems(theme, 0, 12, 0, 16) }
|
|
52
53
|
};
|
|
53
54
|
if (isDefaultTableCellPadding(ownerState?.padding)) style.padding = rems(theme, 6, 16);
|
|
54
55
|
return style;
|
|
@@ -129,4 +130,4 @@ export {
|
|
|
129
130
|
sliderDensityOverrides,
|
|
130
131
|
tabsIndicatorDensityOverrides
|
|
131
132
|
};
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
133
|
+
//# sourceMappingURL=chunk-NP6SHLQ3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/tokens/density-overrides.navigation.ts"],"sourcesContent":["import generateUtilityClass from '@mui/material/generateUtilityClass/index.js';\nimport type { Components, CSSObject, Theme } from '@mui/material/styles/index.js';\n\nimport { fieldRadius } from './field-radius';\nimport { rem, rems } from './relative';\n\n/**\n * TOGGLEBUTTON / TAB / TABLECELL / PAGINATIONITEM / SLIDER GEOMETRY,\n * DENSITY-AWARE (FUT-2768).\n *\n * The remainder of the fixed-px geometry the density audit catalogued, none\n * of it hard-coded in `@12-apps/ui`'s own source. Verified against the\n * installed `@mui/material@6.5.0` source; each goes through the SAME\n * per-size/per-slot `overridesResolver` key MUI itself resolves\n * (`iconButtonDensityOverrides`/`chipDensityOverrides`'s own mechanism), so a\n * theme value composes with MUI's baked-in `variants` instead of replacing\n * them outright:\n *\n * - `ToggleButton`: `padding: 11/7/15` at medium(root)/small/large — same\n * `root`/`sizeSmall`/`sizeLarge` shape as `iconButtonDensityOverrides`. The\n * `root` slot ALSO carries `theme.fieldRadius` (FUT-2967, `field-radius.ts`)\n * — see the note at the end of this docblock.\n * - `Tab`: `minHeight: 48`, `padding: '12px 16px'` on the root (via `rems()`).\n * The icon+label combo (`minHeight: 72`, `paddingTop`/`Bottom: 9`) is a\n * SEPARATE MUI variant, exposed as the `labelIcon` key.\n * - `TableCell`: `padding: 16` on the root, `'6px 16px'` at small, nested\n * inside it `'0 12px 0 16px'` on the small+checkbox combo — all gated on\n * `ownerState.padding === 'normal'` (MUI's default): `checkbox`/`none` are\n * separate variants with their OWN unscaled padding (`'0 0 0 4px'`/`0`) an\n * unconditional rule clobbered at every size but small (FUT-2861 review —\n * the SAME Lesson-1 clobber the ellipsis fix above avoids, missed here).\n * `@12-apps/ui`'s own `Table` (FUT-2769) wins regardless (two classes deep\n * under its styled root); this reaches a BARE `<TableCell>`.\n * - `PaginationItem`: `minWidth/height: 32/26/40` at medium(root)/small/large.\n * The ellipsis shares the SAME slot and `minWidth` but has NO `height` of\n * its own (`'auto'`), gated on `ownerState.type` being neither\n * `'start-ellipsis'` nor `'end-ellipsis'` — skipping it would force a\n * height onto the ellipsis (Lesson 1).\n * - `Slider`: rail `height: 4/2` at `orientation=\"horizontal\"`/`size=\"small\"`\n * — gated on `ownerState.orientation` since the SAME key answers for either\n * axis (MUI sets `height` horizontal / `width` vertical, leaving the other\n * `'100%'`). Thumb `20×20`/`12×12` needs no gate. `@12-apps/ui`'s own\n * `Slider` already sets rail/thumb size through `rem()` and never forwards\n * `size` — a no-op THERE, reaches a BARE `<Slider>`. The thumb's ring and\n * the value-label offset were checked and left OUT — that story's own doc.\n *\n * `Avatar` is NOT in this file: `@12-apps/ui`'s own `Avatar` wraps `MuiAvatar`\n * in a `StyledAvatar` that ALREADY sets `width`/`height` through\n * `rem(theme, boxPx(size))` (`40` at `md`) — higher specificity than any\n * `MuiAvatar.styleOverrides.root`, dead code here, so it ships none.\n *\n * PADDING is geometry-neutral at `normal` — the same 11/7/15 literals\n * `ToggleButton.js` hard-codes; each slot a MODULE-LEVEL function, as above.\n *\n * `MuiToggleButton.root` is the one exception, and it is NOT neutral even at\n * `normal` (FUT-2967): `fieldRadiusOverrides` (`field-radius.ts`) and this\n * callback both style `MuiToggleButton.root` — the radius override's own\n * `{ borderRadius }` and this one's `{ padding }` — and a `styleOverrides`\n * slot two sources touch is replaced WHOLESALE by whichever is spread last\n * (`mergeMuiComponents`), so a theme built with density silently dropped the\n * field radius off a bare `<ToggleButton>` the moment density's `root`\n * callback (this one) was the later source. Fixed AT THE SOURCE rather than\n * in the merge: this MODULE-LEVEL callback (still a single, stable reference,\n * so two builds still compare equal) reads `theme.fieldRadius` itself and\n * returns the corner alongside the padding, so there is no second `root`\n * value for a later merge to lose. The consequence is deliberate and worth\n * naming: a host that applies ONLY `toggleButtonDensityOverrides()` to a\n * plain MUI theme now gets the FIELD radius (8px, `DEFAULT_FIELD_RADIUS`) on\n * `<ToggleButton>`, not MUI's own `shape.borderRadius` (4px) — matching the\n * fields beside it, not a MUI default nothing else in this package still\n * draws with.\n */\n\nconst toggleButtonRootPadding = ({ theme }: { theme: Theme }): CSSObject => ({\n padding: rem(theme, 11),\n borderRadius: fieldRadius(theme),\n});\nconst toggleButtonSmallPadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 7) });\nconst toggleButtonLargePadding = ({ theme }: { theme: Theme }): CSSObject => ({ padding: rem(theme, 15) });\n\n/** `MuiToggleButton`'s own padding, at every size MUI has. */\nexport function toggleButtonDensityOverrides(): Components<Theme> {\n return {\n MuiToggleButton: {\n styleOverrides: {\n root: toggleButtonRootPadding,\n sizeSmall: toggleButtonSmallPadding,\n sizeLarge: toggleButtonLargePadding,\n },\n },\n };\n}\n\nconst tabRootGeometry = ({ theme }: { theme: Theme }): CSSObject => ({\n minHeight: rem(theme, 48),\n padding: rems(theme, 12, 16),\n});\nconst tabLabelIconGeometry = ({ theme }: { theme: Theme }): CSSObject => ({\n minHeight: rem(theme, 72),\n paddingTop: rem(theme, 9),\n paddingBottom: rem(theme, 9),\n});\n\n/** `MuiTab`'s own root height/padding, and the icon+label combo's taller box. */\nexport function tabDensityOverrides(): Components<Theme> {\n return {\n MuiTab: {\n styleOverrides: {\n root: tabRootGeometry,\n labelIcon: tabLabelIconGeometry,\n },\n },\n };\n}\n\ninterface TableCellOwnerStateForOverrides {\n padding?: 'normal' | 'checkbox' | 'none';\n}\ntype TableCellStyleFn = (props: { theme: Theme; ownerState?: TableCellOwnerStateForOverrides }) => CSSObject;\nconst isDefaultTableCellPadding = (padding: TableCellOwnerStateForOverrides['padding']): boolean =>\n padding === undefined || padding === 'normal';\n\nconst tableCellRootPadding: TableCellStyleFn = ({ theme, ownerState }) =>\n isDefaultTableCellPadding(ownerState?.padding) ? { padding: rem(theme, 16) } : {};\n\n/**\n * Built with `generateUtilityClass`, not imported from\n * `@mui/material/TableCell`'s own `tableCellClasses` — the same generated\n * string (`TableCell.js` builds `tableCellClasses` from this exact helper),\n * but without pulling `MuiTableCell` onto the critical path of every host\n * that imports `densityThemeOptions`, the same reason `density-overrides.ts`'s\n * `CHIP_LABEL` and `density-overrides.selection.ts`'s `SWITCH_*` constants\n * are built this way instead of read off the component's own classes module\n * (FUT-2993). It also honours a host's own `ClassNameGenerator.configure`,\n * which a hand-typed `.MuiTableCell-paddingCheckbox` string would not.\n */\nconst TABLE_CELL_PADDING_CHECKBOX = generateUtilityClass('MuiTableCell', 'paddingCheckbox');\n\nconst tableCellSmallPadding: TableCellStyleFn = ({ theme, ownerState }) => {\n const style: CSSObject = {\n [`&.${TABLE_CELL_PADDING_CHECKBOX}`]: { padding: rems(theme, 0, 12, 0, 16) },\n };\n if (isDefaultTableCellPadding(ownerState?.padding)) style.padding = rems(theme, 6, 16);\n return style;\n};\n\n/** Reaches a BARE `<TableCell>` only — module doc comment above. */\nexport function tableCellDensityOverrides(): Components<Theme> {\n return {\n MuiTableCell: {\n styleOverrides: {\n root: tableCellRootPadding,\n sizeSmall: tableCellSmallPadding,\n },\n },\n };\n}\n\n/** The `ownerState` field that tells the ellipsis item apart from a real button. */\ninterface PaginationItemOwnerStateForOverrides {\n type?: 'page' | 'first' | 'last' | 'start-ellipsis' | 'end-ellipsis' | 'previous' | 'next';\n}\ntype PaginationItemStyleFn = (props: {\n theme: Theme;\n ownerState?: PaginationItemOwnerStateForOverrides;\n}) => CSSObject;\n\nconst isPaginationEllipsis = (type: PaginationItemOwnerStateForOverrides['type']): boolean =>\n type === 'start-ellipsis' || type === 'end-ellipsis';\n\n/** `minWidth` always; `height` only off the ellipsis, which has none of its own. */\nfunction paginationItemGeometryAt(px: number): PaginationItemStyleFn {\n return ({ theme, ownerState }) => {\n const style: CSSObject = { minWidth: rem(theme, px) };\n if (!isPaginationEllipsis(ownerState?.type)) style.height = rem(theme, px);\n return style;\n };\n}\nconst paginationItemRootGeometry = paginationItemGeometryAt(32);\nconst paginationItemSmallGeometry = paginationItemGeometryAt(26);\nconst paginationItemLargeGeometry = paginationItemGeometryAt(40);\n\n/**\n * `MuiPaginationItem`'s own `minWidth`/`height`, at every size MUI has —\n * `height` skipped on the ellipsis item, which has none of its own (`auto`).\n */\nexport function paginationItemDensityOverrides(): Components<Theme> {\n return {\n MuiPaginationItem: {\n styleOverrides: {\n root: paginationItemRootGeometry,\n sizeSmall: paginationItemSmallGeometry,\n sizeLarge: paginationItemLargeGeometry,\n },\n },\n };\n}\n\n/** The `ownerState` field that tells which axis the rail's `height`/`4` reads as. */\ninterface SliderOwnerStateForOverrides {\n orientation?: 'horizontal' | 'vertical';\n}\ntype SliderStyleFn = (props: { theme: Theme; ownerState?: SliderOwnerStateForOverrides }) => CSSObject;\n\n/** The rail's `4`/`2` reads as `height` for a horizontal slider, `width` for a vertical one. */\nfunction sliderRailAxisAt(px: number): SliderStyleFn {\n return ({ theme, ownerState }) =>\n ownerState?.orientation === 'vertical' ? { width: rem(theme, px) } : { height: rem(theme, px) };\n}\nconst sliderRootGeometry = sliderRailAxisAt(4);\nconst sliderSmallGeometry = sliderRailAxisAt(2);\nconst sliderThumbGeometry = ({ theme }: { theme: Theme }): CSSObject => ({\n width: rem(theme, 20),\n height: rem(theme, 20),\n});\nconst sliderThumbSmallGeometry = ({ theme }: { theme: Theme }): CSSObject => ({\n width: rem(theme, 12),\n height: rem(theme, 12),\n});\n\n/** `MuiSlider`'s own rail thickness (root/sizeSmall) and thumb box (thumb/thumbSizeSmall). */\nexport function sliderDensityOverrides(): Components<Theme> {\n return {\n MuiSlider: {\n styleOverrides: {\n root: sliderRootGeometry,\n sizeSmall: sliderSmallGeometry,\n thumb: sliderThumbGeometry,\n thumbSizeSmall: sliderThumbSmallGeometry,\n },\n },\n };\n}\n\n/**\n * `MuiTabs`' own indicator thickness (`height: 2` horizontal, `width: 2`\n * vertical) — one short of `Tab` in the ticket's own literal list, added\n * after a FUT-2767-review pass over state/orientation-gated literals; same\n * orientation gate as the Slider rail. `@12-apps/ui`'s own `Tabs` draws its\n * OWN 3px indicator through `rem()` already, blocking THIS override there —\n * `tabDensityOverrides` reaches `Tab.root`'s `minHeight` instead (both\n * measured in `density-wrapper-reach.test.stories.tsx`).\n */\ninterface TabsIndicatorOwnerStateForOverrides {\n orientation?: 'horizontal' | 'vertical';\n}\ntype TabsIndicatorStyleFn = (props: {\n theme: Theme;\n ownerState?: TabsIndicatorOwnerStateForOverrides;\n}) => CSSObject;\n\nconst tabsIndicatorAxisAt: TabsIndicatorStyleFn = ({ theme, ownerState }) =>\n ownerState?.orientation === 'vertical' ? { width: rem(theme, 2) } : { height: rem(theme, 2) };\n\n/** `MuiTabs`' own indicator thickness, by orientation. */\nexport function tabsIndicatorDensityOverrides(): Components<Theme> {\n return {\n MuiTabs: {\n styleOverrides: {\n indicator: tabsIndicatorAxisAt,\n },\n },\n };\n}\n"],"mappings":"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","names":[]}
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
} from "./chunk-G3E66C6J.js";
|
|
4
4
|
import {
|
|
5
5
|
useDensity
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SJ4IAZ3V.js";
|
|
7
7
|
import {
|
|
8
8
|
rem,
|
|
9
9
|
remPx
|
|
@@ -203,4 +203,4 @@ export {
|
|
|
203
203
|
mapThemeToGridDensity,
|
|
204
204
|
useDataGridModel
|
|
205
205
|
};
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
206
|
+
//# sourceMappingURL=chunk-OWILUXWM.js.map
|
|
@@ -16,11 +16,20 @@ function barSlots(destinations, hasMore, hasPrimary) {
|
|
|
16
16
|
if (hasPrimary) slots.splice(Math.floor(slots.length / 2), 0, { kind: "primary" });
|
|
17
17
|
return slots;
|
|
18
18
|
}
|
|
19
|
+
function isMenu(primary) {
|
|
20
|
+
return primary !== void 0 && "groups" in primary;
|
|
21
|
+
}
|
|
22
|
+
function destinationState(destination) {
|
|
23
|
+
const active = destination.active === true;
|
|
24
|
+
return { current: active && destination.href !== void 0, lit: active && destination.dimmed !== true };
|
|
25
|
+
}
|
|
19
26
|
|
|
20
27
|
export {
|
|
21
28
|
shownCount,
|
|
22
29
|
menuCount,
|
|
23
30
|
menuActive,
|
|
24
|
-
barSlots
|
|
31
|
+
barSlots,
|
|
32
|
+
isMenu,
|
|
33
|
+
destinationState
|
|
25
34
|
};
|
|
26
|
-
//# sourceMappingURL=chunk-
|
|
35
|
+
//# sourceMappingURL=chunk-P3GBXE73.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.helpers.ts"],"sourcesContent":["import type { SectionNavAction, SectionNavDestination, SectionNavMenu } from './SectionNav.types';\n\n/** A count worth drawing: positive and finite. Zero and \"unknown\" draw nothing. */\nexport function shownCount(count: number | undefined): number | undefined {\n return count !== undefined && Number.isFinite(count) && count > 0 ? count : undefined;\n}\n\n/**\n * The \"more\" slot's badge: its entries' counts, rolled up.\n *\n * The same reason a folded sidebar parent shows its children's counts — the\n * sheet starts closed, so a count only visible once it is opened is one nobody\n * sees.\n */\nexport function menuCount(menu: SectionNavMenu | undefined): number | undefined {\n if (!menu) return undefined;\n const total = menu.groups\n .flatMap((group) => group.entries)\n .reduce((sum, entry) => sum + (shownCount(entry.badge) ?? 0), 0);\n return shownCount(total);\n}\n\n/** Is the viewer on one of this menu's entries? Then its slot reads as current. */\nexport function menuActive(menu: SectionNavMenu | undefined): boolean {\n return menu?.groups.some((group) => group.entries.some((entry) => entry.active === true)) ?? false;\n}\n\n/** What one bar slot holds, in left-to-right order. */\nexport type BarSlot =\n | { kind: 'destination'; destination: SectionNavDestination }\n | { kind: 'more' }\n | { kind: 'primary' };\n\n/**\n * The bar's slots: the destinations, then `more`, with `primary` in the MIDDLE.\n *\n * The middle is where a thumb rests and where a raised button reads as the\n * one thing this bar is for. With four slots it lands between the second and\n * the third; with an odd count it takes the lower middle, so the heavier side\n * is the right one, under the thumb of a right-handed phone.\n */\nexport function barSlots(\n destinations: readonly SectionNavDestination[],\n hasMore: boolean,\n hasPrimary: boolean,\n): BarSlot[] {\n const slots: BarSlot[] = destinations.map((destination) => ({ kind: 'destination', destination }));\n if (hasMore) slots.push({ kind: 'more' });\n if (hasPrimary) slots.splice(Math.floor(slots.length / 2), 0, { kind: 'primary' });\n return slots;\n}\n\n/** A primary that opens a sheet, as opposed to one that acts on tap. */\nexport function isMenu(primary: SectionNavMenu | SectionNavAction | undefined): primary is SectionNavMenu {\n return primary !== undefined && 'groups' in primary;\n}\n\n/**\n * How a destination reads. `current` is `aria-current=\"page\"` and belongs to a\n * LINK only — an action slot that is ON reports `aria-pressed` instead. `lit`\n * is the look, and a `dimmed` slot is never lit: it says \"not now\".\n */\nexport function destinationState(destination: SectionNavDestination): { current: boolean; lit: boolean } {\n const active = destination.active === true;\n return { current: active && destination.href !== undefined, lit: active && destination.dimmed !== true };\n}\n"],"mappings":";AAGO,SAAS,WAAW,OAA+C;AACxE,SAAO,UAAU,UAAa,OAAO,SAAS,KAAK,KAAK,QAAQ,IAAI,QAAQ;AAC9E;AASO,SAAS,UAAU,MAAsD;AAC9E,MAAI,CAAC,KAAM,QAAO;AAClB,QAAM,QAAQ,KAAK,OAChB,QAAQ,CAAC,UAAU,MAAM,OAAO,EAChC,OAAO,CAAC,KAAK,UAAU,OAAO,WAAW,MAAM,KAAK,KAAK,IAAI,CAAC;AACjE,SAAO,WAAW,KAAK;AACzB;AAGO,SAAS,WAAW,MAA2C;AACpE,SAAO,MAAM,OAAO,KAAK,CAAC,UAAU,MAAM,QAAQ,KAAK,CAAC,UAAU,MAAM,WAAW,IAAI,CAAC,KAAK;AAC/F;AAgBO,SAAS,SACd,cACA,SACA,YACW;AACX,QAAM,QAAmB,aAAa,IAAI,CAAC,iBAAiB,EAAE,MAAM,eAAe,YAAY,EAAE;AACjG,MAAI,QAAS,OAAM,KAAK,EAAE,MAAM,OAAO,CAAC;AACxC,MAAI,WAAY,OAAM,OAAO,KAAK,MAAM,MAAM,SAAS,CAAC,GAAG,GAAG,EAAE,MAAM,UAAU,CAAC;AACjF,SAAO;AACT;AAGO,SAAS,OAAO,SAAmF;AACxG,SAAO,YAAY,UAAa,YAAY;AAC9C;AAOO,SAAS,iBAAiB,aAAwE;AACvG,QAAM,SAAS,YAAY,WAAW;AACtC,SAAO,EAAE,SAAS,UAAU,YAAY,SAAS,QAAW,KAAK,UAAU,YAAY,WAAW,KAAK;AACzG;","names":[]}
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
} from "./chunk-L3MRRAZM.js";
|
|
27
27
|
import {
|
|
28
28
|
useDensity
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-SJ4IAZ3V.js";
|
|
30
30
|
import {
|
|
31
31
|
rem
|
|
32
32
|
} from "./chunk-YKCAJ2TN.js";
|
|
@@ -311,4 +311,4 @@ Table.displayName = "Table";
|
|
|
311
311
|
export {
|
|
312
312
|
Table
|
|
313
313
|
};
|
|
314
|
-
//# sourceMappingURL=chunk-
|
|
314
|
+
//# sourceMappingURL=chunk-P7YUOH2E.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GridShell
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-MT7XMJUJ.js";
|
|
4
4
|
import {
|
|
5
5
|
useDataViewsState
|
|
6
6
|
} from "./chunk-4A535L3N.js";
|
|
@@ -27,4 +27,4 @@ function DataViewsGrid(props) {
|
|
|
27
27
|
export {
|
|
28
28
|
DataViewsGrid
|
|
29
29
|
};
|
|
30
|
-
//# sourceMappingURL=chunk-
|
|
30
|
+
//# sourceMappingURL=chunk-QWTPK3FT.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
SettingSwitchBlock,
|
|
6
6
|
useSettingSwitchIds
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-3U45DRNS.js";
|
|
8
8
|
import {
|
|
9
9
|
flatStyles,
|
|
10
10
|
surfaceStyles,
|
|
@@ -44,4 +44,4 @@ SettingToggle.displayName = "SettingToggle";
|
|
|
44
44
|
export {
|
|
45
45
|
SettingToggle
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-RCJOTNIW.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
CountedIcon,
|
|
5
5
|
controlProps,
|
|
6
6
|
focusRing
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-A436VORP.js";
|
|
8
8
|
import {
|
|
9
9
|
Drawer,
|
|
10
10
|
DrawerContent,
|
|
@@ -26,13 +26,14 @@ function GridEntry({ entry, linkComponent, copy, testId, onDone }) {
|
|
|
26
26
|
...controlProps({
|
|
27
27
|
href: entry.href,
|
|
28
28
|
linkComponent,
|
|
29
|
+
inert: entry.disabled === true,
|
|
29
30
|
onClick: () => {
|
|
30
31
|
entry.onSelect?.();
|
|
31
32
|
onDone();
|
|
32
33
|
}
|
|
33
34
|
}),
|
|
34
35
|
"aria-current": entry.active ? "page" : void 0,
|
|
35
|
-
"data-testid": `${testId}-entry-${entry.id}`,
|
|
36
|
+
"data-testid": entry.dataTestId ?? `${testId}-entry-${entry.id}`,
|
|
36
37
|
sx: {
|
|
37
38
|
...CONTROL_RESET,
|
|
38
39
|
...focusRing(theme),
|
|
@@ -48,7 +49,8 @@ function GridEntry({ entry, linkComponent, copy, testId, onDone }) {
|
|
|
48
49
|
textAlign: "center",
|
|
49
50
|
bgcolor: entry.active ? "action.selected" : "action.hover",
|
|
50
51
|
color: entry.active ? "primary.main" : "text.primary",
|
|
51
|
-
"& svg": { color: "primary.main" }
|
|
52
|
+
"& svg": { color: "primary.main" },
|
|
53
|
+
"&:disabled": { color: "text.disabled", "& svg": { color: "text.disabled" } }
|
|
52
54
|
},
|
|
53
55
|
children: [
|
|
54
56
|
/* @__PURE__ */ jsx(CountedIcon, { icon: entry.icon, count: entry.badge, label: copy.badge, testId: `${testId}-badge-${entry.id}` }),
|
|
@@ -65,13 +67,14 @@ function ListEntry({ entry, linkComponent, copy, testId, onDone }) {
|
|
|
65
67
|
...controlProps({
|
|
66
68
|
href: entry.href,
|
|
67
69
|
linkComponent,
|
|
70
|
+
inert: entry.disabled === true,
|
|
68
71
|
onClick: () => {
|
|
69
72
|
entry.onSelect?.();
|
|
70
73
|
onDone();
|
|
71
74
|
}
|
|
72
75
|
}),
|
|
73
76
|
"aria-current": entry.active ? "page" : void 0,
|
|
74
|
-
"data-testid": `${testId}-entry-${entry.id}`,
|
|
77
|
+
"data-testid": entry.dataTestId ?? `${testId}-entry-${entry.id}`,
|
|
75
78
|
sx: {
|
|
76
79
|
...CONTROL_RESET,
|
|
77
80
|
...focusRing(theme),
|
|
@@ -85,7 +88,8 @@ function ListEntry({ entry, linkComponent, copy, testId, onDone }) {
|
|
|
85
88
|
borderRadius: 1.5,
|
|
86
89
|
textAlign: "start",
|
|
87
90
|
bgcolor: entry.active ? "action.selected" : "action.hover",
|
|
88
|
-
"& svg": { color: "primary.main" }
|
|
91
|
+
"& svg": { color: "primary.main" },
|
|
92
|
+
"&:disabled": { color: "text.disabled", "& svg": { color: "text.disabled" } }
|
|
89
93
|
},
|
|
90
94
|
children: [
|
|
91
95
|
/* @__PURE__ */ jsx(CountedIcon, { icon: entry.icon, count: entry.badge, label: copy.badge, testId: `${testId}-badge-${entry.id}` }),
|
|
@@ -171,4 +175,4 @@ function SectionNavSheet({
|
|
|
171
175
|
export {
|
|
172
176
|
SectionNavSheet
|
|
173
177
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
178
|
+
//# sourceMappingURL=chunk-S4ZUZ6DS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/SectionNav/SectionNav.sheet.tsx"],"sourcesContent":["import Typography from '@mui/material/Typography/index.js';\nimport { useTheme } from '@mui/material/styles/index.js';\nimport type { ElementType } from 'react';\n\nimport { rem } from '../../../tokens/scales';\nimport { Drawer, DrawerContent, DrawerHeader } from '../../layout/Drawer';\n\nimport { Box, CONTROL_RESET, CountedIcon, controlProps, focusRing } from './SectionNav.parts';\nimport type { SectionNavEntry, SectionNavGroup, SectionNavMenu } from './SectionNav.types';\nimport type { SectionNavCopy } from '../../../copy';\n\ninterface EntryProps {\n entry: SectionNavEntry;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n onDone: () => void;\n}\n\n/** A tile in a `grid` group: icon over a short label. */\nfunction GridEntry({ entry, linkComponent, copy, testId, onDone }: EntryProps): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...controlProps({\n href: entry.href,\n linkComponent,\n inert: entry.disabled === true,\n onClick: () => {\n entry.onSelect?.();\n onDone();\n },\n })}\n aria-current={entry.active ? 'page' : undefined}\n data-testid={entry.dataTestId ?? `${testId}-entry-${entry.id}`}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n gap: 0.75,\n minHeight: rem(theme, 76),\n px: 0.5,\n py: 1,\n borderRadius: 1.5,\n textAlign: 'center',\n bgcolor: entry.active ? 'action.selected' : 'action.hover',\n color: entry.active ? 'primary.main' : 'text.primary',\n '& svg': { color: 'primary.main' },\n '&:disabled': { color: 'text.disabled', '& svg': { color: 'text.disabled' } },\n }}\n >\n <CountedIcon icon={entry.icon} count={entry.badge} label={copy.badge} testId={`${testId}-badge-${entry.id}`} />\n <Typography component=\"span\" variant=\"caption\" sx={{ lineHeight: 1.2, fontWeight: entry.active ? 700 : 500 }}>\n {entry.label}\n </Typography>\n </Box>\n );\n}\n\n/** A row in a `list` group: icon, label, and the description under it. */\nfunction ListEntry({ entry, linkComponent, copy, testId, onDone }: EntryProps): React.JSX.Element {\n const theme = useTheme();\n return (\n <Box\n {...controlProps({\n href: entry.href,\n linkComponent,\n inert: entry.disabled === true,\n onClick: () => {\n entry.onSelect?.();\n onDone();\n },\n })}\n aria-current={entry.active ? 'page' : undefined}\n data-testid={entry.dataTestId ?? `${testId}-entry-${entry.id}`}\n sx={{\n ...CONTROL_RESET,\n ...focusRing(theme),\n display: 'flex',\n alignItems: 'center',\n gap: 1.5,\n width: '100%',\n minHeight: rem(theme, 52),\n px: 1.5,\n py: 1,\n borderRadius: 1.5,\n textAlign: 'start',\n bgcolor: entry.active ? 'action.selected' : 'action.hover',\n '& svg': { color: 'primary.main' },\n '&:disabled': { color: 'text.disabled', '& svg': { color: 'text.disabled' } },\n }}\n >\n <CountedIcon icon={entry.icon} count={entry.badge} label={copy.badge} testId={`${testId}-badge-${entry.id}`} />\n <Box component=\"span\" sx={{ display: 'flex', flexDirection: 'column', minWidth: 0 }}>\n <Typography component=\"span\" variant=\"body2\" sx={{ fontWeight: 600 }}>\n {entry.label}\n </Typography>\n {entry.description ? (\n <Typography component=\"span\" variant=\"caption\" color=\"text.secondary\">\n {entry.description}\n </Typography>\n ) : null}\n </Box>\n </Box>\n );\n}\n\n/** One titled run of entries, as tiles or rows. */\nfunction SheetGroup({\n group,\n linkComponent,\n copy,\n testId,\n onDone,\n}: Omit<EntryProps, 'entry'> & { group: SectionNavGroup }): React.JSX.Element {\n const grid = group.layout === 'grid';\n const Entry = grid ? GridEntry : ListEntry;\n return (\n <Box component=\"section\" data-testid={`${testId}-group-${group.id}`} sx={{ display: 'flex', flexDirection: 'column', gap: 1 }}>\n {group.title ? (\n <Typography variant=\"overline\" color=\"text.secondary\" sx={{ lineHeight: 1.6 }}>\n {group.title}\n </Typography>\n ) : null}\n <Box\n sx={\n grid\n ? { display: 'grid', gridTemplateColumns: 'repeat(3, minmax(0, 1fr))', gap: 1 }\n : { display: 'flex', flexDirection: 'column', gap: 0.75 }\n }\n >\n {group.entries.map((entry) => (\n <Entry key={entry.id} entry={entry} linkComponent={linkComponent} copy={copy} testId={testId} onDone={onDone} />\n ))}\n </Box>\n </Box>\n );\n}\n\n/**\n * A menu opened from the bar: a bottom sheet over the page.\n *\n * Choosing an entry closes it — a link has somewhere to go and an action has\n * something to do, and neither wants the sheet still covering the screen.\n */\nexport function SectionNavSheet({\n menu,\n open,\n onClose,\n linkComponent,\n copy,\n testId,\n bottomOffset,\n}: {\n menu: SectionNavMenu;\n open: boolean;\n onClose: () => void;\n linkComponent: ElementType | undefined;\n copy: SectionNavCopy;\n testId: string;\n /** How far above the viewport's foot the sheet stops — the bar's own height, so the bar stays visible. */\n bottomOffset: string;\n}): React.JSX.Element {\n const theme = useTheme();\n return (\n <Drawer\n open={open}\n onClose={onClose}\n anchor=\"bottom\"\n height=\"auto\"\n dataTestId={testId}\n paperSx={{\n borderTopLeftRadius: rem(theme, Number(theme.shape.borderRadius) * 3),\n borderTopRightRadius: rem(theme, Number(theme.shape.borderRadius) * 3),\n maxHeight: `calc(85dvh - ${bottomOffset})`,\n bottom: bottomOffset,\n }}\n >\n {/* The library Drawer names nothing: the dialog role and its name live\n here, around everything the focus trap holds. */}\n <Box\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={menu.title}\n sx={{ display: 'flex', flexDirection: 'column', flex: 1, minHeight: 0 }}\n >\n <DrawerHeader onClose={onClose} closeLabel={copy.close} dataTestId={`${testId}-header`}>\n {menu.title}\n </DrawerHeader>\n <DrawerContent>\n <Box sx={{ display: 'flex', flexDirection: 'column', gap: 2 }}>\n {menu.groups.map((group) => (\n <SheetGroup\n key={group.id}\n group={group}\n linkComponent={linkComponent}\n copy={copy}\n testId={testId}\n onDone={onClose}\n />\n ))}\n </Box>\n </DrawerContent>\n </Box>\n </Drawer>\n );\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
chipDensityOverrides,
|
|
3
3
|
iconButtonDensityOverrides
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-25MSGLNU.js";
|
|
5
5
|
import {
|
|
6
6
|
checkboxRadioDensityOverrides,
|
|
7
7
|
switchDensityOverrides
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-GAXHYRX6.js";
|
|
9
9
|
import {
|
|
10
10
|
paginationItemDensityOverrides,
|
|
11
11
|
sliderDensityOverrides,
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
tableCellDensityOverrides,
|
|
14
14
|
tabsIndicatorDensityOverrides,
|
|
15
15
|
toggleButtonDensityOverrides
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-NP6SHLQ3.js";
|
|
17
17
|
import {
|
|
18
18
|
fieldOverrides,
|
|
19
19
|
mergeMuiComponents
|
|
@@ -66,4 +66,4 @@ export {
|
|
|
66
66
|
useDensity,
|
|
67
67
|
densityThemeOptions
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=chunk-
|
|
69
|
+
//# sourceMappingURL=chunk-SJ4IAZ3V.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RAIL_GAP_PX
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-5ZBFADBL.js";
|
|
4
4
|
import {
|
|
5
5
|
DescriptionItem
|
|
6
6
|
} from "./chunk-DSHM7VN6.js";
|
|
@@ -226,4 +226,4 @@ export {
|
|
|
226
226
|
ListCardActions,
|
|
227
227
|
ListCardTail
|
|
228
228
|
};
|
|
229
|
-
//# sourceMappingURL=chunk-
|
|
229
|
+
//# sourceMappingURL=chunk-TH7RBREI.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
SectionNavBar
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-VELGOFCL.js";
|
|
4
4
|
import {
|
|
5
5
|
SectionNavRail
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HKEBTPKY.js";
|
|
7
7
|
|
|
8
8
|
// src/components/navigation/SectionNav/SectionNav.tsx
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -52,4 +52,4 @@ function SectionNav({
|
|
|
52
52
|
export {
|
|
53
53
|
SectionNav
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-VAO63IIP.js.map
|