@exsto/ds 0.0.1-rc.2 → 0.0.1-rc.4
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 +19 -5
- package/dist/chunks/{toggle-group-ByNq8g7H.js → toggle-group-CTTjTe-K.js} +204 -96
- package/dist/chunks/toggle-group-CTTjTe-K.js.map +1 -0
- package/dist/elements/src/edx-scroll-area.d.ts +5 -0
- package/dist/elements.js +10 -4
- package/dist/elements.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +207 -63
- package/dist/theme.css +58 -5
- package/dist/ui/src/components/ui/command/command.d.ts +17 -1
- package/dist/ui/src/components/ui/dropdown-menu/dropdown-menu.d.ts +12 -0
- package/dist/ui/src/components/ui/scroll-area/scroll-area.behavior.test.d.ts +11 -0
- package/dist/ui/src/components/ui/scroll-area/scroll-area.d.ts +40 -6
- package/dist/ui/src/components/ui/separator/separator.behavior.test.d.ts +14 -0
- package/dist/ui/src/components/ui/separator/separator.d.ts +14 -0
- package/package.json +1 -1
- package/dist/chunks/toggle-group-ByNq8g7H.js.map +0 -1
package/README.md
CHANGED
|
@@ -38,14 +38,28 @@ markup, import the token layer as well and let your Tailwind build generate the
|
|
|
38
38
|
whole vocabulary:
|
|
39
39
|
|
|
40
40
|
```css
|
|
41
|
+
@import "@exsto/ds/styles.css";
|
|
41
42
|
@import "tailwindcss";
|
|
42
43
|
@import "@exsto/ds/theme.css";
|
|
43
|
-
@import "@exsto/ds/styles.css";
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
`
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
**The order matters, and `styles.css` has to come first.** It is a compiled
|
|
47
|
+
Tailwind build, so its utilities land in the same cascade layer as yours, and at
|
|
48
|
+
equal specificity the later rule wins. Import it after your Tailwind entry and
|
|
49
|
+
its unconditional `.hidden` beats your `.md:table-cell`: responsive columns
|
|
50
|
+
vanish, widths collapse. Library CSS before app CSS, as with any CSS dependency.
|
|
51
|
+
|
|
52
|
+
Nothing else is needed. `theme.css` also points your build at the components'
|
|
53
|
+
shipped code, so your build emits their classes too, each responsive variant
|
|
54
|
+
after its own base. That is what keeps a design system class such as the
|
|
55
|
+
sidebar's `hidden md:block` working when your own markup uses `hidden` as well:
|
|
56
|
+
one build decides the order for both sides. Earlier releases needed a
|
|
57
|
+
`@source` line in the app to get this, and that line can be removed.
|
|
58
|
+
|
|
59
|
+
`theme.css` is uncompiled on purpose. It carries the tokens, the `.dark` scope,
|
|
60
|
+
the brand layer (Inter, `text-2xs`) and the `@theme` mapping Tailwind needs to
|
|
61
|
+
turn them into utilities. Do not copy that block into your app, or it will drift
|
|
62
|
+
from the design system.
|
|
49
63
|
|
|
50
64
|
Without it some token utilities still work, because our components happen to use
|
|
51
65
|
them, but the coverage is incidental: roughly half of `bg-*` and nearly every
|
|
@@ -89,7 +103,7 @@ supply your own sheet. Calling it more than once is harmless.
|
|
|
89
103
|
|---|---|
|
|
90
104
|
| `@exsto/ds` | React components (the default) |
|
|
91
105
|
| `@exsto/ds/styles.css` | Precompiled tokens and component styles |
|
|
92
|
-
| `@exsto/ds/theme.css` | Uncompiled tokens
|
|
106
|
+
| `@exsto/ds/theme.css` | Uncompiled tokens, brand layer, and the Tailwind `@theme` mapping |
|
|
93
107
|
| `@exsto/ds/elements` | `<edx-*>` custom elements and `registerElements()` |
|
|
94
108
|
|
|
95
109
|
## Status
|
|
@@ -18,6 +18,7 @@ import * as RechartsPrimitive from "recharts";
|
|
|
18
18
|
import { Checkbox } from "@base-ui/react/checkbox";
|
|
19
19
|
import { Collapsible } from "@base-ui/react/collapsible";
|
|
20
20
|
import { Combobox } from "@base-ui/react/combobox";
|
|
21
|
+
import { ScrollArea } from "@base-ui/react/scroll-area";
|
|
21
22
|
import { Command } from "cmdk";
|
|
22
23
|
import { Dialog } from "@base-ui/react/dialog";
|
|
23
24
|
import { Input } from "@base-ui/react/input";
|
|
@@ -37,7 +38,6 @@ import { Questionnaire } from "@shadcn/react/questionnaire";
|
|
|
37
38
|
import { Radio } from "@base-ui/react/radio";
|
|
38
39
|
import { RadioGroup } from "@base-ui/react/radio-group";
|
|
39
40
|
import * as ResizablePrimitive from "react-resizable-panels";
|
|
40
|
-
import { ScrollArea } from "@base-ui/react/scroll-area";
|
|
41
41
|
import { Select } from "@base-ui/react/select";
|
|
42
42
|
import { Tooltip } from "@base-ui/react/tooltip";
|
|
43
43
|
import { Switch } from "@base-ui/react/switch";
|
|
@@ -1495,6 +1495,126 @@ var CollapsibleContent = ({ ...props }) => {
|
|
|
1495
1495
|
});
|
|
1496
1496
|
};
|
|
1497
1497
|
//#endregion
|
|
1498
|
+
//#region ../ui/src/hooks/use-merged-refs.ts
|
|
1499
|
+
var assignRef = (ref, value) => {
|
|
1500
|
+
if (typeof ref === "function") ref(value);
|
|
1501
|
+
else if (ref !== null) ref.current = value;
|
|
1502
|
+
};
|
|
1503
|
+
var mergeRefs = (...refs) => {
|
|
1504
|
+
return (node) => {
|
|
1505
|
+
for (const ref of refs) if (ref) assignRef(ref, node);
|
|
1506
|
+
};
|
|
1507
|
+
};
|
|
1508
|
+
var useMergedRefs = (...refs) => {
|
|
1509
|
+
return useCallback(mergeRefs(...refs), [...refs]);
|
|
1510
|
+
};
|
|
1511
|
+
//#endregion
|
|
1512
|
+
//#region ../ui/src/components/ui/scroll-area/scroll-area.tsx
|
|
1513
|
+
var ScrollBar = ({ className, orientation = "vertical", visibility = "hover", ...props }) => {
|
|
1514
|
+
return /* @__PURE__ */ jsx(ScrollArea.Scrollbar, {
|
|
1515
|
+
"data-slot": "scroll-area-scrollbar",
|
|
1516
|
+
orientation,
|
|
1517
|
+
className: cn("peer/scrollbar z-100 flex touch-none select-none motion-safe:transition-opacity motion-safe:duration-150", orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-px", orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-px", visibility !== "always" && "opacity-0 data-scrolling:opacity-100", visibility === "hover" && "data-hovering:opacity-100 group-hover/scroll-area:opacity-100", className),
|
|
1518
|
+
...props,
|
|
1519
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-muted-foreground/50 transition-colors hover:bg-muted-foreground/70 data-scrolling:bg-muted-foreground/70" })
|
|
1520
|
+
});
|
|
1521
|
+
};
|
|
1522
|
+
var FADE_FROM = {
|
|
1523
|
+
card: "from-card",
|
|
1524
|
+
background: "from-background",
|
|
1525
|
+
sidebar: "from-sidebar",
|
|
1526
|
+
popover: "from-popover"
|
|
1527
|
+
};
|
|
1528
|
+
/**
|
|
1529
|
+
* Each fade follows one of the overflow flags Base UI keeps on the root, so the
|
|
1530
|
+
* reveal is pure CSS: no scroll listener, no measurement, nothing to re-render.
|
|
1531
|
+
* The flags are logical (x-start / x-end rather than left / right), which is
|
|
1532
|
+
* also what makes the horizontal pair correct under RTL.
|
|
1533
|
+
*
|
|
1534
|
+
* Below the scrollbar's z-100, so the bar never dissolves into the edge it sits on.
|
|
1535
|
+
*/
|
|
1536
|
+
var FADE_BASE = "pointer-events-none absolute z-10 opacity-0 to-transparent transition-opacity duration-200 motion-reduce:transition-none";
|
|
1537
|
+
var FADE_EDGES = {
|
|
1538
|
+
"y-start": "inset-x-0 top-0 h-8 bg-linear-to-b group-data-overflow-y-start/scroll-area:opacity-100",
|
|
1539
|
+
"y-end": "inset-x-0 bottom-0 h-8 bg-linear-to-t group-data-overflow-y-end/scroll-area:opacity-100",
|
|
1540
|
+
"x-start": "inset-y-0 start-0 w-12 ltr:bg-linear-to-r rtl:bg-linear-to-l group-data-overflow-x-start/scroll-area:opacity-100",
|
|
1541
|
+
"x-end": "inset-y-0 end-0 w-12 ltr:bg-linear-to-l rtl:bg-linear-to-r group-data-overflow-x-end/scroll-area:opacity-100"
|
|
1542
|
+
};
|
|
1543
|
+
/**
|
|
1544
|
+
* Themed scroll container (Base UI): overflowing content scrolls INSIDE the component
|
|
1545
|
+
* with a slim overlay scrollbar instead of exposing a native browser scrollbar. House
|
|
1546
|
+
* rule: wide/tall content (tables, lists, code) always goes through this, never a bare
|
|
1547
|
+
* overflow-* utility.
|
|
1548
|
+
*
|
|
1549
|
+
* Cap the height with a plain class on the component itself, e.g.
|
|
1550
|
+
* `<ScrollArea className="max-h-88">`. The viewport picks the cap up through
|
|
1551
|
+
* `max-h-inherit`, which matters because the viewport is the element that actually
|
|
1552
|
+
* scrolls: a cap that lands only on the root leaves tall content spilling out
|
|
1553
|
+
* underneath with no scrollbar, and that reads as a working height right up until the
|
|
1554
|
+
* content outgrows it.
|
|
1555
|
+
*
|
|
1556
|
+
* `fade` draws an edge fade on each side that is currently hiding content, rather than
|
|
1557
|
+
* always painting one: a permanent fade is a lie half the time, dimming the last row
|
|
1558
|
+
* that fits and promising more below when the reader is already at the end. The static
|
|
1559
|
+
* faded-* utilities in @edyn/theme/utilities.css are the other tool, for DECORATIVE
|
|
1560
|
+
* edges that do not track scroll position.
|
|
1561
|
+
*
|
|
1562
|
+
* The viewport publishes its size as --scroll-area-width/--scroll-area-height CSS vars
|
|
1563
|
+
* so children can size against the visible area.
|
|
1564
|
+
*/
|
|
1565
|
+
var ScrollArea$1 = ({ className, children, orientation = "vertical", type = "hover", fade = false, fadeFrom = "card", scrollbarClassName, viewportId, viewportRef, viewportClassName, scrollRestorationId, viewPortId, viewPortRef, viewPortClassName, scrollVerticalClassName, scrollHorizontalClassName, ...props }) => {
|
|
1566
|
+
const refInner = useRef(null);
|
|
1567
|
+
const refsViewport = useMergedRefs(refInner, viewportRef ?? viewPortRef);
|
|
1568
|
+
useEffect(() => {
|
|
1569
|
+
const el = refInner.current;
|
|
1570
|
+
if (!el) return;
|
|
1571
|
+
const observer = new ResizeObserver(() => {
|
|
1572
|
+
el.style.setProperty("--scroll-area-width", `${el.clientWidth}px`);
|
|
1573
|
+
el.style.setProperty("--scroll-area-height", `${el.clientHeight}px`);
|
|
1574
|
+
});
|
|
1575
|
+
observer.observe(el);
|
|
1576
|
+
return () => {
|
|
1577
|
+
observer.disconnect();
|
|
1578
|
+
};
|
|
1579
|
+
}, []);
|
|
1580
|
+
const fadeEdges = fade ? [...orientation === "horizontal" ? [] : ["y-start", "y-end"], ...orientation === "vertical" ? [] : ["x-start", "x-end"]] : [];
|
|
1581
|
+
return /* @__PURE__ */ jsxs(ScrollArea.Root, {
|
|
1582
|
+
"data-slot": "scroll-area",
|
|
1583
|
+
className: cn("group/scroll-area relative grid min-w-0 grid-rows-1 overflow-hidden", className),
|
|
1584
|
+
...props,
|
|
1585
|
+
children: [
|
|
1586
|
+
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */ jsx(ScrollBar, {
|
|
1587
|
+
orientation: "vertical",
|
|
1588
|
+
visibility: type,
|
|
1589
|
+
className: cn(scrollbarClassName, scrollVerticalClassName)
|
|
1590
|
+
}),
|
|
1591
|
+
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ jsx(ScrollBar, {
|
|
1592
|
+
orientation: "horizontal",
|
|
1593
|
+
visibility: type,
|
|
1594
|
+
className: cn(scrollbarClassName, scrollHorizontalClassName)
|
|
1595
|
+
}),
|
|
1596
|
+
/* @__PURE__ */ jsx(ScrollArea.Corner, {}),
|
|
1597
|
+
/* @__PURE__ */ jsx(ScrollArea.Viewport, {
|
|
1598
|
+
"data-slot": "scroll-area-viewport",
|
|
1599
|
+
id: viewportId ?? viewPortId,
|
|
1600
|
+
ref: refsViewport,
|
|
1601
|
+
"data-scroll-restoration-id": scrollRestorationId,
|
|
1602
|
+
className: cn("max-h-inherit w-full rounded-[inherit]", orientation === "vertical" && "overflow-x-hidden!", orientation === "horizontal" && "overflow-y-hidden!", viewportClassName ?? viewPortClassName),
|
|
1603
|
+
children: /* @__PURE__ */ jsx(ScrollArea.Content, {
|
|
1604
|
+
style: orientation === "vertical" ? { minWidth: 0 } : void 0,
|
|
1605
|
+
children
|
|
1606
|
+
})
|
|
1607
|
+
}),
|
|
1608
|
+
fadeEdges.map((edge) => /* @__PURE__ */ jsx("div", {
|
|
1609
|
+
"aria-hidden": true,
|
|
1610
|
+
"data-slot": "scroll-area-fade",
|
|
1611
|
+
"data-edge": edge,
|
|
1612
|
+
className: cn(FADE_BASE, FADE_EDGES[edge], FADE_FROM[fadeFrom])
|
|
1613
|
+
}, edge))
|
|
1614
|
+
]
|
|
1615
|
+
});
|
|
1616
|
+
};
|
|
1617
|
+
//#endregion
|
|
1498
1618
|
//#region ../ui/src/components/ui/combobox/combobox.tsx
|
|
1499
1619
|
var Combobox$1 = ({ ...props }) => {
|
|
1500
1620
|
return /* @__PURE__ */ jsx(Combobox.Root, {
|
|
@@ -1531,10 +1651,16 @@ var ComboboxContent = ({ className, children, empty, portalContainer, ...props }
|
|
|
1531
1651
|
"data-slot": "combobox-content",
|
|
1532
1652
|
className: cn("min-w-[var(--anchor-width)] overflow-hidden rounded-lg border border-border bg-popover text-popover-foreground shadow-md outline-none motion-reduce:animate-none data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className),
|
|
1533
1653
|
...props,
|
|
1534
|
-
children: [/* @__PURE__ */ jsx(ComboboxEmpty, { children: empty }), /* @__PURE__ */ jsx(
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1654
|
+
children: [/* @__PURE__ */ jsx(ComboboxEmpty, { children: empty }), /* @__PURE__ */ jsx(ScrollArea$1, {
|
|
1655
|
+
type: "always",
|
|
1656
|
+
fade: true,
|
|
1657
|
+
fadeFrom: "popover",
|
|
1658
|
+
className: "max-h-60",
|
|
1659
|
+
children: /* @__PURE__ */ jsx(Combobox.List, {
|
|
1660
|
+
"data-slot": "combobox-list",
|
|
1661
|
+
className: "p-1",
|
|
1662
|
+
children
|
|
1663
|
+
})
|
|
1538
1664
|
})]
|
|
1539
1665
|
})
|
|
1540
1666
|
})
|
|
@@ -1770,11 +1896,35 @@ var CommandInput = ({ className, ...props }) => {
|
|
|
1770
1896
|
})
|
|
1771
1897
|
});
|
|
1772
1898
|
};
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1899
|
+
/**
|
|
1900
|
+
* The palette's results list. The scroll container is the DS ScrollArea rather
|
|
1901
|
+
* than the primitive's own `overflow-y-auto`, because a list of results that
|
|
1902
|
+
* continues past the fold with no bar and no fade reads as a complete list. The
|
|
1903
|
+
* cap stays overridable: `cn` lets a caller's own `max-h-*` replace the default.
|
|
1904
|
+
*
|
|
1905
|
+
* The ScrollArea wraps the list from OUTSIDE rather than lining it: cmdk's list
|
|
1906
|
+
* carries `role="listbox"`, and a listbox may not contain presentation wrappers
|
|
1907
|
+
* (axe flags that as a critical aria-required-children violation). The options
|
|
1908
|
+
* have to stay direct children of the element that holds the role.
|
|
1909
|
+
*
|
|
1910
|
+
* cmdk keeps the active item in view with `scrollIntoView({ block: 'nearest' })`
|
|
1911
|
+
* on the item, which acts on the nearest scrollable ancestor, so that keeps
|
|
1912
|
+
* working now that the viewport is the one that scrolls. `scroll-py-1` goes on
|
|
1913
|
+
* the viewport for the same reason: it is what pads that scroll.
|
|
1914
|
+
*/
|
|
1915
|
+
var CommandList = ({ className, children, ...props }) => {
|
|
1916
|
+
return /* @__PURE__ */ jsx(ScrollArea$1, {
|
|
1917
|
+
type: "always",
|
|
1918
|
+
fade: true,
|
|
1919
|
+
fadeFrom: "popover",
|
|
1920
|
+
className: cn("max-h-72", className),
|
|
1921
|
+
viewPortClassName: "scroll-py-1",
|
|
1922
|
+
children: /* @__PURE__ */ jsx(Command.List, {
|
|
1923
|
+
"data-slot": "command-list",
|
|
1924
|
+
className: "outline-none",
|
|
1925
|
+
...props,
|
|
1926
|
+
children
|
|
1927
|
+
})
|
|
1778
1928
|
});
|
|
1779
1929
|
};
|
|
1780
1930
|
var CommandEmpty = ({ className, ...props }) => {
|
|
@@ -2037,6 +2187,18 @@ var DropdownMenuTrigger = ({ ...props }) => {
|
|
|
2037
2187
|
...props
|
|
2038
2188
|
});
|
|
2039
2189
|
};
|
|
2190
|
+
/**
|
|
2191
|
+
* The menu scrolls itself, with the browser's own scrollbar, where the popup
|
|
2192
|
+
* lists in Command, Select and Combobox scroll inside a DS ScrollArea.
|
|
2193
|
+
*
|
|
2194
|
+
* That is not an oversight. Base UI puts `role="menu"` on this popup and offers
|
|
2195
|
+
* no inner list part to move it onto, and a menu may not contain the
|
|
2196
|
+
* presentation wrappers a ScrollArea brings: axe reports it as a critical
|
|
2197
|
+
* aria-required-children violation, which is exactly what the palette and the
|
|
2198
|
+
* select hit before their scroll container was moved outside the role. Select
|
|
2199
|
+
* and Combobox were fixable because their primitives hand the role to a list
|
|
2200
|
+
* part (Select.List) and leave the popup as presentation.
|
|
2201
|
+
*/
|
|
2040
2202
|
var DropdownMenuContent = ({ align = "start", alignOffset = 0, side = "bottom", sideOffset = 4, className, ...props }) => {
|
|
2041
2203
|
return /* @__PURE__ */ jsx(Menu.Portal, { children: /* @__PURE__ */ jsx(Menu.Positioner, {
|
|
2042
2204
|
className: "isolate z-50 outline-none",
|
|
@@ -2378,11 +2540,25 @@ var InputOTPSeparator = ({ ...props }) => {
|
|
|
2378
2540
|
};
|
|
2379
2541
|
//#endregion
|
|
2380
2542
|
//#region ../ui/src/components/ui/separator/separator.tsx
|
|
2543
|
+
/**
|
|
2544
|
+
* Hairline rule between content, announced as `role="separator"`.
|
|
2545
|
+
*
|
|
2546
|
+
* The orientation styles are branched in TS rather than written as
|
|
2547
|
+
* `data-[orientation=*]:` variants on purpose. A variant carries two
|
|
2548
|
+
* selectors' worth of specificity, so it would outrank a plain class passed in
|
|
2549
|
+
* by the caller: the sidebar's own `w-auto` lost to `w-full` that way. Branching
|
|
2550
|
+
* emits one plain class per axis, which `cn` can dedupe and a caller can
|
|
2551
|
+
* override.
|
|
2552
|
+
*
|
|
2553
|
+
* Vertical uses `self-stretch` instead of `h-full`: a percentage height needs a
|
|
2554
|
+
* definite parent, and the usual host is an `items-center` row whose height
|
|
2555
|
+
* comes from its content.
|
|
2556
|
+
*/
|
|
2381
2557
|
var Separator$1 = ({ className, orientation = "horizontal", ...props }) => {
|
|
2382
2558
|
return /* @__PURE__ */ jsx(Separator, {
|
|
2383
2559
|
"data-slot": "separator",
|
|
2384
2560
|
orientation,
|
|
2385
|
-
className: cn("shrink-0 bg-border
|
|
2561
|
+
className: cn("shrink-0 bg-border", orientation === "horizontal" ? "h-px w-full" : "w-px self-stretch", className),
|
|
2386
2562
|
...props
|
|
2387
2563
|
});
|
|
2388
2564
|
};
|
|
@@ -3266,83 +3442,6 @@ var ResizableHandle = ({ withHandle, className, ...props }) => {
|
|
|
3266
3442
|
});
|
|
3267
3443
|
};
|
|
3268
3444
|
//#endregion
|
|
3269
|
-
//#region ../ui/src/hooks/use-merged-refs.ts
|
|
3270
|
-
var assignRef = (ref, value) => {
|
|
3271
|
-
if (typeof ref === "function") ref(value);
|
|
3272
|
-
else if (ref !== null) ref.current = value;
|
|
3273
|
-
};
|
|
3274
|
-
var mergeRefs = (...refs) => {
|
|
3275
|
-
return (node) => {
|
|
3276
|
-
for (const ref of refs) if (ref) assignRef(ref, node);
|
|
3277
|
-
};
|
|
3278
|
-
};
|
|
3279
|
-
var useMergedRefs = (...refs) => {
|
|
3280
|
-
return useCallback(mergeRefs(...refs), [...refs]);
|
|
3281
|
-
};
|
|
3282
|
-
//#endregion
|
|
3283
|
-
//#region ../ui/src/components/ui/scroll-area/scroll-area.tsx
|
|
3284
|
-
var ScrollBar = ({ className, orientation = "vertical", visibility = "hover", ...props }) => {
|
|
3285
|
-
return /* @__PURE__ */ jsx(ScrollArea.Scrollbar, {
|
|
3286
|
-
"data-slot": "scroll-area-scrollbar",
|
|
3287
|
-
orientation,
|
|
3288
|
-
className: cn("peer/scrollbar z-100 flex touch-none select-none motion-safe:transition-opacity motion-safe:duration-150", orientation === "vertical" && "h-full w-2 border-l border-l-transparent p-px", orientation === "horizontal" && "h-2 flex-col border-t border-t-transparent p-px", visibility !== "always" && "opacity-0 data-scrolling:opacity-100", visibility === "hover" && "data-hovering:opacity-100 group-hover/scroll-area:opacity-100", className),
|
|
3289
|
-
...props,
|
|
3290
|
-
children: /* @__PURE__ */ jsx(ScrollArea.Thumb, { className: "relative flex-1 rounded-full bg-muted-foreground/50 transition-colors hover:bg-muted-foreground/70 data-scrolling:bg-muted-foreground/70" })
|
|
3291
|
-
});
|
|
3292
|
-
};
|
|
3293
|
-
/**
|
|
3294
|
-
* Themed scroll container (Base UI): overflowing content scrolls INSIDE the component
|
|
3295
|
-
* with a slim overlay scrollbar instead of exposing a native browser scrollbar. House
|
|
3296
|
-
* rule: wide/tall content (tables, lists, code) always goes through this, never a bare
|
|
3297
|
-
* overflow-* utility.
|
|
3298
|
-
*
|
|
3299
|
-
* The viewport publishes its size as --scroll-area-width/--scroll-area-height CSS vars
|
|
3300
|
-
* so children can size against the visible area. Edge fades are NOT built in; apply
|
|
3301
|
-
* the faded-* utilities from @edyn/theme/utilities.css on the ScrollArea (it is the
|
|
3302
|
-
* positioning root) where a fade is wanted.
|
|
3303
|
-
*/
|
|
3304
|
-
var ScrollArea$1 = ({ className, children, orientation = "vertical", type = "hover", viewPortId, viewPortRef, viewPortClassName, scrollVerticalClassName, scrollHorizontalClassName, ...props }) => {
|
|
3305
|
-
const refInner = useRef(null);
|
|
3306
|
-
const refsViewport = useMergedRefs(refInner, viewPortRef);
|
|
3307
|
-
useEffect(() => {
|
|
3308
|
-
const el = refInner.current;
|
|
3309
|
-
if (!el) return;
|
|
3310
|
-
const observer = new ResizeObserver(() => {
|
|
3311
|
-
el.style.setProperty("--scroll-area-width", `${el.clientWidth}px`);
|
|
3312
|
-
el.style.setProperty("--scroll-area-height", `${el.clientHeight}px`);
|
|
3313
|
-
});
|
|
3314
|
-
observer.observe(el);
|
|
3315
|
-
return () => {
|
|
3316
|
-
observer.disconnect();
|
|
3317
|
-
};
|
|
3318
|
-
}, []);
|
|
3319
|
-
return /* @__PURE__ */ jsxs(ScrollArea.Root, {
|
|
3320
|
-
"data-slot": "scroll-area",
|
|
3321
|
-
className: cn("group/scroll-area relative overflow-hidden", className),
|
|
3322
|
-
...props,
|
|
3323
|
-
children: [
|
|
3324
|
-
(orientation === "vertical" || orientation === "both") && /* @__PURE__ */ jsx(ScrollBar, {
|
|
3325
|
-
orientation: "vertical",
|
|
3326
|
-
visibility: type,
|
|
3327
|
-
className: scrollVerticalClassName
|
|
3328
|
-
}),
|
|
3329
|
-
(orientation === "horizontal" || orientation === "both") && /* @__PURE__ */ jsx(ScrollBar, {
|
|
3330
|
-
orientation: "horizontal",
|
|
3331
|
-
visibility: type,
|
|
3332
|
-
className: scrollHorizontalClassName
|
|
3333
|
-
}),
|
|
3334
|
-
/* @__PURE__ */ jsx(ScrollArea.Corner, {}),
|
|
3335
|
-
/* @__PURE__ */ jsx(ScrollArea.Viewport, {
|
|
3336
|
-
"data-slot": "scroll-area-viewport",
|
|
3337
|
-
id: viewPortId,
|
|
3338
|
-
ref: refsViewport,
|
|
3339
|
-
className: cn("h-full w-full rounded-[inherit]", orientation === "vertical" && "overflow-x-hidden", viewPortClassName),
|
|
3340
|
-
children: /* @__PURE__ */ jsx(ScrollArea.Content, { children })
|
|
3341
|
-
})
|
|
3342
|
-
]
|
|
3343
|
-
});
|
|
3344
|
-
};
|
|
3345
|
-
//#endregion
|
|
3346
3445
|
//#region ../ui/src/components/ui/select/select.tsx
|
|
3347
3446
|
var Select$1 = ({ ...props }) => {
|
|
3348
3447
|
return /* @__PURE__ */ jsx(Select.Root, {
|
|
@@ -3380,7 +3479,16 @@ var SelectContent = ({ className, children, portalContainer, ...props }) => {
|
|
|
3380
3479
|
"data-slot": "select-content",
|
|
3381
3480
|
className: cn("z-50 min-w-[var(--anchor-width)] overflow-hidden rounded-xl border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none", "origin-[var(--transform-origin)]", "transition-[transform,scale,opacity] motion-reduce:animate-none motion-reduce:transition-none data-open:scale-100 data-open:opacity-100 data-closed:scale-95 data-closed:opacity-0 data-open:animate-in data-closed:animate-out data-open:fade-in-0 data-closed:fade-out-0", className),
|
|
3382
3481
|
...props,
|
|
3383
|
-
children
|
|
3482
|
+
children: /* @__PURE__ */ jsx(ScrollArea$1, {
|
|
3483
|
+
type: "always",
|
|
3484
|
+
fade: true,
|
|
3485
|
+
fadeFrom: "popover",
|
|
3486
|
+
className: "max-h-(--available-height)",
|
|
3487
|
+
children: /* @__PURE__ */ jsx(Select.List, {
|
|
3488
|
+
"data-slot": "select-list",
|
|
3489
|
+
children
|
|
3490
|
+
})
|
|
3491
|
+
})
|
|
3384
3492
|
})
|
|
3385
3493
|
})
|
|
3386
3494
|
});
|
|
@@ -4037,10 +4145,10 @@ var Tabs$1 = ({ value, defaultValue, onValueChange, className, orientation = "ho
|
|
|
4037
4145
|
onValueChange: (next) => {
|
|
4038
4146
|
onValueChange?.(String(next));
|
|
4039
4147
|
},
|
|
4040
|
-
className: cn("group/tabs flex w-full gap-2 data-horizontal:flex-col", className),
|
|
4148
|
+
className: cn("group/tabs flex w-full gap-2 data-[orientation=horizontal]:flex-col", className),
|
|
4041
4149
|
children
|
|
4042
4150
|
});
|
|
4043
|
-
var tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none", {
|
|
4151
|
+
var tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-[orientation=horizontal]/tabs:h-8 group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col data-[variant=line]:rounded-none", {
|
|
4044
4152
|
variants: { variant: {
|
|
4045
4153
|
default: "bg-muted",
|
|
4046
4154
|
line: "gap-1 bg-transparent"
|
|
@@ -4056,7 +4164,7 @@ var TabsList = ({ className, variant = "default", children }) => /* @__PURE__ */
|
|
|
4056
4164
|
var TabsTrigger = ({ value, disabled, className, children }) => /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
4057
4165
|
value,
|
|
4058
4166
|
disabled,
|
|
4059
|
-
className: cn("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:size-4", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className),
|
|
4167
|
+
className: cn("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:size-4", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground", "after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className),
|
|
4060
4168
|
children
|
|
4061
4169
|
});
|
|
4062
4170
|
var TabsContent = ({ value, keepMounted = false, className, children }) => /* @__PURE__ */ jsx(Tabs.Panel, {
|
|
@@ -4235,7 +4343,7 @@ var ToggleGroup$1 = ({ className, variant = "default", size = "default", spacing
|
|
|
4235
4343
|
orientation,
|
|
4236
4344
|
"aria-orientation": void 0,
|
|
4237
4345
|
style: { gap: `calc(var(--spacing) * ${spacing})` },
|
|
4238
|
-
className: cn("group/toggle-group flex w-fit flex-row items-center rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-vertical:flex-col data-vertical:items-stretch", className),
|
|
4346
|
+
className: cn("group/toggle-group flex w-fit flex-row items-center rounded-lg data-[size=sm]:rounded-[min(var(--radius-md),10px)] data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch", className),
|
|
4239
4347
|
...props,
|
|
4240
4348
|
children
|
|
4241
4349
|
})
|
|
@@ -4250,7 +4358,7 @@ var ToggleGroupItem = ({ className, variant, size, ...props }) => {
|
|
|
4250
4358
|
"data-variant": resolvedVariant,
|
|
4251
4359
|
"data-size": resolvedSize,
|
|
4252
4360
|
"data-spacing": ctx.spacing,
|
|
4253
|
-
className: cn("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t", toggleVariants({
|
|
4361
|
+
className: cn("shrink-0 group-data-[spacing=0]/toggle-group:rounded-none group-data-[spacing=0]/toggle-group:px-2 focus:z-10 focus-visible:z-10 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-end]:pr-1.5 group-data-[spacing=0]/toggle-group:has-data-[icon=inline-start]:pl-1.5 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:first:rounded-l-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:first:rounded-t-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:last:rounded-r-lg group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:last:rounded-b-lg group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-[orientation=horizontal]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-[orientation=vertical]/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t", toggleVariants({
|
|
4254
4362
|
variant: resolvedVariant,
|
|
4255
4363
|
size: resolvedSize
|
|
4256
4364
|
}), className),
|
|
@@ -4258,6 +4366,6 @@ var ToggleGroupItem = ({ className, variant, size, ...props }) => {
|
|
|
4258
4366
|
});
|
|
4259
4367
|
};
|
|
4260
4368
|
//#endregion
|
|
4261
|
-
export { SidebarProvider as $, AlertDialogAction as $a, ChartContainer as $i,
|
|
4369
|
+
export { SidebarProvider as $, AlertDialogAction as $a, ChartContainer as $i, ItemActions as $n, ContextMenu$1 as $r, Pagination as $t, TableRow as A, BreadcrumbLink as Aa, Input$1 as Ai, MenubarCheckboxItem as An, DropdownMenuContent as Ar, RadioGroupItem as At, SidebarGroupLabel as B, AvatarGroupCount as Ba, DialogTrigger as Bi, MenubarShortcut as Bn, DropdownMenuSubContent as Br, QuestionnaireNext as Bt, Table as C, Bubble as Ca, InputGroup as Ci, Message as Cn, Button$1 as Co, EmptyContent as Cr, SelectSeparator as Ct, TableFooter as D, Breadcrumb as Da, InputGroupText as Di, MessageGroup as Dn, EmptyTitle as Dr, ResizablePanel as Dt, TableCell as E, BubbleReactions as Ea, InputGroupInput as Ei, MessageFooter as En, EmptyMedia as Er, ResizableHandle as Et, SidebarContent as F, badgeVariants as Fa, DialogFooter as Fi, MenubarMenu as Fn, DropdownMenuRadioGroup as Fr, QuestionnaireChoices as Ft, SidebarMenuAction as G, AttachmentContent as Ga, ComboboxItem as Gi, Marker as Gn, DrawerContent as Gr, QuestionnaireTitle as Gt, SidebarInput as H, Attachment as Ha, ComboboxContent as Hi, MenubarSubContent as Hn, DropdownMenuTrigger as Hr, QuestionnaireProgress as Ht, SidebarFooter as I, Avatar$1 as Ia, DialogHeader as Ii, MenubarPortal as In, DropdownMenuRadioItem as Ir, QuestionnaireDescription as It, SidebarMenuItem as J, AttachmentMedia as Ja, useMergedRefs as Ji, markerVariants as Jn, DrawerHeader as Jr, PopoverContent as Jt, SidebarMenuBadge as K, AttachmentDescription as Ka, ScrollArea$1 as Ki, MarkerContent as Kn, DrawerDescription as Kr, Progress$1 as Kt, SidebarGroup as L, AvatarBadge as La, DialogOverlay as Li, MenubarRadioGroup as Ln, DropdownMenuSeparator as Lr, QuestionnaireError as Lt, Spinner as M, BreadcrumbPage as Ma, DialogClose as Mi, MenubarGroup as Mn, DropdownMenuItem as Mr, QuestionnaireActions as Mt, spinnerVariants as N, BreadcrumbSeparator as Na, DialogContent as Ni, MenubarItem as Nn, DropdownMenuLabel as Nr, QuestionnaireChoice as Nt, TableHead as O, BreadcrumbEllipsis as Oa, InputGroupTextarea as Oi, MessageHeader as On, DropdownMenu as Or, ResizablePanelGroup as Ot, Sidebar as P, Badge as Pa, DialogDescription as Pi, MenubarLabel as Pn, DropdownMenuPortal as Pr, QuestionnaireChoiceDescription as Pt, SidebarMenuSubItem as Q, AlertDialog$1 as Qa, Checkbox$1 as Qi, Item as Qn, useDirection as Qr, PopoverTrigger as Qt, SidebarGroupAction as R, AvatarFallback as Ra, DialogPortal as Ri, MenubarRadioItem as Rn, DropdownMenuShortcut as Rr, QuestionnaireInput as Rt, tabsListVariants as S, ButtonGroupText as Sa, CommandShortcut as Si, useMessageScrollerVisibility as Sn, Slider$1 as So, Empty as Sr, SelectLabel as St, TableCaption as T, BubbleGroup as Ta, InputGroupButton as Ti, MessageContent as Tn, cn as To, EmptyHeader as Tr, SelectValue as Tt, SidebarInset as U, AttachmentAction as Ua, ComboboxEmpty as Ui, MenubarSubTrigger as Un, Drawer as Ur, QuestionnaireSkip as Ut, SidebarHeader as V, AvatarImage as Va, Combobox$1 as Vi, MenubarSub as Vn, DropdownMenuSubTrigger as Vr, QuestionnairePrevious as Vt, SidebarMenu as W, AttachmentActions as Wa, ComboboxInput as Wi, MenubarTrigger as Wn, DrawerClose as Wr, QuestionnaireSubmit as Wt, SidebarMenuSub as X, AttachmentTrigger as Xa, CollapsibleContent as Xi, Kbd as Xn, DrawerTrigger as Xr, PopoverHeader as Xt, SidebarMenuSkeleton as Y, AttachmentTitle as Ya, Collapsible$1 as Yi, Label as Yn, DrawerTitle as Yr, PopoverDescription as Yt, SidebarMenuSubButton as Z, AspectRatio as Za, CollapsibleTrigger as Zi, KbdGroup as Zn, DirectionProvider as Zr, PopoverTitle as Zt, useToastManager as _, CardTitle as _a, CommandGroup as _i, MessageScrollerItem as _n, AccordionTrigger as _o, HoverCardTrigger as _r, SheetTrigger as _t, Toast$1 as a, Carousel as aa, ContextMenuPortal as ai, NavigationMenuItem as an, AlertDialogMedia as ao, ItemMedia as ar, TooltipContent as at, TabsList as b, ButtonGroup as ba, CommandList as bi, useMessageScroller as bn, formatMediaTime as bo, FieldError as br, SelectGroup as bt, ToastContent as c, CarouselNext as ca, ContextMenuSeparator as ci, NavigationMenuPositioner as cn, AlertDialogTitle as co, Separator$1 as cr, Skeleton as ct, ToastProvider as d, Card as da, ContextMenuSubContent as di, NativeSelect as dn, AlertAction as do, InputOTPSeparator as dr, SheetClose as dt, ChartLegend as ea, ContextMenuCheckboxItem as ei, clampPage as en, AlertDialogCancel as eo, ItemContent as er, SidebarRail as et, ToastTitle as f, CardAction as fa, ContextMenuSubTrigger as fi, NativeSelectOptGroup as fn, AlertDescription as fo, InputOTPSlot as fr, SheetContent as ft, toast as g, CardHeader as ga, CommandEmpty as gi, MessageScrollerContent as gn, AccordionItem as go, HoverCardContent as gr, SheetTitle as gt, createToastManager as h, CardFooter as ha, CommandDialog as hi, MessageScrollerButton as hn, AccordionContent as ho, HoverCard as hr, SheetHeader as ht, toggleVariants as i, ChartTooltipContent as ia, ContextMenuLabel as ii, NavigationMenuIndicator as in, AlertDialogHeader as io, ItemHeader as ir, Tooltip$1 as it, Switch$1 as j, BreadcrumbList as ja, Dialog$1 as ji, MenubarContent as jn, DropdownMenuGroup as jr, Questionnaire$1 as jt, TableHeader as k, BreadcrumbItem as ka, Textarea as ki, Menubar$1 as kn, DropdownMenuCheckboxItem as kr, RadioGroup$1 as kt, ToastDescription as l, CarouselPrevious as la, ContextMenuShortcut as li, NavigationMenuTrigger as ln, AlertDialogTrigger as lo, InputOTP as lr, useIsMobile as lt, Toaster as m, CardDescription as ma, Command$1 as mi, MessageScroller$1 as mn, Accordion$1 as mo, indicatorVariants as mr, SheetFooter as mt, ToggleGroupItem as n, ChartStyle as na, ContextMenuGroup as ni, NavigationMenu$1 as nn, AlertDialogDescription as no, ItemFooter as nr, SidebarTrigger as nt, ToastAction as o, CarouselContent as oa, ContextMenuRadioGroup as oi, NavigationMenuLink as on, AlertDialogOverlay as oo, ItemSeparator as or, TooltipProvider as ot, ToastViewport as p, CardContent as pa, ContextMenuTrigger as pi, NativeSelectOption as pn, AlertTitle as po, Indicator as pr, SheetDescription as pt, SidebarMenuButton as q, AttachmentGroup as qa, ScrollBar as qi, MarkerIcon as qn, DrawerFooter as qr, Popover$1 as qt, Toggle$1 as r, ChartTooltip as ra, ContextMenuItem as ri, NavigationMenuContent as rn, AlertDialogFooter as ro, ItemGroup as rr, useSidebar as rt, ToastClose as s, CarouselItem as sa, ContextMenuRadioItem as si, NavigationMenuList as sn, AlertDialogPortal as so, ItemTitle as sr, TooltipTrigger as st, ToggleGroup$1 as t, ChartLegendContent as ta, ContextMenuContent as ti, getPaginationRange as tn, AlertDialogContent as to, ItemDescription as tr, SidebarSeparator as tt, ToastPortal as u, useCarousel as ua, ContextMenuSub as ui, navigationMenuTriggerStyle as un, Alert as uo, InputOTPGroup as ur, Sheet as ut, Tabs$1 as v, Calendar as va, CommandInput as vi, MessageScrollerProvider as vn, VideoPlayer as vo, Field$1 as vr, Select$1 as vt, TableBody as w, BubbleContent as wa, InputGroupAddon as wi, MessageAvatar as wn, buttonVariants as wo, EmptyDescription as wr, SelectTrigger as wt, TabsTrigger as x, ButtonGroupSeparator as xa, CommandSeparator as xi, useMessageScrollerScrollable as xn, useMediaPlayer as xo, FieldLabel as xr, SelectItem as xt, TabsContent as y, CalendarDayButton as ya, CommandItem as yi, MessageScrollerViewport as yn, AudioPlayer as yo, FieldDescription as yr, SelectContent as yt, SidebarGroupContent as z, AvatarGroup as za, DialogTitle as zi, MenubarSeparator as zn, DropdownMenuSub as zr, QuestionnaireItem as zt };
|
|
4262
4370
|
|
|
4263
|
-
//# sourceMappingURL=toggle-group-
|
|
4371
|
+
//# sourceMappingURL=toggle-group-CTTjTe-K.js.map
|