@omnitron-dev/prism 0.3.1 → 0.3.2
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/README.md +68 -2
- package/THIRD-PARTY-NOTICES.txt +26 -0
- package/dist/accessibility/index.js +2 -0
- package/dist/accessibility/index.js.map +1 -1
- package/dist/auth/index.d.ts +4 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +4 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/blocks/auth-block/guards.d.ts +3 -2
- package/dist/blocks/auth-block/guards.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/dashboard-block.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/types.d.ts +4 -2
- package/dist/blocks/dashboard-block/types.d.ts.map +1 -1
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts +2 -2
- package/dist/blocks/dashboard-block/use-dashboard-block.d.ts.map +1 -1
- package/dist/blocks/data-grid-block/data-grid-block.d.ts.map +1 -1
- package/dist/blocks/data-grid-block/types.d.ts +3 -0
- package/dist/blocks/data-grid-block/types.d.ts.map +1 -1
- package/dist/blocks/index.js +80 -255
- package/dist/blocks/index.js.map +1 -1
- package/dist/chunk-2AB7VGPW.js +447 -0
- package/dist/chunk-2AB7VGPW.js.map +1 -0
- package/dist/{chunk-LOY2NPCO.js → chunk-2E67PQ4T.js} +3 -3
- package/dist/{chunk-LOY2NPCO.js.map → chunk-2E67PQ4T.js.map} +1 -1
- package/dist/chunk-2KG2NI73.js +84 -0
- package/dist/chunk-2KG2NI73.js.map +1 -0
- package/dist/chunk-2UYRW6X3.js +44 -0
- package/dist/chunk-2UYRW6X3.js.map +1 -0
- package/dist/chunk-36C5H56C.js +208 -0
- package/dist/chunk-36C5H56C.js.map +1 -0
- package/dist/chunk-36FOXX25.js +73 -0
- package/dist/chunk-36FOXX25.js.map +1 -0
- package/dist/{chunk-52PQL67Q.js → chunk-3VSM7NZG.js} +18 -15
- package/dist/chunk-3VSM7NZG.js.map +1 -0
- package/dist/{chunk-GUGTDURV.js → chunk-4B2LTPK2.js} +2 -2
- package/dist/{chunk-GUGTDURV.js.map → chunk-4B2LTPK2.js.map} +1 -1
- package/dist/chunk-4HUGZJKU.js +108 -0
- package/dist/chunk-4HUGZJKU.js.map +1 -0
- package/dist/{chunk-PXXPLHIY.js → chunk-4Q5L7LDG.js} +3 -3
- package/dist/{chunk-PXXPLHIY.js.map → chunk-4Q5L7LDG.js.map} +1 -1
- package/dist/{chunk-BRDWQVRT.js → chunk-4R7EZ7GQ.js} +3 -2
- package/dist/chunk-4R7EZ7GQ.js.map +1 -0
- package/dist/chunk-6IANOSMD.js +185 -0
- package/dist/chunk-6IANOSMD.js.map +1 -0
- package/dist/{chunk-YHE7HXSG.js → chunk-7ATBURW2.js} +3 -3
- package/dist/{chunk-YHE7HXSG.js.map → chunk-7ATBURW2.js.map} +1 -1
- package/dist/{chunk-7G5D5PTC.js → chunk-AATAOOSF.js} +4 -4
- package/dist/{chunk-7G5D5PTC.js.map → chunk-AATAOOSF.js.map} +1 -1
- package/dist/chunk-AKLRKCYH.js +128 -0
- package/dist/chunk-AKLRKCYH.js.map +1 -0
- package/dist/chunk-CT46KJOR.js +133 -0
- package/dist/chunk-CT46KJOR.js.map +1 -0
- package/dist/{chunk-LSPFFEJT.js → chunk-D4GFAJAZ.js} +298 -3900
- package/dist/chunk-D4GFAJAZ.js.map +1 -0
- package/dist/{chunk-BJE2AKD4.js → chunk-D5J3KW6Q.js} +3 -2
- package/dist/chunk-D5J3KW6Q.js.map +1 -0
- package/dist/chunk-DEPJRTVT.js +3 -0
- package/dist/{chunk-FU52GL2E.js.map → chunk-DEPJRTVT.js.map} +1 -1
- package/dist/{chunk-472SOF76.js → chunk-DHTYHUYI.js} +85 -107
- package/dist/chunk-DHTYHUYI.js.map +1 -0
- package/dist/{chunk-FF5RF32O.js → chunk-E7WM2RXA.js} +3 -2
- package/dist/chunk-E7WM2RXA.js.map +1 -0
- package/dist/chunk-F6RZ7LW6.js +1271 -0
- package/dist/chunk-F6RZ7LW6.js.map +1 -0
- package/dist/chunk-FOGY3HA4.js +217 -0
- package/dist/chunk-FOGY3HA4.js.map +1 -0
- package/dist/chunk-G2GANYMW.js +139 -0
- package/dist/chunk-G2GANYMW.js.map +1 -0
- package/dist/chunk-I6DILPFE.js +293 -0
- package/dist/chunk-I6DILPFE.js.map +1 -0
- package/dist/{chunk-HOXFSQUV.js → chunk-IRYU3NTG.js} +2 -2
- package/dist/{chunk-HOXFSQUV.js.map → chunk-IRYU3NTG.js.map} +1 -1
- package/dist/chunk-JTIUGPW5.js +284 -0
- package/dist/chunk-JTIUGPW5.js.map +1 -0
- package/dist/{chunk-GUFHFEPZ.js → chunk-JZBSPDED.js} +2 -2
- package/dist/{chunk-GUFHFEPZ.js.map → chunk-JZBSPDED.js.map} +1 -1
- package/dist/{chunk-PFT2BNYO.js → chunk-KPY7TA4D.js} +5 -5
- package/dist/{chunk-PFT2BNYO.js.map → chunk-KPY7TA4D.js.map} +1 -1
- package/dist/{chunk-GMIE6III.js → chunk-LFWKGNCX.js} +50 -623
- package/dist/chunk-LFWKGNCX.js.map +1 -0
- package/dist/chunk-LH4ZZZYB.js +37 -0
- package/dist/chunk-LH4ZZZYB.js.map +1 -0
- package/dist/chunk-NFJ7CPG3.js +13 -0
- package/dist/chunk-NFJ7CPG3.js.map +1 -0
- package/dist/chunk-NFPOIHD4.js +3 -0
- package/dist/{chunk-JSQTYDPG.js.map → chunk-NFPOIHD4.js.map} +1 -1
- package/dist/{chunk-XIXSSI3B.js → chunk-NJM5AVBM.js} +3 -2
- package/dist/chunk-NJM5AVBM.js.map +1 -0
- package/dist/{chunk-4Z5DE5GK.js → chunk-NSNM53WI.js} +133 -115
- package/dist/chunk-NSNM53WI.js.map +1 -0
- package/dist/chunk-NTREGTG7.js +31 -0
- package/dist/chunk-NTREGTG7.js.map +1 -0
- package/dist/{chunk-ADG4HZEP.js → chunk-OKJA6SJM.js} +4 -4
- package/dist/chunk-OKJA6SJM.js.map +1 -0
- package/dist/{chunk-SU3LVQ7N.js → chunk-Q6JDNFSG.js} +11 -226
- package/dist/chunk-Q6JDNFSG.js.map +1 -0
- package/dist/chunk-RPOGINR5.js +115 -0
- package/dist/chunk-RPOGINR5.js.map +1 -0
- package/dist/{chunk-KQ67XB6T.js → chunk-RSWVYIXK.js} +151 -114
- package/dist/chunk-RSWVYIXK.js.map +1 -0
- package/dist/chunk-SSEHL5VP.js +110 -0
- package/dist/chunk-SSEHL5VP.js.map +1 -0
- package/dist/chunk-TEIGUOWN.js +523 -0
- package/dist/chunk-TEIGUOWN.js.map +1 -0
- package/dist/{chunk-AYYFMTMI.js → chunk-TJ7DHXUX.js} +2 -2
- package/dist/{chunk-AYYFMTMI.js.map → chunk-TJ7DHXUX.js.map} +1 -1
- package/dist/{chunk-75FQ5IW3.js → chunk-TZHWYT34.js} +3 -3
- package/dist/{chunk-75FQ5IW3.js.map → chunk-TZHWYT34.js.map} +1 -1
- package/dist/chunk-TZWHELY4.js +45 -0
- package/dist/chunk-TZWHELY4.js.map +1 -0
- package/dist/{chunk-OKTLA23Q.js → chunk-UEINJFLS.js} +6 -6
- package/dist/chunk-UEINJFLS.js.map +1 -0
- package/dist/chunk-URFQX3I6.js +129 -0
- package/dist/chunk-URFQX3I6.js.map +1 -0
- package/dist/chunk-VG6FOMOH.js +187 -0
- package/dist/chunk-VG6FOMOH.js.map +1 -0
- package/dist/{chunk-PGHEP4JD.js → chunk-VQVVHMPG.js} +3 -3
- package/dist/{chunk-PGHEP4JD.js.map → chunk-VQVVHMPG.js.map} +1 -1
- package/dist/{chunk-DRFNMZLG.js → chunk-VUKOT432.js} +3 -2
- package/dist/chunk-VUKOT432.js.map +1 -0
- package/dist/chunk-WD4N72DL.js +315 -0
- package/dist/chunk-WD4N72DL.js.map +1 -0
- package/dist/chunk-XBYMG4QK.js +119 -0
- package/dist/chunk-XBYMG4QK.js.map +1 -0
- package/dist/chunk-YHM6GIHV.js +3 -0
- package/dist/chunk-YHM6GIHV.js.map +1 -0
- package/dist/{chunk-SNZK5X6F.js → chunk-Z2AN43YU.js} +4 -2
- package/dist/chunk-Z2AN43YU.js.map +1 -0
- package/dist/chunk-ZNWHMQRM.js +171 -0
- package/dist/chunk-ZNWHMQRM.js.map +1 -0
- package/dist/{chunk-YSIG2XYH.js → chunk-ZRJYQN6Y.js} +2 -2
- package/dist/{chunk-YSIG2XYH.js.map → chunk-ZRJYQN6Y.js.map} +1 -1
- package/dist/{chunk-AD4W7HYC.js → chunk-ZYI3MHLE.js} +3 -2
- package/dist/chunk-ZYI3MHLE.js.map +1 -0
- package/dist/cli/index.js +59 -421
- package/dist/cli/index.js.map +1 -1
- package/dist/components/admin-filters/admin-data-table.d.ts +7 -1
- package/dist/components/admin-filters/admin-data-table.d.ts.map +1 -1
- package/dist/components/admin-filters/filter-toolbar.d.ts.map +1 -1
- package/dist/components/admin-filters/index.js +8 -0
- package/dist/components/admin-filters/index.js.map +1 -0
- package/dist/components/alert/alert.d.ts.map +1 -1
- package/dist/components/alert/index.js +5 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/animate/index.js +5 -0
- package/dist/components/animate/index.js.map +1 -0
- package/dist/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/components/breadcrumbs/index.js +4 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/card/index.js +4 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/chart/chart.d.ts.map +1 -1
- package/dist/components/chart/index.css +52 -0
- package/dist/components/chart/index.css.map +1 -0
- package/dist/components/chart/index.js +5 -0
- package/dist/components/chart/index.js.map +1 -0
- package/dist/components/chart/types.d.ts +3 -1
- package/dist/components/chart/types.d.ts.map +1 -1
- package/dist/components/chart/use-chart.d.ts.map +1 -1
- package/dist/components/command-palette/command-palette.d.ts +3 -1
- package/dist/components/command-palette/command-palette.d.ts.map +1 -1
- package/dist/components/command-palette/index.js +4 -0
- package/dist/components/command-palette/index.js.map +1 -0
- package/dist/components/confirm-dialog/index.js +4 -0
- package/dist/components/confirm-dialog/index.js.map +1 -0
- package/dist/components/date-input/date-input.d.ts +1 -0
- package/dist/components/date-input/date-input.d.ts.map +1 -1
- package/dist/components/date-input/index.d.ts +0 -1
- package/dist/components/date-input/index.d.ts.map +1 -1
- package/dist/components/doc-layout/index.js +5 -4
- package/dist/components/doc-layout/index.js.map +1 -1
- package/dist/components/editor/index.js +4 -3
- package/dist/components/editor/index.js.map +1 -1
- package/dist/components/emoji-picker/index.js +2 -1
- package/dist/components/emoji-picker/index.js.map +1 -1
- package/dist/components/empty-content/empty-content.d.ts.map +1 -1
- package/dist/components/empty-content/index.js +4 -0
- package/dist/components/empty-content/index.js.map +1 -0
- package/dist/components/error-boundary/index.js +6 -0
- package/dist/components/error-boundary/index.js.map +1 -0
- package/dist/components/index.css +13 -10
- package/dist/components/index.css.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +47 -21
- package/dist/components/index.js.map +1 -1
- package/dist/components/knowledge-graph/edge-labels.d.ts.map +1 -1
- package/dist/components/knowledge-graph/index.js +18 -16
- package/dist/components/knowledge-graph/index.js.map +1 -1
- package/dist/components/label/index.js +5 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.d.ts.map +1 -1
- package/dist/components/loading-screen/index.js +4 -0
- package/dist/components/loading-screen/index.js.map +1 -0
- package/dist/components/map/MapPointPicker.d.ts.map +1 -1
- package/dist/components/map/index.js +2 -1
- package/dist/components/map/index.js.map +1 -1
- package/dist/components/navigation-progress/index.js +4 -0
- package/dist/components/navigation-progress/index.js.map +1 -0
- package/dist/components/page-content/index.js +4 -0
- package/dist/components/page-content/index.js.map +1 -0
- package/dist/components/popover/index.js +4 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/research/diagram.d.ts.map +1 -1
- package/dist/components/research/index.js +6 -4
- package/dist/components/research/index.js.map +1 -1
- package/dist/components/research-editor/extensions.d.ts +1 -1
- package/dist/components/research-editor/index.js +11 -10
- package/dist/components/research-editor/index.js.map +1 -1
- package/dist/components/research-editor/math-navigation.d.ts +2 -2
- package/dist/components/research-editor/math-navigation.d.ts.map +1 -1
- package/dist/components/scroll-to-top/index.js +4 -0
- package/dist/components/scroll-to-top/index.js.map +1 -0
- package/dist/components/search-input/index.js +7 -0
- package/dist/components/search-input/index.js.map +1 -0
- package/dist/components/search-input/search-input.d.ts +3 -1
- package/dist/components/search-input/search-input.d.ts.map +1 -1
- package/dist/components/skeleton/index.js +4 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/snackbar/index.js +6 -0
- package/dist/components/snackbar/index.js.map +1 -0
- package/dist/components/stepper/index.js +4 -0
- package/dist/components/stepper/index.js.map +1 -0
- package/dist/components/table/index.d.ts +1 -0
- package/dist/components/table/index.d.ts.map +1 -1
- package/dist/components/table/index.js +5 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table-viewport.d.ts +13 -0
- package/dist/components/table/table-viewport.d.ts.map +1 -0
- package/dist/components/table/table.d.ts +3 -1
- package/dist/components/table/table.d.ts.map +1 -1
- package/dist/components/tabs/index.js +6 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.d.ts +12 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/core/index.js +12 -10
- package/dist/core/index.js.map +1 -1
- package/dist/forms/index.js +2 -0
- package/dist/forms/index.js.map +1 -1
- package/dist/hooks/index.js +14 -12
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/use-config-from-query.d.ts +2 -0
- package/dist/hooks/use-config-from-query.d.ts.map +1 -1
- package/dist/hooks/use-image-dimensions.d.ts.map +1 -1
- package/dist/hooks/use-keyboard-shortcut.d.ts.map +1 -1
- package/dist/hooks/use-scroll-position.d.ts.map +1 -1
- package/dist/hooks/use-window-size.d.ts.map +1 -1
- package/dist/icons/context.d.ts.map +1 -1
- package/dist/icons/index.js +3 -2
- package/dist/icons/index.js.map +1 -1
- package/dist/index.css +13 -10
- package/dist/index.css.map +1 -1
- package/dist/index.js +57 -31
- package/dist/index.js.map +1 -1
- package/dist/internal/research-parser.js +3 -0
- package/dist/internal/research-parser.js.map +1 -0
- package/dist/layouts/core/header-section.d.ts +1 -0
- package/dist/layouts/core/header-section.d.ts.map +1 -1
- package/dist/layouts/dashboard/layout.d.ts +3 -1
- package/dist/layouts/dashboard/layout.d.ts.map +1 -1
- package/dist/layouts/dashboard/sidenav.d.ts.map +1 -1
- package/dist/layouts/index.js +9 -8
- package/dist/layouts/index.js.map +1 -1
- package/dist/netron/index.js +2 -1
- package/dist/netron/index.js.map +1 -1
- package/dist/registry/index.js +1 -1
- package/dist/state/create-store.d.ts.map +1 -1
- package/dist/state/index.js +3 -2
- package/dist/state/index.js.map +1 -1
- package/dist/state/settings-version.d.ts.map +1 -1
- package/dist/theme/components/Chip.d.ts.map +1 -1
- package/dist/theme/components/Dialog.d.ts.map +1 -1
- package/dist/theme/components/TextField.d.ts.map +1 -1
- package/dist/theme/components/index.d.ts.map +1 -1
- package/dist/theme/components/theme-utils.d.ts +2 -2
- package/dist/theme/components/theme-utils.d.ts.map +1 -1
- package/dist/theme/index.js +8 -6
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/palette/overrides.d.ts +1 -0
- package/dist/theme/palette/overrides.d.ts.map +1 -1
- package/dist/theme/semantic-surface.d.ts +8 -0
- package/dist/theme/semantic-surface.d.ts.map +1 -0
- package/dist/types/index.js +2 -2
- package/dist/ui/index.js +6 -5
- package/dist/ui/index.js.map +1 -1
- package/dist/utils/async-lock.d.ts.map +1 -1
- package/package.json +143 -37
- package/dist/chunk-472SOF76.js.map +0 -1
- package/dist/chunk-4Z5DE5GK.js.map +0 -1
- package/dist/chunk-52PQL67Q.js.map +0 -1
- package/dist/chunk-AD4W7HYC.js.map +0 -1
- package/dist/chunk-ADG4HZEP.js.map +0 -1
- package/dist/chunk-BJE2AKD4.js.map +0 -1
- package/dist/chunk-BRDWQVRT.js.map +0 -1
- package/dist/chunk-DRFNMZLG.js.map +0 -1
- package/dist/chunk-FF5RF32O.js.map +0 -1
- package/dist/chunk-FU52GL2E.js +0 -3
- package/dist/chunk-GMIE6III.js.map +0 -1
- package/dist/chunk-JSQTYDPG.js +0 -3
- package/dist/chunk-KQ67XB6T.js.map +0 -1
- package/dist/chunk-LSPFFEJT.js.map +0 -1
- package/dist/chunk-OKTLA23Q.js.map +0 -1
- package/dist/chunk-SNZK5X6F.js.map +0 -1
- package/dist/chunk-SU3LVQ7N.js.map +0 -1
- package/dist/chunk-XIXSSI3B.js.map +0 -1
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import Box from '@mui/material/Box';
|
|
2
|
+
import MuiCard from '@mui/material/Card';
|
|
3
|
+
import CardHeader from '@mui/material/CardHeader';
|
|
4
|
+
import CardContent from '@mui/material/CardContent';
|
|
5
|
+
import CardActions from '@mui/material/CardActions';
|
|
6
|
+
import Typography from '@mui/material/Typography';
|
|
7
|
+
import Skeleton from '@mui/material/Skeleton';
|
|
8
|
+
import { styled, alpha } from '@mui/material/styles';
|
|
9
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
10
|
+
|
|
11
|
+
// src/components/card/card.tsx
|
|
12
|
+
var StyledCard = styled(MuiCard, {
|
|
13
|
+
shouldForwardProp: (prop) => prop !== "ownerState"
|
|
14
|
+
})(({ theme, ownerState }) => {
|
|
15
|
+
const { variant } = ownerState;
|
|
16
|
+
const borderRadius = typeof theme.shape.borderRadius === "number" ? theme.shape.borderRadius : 4;
|
|
17
|
+
const softStyles = {
|
|
18
|
+
border: "none",
|
|
19
|
+
boxShadow: "none",
|
|
20
|
+
backgroundColor: alpha(theme.palette.grey[500], 0.08)
|
|
21
|
+
};
|
|
22
|
+
return {
|
|
23
|
+
position: "relative",
|
|
24
|
+
borderRadius: borderRadius * 2,
|
|
25
|
+
...variant === "soft" && softStyles,
|
|
26
|
+
...variant === "outlined" && {
|
|
27
|
+
boxShadow: "none"
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
});
|
|
31
|
+
function Card({
|
|
32
|
+
variant = "elevation",
|
|
33
|
+
title,
|
|
34
|
+
subheader,
|
|
35
|
+
headerAction,
|
|
36
|
+
headerSx,
|
|
37
|
+
contentSx,
|
|
38
|
+
actions,
|
|
39
|
+
actionsSx,
|
|
40
|
+
disablePadding,
|
|
41
|
+
children,
|
|
42
|
+
sx,
|
|
43
|
+
ref,
|
|
44
|
+
...other
|
|
45
|
+
}) {
|
|
46
|
+
const ownerState = { variant };
|
|
47
|
+
const hasHeader = title || subheader || headerAction;
|
|
48
|
+
return /* @__PURE__ */ jsxs(
|
|
49
|
+
StyledCard,
|
|
50
|
+
{
|
|
51
|
+
ref,
|
|
52
|
+
ownerState,
|
|
53
|
+
variant: variant === "outlined" ? "outlined" : "elevation",
|
|
54
|
+
sx,
|
|
55
|
+
...other,
|
|
56
|
+
children: [
|
|
57
|
+
hasHeader && /* @__PURE__ */ jsx(CardHeader, { title, subheader, action: headerAction, sx: headerSx }),
|
|
58
|
+
children && /* @__PURE__ */ jsx(
|
|
59
|
+
CardContent,
|
|
60
|
+
{
|
|
61
|
+
sx: {
|
|
62
|
+
...disablePadding && { p: 0, "&:last-child": { pb: 0 } },
|
|
63
|
+
...contentSx
|
|
64
|
+
},
|
|
65
|
+
children
|
|
66
|
+
}
|
|
67
|
+
),
|
|
68
|
+
actions && /* @__PURE__ */ jsx(CardActions, { sx: actionsSx, children: actions })
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
function CardSection({ title, description, children, sx }) {
|
|
74
|
+
return /* @__PURE__ */ jsxs(Box, { sx: { mb: 3, ...sx }, children: [
|
|
75
|
+
title && /* @__PURE__ */ jsx(
|
|
76
|
+
Typography,
|
|
77
|
+
{
|
|
78
|
+
variant: "subtitle1",
|
|
79
|
+
sx: {
|
|
80
|
+
fontWeight: 600,
|
|
81
|
+
mb: 1
|
|
82
|
+
},
|
|
83
|
+
children: title
|
|
84
|
+
}
|
|
85
|
+
),
|
|
86
|
+
description && /* @__PURE__ */ jsx(
|
|
87
|
+
Typography,
|
|
88
|
+
{
|
|
89
|
+
variant: "body2",
|
|
90
|
+
sx: {
|
|
91
|
+
color: "text.secondary",
|
|
92
|
+
mb: 2
|
|
93
|
+
},
|
|
94
|
+
children: description
|
|
95
|
+
}
|
|
96
|
+
),
|
|
97
|
+
children
|
|
98
|
+
] });
|
|
99
|
+
}
|
|
100
|
+
function StatCard({
|
|
101
|
+
label,
|
|
102
|
+
value,
|
|
103
|
+
change,
|
|
104
|
+
icon,
|
|
105
|
+
color = "primary",
|
|
106
|
+
loading,
|
|
107
|
+
subtitle,
|
|
108
|
+
variant = "outlined",
|
|
109
|
+
sx,
|
|
110
|
+
...other
|
|
111
|
+
}) {
|
|
112
|
+
const isPositive = change && change > 0;
|
|
113
|
+
const isNegative = change && change < 0;
|
|
114
|
+
return /* @__PURE__ */ jsx(Card, { variant, contentSx: { p: 2, "&:last-child": { pb: 2 } }, sx, ...other, children: /* @__PURE__ */ jsxs(Box, { sx: { display: "flex", justifyContent: "space-between", alignItems: "flex-start" }, children: [
|
|
115
|
+
/* @__PURE__ */ jsx(Box, { children: loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
116
|
+
/* @__PURE__ */ jsx(Skeleton, { width: 80, height: 16 }),
|
|
117
|
+
/* @__PURE__ */ jsx(Skeleton, { width: 50, height: 32, sx: { mt: 0.5 } })
|
|
118
|
+
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
119
|
+
/* @__PURE__ */ jsx(
|
|
120
|
+
Typography,
|
|
121
|
+
{
|
|
122
|
+
variant: "caption",
|
|
123
|
+
sx: {
|
|
124
|
+
fontWeight: 600,
|
|
125
|
+
color: "text.secondary",
|
|
126
|
+
textTransform: "uppercase",
|
|
127
|
+
letterSpacing: 0.5
|
|
128
|
+
},
|
|
129
|
+
children: label
|
|
130
|
+
}
|
|
131
|
+
),
|
|
132
|
+
/* @__PURE__ */ jsx(
|
|
133
|
+
Typography,
|
|
134
|
+
{
|
|
135
|
+
variant: "h4",
|
|
136
|
+
sx: {
|
|
137
|
+
fontWeight: 700,
|
|
138
|
+
color: `${color}.main`,
|
|
139
|
+
mt: 0.5
|
|
140
|
+
},
|
|
141
|
+
children: value
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
change !== void 0 && /* @__PURE__ */ jsxs(
|
|
145
|
+
Typography,
|
|
146
|
+
{
|
|
147
|
+
variant: "caption",
|
|
148
|
+
color: isPositive ? "success.main" : isNegative ? "error.main" : "text.secondary",
|
|
149
|
+
sx: {
|
|
150
|
+
fontWeight: 500,
|
|
151
|
+
mt: 0.5,
|
|
152
|
+
display: "block"
|
|
153
|
+
},
|
|
154
|
+
children: [
|
|
155
|
+
isPositive ? "+" : "",
|
|
156
|
+
change,
|
|
157
|
+
"%"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
subtitle && /* @__PURE__ */ jsx(Typography, { variant: "caption", sx: {
|
|
162
|
+
color: "text.secondary"
|
|
163
|
+
}, children: subtitle })
|
|
164
|
+
] }) }),
|
|
165
|
+
icon && !loading && /* @__PURE__ */ jsx(Box, { sx: { color: `${color}.main` }, children: icon })
|
|
166
|
+
] }) });
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
export { Card, CardSection, StatCard };
|
|
170
|
+
//# sourceMappingURL=chunk-ZNWHMQRM.js.map
|
|
171
|
+
//# sourceMappingURL=chunk-ZNWHMQRM.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/card/card.tsx"],"names":[],"mappings":"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","file":"chunk-ZNWHMQRM.js","sourcesContent":["'use client';\n\n/**\n * Card Component\n *\n * Enhanced card component with variants and sections.\n *\n * @module components/card\n */\n\nimport type { ReactNode, Ref } from 'react';\nimport Box from '@mui/material/Box';\nimport MuiCard from '@mui/material/Card';\nimport CardHeader from '@mui/material/CardHeader';\nimport CardContent from '@mui/material/CardContent';\nimport CardActions from '@mui/material/CardActions';\nimport Typography from '@mui/material/Typography';\nimport Skeleton from '@mui/material/Skeleton';\nimport { styled, alpha } from '@mui/material/styles';\nimport type { CardProps as MuiCardProps } from '@mui/material/Card';\nimport type { SxProps, Theme } from '@mui/material/styles';\n\n// =============================================================================\n// TYPES\n// =============================================================================\n\nexport type CardVariant = 'elevation' | 'outlined' | 'soft';\n\nexport interface CardProps extends Omit<MuiCardProps, 'variant' | 'title'> {\n /** Card variant */\n variant?: CardVariant;\n /** Card header title */\n title?: ReactNode;\n /** Card header subtitle */\n subheader?: ReactNode;\n /** Card header action */\n headerAction?: ReactNode;\n /** Card header styles */\n headerSx?: SxProps<Theme>;\n /** Card content styles */\n contentSx?: SxProps<Theme>;\n /** Card actions */\n actions?: ReactNode;\n /** Card actions styles */\n actionsSx?: SxProps<Theme>;\n /** Disable content padding */\n disablePadding?: boolean;\n}\n\n// =============================================================================\n// STYLED COMPONENT\n// =============================================================================\n\ninterface StyledCardProps {\n ownerState: {\n variant: CardVariant;\n };\n}\n\nconst StyledCard = styled(MuiCard, {\n shouldForwardProp: (prop) => prop !== 'ownerState',\n})<StyledCardProps>(({ theme, ownerState }) => {\n const { variant } = ownerState;\n\n const borderRadius = typeof theme.shape.borderRadius === 'number' ? theme.shape.borderRadius : 4;\n\n const softStyles = {\n border: 'none',\n boxShadow: 'none',\n backgroundColor: alpha(theme.palette.grey[500], 0.08),\n };\n\n return {\n position: 'relative',\n borderRadius: borderRadius * 2,\n ...(variant === 'soft' && softStyles),\n ...(variant === 'outlined' && {\n boxShadow: 'none',\n }),\n };\n});\n// =============================================================================\n// COMPONENT\n// =============================================================================\n\n/**\n * Card - Enhanced card component with variants.\n *\n * @example\n * ```tsx\n * <Card title=\"Card Title\" subheader=\"Subtitle\">\n * Card content goes here\n * </Card>\n * ```\n *\n * @example\n * ```tsx\n * // Soft variant\n * <Card variant=\"soft\" title=\"Settings\">\n * <TextField label=\"Name\" />\n * </Card>\n * ```\n *\n * @example\n * ```tsx\n * // With actions\n * <Card\n * title=\"Confirm Action\"\n * actions={\n * <>\n * <Button>Cancel</Button>\n * <Button variant=\"contained\">Confirm</Button>\n * </>\n * }\n * >\n * Are you sure you want to proceed?\n * </Card>\n * ```\n */\nexport function Card({variant = 'elevation',\n title,\n subheader,\n headerAction,\n headerSx,\n contentSx,\n actions,\n actionsSx,\n disablePadding,\n children,\n sx,\n ref, ...other }: CardProps & { ref?: Ref<HTMLDivElement> }) {\n const ownerState = { variant };\n\n const hasHeader = title || subheader || headerAction;\n\n return (\n <StyledCard\n ref={ref}\n ownerState={ownerState}\n variant={variant === 'outlined' ? 'outlined' : 'elevation'}\n sx={sx}\n {...other}\n >\n {hasHeader && <CardHeader title={title} subheader={subheader} action={headerAction} sx={headerSx} />}\n\n {children && (\n <CardContent\n sx={{\n ...(disablePadding && { p: 0, '&:last-child': { pb: 0 } }),\n ...contentSx,\n }}\n >\n {children}\n </CardContent>\n )}\n\n {actions && <CardActions sx={actionsSx}>{actions}</CardActions>}\n </StyledCard>\n );\n}\n\n// =============================================================================\n// CARD SECTION\n// =============================================================================\n\nexport interface CardSectionProps {\n /** Section title */\n title?: ReactNode;\n /** Section description */\n description?: ReactNode;\n /** Section content */\n children?: ReactNode;\n /** Additional styles */\n sx?: SxProps<Theme>;\n}\n\n/**\n * CardSection - A section within a card with title and description.\n *\n * @example\n * ```tsx\n * <Card>\n * <CardSection title=\"Personal Information\">\n * <TextField label=\"Name\" />\n * <TextField label=\"Email\" />\n * </CardSection>\n * <CardSection title=\"Preferences\">\n * <Switch label=\"Notifications\" />\n * </CardSection>\n * </Card>\n * ```\n */\nexport function CardSection({ title, description, children, sx }: CardSectionProps): ReactNode {\n return (\n <Box sx={{ mb: 3, ...sx }}>\n {title && (\n <Typography\n variant=\"subtitle1\"\n sx={{\n fontWeight: 600,\n mb: 1\n }}>\n {title}\n </Typography>\n )}\n {description && (\n <Typography\n variant=\"body2\"\n sx={{\n color: \"text.secondary\",\n mb: 2\n }}>\n {description}\n </Typography>\n )}\n {children}\n </Box>\n );\n}\n\n// =============================================================================\n// STAT CARD\n// =============================================================================\n\nexport interface StatCardProps extends Omit<CardProps, 'children'> {\n /** Stat title */\n label: string;\n /** Stat value */\n value: string | number;\n /** Change percentage */\n change?: number;\n /** Icon */\n icon?: ReactNode;\n /** Color theme */\n color?: 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';\n /** Loading state — shows skeletons instead of values */\n loading?: boolean;\n /** Optional subtitle below the value */\n subtitle?: string;\n}\n\n/**\n * StatCard - A card for displaying statistics.\n *\n * @example\n * ```tsx\n * <StatCard\n * label=\"Total Sales\"\n * value=\"$24,500\"\n * change={12.5}\n * icon={<TrendingUpIcon />}\n * color=\"success\"\n * />\n * ```\n */\nexport function StatCard({\n label,\n value,\n change,\n icon,\n color = 'primary',\n loading,\n subtitle,\n variant = 'outlined',\n sx,\n ...other\n}: StatCardProps): ReactNode {\n const isPositive = change && change > 0;\n const isNegative = change && change < 0;\n\n return (\n <Card variant={variant} contentSx={{ p: 2, '&:last-child': { pb: 2 } }} sx={sx} {...other}>\n <Box sx={{ display: 'flex', justifyContent: 'space-between', alignItems: 'flex-start' }}>\n <Box>\n {loading ? (\n <>\n <Skeleton width={80} height={16} />\n <Skeleton width={50} height={32} sx={{ mt: 0.5 }} />\n </>\n ) : (\n <>\n <Typography\n variant=\"caption\"\n sx={{\n fontWeight: 600,\n color: \"text.secondary\",\n textTransform: \"uppercase\",\n letterSpacing: 0.5\n }}>\n {label}\n </Typography>\n <Typography\n variant=\"h4\"\n sx={{\n fontWeight: 700,\n color: `${color}.main`,\n mt: 0.5\n }}>\n {value}\n </Typography>\n {change !== undefined && (\n <Typography\n variant=\"caption\"\n color={isPositive ? 'success.main' : isNegative ? 'error.main' : 'text.secondary'}\n sx={{\n fontWeight: 500,\n mt: 0.5,\n display: 'block'\n }}>\n {isPositive ? '+' : ''}\n {change}%\n </Typography>\n )}\n {subtitle && (\n <Typography variant=\"caption\" sx={{\n color: \"text.secondary\"\n }}>\n {subtitle}\n </Typography>\n )}\n </>\n )}\n </Box>\n {icon && !loading && <Box sx={{ color: `${color}.main` }}>{icon}</Box>}\n </Box>\n </Card>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types/config.ts"],"names":[],"mappings":";AAgGO,IAAM,kBAAA,GAAkC;AAAA,EAC7C,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,sBAAA;AAAA,IACZ,MAAA,EAAQ,YAAA;AAAA,IACR,MAAA,EAAQ,WAAA;AAAA,IACR,KAAA,EAAO,eAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,8BAAA;AAAA,IACT,YAAY;AAAC,GACf;AAAA,EACA,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ,SAAA;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,SAAA,EAAW,KAAA;AAAA,IACX,YAAA,EAAc;AAAA,MACZ,MAAA,EAAQ,OAAA;AAAA,MACR,mBAAA,EAAqB,YAAA;AAAA,MACrB,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,KAAA;AAAA,IACX,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,IAAA;AAAA,IACV,GAAA,EAAK,KAAA;AAAA,IACL,IAAA,EAAM,KAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,UAAA,EAAY;AACd","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/types/config.ts"],"names":[],"mappings":";AAgGO,IAAM,kBAAA,GAAkC;AAAA,EAC7C,KAAA,EAAO;AAAA,IACL,UAAA,EAAY,sBAAA;AAAA,IACZ,MAAA,EAAQ,YAAA;AAAA,IACR,MAAA,EAAQ,WAAA;AAAA,IACR,KAAA,EAAO,eAAA;AAAA,IACP,KAAA,EAAO;AAAA,GACT;AAAA,EACA,UAAA,EAAY;AAAA,IACV,OAAA,EAAS,8BAAA;AAAA,IACT,YAAY;AAAC,GACf;AAAA,EACA,KAAA,EAAO;AAAA,IACL,MAAA,EAAQ,SAAA;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,SAAA,EAAW,KAAA;AAAA,IACX,YAAA,EAAc;AAAA,MACZ,MAAA,EAAQ,OAAA;AAAA,MACR,mBAAA,EAAqB,YAAA;AAAA,MACrB,OAAA,EAAS;AAAA;AACX,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,SAAA,EAAW,KAAA;AAAA,IACX,YAAA,EAAc,IAAA;AAAA,IACd,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,QAAA,EAAU;AAAA,IACR,QAAA,EAAU,IAAA;AAAA,IACV,GAAA,EAAK,KAAA;AAAA,IACL,IAAA,EAAM,KAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,UAAA,EAAY;AACd","file":"chunk-ZRJYQN6Y.js","sourcesContent":["/**\n * Configuration Type Definitions\n *\n * @module types/config\n */\n\nimport type { ThemeConfig, ThemePreset } from './theme.js';\nimport type { RegistryConfig } from './registry.js';\n\n/**\n * Style framework options.\n */\nexport type StyleFramework = 'mui' | 'tailwind' | 'emotion';\n\n/**\n * Paths configuration.\n */\nexport interface PathsConfig {\n /** Path to components directory */\n components: string;\n /** Path to blocks directory */\n blocks: string;\n /** Path to theme directory */\n themes: string;\n /** Path to utilities directory */\n utils: string;\n /** Path to types directory */\n types: string;\n}\n\n/**\n * Style configuration.\n */\nexport interface StyleConfig {\n /** Style framework */\n framework: StyleFramework;\n /** Enable CSS variables */\n cssVariables: boolean;\n /** CSS variable prefix */\n prefix: string;\n}\n\n/**\n * Features configuration.\n */\nexport interface FeaturesConfig {\n /** Enable dark mode */\n darkMode: boolean;\n /** Enable RTL support */\n rtl: boolean;\n /** Enable i18n support */\n i18n: boolean;\n /** Enable analytics */\n analytics: boolean;\n}\n\n/**\n * Prism CLI configuration.\n */\nexport interface PrismConfig {\n /** Project name */\n name?: string;\n\n /** Paths configuration */\n paths: PathsConfig;\n\n /** Registry configuration */\n registries: RegistryConfig;\n\n /** Theme configuration */\n theme: ThemeConfig;\n\n /** Style configuration */\n style: StyleConfig;\n\n /** Features configuration */\n features: FeaturesConfig;\n\n /** TypeScript enabled */\n typescript: boolean;\n\n /** Custom aliases */\n aliases?: Record<string, string>;\n}\n\n/**\n * Prism config file (prism.config.ts).\n */\nexport interface PrismConfigFile {\n /** Configuration object or factory function */\n default: PrismConfig | (() => PrismConfig) | (() => Promise<PrismConfig>);\n}\n\n/**\n * Default configuration values.\n */\nexport const defaultPrismConfig: PrismConfig = {\n paths: {\n components: 'src/components/prism',\n blocks: 'src/blocks',\n themes: 'src/theme',\n utils: 'src/lib/prism',\n types: 'src/types/prism',\n },\n registries: {\n default: '@omnitron-dev/prism-registry',\n registries: {},\n },\n theme: {\n preset: 'default' as ThemePreset,\n mode: 'light',\n direction: 'ltr',\n cssVariables: {\n prefix: 'prism',\n colorSchemeSelector: 'data-theme',\n enabled: true,\n },\n },\n style: {\n framework: 'mui',\n cssVariables: true,\n prefix: 'prism',\n },\n features: {\n darkMode: true,\n rtl: false,\n i18n: false,\n analytics: false,\n },\n typescript: true,\n};\n\n/**\n * Partial config for user-defined overrides.\n */\nexport type PartialPrismConfig = DeepPartial<PrismConfig>;\n\n/**\n * Deep partial type helper.\n */\ntype DeepPartial<T> = {\n [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\n/**\n * Define config helper type.\n */\nexport type DefineConfigFn = (config: PartialPrismConfig) => PrismConfig;\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Box from '@mui/material/Box';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
|
+
// src/core/accessibility/skip-link.tsx
|
|
4
5
|
function SkipLink({ href, children, sx }) {
|
|
5
6
|
return /* @__PURE__ */ jsx(
|
|
6
7
|
Box,
|
|
@@ -136,5 +137,5 @@ function announceToScreenReader(message, priority = "polite") {
|
|
|
136
137
|
}
|
|
137
138
|
|
|
138
139
|
export { ARIA_LABELS, SkipLink, announceToScreenReader, combineAriaDescribedBy, focusVisibleStyles, generateAriaId, getAriaExpanded, handleListKeyDown, srOnly };
|
|
139
|
-
//# sourceMappingURL=chunk-
|
|
140
|
-
//# sourceMappingURL=chunk-
|
|
140
|
+
//# sourceMappingURL=chunk-ZYI3MHLE.js.map
|
|
141
|
+
//# sourceMappingURL=chunk-ZYI3MHLE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/core/accessibility/skip-link.tsx","../src/core/accessibility/index.ts"],"names":[],"mappings":";;;;AAiCO,SAAS,QAAA,CAAS,EAAE,IAAA,EAAM,QAAA,EAAU,IAAG,EAA6B;AACzE,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,GAAA;AAAA,MACV,IAAA;AAAA,MACA,EAAA,EAAI;AAAA,QACF,CAAC,KAAA,MAAW;AAAA,UACV,QAAA,EAAU,UAAA;AAAA,UACV,GAAA,EAAK,OAAA;AAAA,UACL,IAAA,EAAM,CAAA;AAAA,UACN,KAAA,EAAO,CAAA;AAAA,UACP,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,OAAA,GAAU,CAAA;AAAA,UAC/B,OAAA,EAAS,KAAA,CAAM,OAAA,CAAQ,CAAA,EAAG,CAAC,CAAA;AAAA,UAC3B,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,IAAA;AAAA,UACvC,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,OAAA,CAAQ,YAAA;AAAA,UAC7B,SAAA,EAAW,QAAA;AAAA,UACX,cAAA,EAAgB,MAAA;AAAA,UAChB,UAAA,EAAY,MAAM,UAAA,CAAW,gBAAA;AAAA,UAC7B,QAAA,EAAU,KAAA,CAAM,UAAA,CAAW,KAAA,CAAM,QAAA;AAAA;AAAA,UAEjC,SAAA,EAAW;AAAA,YACT,GAAA,EAAK,CAAA;AAAA,YACL,OAAA,EAAS,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,YAChD,aAAA,EAAe;AAAA;AACjB,SACF,CAAA;AAAA,QACA,GAAI,KAAA,CAAM,OAAA,CAAQ,EAAE,CAAA,GAAI,EAAA,GAAK,CAAC,EAAE;AAAA,OAClC;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;;;AC/CO,SAAS,eAAe,MAAA,EAAwB;AACrD,EAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,IAAA,CAAK,MAAA,EAAO,CAAE,QAAA,CAAS,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA,CAAA;AAC5D;AAKO,SAAS,0BAA0B,GAAA,EAAiD;AACzF,EAAA,MAAM,QAAA,GAAW,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AACnC,EAAA,OAAO,SAAS,MAAA,GAAS,CAAA,GAAI,QAAA,CAAS,IAAA,CAAK,GAAG,CAAA,GAAI,MAAA;AACpD;AAKO,IAAM,MAAA,GAAS;AAAA,EACpB,QAAA,EAAU,UAAA;AAAA,EACV,KAAA,EAAO,KAAA;AAAA,EACP,MAAA,EAAQ,KAAA;AAAA,EACR,OAAA,EAAS,CAAA;AAAA,EACT,MAAA,EAAQ,MAAA;AAAA,EACR,QAAA,EAAU,QAAA;AAAA,EACV,IAAA,EAAM,kBAAA;AAAA,EACN,UAAA,EAAY,QAAA;AAAA,EACZ,MAAA,EAAQ;AACV;AAKO,IAAM,kBAAA,GAAqB,CAAC,KAAA,MAAuD;AAAA,EACxF,iBAAA,EAAmB;AAAA,IACjB,OAAA,EAAS,CAAA,UAAA,EAAa,KAAA,CAAM,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAAA,IAChD,aAAA,EAAe;AAAA;AAEnB,CAAA;AASO,SAAS,iBAAA,CACd,OACA,OAAA,EAMM;AACN,EAAA,MAAM,EAAE,KAAA,EAAO,YAAA,EAAc,QAAA,EAAU,WAAA,GAAc,YAAW,GAAI,OAAA;AAEpE,EAAA,MAAM,OAAA,GAAU,WAAA,KAAgB,UAAA,GAAa,WAAA,GAAc,YAAA;AAC3D,EAAA,MAAM,OAAA,GAAU,WAAA,KAAgB,UAAA,GAAa,SAAA,GAAY,WAAA;AAEzD,EAAA,IAAI,QAAA;AAEJ,EAAA,QAAQ,MAAM,GAAA;AAAK,IACjB,KAAK,OAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,GAAW,KAAK,GAAA,CAAI,YAAA,GAAe,CAAA,EAAG,KAAA,CAAM,SAAS,CAAC,CAAA;AACtD,MAAA;AAAA,IACF,KAAK,OAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,GAAW,IAAA,CAAK,GAAA,CAAI,YAAA,GAAe,CAAA,EAAG,CAAC,CAAA;AACvC,MAAA;AAAA,IACF,KAAK,MAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,GAAW,CAAA;AACX,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,GAAW,MAAM,MAAA,GAAS,CAAA;AAC1B,MAAA;AAAA,IACF,KAAK,OAAA;AAAA,IACL,KAAK,GAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,QAAA,GAAW,YAAY,CAAA;AACvB,MAAA;AAAA,IACF;AACE,MAAA;AAAA;AAGJ,EAAA,IAAI,QAAA,KAAa,YAAA,IAAgB,KAAA,CAAM,QAAQ,CAAA,EAAG;AAChD,IAAA,KAAA,CAAM,QAAQ,EAAE,KAAA,EAAM;AAAA,EACxB;AACF;AASO,IAAM,WAAA,GAAc;AAAA;AAAA,EAEzB,OAAA,EAAS,iBAAA;AAAA;AAAA,EAET,YAAA,EAAc,sBAAA;AAAA;AAAA,EAEd,MAAA,EAAQ,QAAA;AAAA;AAAA,EAER,IAAA,EAAM,cAAA;AAAA;AAAA,EAEN,MAAA,EAAQ,QAAA;AAAA;AAAA,EAER,MAAA,EAAQ,QAAA;AAAA;AAAA,EAER,OAAA,EAAS,SAAA;AAAA;AAAA,EAET,UAAA,EAAY,uBAAA;AAAA;AAAA,EAEZ,QAAA,EAAU,WAAA;AAAA;AAAA,EAEV,QAAA,EAAU;AACZ;AAaO,SAAS,eAAA,CAAgB,UAAmB,UAAA,EAAwC;AACzF,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,QAAA;AAAA,IACjB,GAAI,UAAA,IAAc,EAAE,eAAA,EAAiB,UAAA;AAAW,GAClD;AACF;AASO,SAAS,sBAAA,CAAuB,OAAA,EAAiB,QAAA,GAAmC,QAAA,EAAgB;AACzG,EAAA,MAAM,YAAA,GAAe,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA;AACjD,EAAA,YAAA,CAAa,YAAA,CAAa,QAAQ,QAAQ,CAAA;AAC1C,EAAA,YAAA,CAAa,YAAA,CAAa,aAAa,QAAQ,CAAA;AAC/C,EAAA,YAAA,CAAa,YAAA,CAAa,eAAe,MAAM,CAAA;AAC/C,EAAA,MAAA,CAAO,MAAA,CAAO,YAAA,CAAa,KAAA,EAAO,MAAM,CAAA;AACxC,EAAA,YAAA,CAAa,WAAA,GAAc,OAAA;AAE3B,EAAA,QAAA,CAAS,IAAA,CAAK,YAAY,YAAY,CAAA;AAGtC,EAAA,UAAA,CAAW,MAAM;AACf,IAAA,QAAA,CAAS,IAAA,CAAK,YAAY,YAAY,CAAA;AAAA,EACxC,GAAG,GAAI,CAAA;AACT","file":"chunk-ZYI3MHLE.js","sourcesContent":["/**\n * Skip Link Component\n *\n * Provides keyboard users a way to skip navigation and jump to main content.\n *\n * @module core/accessibility/skip-link\n */\n\nimport type { ReactNode } from 'react';\nimport Box from '@mui/material/Box';\nimport type { SxProps, Theme } from '@mui/material';\n\n/**\n * Props for SkipLink component.\n */\nexport interface SkipLinkProps {\n /** Target element ID to skip to */\n href: string;\n /** Link content (typically \"Skip to main content\") */\n children: ReactNode;\n /** MUI sx prop */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Skip link that is visually hidden until focused.\n * Allows keyboard users to skip navigation and jump to main content.\n *\n * @example\n * ```tsx\n * <SkipLink href=\"#main-content\">Skip to main content</SkipLink>\n * ```\n */\nexport function SkipLink({ href, children, sx }: SkipLinkProps): ReactNode {\n return (\n <Box\n component=\"a\"\n href={href}\n sx={[\n (theme) => ({\n position: 'absolute',\n top: '-100%',\n left: 0,\n right: 0,\n zIndex: theme.zIndex.tooltip + 1,\n padding: theme.spacing(1, 2),\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText,\n textAlign: 'center',\n textDecoration: 'none',\n fontWeight: theme.typography.fontWeightMedium,\n fontSize: theme.typography.body2.fontSize,\n // Show on focus\n '&:focus': {\n top: 0,\n outline: `2px solid ${theme.palette.primary.dark}`,\n outlineOffset: 2,\n },\n }),\n ...(Array.isArray(sx) ? sx : [sx]),\n ]}\n >\n {children}\n </Box>\n );\n}\n","/**\n * Accessibility Utilities\n *\n * WCAG 2.1 compliant accessibility components and utilities.\n *\n * @module core/accessibility\n */\n\nexport { SkipLink } from './skip-link.js';\nexport type { SkipLinkProps } from './skip-link.js';\n\n// =============================================================================\n// ARIA HELPERS\n// =============================================================================\n\n/**\n * Generate ID for accessibility references.\n */\nexport function generateAriaId(prefix: string): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 9)}`;\n}\n\n/**\n * Combine multiple aria-describedby values.\n */\nexport function combineAriaDescribedBy(...ids: (string | undefined)[]): string | undefined {\n const validIds = ids.filter(Boolean);\n return validIds.length > 0 ? validIds.join(' ') : undefined;\n}\n\n/**\n * Screen reader only styles (visually hidden but accessible).\n */\nexport const srOnly = {\n position: 'absolute' as const,\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap' as const,\n border: 0,\n};\n\n/**\n * Focus visible styles for keyboard navigation.\n */\nexport const focusVisibleStyles = (theme: { palette: { primary: { main: string } } }) => ({\n '&:focus-visible': {\n outline: `2px solid ${theme.palette.primary.main}`,\n outlineOffset: 2,\n },\n});\n\n// =============================================================================\n// KEYBOARD NAVIGATION HELPERS\n// =============================================================================\n\n/**\n * Handle keyboard navigation for list items.\n */\nexport function handleListKeyDown(\n event: React.KeyboardEvent,\n options: {\n items: HTMLElement[];\n currentIndex: number;\n onSelect?: (index: number) => void;\n orientation?: 'vertical' | 'horizontal';\n }\n): void {\n const { items, currentIndex, onSelect, orientation = 'vertical' } = options;\n\n const nextKey = orientation === 'vertical' ? 'ArrowDown' : 'ArrowRight';\n const prevKey = orientation === 'vertical' ? 'ArrowUp' : 'ArrowLeft';\n\n let newIndex: number;\n\n switch (event.key) {\n case nextKey:\n event.preventDefault();\n newIndex = Math.min(currentIndex + 1, items.length - 1);\n break;\n case prevKey:\n event.preventDefault();\n newIndex = Math.max(currentIndex - 1, 0);\n break;\n case 'Home':\n event.preventDefault();\n newIndex = 0;\n break;\n case 'End':\n event.preventDefault();\n newIndex = items.length - 1;\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n onSelect?.(currentIndex);\n return;\n default:\n return;\n }\n\n if (newIndex !== currentIndex && items[newIndex]) {\n items[newIndex].focus();\n }\n}\n\n// =============================================================================\n// LANDMARK ROLES\n// =============================================================================\n\n/**\n * Standard ARIA landmark labels.\n */\nexport const ARIA_LABELS = {\n /** Main navigation */\n mainNav: 'Main navigation',\n /** Secondary navigation */\n secondaryNav: 'Secondary navigation',\n /** Search */\n search: 'Search',\n /** Main content */\n main: 'Main content',\n /** Header */\n header: 'Header',\n /** Footer */\n footer: 'Footer',\n /** Sidebar */\n sidebar: 'Sidebar',\n /** Breadcrumb navigation */\n breadcrumb: 'Breadcrumb navigation',\n /** User menu */\n userMenu: 'User menu',\n /** Settings */\n settings: 'Settings',\n} as const;\n\n/**\n * Common ARIA expanded patterns.\n */\nexport interface AriaExpandedProps {\n 'aria-expanded': boolean;\n 'aria-controls'?: string;\n}\n\n/**\n * Get aria-expanded props.\n */\nexport function getAriaExpanded(expanded: boolean, controlsId?: string): AriaExpandedProps {\n return {\n 'aria-expanded': expanded,\n ...(controlsId && { 'aria-controls': controlsId }),\n };\n}\n\n// =============================================================================\n// LIVE REGION HELPERS\n// =============================================================================\n\n/**\n * Announce message to screen readers.\n */\nexport function announceToScreenReader(message: string, priority: 'polite' | 'assertive' = 'polite'): void {\n const announcement = document.createElement('div');\n announcement.setAttribute('role', 'status');\n announcement.setAttribute('aria-live', priority);\n announcement.setAttribute('aria-atomic', 'true');\n Object.assign(announcement.style, srOnly);\n announcement.textContent = message;\n\n document.body.appendChild(announcement);\n\n // Remove after announcement is read\n setTimeout(() => {\n document.body.removeChild(announcement);\n }, 1000);\n}\n"]}
|