@spatika/react 1.1.0 → 1.2.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/AGENTS.md +71 -0
- package/README.md +4 -3
- package/dist/composites/Card.d.ts +7 -1
- package/dist/composites/Card.d.ts.map +1 -1
- package/dist/composites/Card.js +10 -0
- package/dist/composites/ChartDataGrid.d.ts +33 -0
- package/dist/composites/ChartDataGrid.d.ts.map +1 -0
- package/dist/composites/ChartDataGrid.js +77 -0
- package/dist/composites/CoverHero.d.ts +1 -1
- package/dist/composites/CoverHero.d.ts.map +1 -1
- package/dist/composites/CoverHero.js +2 -2
- package/dist/composites/EntityMediaCard.d.ts +1 -1
- package/dist/composites/EntityMediaCard.d.ts.map +1 -1
- package/dist/composites/EntityMediaCard.js +12 -4
- package/dist/composites/EventCalendar.d.ts +35 -0
- package/dist/composites/EventCalendar.d.ts.map +1 -0
- package/dist/composites/EventCalendar.js +339 -0
- package/dist/composites/EventEditor.d.ts +22 -0
- package/dist/composites/EventEditor.d.ts.map +1 -0
- package/dist/composites/EventEditor.js +86 -0
- package/dist/composites/EventTimeline.d.ts +24 -0
- package/dist/composites/EventTimeline.d.ts.map +1 -0
- package/dist/composites/EventTimeline.js +184 -0
- package/dist/composites/MapChart.d.ts +24 -0
- package/dist/composites/MapChart.d.ts.map +1 -0
- package/dist/composites/MapChart.js +58 -0
- package/dist/composites/ProfileHero.d.ts +6 -4
- package/dist/composites/ProfileHero.d.ts.map +1 -1
- package/dist/composites/ProfileHero.js +8 -8
- package/dist/composites/ScatterWebGL.d.ts +22 -0
- package/dist/composites/ScatterWebGL.d.ts.map +1 -0
- package/dist/composites/ScatterWebGL.js +45 -0
- package/dist/composites/SiteFooter.d.ts +1 -1
- package/dist/composites/SiteFooter.js +1 -1
- package/dist/composites/SiteNav.d.ts +7 -2
- package/dist/composites/SiteNav.d.ts.map +1 -1
- package/dist/composites/SiteNav.js +9 -5
- package/dist/composites/StatCard.d.ts +2 -1
- package/dist/composites/StatCard.d.ts.map +1 -1
- package/dist/composites/StatCard.js +3 -3
- package/dist/composites/StatusDot.d.ts +1 -1
- package/dist/composites/Wordmark.d.ts +2 -2
- package/dist/composites/Wordmark.d.ts.map +1 -1
- package/dist/composites/cartesian-charts.d.ts +138 -0
- package/dist/composites/cartesian-charts.d.ts.map +1 -0
- package/dist/composites/cartesian-charts.js +401 -0
- package/dist/composites/chart-composition.d.ts +139 -0
- package/dist/composites/chart-composition.d.ts.map +1 -0
- package/dist/composites/chart-composition.js +486 -0
- package/dist/composites/chart-ui.d.ts +83 -0
- package/dist/composites/chart-ui.d.ts.map +1 -0
- package/dist/composites/chart-ui.js +108 -0
- package/dist/composites/charts-3d.d.ts +37 -0
- package/dist/composites/charts-3d.d.ts.map +1 -0
- package/dist/composites/charts-3d.js +121 -0
- package/dist/composites/flow-charts.d.ts +89 -0
- package/dist/composites/flow-charts.d.ts.map +1 -0
- package/dist/composites/flow-charts.js +186 -0
- package/dist/composites/radial-charts.d.ts +109 -0
- package/dist/composites/radial-charts.d.ts.map +1 -0
- package/dist/composites/radial-charts.js +176 -0
- package/dist/composites/scheduler-ui.d.ts +43 -0
- package/dist/composites/scheduler-ui.d.ts.map +1 -0
- package/dist/composites/scheduler-ui.js +71 -0
- package/dist/index.d.ts +67 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +57 -7
- package/dist/lib/chart-export.d.ts +10 -0
- package/dist/lib/chart-export.d.ts.map +1 -0
- package/dist/lib/chart-export.js +102 -0
- package/dist/lib/charts.d.ts +235 -0
- package/dist/lib/charts.d.ts.map +1 -0
- package/dist/lib/charts.js +744 -0
- package/dist/lib/geo.d.ts +39 -0
- package/dist/lib/geo.d.ts.map +1 -0
- package/dist/lib/geo.js +101 -0
- package/dist/lib/iso.d.ts +21 -0
- package/dist/lib/iso.d.ts.map +1 -0
- package/dist/lib/iso.js +56 -0
- package/dist/lib/rrule.d.ts +20 -0
- package/dist/lib/rrule.d.ts.map +1 -0
- package/dist/lib/rrule.js +236 -0
- package/dist/lib/scheduler.d.ts +152 -0
- package/dist/lib/scheduler.d.ts.map +1 -0
- package/dist/lib/scheduler.js +501 -0
- package/dist/lib/webgl-scatter.d.ts +44 -0
- package/dist/lib/webgl-scatter.d.ts.map +1 -0
- package/dist/lib/webgl-scatter.js +185 -0
- package/dist/primitives/Accordion.d.ts +44 -20
- package/dist/primitives/Accordion.d.ts.map +1 -1
- package/dist/primitives/Accordion.js +82 -22
- package/dist/primitives/AppBar.d.ts +13 -0
- package/dist/primitives/AppBar.d.ts.map +1 -0
- package/dist/primitives/AppBar.js +27 -0
- package/dist/primitives/Autocomplete.d.ts +28 -0
- package/dist/primitives/Autocomplete.d.ts.map +1 -0
- package/dist/primitives/Autocomplete.js +118 -0
- package/dist/primitives/Avatar.d.ts +13 -1
- package/dist/primitives/Avatar.d.ts.map +1 -1
- package/dist/primitives/Avatar.js +17 -2
- package/dist/primitives/Backdrop.d.ts +17 -0
- package/dist/primitives/Backdrop.d.ts.map +1 -0
- package/dist/primitives/Backdrop.js +17 -0
- package/dist/primitives/BottomNavigation.d.ts +23 -0
- package/dist/primitives/BottomNavigation.d.ts.map +1 -0
- package/dist/primitives/BottomNavigation.js +30 -0
- package/dist/primitives/ButtonBase.d.ts +14 -0
- package/dist/primitives/ButtonBase.d.ts.map +1 -0
- package/dist/primitives/ButtonBase.js +13 -0
- package/dist/primitives/ButtonGroup.d.ts +25 -0
- package/dist/primitives/ButtonGroup.d.ts.map +1 -0
- package/dist/primitives/ButtonGroup.js +44 -0
- package/dist/primitives/CircularProgress.d.ts +16 -0
- package/dist/primitives/CircularProgress.d.ts.map +1 -0
- package/dist/primitives/CircularProgress.js +17 -0
- package/dist/primitives/ClickAwayListener.d.ts +16 -0
- package/dist/primitives/ClickAwayListener.d.ts.map +1 -0
- package/dist/primitives/ClickAwayListener.js +33 -0
- package/dist/primitives/Collapse.d.ts +19 -0
- package/dist/primitives/Collapse.d.ts.map +1 -0
- package/dist/primitives/Collapse.js +14 -0
- package/dist/primitives/Container.d.ts +13 -0
- package/dist/primitives/Container.d.ts.map +1 -0
- package/dist/primitives/Container.js +26 -0
- package/dist/primitives/Fab.d.ts +22 -0
- package/dist/primitives/Fab.d.ts.map +1 -0
- package/dist/primitives/Fab.js +42 -0
- package/dist/primitives/FormControl.d.ts +27 -0
- package/dist/primitives/FormControl.d.ts.map +1 -0
- package/dist/primitives/FormControl.js +24 -0
- package/dist/primitives/FormControlLabel.d.ts +18 -0
- package/dist/primitives/FormControlLabel.d.ts.map +1 -0
- package/dist/primitives/FormControlLabel.js +19 -0
- package/dist/primitives/Grid.d.ts +32 -0
- package/dist/primitives/Grid.d.ts.map +1 -0
- package/dist/primitives/Grid.js +50 -0
- package/dist/primitives/IconButton.d.ts +22 -0
- package/dist/primitives/IconButton.d.ts.map +1 -0
- package/dist/primitives/IconButton.js +39 -0
- package/dist/primitives/ImageList.d.ts +31 -0
- package/dist/primitives/ImageList.d.ts.map +1 -0
- package/dist/primitives/ImageList.js +33 -0
- package/dist/primitives/InputAdornment.d.ts +28 -0
- package/dist/primitives/InputAdornment.d.ts.map +1 -0
- package/dist/primitives/InputAdornment.js +13 -0
- package/dist/primitives/Link.d.ts +17 -0
- package/dist/primitives/Link.d.ts.map +1 -0
- package/dist/primitives/Link.js +29 -0
- package/dist/primitives/List.d.ts +41 -0
- package/dist/primitives/List.d.ts.map +1 -0
- package/dist/primitives/List.js +22 -0
- package/dist/primitives/Masonry.d.ts +14 -0
- package/dist/primitives/Masonry.d.ts.map +1 -0
- package/dist/primitives/Masonry.js +15 -0
- package/dist/primitives/Menu.d.ts +28 -0
- package/dist/primitives/Menu.d.ts.map +1 -0
- package/dist/primitives/Menu.js +54 -0
- package/dist/primitives/MobileStepper.d.ts +15 -0
- package/dist/primitives/MobileStepper.d.ts.map +1 -0
- package/dist/primitives/MobileStepper.js +8 -0
- package/dist/primitives/Modal.d.ts +18 -0
- package/dist/primitives/Modal.d.ts.map +1 -0
- package/dist/primitives/Modal.js +29 -0
- package/dist/primitives/NoSsr.d.ts +15 -0
- package/dist/primitives/NoSsr.d.ts.map +1 -0
- package/dist/primitives/NoSsr.js +19 -0
- package/dist/primitives/Paper.d.ts +22 -0
- package/dist/primitives/Paper.d.ts.map +1 -0
- package/dist/primitives/Paper.js +33 -0
- package/dist/primitives/Progress.d.ts +6 -2
- package/dist/primitives/Progress.d.ts.map +1 -1
- package/dist/primitives/Progress.js +8 -3
- package/dist/primitives/Snackbar.d.ts +23 -0
- package/dist/primitives/Snackbar.d.ts.map +1 -0
- package/dist/primitives/Snackbar.js +33 -0
- package/dist/primitives/SpeedDial.d.ts +26 -0
- package/dist/primitives/SpeedDial.d.ts.map +1 -0
- package/dist/primitives/SpeedDial.js +26 -0
- package/dist/primitives/Stack.d.ts +15 -0
- package/dist/primitives/Stack.d.ts.map +1 -0
- package/dist/primitives/Stack.js +45 -0
- package/dist/primitives/StarRating.d.ts +19 -1
- package/dist/primitives/StarRating.d.ts.map +1 -1
- package/dist/primitives/StarRating.js +36 -6
- package/dist/primitives/Stepper.d.ts +36 -0
- package/dist/primitives/Stepper.d.ts.map +1 -0
- package/dist/primitives/Stepper.js +53 -0
- package/dist/primitives/TablePagination.d.ts +16 -0
- package/dist/primitives/TablePagination.d.ts.map +1 -0
- package/dist/primitives/TablePagination.js +12 -0
- package/dist/primitives/TextField.d.ts +24 -0
- package/dist/primitives/TextField.d.ts.map +1 -0
- package/dist/primitives/TextField.js +19 -0
- package/dist/primitives/TextareaAutosize.d.ts +11 -0
- package/dist/primitives/TextareaAutosize.d.ts.map +1 -0
- package/dist/primitives/TextareaAutosize.js +26 -0
- package/dist/primitives/ToggleButton.d.ts +28 -0
- package/dist/primitives/ToggleButton.d.ts.map +1 -0
- package/dist/primitives/ToggleButton.js +56 -0
- package/dist/primitives/TransferList.d.ts +21 -0
- package/dist/primitives/TransferList.d.ts.map +1 -0
- package/dist/primitives/TransferList.js +40 -0
- package/dist/primitives/Typography.d.ts +23 -0
- package/dist/primitives/Typography.d.ts.map +1 -0
- package/dist/primitives/Typography.js +69 -0
- package/dist/primitives/transitions.d.ts +29 -0
- package/dist/primitives/transitions.d.ts.map +1 -0
- package/dist/primitives/transitions.js +52 -0
- package/package.json +28 -4
- package/skills/spatika-ui/SKILL.md +96 -0
- package/src/composites/Card.tsx +51 -1
- package/src/composites/ChartDataGrid.test.tsx +57 -0
- package/src/composites/ChartDataGrid.tsx +196 -0
- package/src/composites/CoverHero.test.tsx +38 -0
- package/src/composites/CoverHero.tsx +29 -22
- package/src/composites/EntityMediaCard.test.tsx +58 -0
- package/src/composites/EntityMediaCard.tsx +31 -13
- package/src/composites/EventCalendar.tsx +928 -0
- package/src/composites/EventEditor.tsx +268 -0
- package/src/composites/EventTimeline.tsx +357 -0
- package/src/composites/MapChart.test.tsx +39 -0
- package/src/composites/MapChart.tsx +130 -0
- package/src/composites/ProfileHero.test.tsx +33 -0
- package/src/composites/ProfileHero.tsx +96 -79
- package/src/composites/ScatterWebGL.test.tsx +25 -0
- package/src/composites/ScatterWebGL.tsx +79 -0
- package/src/composites/SiteFooter.test.tsx +37 -0
- package/src/composites/SiteFooter.tsx +1 -1
- package/src/composites/SiteNav.test.tsx +46 -0
- package/src/composites/SiteNav.tsx +14 -4
- package/src/composites/StatCard.test.tsx +30 -0
- package/src/composites/StatCard.tsx +4 -0
- package/src/composites/Wordmark.test.tsx +23 -0
- package/src/composites/Wordmark.tsx +2 -2
- package/src/composites/cartesian-charts.test.tsx +52 -0
- package/src/composites/cartesian-charts.tsx +1287 -0
- package/src/composites/chart-composition.test.tsx +53 -0
- package/src/composites/chart-composition.tsx +898 -0
- package/src/composites/chart-ui.tsx +328 -0
- package/src/composites/charts-3d.test.tsx +25 -0
- package/src/composites/charts-3d.tsx +318 -0
- package/src/composites/charts.test.tsx +254 -0
- package/src/composites/chrome.test.tsx +29 -0
- package/src/composites/flow-charts.test.tsx +79 -0
- package/src/composites/flow-charts.tsx +607 -0
- package/src/composites/marketing.test.tsx +38 -34
- package/src/composites/radial-charts.test.tsx +74 -0
- package/src/composites/radial-charts.tsx +617 -0
- package/src/composites/scheduler-ui.tsx +304 -0
- package/src/composites/scheduler.test.tsx +194 -0
- package/src/index.test.ts +22 -0
- package/src/index.ts +277 -5
- package/src/lib/chart-export.test.ts +20 -0
- package/src/lib/chart-export.ts +99 -0
- package/src/lib/charts-platform.test.ts +93 -0
- package/src/lib/charts.test.ts +132 -0
- package/src/lib/charts.ts +1021 -0
- package/src/lib/geo.test.ts +42 -0
- package/src/lib/geo.ts +138 -0
- package/src/lib/iso.test.ts +22 -0
- package/src/lib/iso.ts +102 -0
- package/src/lib/rrule.test.ts +53 -0
- package/src/lib/rrule.ts +281 -0
- package/src/lib/scheduler.test.ts +186 -0
- package/src/lib/scheduler.ts +688 -0
- package/src/lib/tokens.test.ts +2 -2
- package/src/lib/webgl-scatter.test.ts +36 -0
- package/src/lib/webgl-scatter.ts +230 -0
- package/src/primitives/Accordion.tsx +218 -63
- package/src/primitives/AppBar.tsx +39 -0
- package/src/primitives/Autocomplete.tsx +236 -0
- package/src/primitives/Avatar.tsx +52 -1
- package/src/primitives/Backdrop.tsx +48 -0
- package/src/primitives/BottomNavigation.tsx +102 -0
- package/src/primitives/ButtonBase.tsx +34 -0
- package/src/primitives/ButtonGroup.tsx +90 -0
- package/src/primitives/CircularProgress.tsx +104 -0
- package/src/primitives/ClickAwayListener.tsx +46 -0
- package/src/primitives/Collapse.tsx +39 -0
- package/src/primitives/Container.tsx +40 -0
- package/src/primitives/Fab.tsx +62 -0
- package/src/primitives/FormControl.tsx +90 -0
- package/src/primitives/FormControlLabel.tsx +51 -0
- package/src/primitives/Grid.tsx +101 -0
- package/src/primitives/IconButton.tsx +59 -0
- package/src/primitives/ImageList.test.tsx +48 -0
- package/src/primitives/ImageList.tsx +112 -0
- package/src/primitives/InputAdornment.tsx +86 -0
- package/src/primitives/Link.tsx +48 -0
- package/src/primitives/List.tsx +121 -0
- package/src/primitives/Masonry.tsx +32 -0
- package/src/primitives/Menu.tsx +112 -0
- package/src/primitives/MobileStepper.tsx +64 -0
- package/src/primitives/Modal.tsx +70 -0
- package/src/primitives/NoSsr.tsx +28 -0
- package/src/primitives/Paper.tsx +55 -0
- package/src/primitives/Progress.tsx +25 -7
- package/src/primitives/Snackbar.tsx +83 -0
- package/src/primitives/SpeedDial.tsx +110 -0
- package/src/primitives/Stack.tsx +88 -0
- package/src/primitives/StarRating.tsx +87 -28
- package/src/primitives/Stepper.tsx +184 -0
- package/src/primitives/TablePagination.tsx +58 -0
- package/src/primitives/TextField.tsx +105 -0
- package/src/primitives/TextareaAutosize.tsx +49 -0
- package/src/primitives/ToggleButton.tsx +148 -0
- package/src/primitives/TransferList.tsx +110 -0
- package/src/primitives/Typography.tsx +90 -0
- package/src/primitives/mui-more.test.tsx +76 -0
- package/src/primitives/mui.test.tsx +134 -0
- package/src/primitives/transitions.tsx +120 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type BackdropProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
3
|
+
open?: boolean;
|
|
4
|
+
/** Skip the dimmed fill — useful as a click-catcher. */
|
|
5
|
+
invisible?: boolean;
|
|
6
|
+
/** Render in-place instead of portaling to document.body. */
|
|
7
|
+
contained?: boolean;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Full-viewport dimmer, typically paired with a modal or speed dial.
|
|
11
|
+
*/
|
|
12
|
+
declare function Backdrop({ open, invisible, contained, className, style, children, ...props }: BackdropProps): React.JSX.Element | null;
|
|
13
|
+
declare namespace Backdrop {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
export { Backdrop };
|
|
17
|
+
//# sourceMappingURL=Backdrop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Backdrop.d.ts","sourceRoot":"","sources":["../../src/primitives/Backdrop.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAClE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,iBAAS,QAAQ,CAAC,EAChB,IAAY,EACZ,SAAiB,EACjB,SAAiB,EACjB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,aAAa,4BAoBf;kBA5BQ,QAAQ;;;AA+BjB,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Portal } from "../lib/portal";
|
|
3
|
+
import { cn } from "../lib/cn";
|
|
4
|
+
import { OVERLAY_Z_INDEX, fixedLayerStyle } from "../lib/overlay-stack";
|
|
5
|
+
/**
|
|
6
|
+
* Full-viewport dimmer, typically paired with a modal or speed dial.
|
|
7
|
+
*/
|
|
8
|
+
function Backdrop({ open = false, invisible = false, contained = false, className, style, children, ...props }) {
|
|
9
|
+
if (!open)
|
|
10
|
+
return null;
|
|
11
|
+
const node = (_jsx("div", { "data-slot": "backdrop", className: cn(contained ? "absolute inset-0" : "fixed inset-0", !invisible && "bg-[color-mix(in_srgb,var(--foreground)_28%,transparent)]", className), style: contained ? style : { ...fixedLayerStyle(OVERLAY_Z_INDEX.modal), ...style }, ...props, children: children }));
|
|
12
|
+
if (contained)
|
|
13
|
+
return node;
|
|
14
|
+
return _jsx(Portal, { children: node });
|
|
15
|
+
}
|
|
16
|
+
Backdrop.displayName = "Backdrop";
|
|
17
|
+
export { Backdrop };
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type BottomNavigationProps = Omit<React.ComponentPropsWithoutRef<"div">, "onChange" | "defaultValue"> & {
|
|
3
|
+
value?: string;
|
|
4
|
+
defaultValue?: string;
|
|
5
|
+
onChange?: (event: React.SyntheticEvent, value: string) => void;
|
|
6
|
+
showLabels?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function BottomNavigation({ value: valueProp, defaultValue, onChange, showLabels, className, ...props }: BottomNavigationProps): React.JSX.Element;
|
|
9
|
+
declare namespace BottomNavigation {
|
|
10
|
+
var displayName: string;
|
|
11
|
+
}
|
|
12
|
+
export type BottomNavigationActionProps = React.ComponentPropsWithoutRef<"button"> & {
|
|
13
|
+
value: string;
|
|
14
|
+
label?: React.ReactNode;
|
|
15
|
+
icon?: React.ReactNode;
|
|
16
|
+
showLabel?: boolean;
|
|
17
|
+
};
|
|
18
|
+
declare function BottomNavigationAction({ value, label, icon, showLabel, className, onClick, ...props }: BottomNavigationActionProps): React.JSX.Element;
|
|
19
|
+
declare namespace BottomNavigationAction {
|
|
20
|
+
var displayName: string;
|
|
21
|
+
}
|
|
22
|
+
export { BottomNavigation, BottomNavigationAction };
|
|
23
|
+
//# sourceMappingURL=BottomNavigation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BottomNavigation.d.ts","sourceRoot":"","sources":["../../src/primitives/BottomNavigation.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAY/B,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EACrC,UAAU,GAAG,cAAc,CAC5B,GAAG;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,iBAAS,gBAAgB,CAAC,EACxB,KAAK,EAAE,SAAS,EAChB,YAAY,EACZ,QAAQ,EACR,UAAiB,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAyBvB;kBAhCQ,gBAAgB;;;AAmCzB,MAAM,MAAM,2BAA2B,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACnF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,iBAAS,sBAAsB,CAAC,EAC9B,KAAK,EACL,KAAK,EACL,IAAI,EACJ,SAAS,EACT,SAAS,EACT,OAAO,EACP,GAAG,KAAK,EACT,EAAE,2BAA2B,qBA0B7B;kBAlCQ,sBAAsB;;;AAqC/B,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { useControllableState } from "../lib/use-controllable-state";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
const BottomNavContext = React.createContext(null);
|
|
6
|
+
function BottomNavigation({ value: valueProp, defaultValue, onChange, showLabels = true, className, ...props }) {
|
|
7
|
+
const [value, setValue] = useControllableState({
|
|
8
|
+
prop: valueProp,
|
|
9
|
+
defaultProp: defaultValue,
|
|
10
|
+
onChange: (next) => {
|
|
11
|
+
if (next == null)
|
|
12
|
+
return;
|
|
13
|
+
onChange?.({}, next);
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
return (_jsx(BottomNavContext.Provider, { value: { value, setValue: (next) => setValue(next), showLabels }, children: _jsx("div", { role: "navigation", "data-slot": "bottom-navigation", className: cn("glass-tabbar flex w-full items-stretch justify-around rounded-2xl border border-border/40 px-2 py-1", className), ...props }) }));
|
|
17
|
+
}
|
|
18
|
+
BottomNavigation.displayName = "BottomNavigation";
|
|
19
|
+
function BottomNavigationAction({ value, label, icon, showLabel, className, onClick, ...props }) {
|
|
20
|
+
const ctx = React.useContext(BottomNavContext);
|
|
21
|
+
const selected = ctx?.value === value;
|
|
22
|
+
const labels = showLabel ?? ctx?.showLabels ?? true;
|
|
23
|
+
return (_jsxs("button", { type: "button", "data-slot": "bottom-navigation-action", "data-selected": selected ? "" : undefined, "aria-current": selected ? "page" : undefined, className: cn("flex min-h-11 flex-1 flex-col items-center justify-center gap-0.5 rounded-xl px-2 py-1.5 text-[10px] font-bold outline-none transition-colors", selected ? "text-primary" : "text-muted-foreground hover:text-foreground", className), onClick: (event) => {
|
|
24
|
+
onClick?.(event);
|
|
25
|
+
if (!event.defaultPrevented)
|
|
26
|
+
ctx?.setValue(value);
|
|
27
|
+
}, ...props, children: [_jsx("span", { className: "[&_svg]:size-5", children: icon }), labels ? _jsx("span", { children: label }) : null] }));
|
|
28
|
+
}
|
|
29
|
+
BottomNavigationAction.displayName = "BottomNavigationAction";
|
|
30
|
+
export { BottomNavigation, BottomNavigationAction };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type ButtonBaseProps = React.ComponentPropsWithoutRef<"button"> & {
|
|
3
|
+
asChild?: boolean;
|
|
4
|
+
focusRipple?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Unstyled pressable — MUI ButtonBase analogue. Use Button / IconButton for styled actions.
|
|
8
|
+
*/
|
|
9
|
+
declare const ButtonBase: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
focusRipple?: boolean;
|
|
12
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
13
|
+
export { ButtonBase };
|
|
14
|
+
//# sourceMappingURL=ButtonBase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonBase.d.ts","sourceRoot":"","sources":["../../src/primitives/ButtonBase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,eAAe,GAAG,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,UAAU;cAPJ,OAAO;kBACH,OAAO;2CAwBtB,CAAC;AAGF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Slot } from "../lib/slot";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
/**
|
|
6
|
+
* Unstyled pressable — MUI ButtonBase analogue. Use Button / IconButton for styled actions.
|
|
7
|
+
*/
|
|
8
|
+
const ButtonBase = React.forwardRef(({ className, asChild = false, focusRipple: _focusRipple, ...props }, ref) => {
|
|
9
|
+
const Comp = asChild ? Slot : "button";
|
|
10
|
+
return (_jsx(Comp, { ref: ref, type: asChild ? undefined : "button", "data-slot": "button-base", className: cn("inline-flex cursor-pointer items-center justify-center outline-none select-none", "focus-visible:ring-ring/50 focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50", "active:scale-[0.98]", className), ...props }));
|
|
11
|
+
});
|
|
12
|
+
ButtonBase.displayName = "ButtonBase";
|
|
13
|
+
export { ButtonBase };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
import { buttonVariants } from "./Button";
|
|
4
|
+
declare const buttonGroupVariants: (props?: ({
|
|
5
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
6
|
+
fullWidth?: boolean | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type ButtonGroupProps = React.ComponentPropsWithoutRef<"div"> & VariantProps<typeof buttonGroupVariants> & {
|
|
9
|
+
variant?: VariantProps<typeof buttonVariants>["variant"];
|
|
10
|
+
size?: VariantProps<typeof buttonVariants>["size"];
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Connected cluster of buttons — first/last corners stay rounded.
|
|
15
|
+
*/
|
|
16
|
+
declare const ButtonGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
17
|
+
orientation?: "horizontal" | "vertical" | null | undefined;
|
|
18
|
+
fullWidth?: boolean | null | undefined;
|
|
19
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
20
|
+
variant?: VariantProps<typeof buttonVariants>["variant"];
|
|
21
|
+
size?: VariantProps<typeof buttonVariants>["size"];
|
|
22
|
+
disabled?: boolean;
|
|
23
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
+
export { ButtonGroup, buttonGroupVariants };
|
|
25
|
+
//# sourceMappingURL=ButtonGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../src/primitives/ButtonGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,QAAA,MAAM,mBAAmB;;;8EAevB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAClE,YAAY,CAAC,OAAO,mBAAmB,CAAC,GAAG;IACzC,OAAO,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEJ;;GAEG;AACH,QAAA,MAAM,WAAW;;;;cARH,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,SAAS,CAAC;WACjD,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC;eACvC,OAAO;wCA4DrB,CAAC;AAGF,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
const buttonGroupVariants = cva("inline-flex isolate", {
|
|
6
|
+
variants: {
|
|
7
|
+
orientation: {
|
|
8
|
+
horizontal: "flex-row",
|
|
9
|
+
vertical: "flex-col",
|
|
10
|
+
},
|
|
11
|
+
fullWidth: {
|
|
12
|
+
true: "flex w-full",
|
|
13
|
+
false: "",
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
defaultVariants: {
|
|
17
|
+
orientation: "horizontal",
|
|
18
|
+
fullWidth: false,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* Connected cluster of buttons — first/last corners stay rounded.
|
|
23
|
+
*/
|
|
24
|
+
const ButtonGroup = React.forwardRef(({ className, orientation = "horizontal", fullWidth = false, variant, size, disabled, children, ...props }, ref) => {
|
|
25
|
+
const items = React.Children.toArray(children);
|
|
26
|
+
const vertical = orientation === "vertical";
|
|
27
|
+
return (_jsx("div", { ref: ref, role: "group", "data-slot": "button-group", "data-orientation": orientation, className: cn(buttonGroupVariants({ orientation, fullWidth }), className), ...props, children: items.map((child, index) => {
|
|
28
|
+
if (!React.isValidElement(child)) {
|
|
29
|
+
return child;
|
|
30
|
+
}
|
|
31
|
+
const first = index === 0;
|
|
32
|
+
const last = index === items.length - 1;
|
|
33
|
+
return React.cloneElement(child, {
|
|
34
|
+
disabled: disabled || child.props.disabled,
|
|
35
|
+
variant: child.props.variant ?? variant ?? undefined,
|
|
36
|
+
size: child.props.size ?? size ?? undefined,
|
|
37
|
+
className: cn(child.props.className, "focus-visible:z-10", vertical
|
|
38
|
+
? cn(!first && "-mt-px rounded-t-none", !last && "rounded-b-none")
|
|
39
|
+
: cn(!first && "-ml-px rounded-l-none", !last && "rounded-r-none"), fullWidth && "flex-1"),
|
|
40
|
+
});
|
|
41
|
+
}) }));
|
|
42
|
+
});
|
|
43
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
44
|
+
export { ButtonGroup, buttonGroupVariants };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type CircularProgressProps = React.ComponentPropsWithoutRef<"span"> & {
|
|
3
|
+
variant?: "indeterminate" | "determinate";
|
|
4
|
+
value?: number;
|
|
5
|
+
size?: number;
|
|
6
|
+
thickness?: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Circular indicator. Indeterminate spins; determinate fills an SVG track.
|
|
10
|
+
*/
|
|
11
|
+
declare function CircularProgress({ variant, value, size, thickness, className, ...props }: CircularProgressProps): React.JSX.Element;
|
|
12
|
+
declare namespace CircularProgress {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export { CircularProgress };
|
|
16
|
+
//# sourceMappingURL=CircularProgress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CircularProgress.d.ts","sourceRoot":"","sources":["../../src/primitives/CircularProgress.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,qBAAqB,GAAG,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,GAAG;IAC3E,OAAO,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,iBAAS,gBAAgB,CAAC,EACxB,OAAyB,EACzB,KAAS,EACT,IAAS,EACT,SAAa,EACb,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAgFvB;kBAvFQ,gBAAgB;;;AA0FzB,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { cn } from "../lib/cn";
|
|
3
|
+
/**
|
|
4
|
+
* Circular indicator. Indeterminate spins; determinate fills an SVG track.
|
|
5
|
+
*/
|
|
6
|
+
function CircularProgress({ variant = "indeterminate", value = 0, size = 40, thickness = 4, className, ...props }) {
|
|
7
|
+
const pct = Math.min(100, Math.max(0, value));
|
|
8
|
+
const radius = (size - thickness) / 2;
|
|
9
|
+
const circumference = 2 * Math.PI * radius;
|
|
10
|
+
const offset = circumference - (pct / 100) * circumference;
|
|
11
|
+
if (variant === "indeterminate") {
|
|
12
|
+
return (_jsx("span", { role: "progressbar", "aria-label": "Loading", "data-slot": "circular-progress", className: cn("inline-flex text-primary", className), ...props, children: _jsxs("svg", { className: "animate-spin", width: size, height: size, viewBox: `0 0 ${size} ${size}`, children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: "currentColor", strokeOpacity: 0.2, strokeWidth: thickness }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: "currentColor", strokeWidth: thickness, strokeLinecap: "round", strokeDasharray: `${circumference * 0.25} ${circumference}` })] }) }));
|
|
13
|
+
}
|
|
14
|
+
return (_jsx("span", { role: "progressbar", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": pct, "data-slot": "circular-progress", className: cn("inline-flex text-primary", className), ...props, children: _jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, className: "-rotate-90", children: [_jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: "currentColor", strokeOpacity: 0.2, strokeWidth: thickness }), _jsx("circle", { cx: size / 2, cy: size / 2, r: radius, fill: "none", stroke: "currentColor", strokeWidth: thickness, strokeLinecap: "round", strokeDasharray: circumference, strokeDashoffset: offset, className: "transition-[stroke-dashoffset] duration-300" })] }) }));
|
|
15
|
+
}
|
|
16
|
+
CircularProgress.displayName = "CircularProgress";
|
|
17
|
+
export { CircularProgress };
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type ClickAwayListenerProps = {
|
|
3
|
+
onClickAway: (event: MouseEvent | TouchEvent) => void;
|
|
4
|
+
children: React.ReactElement;
|
|
5
|
+
mouseEvent?: "mousedown" | "mouseup" | "click" | false;
|
|
6
|
+
touchEvent?: "touchstart" | "touchend" | false;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Invokes `onClickAway` when a pointer event occurs outside the child.
|
|
10
|
+
*/
|
|
11
|
+
declare function ClickAwayListener({ onClickAway, children, mouseEvent, touchEvent, }: ClickAwayListenerProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
|
|
12
|
+
declare namespace ClickAwayListener {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export { ClickAwayListener };
|
|
16
|
+
//# sourceMappingURL=ClickAwayListener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClickAwayListener.d.ts","sourceRoot":"","sources":["../../src/primitives/ClickAwayListener.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,sBAAsB,GAAG;IACnC,WAAW,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,KAAK,IAAI,CAAC;IACtD,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,KAAK,CAAC;IACvD,UAAU,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;CAChD,CAAC;AAEF;;GAEG;AACH,iBAAS,iBAAiB,CAAC,EACzB,WAAW,EACX,QAAQ,EACR,UAAwB,EACxB,UAAyB,GAC1B,EAAE,sBAAsB,0EAwBxB;kBA7BQ,iBAAiB;;;AAgC1B,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { composeRefs } from "../lib/compose-refs";
|
|
3
|
+
/**
|
|
4
|
+
* Invokes `onClickAway` when a pointer event occurs outside the child.
|
|
5
|
+
*/
|
|
6
|
+
function ClickAwayListener({ onClickAway, children, mouseEvent = "mousedown", touchEvent = "touchstart", }) {
|
|
7
|
+
const ref = React.useRef(null);
|
|
8
|
+
React.useEffect(() => {
|
|
9
|
+
const handler = (event) => {
|
|
10
|
+
const node = ref.current;
|
|
11
|
+
const target = event.target;
|
|
12
|
+
if (!node || !target || node.contains(target))
|
|
13
|
+
return;
|
|
14
|
+
onClickAway(event);
|
|
15
|
+
};
|
|
16
|
+
if (mouseEvent)
|
|
17
|
+
document.addEventListener(mouseEvent, handler);
|
|
18
|
+
if (touchEvent)
|
|
19
|
+
document.addEventListener(touchEvent, handler);
|
|
20
|
+
return () => {
|
|
21
|
+
if (mouseEvent)
|
|
22
|
+
document.removeEventListener(mouseEvent, handler);
|
|
23
|
+
if (touchEvent)
|
|
24
|
+
document.removeEventListener(touchEvent, handler);
|
|
25
|
+
};
|
|
26
|
+
}, [onClickAway, mouseEvent, touchEvent]);
|
|
27
|
+
const childRef = children.ref;
|
|
28
|
+
return React.cloneElement(children, {
|
|
29
|
+
ref: composeRefs(ref, childRef),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
ClickAwayListener.displayName = "ClickAwayListener";
|
|
33
|
+
export { ClickAwayListener };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type CollapseProps = Omit<React.ComponentPropsWithoutRef<"div">, "in"> & {
|
|
3
|
+
/** When true, the child is expanded. */
|
|
4
|
+
in?: boolean;
|
|
5
|
+
/** Keep children mounted while collapsed. Defaults to true so height can animate. */
|
|
6
|
+
unmountOnExit?: boolean;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Height collapse used by Accordion and other expandable regions.
|
|
10
|
+
* Animates `grid-template-rows` (transform-safe; no `transition-all`).
|
|
11
|
+
*/
|
|
12
|
+
declare const Collapse: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "in"> & {
|
|
13
|
+
/** When true, the child is expanded. */
|
|
14
|
+
in?: boolean;
|
|
15
|
+
/** Keep children mounted while collapsed. Defaults to true so height can animate. */
|
|
16
|
+
unmountOnExit?: boolean;
|
|
17
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
18
|
+
export { Collapse };
|
|
19
|
+
//# sourceMappingURL=Collapse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Collapse.d.ts","sourceRoot":"","sources":["../../src/primitives/Collapse.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG;IAC9E,wCAAwC;IACxC,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,qFAAqF;IACrF,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,QAAQ;IAVZ,wCAAwC;SACnC,OAAO;IACZ,qFAAqF;oBACrE,OAAO;wCA4BxB,CAAC;AAGF,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/cn";
|
|
4
|
+
/**
|
|
5
|
+
* Height collapse used by Accordion and other expandable regions.
|
|
6
|
+
* Animates `grid-template-rows` (transform-safe; no `transition-all`).
|
|
7
|
+
*/
|
|
8
|
+
const Collapse = React.forwardRef(({ in: open = false, unmountOnExit = false, className, children, ...props }, ref) => {
|
|
9
|
+
if (unmountOnExit && !open)
|
|
10
|
+
return null;
|
|
11
|
+
return (_jsx("div", { ref: ref, "data-slot": "collapse", "data-state": open ? "open" : "closed", "aria-hidden": !open, className: cn("grid transition-[grid-template-rows] duration-300 ease-out", open ? "grid-rows-[1fr]" : "grid-rows-[0fr]", className), ...props, children: _jsx("div", { className: "min-h-0 overflow-hidden", children: children }) }));
|
|
12
|
+
});
|
|
13
|
+
Collapse.displayName = "Collapse";
|
|
14
|
+
export { Collapse };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const containerVariants: (props?: ({
|
|
4
|
+
maxWidth?: "sm" | "lg" | "xl" | "md" | "full" | null | undefined;
|
|
5
|
+
disableGutters?: boolean | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export type ContainerProps = React.ComponentPropsWithoutRef<"div"> & VariantProps<typeof containerVariants>;
|
|
8
|
+
declare const Container: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & VariantProps<(props?: ({
|
|
9
|
+
maxWidth?: "sm" | "lg" | "xl" | "md" | "full" | null | undefined;
|
|
10
|
+
disableGutters?: boolean | null | undefined;
|
|
11
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & React.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export { Container, containerVariants };
|
|
13
|
+
//# sourceMappingURL=Container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.d.ts","sourceRoot":"","sources":["../../src/primitives/Container.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGlE,QAAA,MAAM,iBAAiB;;;8EAkBrB,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAChE,YAAY,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAEzC,QAAA,MAAM,SAAS;;;sHASd,CAAC;AAGF,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { cn } from "../lib/cn";
|
|
5
|
+
const containerVariants = cva("mx-auto w-full", {
|
|
6
|
+
variants: {
|
|
7
|
+
maxWidth: {
|
|
8
|
+
sm: "max-w-screen-sm",
|
|
9
|
+
md: "max-w-screen-md",
|
|
10
|
+
lg: "max-w-screen-lg",
|
|
11
|
+
xl: "max-w-screen-xl",
|
|
12
|
+
full: "max-w-none",
|
|
13
|
+
},
|
|
14
|
+
disableGutters: {
|
|
15
|
+
true: "px-0",
|
|
16
|
+
false: "px-4 sm:px-6",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
defaultVariants: {
|
|
20
|
+
maxWidth: "lg",
|
|
21
|
+
disableGutters: false,
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
const Container = React.forwardRef(({ className, maxWidth, disableGutters, ...props }, ref) => (_jsx("div", { ref: ref, "data-slot": "container", className: cn(containerVariants({ maxWidth, disableGutters }), className), ...props })));
|
|
25
|
+
Container.displayName = "Container";
|
|
26
|
+
export { Container, containerVariants };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { type VariantProps } from "class-variance-authority";
|
|
3
|
+
declare const fabVariants: (props?: ({
|
|
4
|
+
variant?: "circular" | "extended" | null | undefined;
|
|
5
|
+
color?: "default" | "glass" | "primary" | null | undefined;
|
|
6
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
export type FabProps = Omit<React.ComponentPropsWithoutRef<"button">, "color"> & VariantProps<typeof fabVariants> & {
|
|
9
|
+
asChild?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Floating action button. Use `variant="extended"` for a labeled FAB.
|
|
13
|
+
*/
|
|
14
|
+
declare const Fab: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "color"> & VariantProps<(props?: ({
|
|
15
|
+
variant?: "circular" | "extended" | null | undefined;
|
|
16
|
+
color?: "default" | "glass" | "primary" | null | undefined;
|
|
17
|
+
size?: "sm" | "lg" | "md" | null | undefined;
|
|
18
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string> & {
|
|
19
|
+
asChild?: boolean;
|
|
20
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
21
|
+
export { Fab, fabVariants };
|
|
22
|
+
//# sourceMappingURL=Fab.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Fab.d.ts","sourceRoot":"","sources":["../../src/primitives/Fab.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,WAAW;;;;8EA8BhB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,GAC5E,YAAY,CAAC,OAAO,WAAW,CAAC,GAAG;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEJ;;GAEG;AACH,QAAA,MAAM,GAAG;;;;;cANK,OAAO;2CAmBpB,CAAC;AAGF,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { Slot } from "../lib/slot";
|
|
5
|
+
import { cn } from "../lib/cn";
|
|
6
|
+
const fabVariants = cva("inline-flex items-center justify-center gap-2 font-bold shadow-[0_10px_28px_color-mix(in_srgb,var(--foreground)_16%,transparent)] outline-none transition-[color,background-color,box-shadow,transform] duration-150 focus-visible:ring-ring/50 focus-visible:ring-[3px] active:scale-[0.98] disabled:pointer-events-none disabled:opacity-50 [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-5", {
|
|
7
|
+
variants: {
|
|
8
|
+
variant: {
|
|
9
|
+
circular: "rounded-full",
|
|
10
|
+
extended: "rounded-full px-5",
|
|
11
|
+
},
|
|
12
|
+
color: {
|
|
13
|
+
primary: "bg-primary text-primary-foreground hover:bg-primary/90",
|
|
14
|
+
glass: "glass border-border/50 text-foreground hover:border-primary/30 hover:text-primary",
|
|
15
|
+
default: "bg-card text-foreground border border-border/50 hover:bg-muted/60",
|
|
16
|
+
},
|
|
17
|
+
size: {
|
|
18
|
+
sm: "size-10 text-sm",
|
|
19
|
+
md: "size-14 text-base",
|
|
20
|
+
lg: "size-16 text-lg",
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
compoundVariants: [
|
|
24
|
+
{ variant: "extended", size: "sm", className: "h-10 w-auto min-w-10" },
|
|
25
|
+
{ variant: "extended", size: "md", className: "h-12 w-auto min-w-12 size-auto" },
|
|
26
|
+
{ variant: "extended", size: "lg", className: "h-14 w-auto min-w-14 size-auto" },
|
|
27
|
+
],
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
variant: "circular",
|
|
30
|
+
color: "primary",
|
|
31
|
+
size: "md",
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
/**
|
|
35
|
+
* Floating action button. Use `variant="extended"` for a labeled FAB.
|
|
36
|
+
*/
|
|
37
|
+
const Fab = React.forwardRef(({ className, variant, color, size, asChild = false, ...props }, ref) => {
|
|
38
|
+
const Comp = asChild ? Slot : "button";
|
|
39
|
+
return (_jsx(Comp, { ref: ref, type: asChild ? undefined : "button", "data-slot": "fab", className: cn(fabVariants({ variant, color, size }), className), ...props }));
|
|
40
|
+
});
|
|
41
|
+
Fab.displayName = "Fab";
|
|
42
|
+
export { Fab, fabVariants };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type FormControlProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
3
|
+
error?: boolean;
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
required?: boolean;
|
|
6
|
+
fullWidth?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare function FormControl({ error, disabled, required, fullWidth, className, ...props }: FormControlProps): React.JSX.Element;
|
|
9
|
+
declare namespace FormControl {
|
|
10
|
+
var displayName: string;
|
|
11
|
+
}
|
|
12
|
+
declare function FormLabel({ className, children, ...props }: React.ComponentPropsWithoutRef<"label">): React.JSX.Element;
|
|
13
|
+
declare namespace FormLabel {
|
|
14
|
+
var displayName: string;
|
|
15
|
+
}
|
|
16
|
+
declare function FormHelperText({ className, ...props }: React.ComponentPropsWithoutRef<"p">): React.JSX.Element;
|
|
17
|
+
declare namespace FormHelperText {
|
|
18
|
+
var displayName: string;
|
|
19
|
+
}
|
|
20
|
+
declare function FormGroup({ row, className, ...props }: React.ComponentPropsWithoutRef<"div"> & {
|
|
21
|
+
row?: boolean;
|
|
22
|
+
}): React.JSX.Element;
|
|
23
|
+
declare namespace FormGroup {
|
|
24
|
+
var displayName: string;
|
|
25
|
+
}
|
|
26
|
+
export { FormControl, FormLabel, FormHelperText, FormGroup };
|
|
27
|
+
//# sourceMappingURL=FormControl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormControl.d.ts","sourceRoot":"","sources":["../../src/primitives/FormControl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IACrE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF,iBAAS,WAAW,CAAC,EACnB,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,qBAYlB;kBAnBQ,WAAW;;;AAsBpB,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,qBAY5F;kBAZQ,SAAS;;;AAelB,iBAAS,cAAc,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,wBAAwB,CAAC,GAAG,CAAC,qBAanF;kBAbQ,cAAc;;;AAgBvB,iBAAS,SAAS,CAAC,EACjB,GAAG,EACH,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,qBAS3D;kBAbQ,SAAS;;;AAgBlB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/cn";
|
|
4
|
+
import { Label } from "./Label";
|
|
5
|
+
const FormControlContext = React.createContext(null);
|
|
6
|
+
function FormControl({ error, disabled, required, fullWidth, className, ...props }) {
|
|
7
|
+
return (_jsx(FormControlContext.Provider, { value: { error, disabled, required, fullWidth }, children: _jsx("div", { "data-slot": "form-control", "data-error": error ? "" : undefined, "data-disabled": disabled ? "" : undefined, className: cn("flex flex-col gap-1.5", fullWidth && "w-full", className), ...props }) }));
|
|
8
|
+
}
|
|
9
|
+
FormControl.displayName = "FormControl";
|
|
10
|
+
function FormLabel({ className, children, ...props }) {
|
|
11
|
+
const ctx = React.useContext(FormControlContext);
|
|
12
|
+
return (_jsxs(Label, { "data-slot": "form-label", className: cn(ctx?.error && "text-destructive", className), ...props, children: [children, ctx?.required ? _jsx("span", { className: "text-destructive", children: "*" }) : null] }));
|
|
13
|
+
}
|
|
14
|
+
FormLabel.displayName = "FormLabel";
|
|
15
|
+
function FormHelperText({ className, ...props }) {
|
|
16
|
+
const ctx = React.useContext(FormControlContext);
|
|
17
|
+
return (_jsx("p", { "data-slot": "form-helper-text", className: cn("text-xs font-medium", ctx?.error ? "text-destructive" : "text-muted-foreground", className), ...props }));
|
|
18
|
+
}
|
|
19
|
+
FormHelperText.displayName = "FormHelperText";
|
|
20
|
+
function FormGroup({ row, className, ...props }) {
|
|
21
|
+
return (_jsx("div", { "data-slot": "form-group", role: "group", className: cn("flex", row ? "flex-row flex-wrap gap-4" : "flex-col gap-2", className), ...props }));
|
|
22
|
+
}
|
|
23
|
+
FormGroup.displayName = "FormGroup";
|
|
24
|
+
export { FormControl, FormLabel, FormHelperText, FormGroup };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type FormControlLabelProps = Omit<React.ComponentPropsWithoutRef<"label">, "control"> & {
|
|
3
|
+
control: React.ReactElement<{
|
|
4
|
+
disabled?: boolean;
|
|
5
|
+
}>;
|
|
6
|
+
label: React.ReactNode;
|
|
7
|
+
labelPlacement?: "end" | "start" | "top" | "bottom";
|
|
8
|
+
disabled?: boolean;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Pairs a checkbox, radio, or switch with its visible label.
|
|
12
|
+
*/
|
|
13
|
+
declare function FormControlLabel({ control, label, labelPlacement, disabled, className, ...props }: FormControlLabelProps): React.JSX.Element;
|
|
14
|
+
declare namespace FormControlLabel {
|
|
15
|
+
var displayName: string;
|
|
16
|
+
}
|
|
17
|
+
export { FormControlLabel };
|
|
18
|
+
//# sourceMappingURL=FormControlLabel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormControlLabel.d.ts","sourceRoot":"","sources":["../../src/primitives/FormControlLabel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,GAAG;IAC7F,OAAO,EAAE,KAAK,CAAC,YAAY,CAAC;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,cAAc,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AASF;;GAEG;AACH,iBAAS,gBAAgB,CAAC,EACxB,OAAO,EACP,KAAK,EACL,cAAsB,EACtB,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,qBAAqB,qBAmBvB;kBA1BQ,gBAAgB;;;AA6BzB,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { cn } from "../lib/cn";
|
|
4
|
+
import { Label } from "./Label";
|
|
5
|
+
const placementClass = {
|
|
6
|
+
end: "flex-row",
|
|
7
|
+
start: "flex-row-reverse",
|
|
8
|
+
top: "flex-col-reverse items-center",
|
|
9
|
+
bottom: "flex-col items-center",
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Pairs a checkbox, radio, or switch with its visible label.
|
|
13
|
+
*/
|
|
14
|
+
function FormControlLabel({ control, label, labelPlacement = "end", disabled, className, ...props }) {
|
|
15
|
+
const controlDisabled = disabled || control.props.disabled;
|
|
16
|
+
return (_jsxs(Label, { "data-slot": "form-control-label", "data-disabled": controlDisabled ? "" : undefined, className: cn("inline-flex w-fit cursor-pointer items-center gap-2", placementClass[labelPlacement], controlDisabled && "cursor-not-allowed opacity-50", className), ...props, children: [React.cloneElement(control, { disabled: controlDisabled }), _jsx("span", { className: "text-sm font-medium", children: label })] }));
|
|
17
|
+
}
|
|
18
|
+
FormControlLabel.displayName = "FormControlLabel";
|
|
19
|
+
export { FormControlLabel };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
export type BoxProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
3
|
+
component?: React.ElementType;
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Generic layout primitive. Prefer Stack / Grid / Paper for structured layouts.
|
|
8
|
+
*/
|
|
9
|
+
declare const Box: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
10
|
+
component?: React.ElementType;
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
13
|
+
export type GridProps = React.ComponentPropsWithoutRef<"div"> & {
|
|
14
|
+
container?: boolean;
|
|
15
|
+
item?: boolean;
|
|
16
|
+
spacing?: number;
|
|
17
|
+
columns?: 12;
|
|
18
|
+
xs?: number | "auto";
|
|
19
|
+
sm?: number | "auto";
|
|
20
|
+
md?: number | "auto";
|
|
21
|
+
lg?: number | "auto";
|
|
22
|
+
size?: number | "grow";
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* 12-column CSS grid. Use `container` on the parent and breakpoint spans on items.
|
|
26
|
+
*/
|
|
27
|
+
declare function Grid({ container, item: _item, spacing, columns: _columns, xs, sm, md, lg, size, className, ...props }: GridProps): React.JSX.Element;
|
|
28
|
+
declare namespace Grid {
|
|
29
|
+
var displayName: string;
|
|
30
|
+
}
|
|
31
|
+
export { Box, Grid };
|
|
32
|
+
//# sourceMappingURL=Grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Grid.d.ts","sourceRoot":"","sources":["../../src/primitives/Grid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,MAAM,MAAM,QAAQ,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC7D,SAAS,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,GAAG;gBAPK,KAAK,CAAC,WAAW;cACnB,OAAO;wCAWlB,CAAC;AA6BF,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,GAAG;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB,CAAC;AAOF;;GAEG;AACH,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,EAAE,KAAK,EACX,OAAW,EACX,OAAO,EAAE,QAAa,EACtB,EAAE,EACF,EAAE,EACF,EAAE,EACF,EAAE,EACF,IAAI,EACJ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,SAAS,qBAmBX;kBA/BQ,IAAI;;;AAkCb,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC"}
|