@ai-matrx/design-system 0.11.6 → 0.12.1
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/CHANGELOG.md +38 -0
- package/README.md +2 -0
- package/dist/index.cjs +196 -53
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +43 -1
- package/dist/index.d.ts +43 -1
- package/dist/index.js +196 -53
- package/dist/index.js.map +1 -1
- package/dist/styles.css +16 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.12.1 — 2026-09-09
|
|
4
|
+
|
|
5
|
+
Dialog, AlertDialog, Drawer, Sheet, and BottomSheet footer actions now carry a
|
|
6
|
+
44px minimum touch height on coarse pointers and viewports below 1024px. Named
|
|
7
|
+
icon actions also receive a 44px minimum width. Portaled footers cannot inherit
|
|
8
|
+
a host page's touch-target subtree, which left default buttons at 36px in the
|
|
9
|
+
Accounts message dialog. The structural stylesheet owns this floor, including
|
|
10
|
+
nested action wrappers; fine-pointer desktop density, compact state controls,
|
|
11
|
+
prose links, and explicit `data-touch-exempt` controls retain their sizing.
|
|
12
|
+
|
|
13
|
+
### Consumer action
|
|
14
|
+
|
|
15
|
+
Update the package and retain the existing `@ai-matrx/design-system/styles.css`
|
|
16
|
+
import. No call-site changes are required.
|
|
17
|
+
|
|
18
|
+
## 0.12.0 — 2026-09-08
|
|
19
|
+
|
|
20
|
+
### `OrganizationPicker` — the ONE "which organization am I acting in" control
|
|
21
|
+
|
|
22
|
+
Three surfaces, three UIs for one fact: matrx-frontend had the full picker
|
|
23
|
+
(list with abbreviation tile, Personal badge, default star, active check, the
|
|
24
|
+
"Set as my default" switch, and the sentence naming the working organization);
|
|
25
|
+
Workflow Studio's sidebar and the admin dashboard's settings each had a bare
|
|
26
|
+
`<Select>` with different copy, different placement and no default control.
|
|
27
|
+
`OrganizationPicker` is the matrx-frontend panel ported verbatim
|
|
28
|
+
(`OrganizationPickerPanel` + `UserMenuOrgSection` + `DefaultOrgSwitch`), made
|
|
29
|
+
presentational: the host supplies memberships, the active id, the default id,
|
|
30
|
+
`onSelect` and (optionally) `onSetDefault`; it owns no fetch, storage or
|
|
31
|
+
resolution. Omit `onSetDefault` and the switch is not rendered — a host with no
|
|
32
|
+
write path must not show a control that does nothing. `OrganizationAbbreviation`
|
|
33
|
+
ships alongside (falls back to the name's first letter, so a tile is never
|
|
34
|
+
empty). Icons are package SVGs (C19: `StarIcon`, `Building2Icon` added
|
|
35
|
+
internally); the loading rows are this package's `Skeleton`; the default star
|
|
36
|
+
uses the semantic `warning` token — both caught by the package's own guards on
|
|
37
|
+
the first attempt. Adopted in the same session by matrx-frontend (user menu +
|
|
38
|
+
header nudge), workflow-studio (sidebar popover) and the admin dashboard
|
|
39
|
+
(Settings → Organization).
|
|
40
|
+
|
|
3
41
|
## 0.11.6 — 2026-09-08
|
|
4
42
|
|
|
5
43
|
**THE PATCH TO TAKE.** 0.11.3, 0.11.4 and 0.11.5 are all superseded; the
|
package/README.md
CHANGED
|
@@ -27,6 +27,8 @@ if (!(await confirm({
|
|
|
27
27
|
|
|
28
28
|
Use the declarative `<ConfirmDialog open … busy />` inline instead when the dialog must stay open with a spinner while async work finishes. Name the consequence: a confirmation that says only "Are you sure?" does not satisfy the platform's destructive-and-expensive-actions law.
|
|
29
29
|
|
|
30
|
+
**Footer actions stay touch-sized through portals.** Dialog, AlertDialog, Drawer, Sheet, and BottomSheet footers apply a 44px action floor on coarse pointers or below 1024px. Import the package stylesheet; no host subtree class is required. Fine-pointer desktop keeps its declared density. State controls and prose links retain their sizing; exceptional compact actions can use `data-touch-exempt` with a call-site reason.
|
|
31
|
+
|
|
30
32
|
**The Tooltip lives here, and only here.** `@ai-matrx/tap-target` used to ship its own copy; since design-system 0.7.0 / tap-target 0.2.0 it consumes this one and re-exports nothing.
|
|
31
33
|
|
|
32
34
|
Where hosts had forked a primitive over DENSITY, density is a prop, not a fork: `Card size="sm|md|lg"`, `Table size="sm|md"`, `Accordion size="sm|md"`, `Switch`/`Avatar`/`Checkbox`/`Slider`/`RadioGroup`/`Toggle` `size`, `ResizableHandle size="xs".."4xl"`. It is declared once on the root and every item reads it from context, so a card cannot mix paddings and a radio group cannot mix control sizes.
|
package/dist/index.cjs
CHANGED
|
@@ -157,6 +157,8 @@ __export(src_exports, {
|
|
|
157
157
|
MOTION_PULSE: () => MOTION_PULSE,
|
|
158
158
|
MOTION_SHEET: () => MOTION_SHEET,
|
|
159
159
|
MOTION_SPIN: () => MOTION_SPIN,
|
|
160
|
+
OrganizationAbbreviation: () => OrganizationAbbreviation,
|
|
161
|
+
OrganizationPicker: () => OrganizationPicker,
|
|
160
162
|
OverflowToolbar: () => OverflowToolbar,
|
|
161
163
|
POPPER_OFFSET: () => POPPER_OFFSET,
|
|
162
164
|
Popover: () => Popover,
|
|
@@ -437,6 +439,9 @@ function DragHandleDots2Icon(props) {
|
|
|
437
439
|
}
|
|
438
440
|
) });
|
|
439
441
|
}
|
|
442
|
+
function StarIcon(props) {
|
|
443
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { ...lucideProps(props), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d: "M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" }) });
|
|
444
|
+
}
|
|
440
445
|
|
|
441
446
|
// src/accordion.tsx
|
|
442
447
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
@@ -810,6 +815,7 @@ function BottomSheetFooter({
|
|
|
810
815
|
return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
|
|
811
816
|
"div",
|
|
812
817
|
{
|
|
818
|
+
"data-slot": "bottom-sheet-footer",
|
|
813
819
|
className: cn(
|
|
814
820
|
"flex-shrink-0 px-4 py-3 pb-safe border-t border-[var(--matrx-sheet-divider)]",
|
|
815
821
|
className
|
|
@@ -3438,6 +3444,7 @@ var SheetFooter = ({
|
|
|
3438
3444
|
}) => /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
|
|
3439
3445
|
"div",
|
|
3440
3446
|
{
|
|
3447
|
+
"data-slot": "sheet-footer",
|
|
3441
3448
|
className: cn(
|
|
3442
3449
|
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
3443
3450
|
className
|
|
@@ -3512,9 +3519,145 @@ var Switch = React27.forwardRef(({ className, size = "md", ...props }, ref) => /
|
|
|
3512
3519
|
));
|
|
3513
3520
|
Switch.displayName = SwitchPrimitives.Root.displayName;
|
|
3514
3521
|
|
|
3522
|
+
// src/organization-picker.tsx
|
|
3523
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
3524
|
+
function OrganizationAbbreviation({
|
|
3525
|
+
abbreviation,
|
|
3526
|
+
name,
|
|
3527
|
+
className
|
|
3528
|
+
}) {
|
|
3529
|
+
const mark = abbreviation && abbreviation.trim() || name.trim().slice(0, 1) || "?";
|
|
3530
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3531
|
+
"span",
|
|
3532
|
+
{
|
|
3533
|
+
className: cn(
|
|
3534
|
+
"inline-flex shrink-0 items-center justify-center font-bold uppercase tracking-wide",
|
|
3535
|
+
className
|
|
3536
|
+
),
|
|
3537
|
+
"aria-label": `Organization abbreviation ${mark}`,
|
|
3538
|
+
title: mark,
|
|
3539
|
+
children: mark
|
|
3540
|
+
}
|
|
3541
|
+
);
|
|
3542
|
+
}
|
|
3543
|
+
function OrganizationPicker({
|
|
3544
|
+
organizations,
|
|
3545
|
+
activeOrganizationId,
|
|
3546
|
+
defaultOrganizationId = null,
|
|
3547
|
+
loading = false,
|
|
3548
|
+
loadFailed = false,
|
|
3549
|
+
onSelect,
|
|
3550
|
+
onSetDefault,
|
|
3551
|
+
hideHeading = false,
|
|
3552
|
+
itemClassName,
|
|
3553
|
+
className
|
|
3554
|
+
}) {
|
|
3555
|
+
const active = organizations.find((o) => o.id === activeOrganizationId) ?? null;
|
|
3556
|
+
const isDefault = (id) => !!defaultOrganizationId && id === defaultOrganizationId;
|
|
3557
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cn("flex flex-col", className), "data-slot": "organization-picker", children: [
|
|
3558
|
+
!hideHeading && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "px-2 py-1.5 text-[11px] font-semibold uppercase tracking-wide text-muted-foreground", children: "Organization" }),
|
|
3559
|
+
loading ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "space-y-1 px-1 py-1", "aria-busy": "true", "aria-label": "Loading organizations", children: [
|
|
3560
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Skeleton, { className: "h-7 rounded-md" }),
|
|
3561
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Skeleton, { className: "h-7 rounded-md" })
|
|
3562
|
+
] }) : loadFailed ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "px-2 py-2 text-xs text-destructive", role: "alert", children: "Could not load organizations." }) : organizations.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "px-2 py-2 text-xs text-muted-foreground", children: "Your account is not a member of any organization. Ask an administrator to add you to one." }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
|
|
3563
|
+
active ? /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("p", { className: "px-2 pb-1 text-[11px] text-muted-foreground", "data-slot": "organization-picker-status", children: [
|
|
3564
|
+
"Working in",
|
|
3565
|
+
" ",
|
|
3566
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "font-medium text-foreground", children: active.name })
|
|
3567
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "px-2 pb-1 text-[11px] text-destructive", "data-slot": "organization-picker-status", children: "No organization selected \u2014 pick one below." }),
|
|
3568
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "max-h-72 overflow-y-auto", role: "listbox", "aria-label": "Organizations", children: organizations.map((org) => {
|
|
3569
|
+
const isActive = org.id === activeOrganizationId;
|
|
3570
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("li", { role: "none", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
3571
|
+
"button",
|
|
3572
|
+
{
|
|
3573
|
+
type: "button",
|
|
3574
|
+
role: "option",
|
|
3575
|
+
"aria-selected": isActive,
|
|
3576
|
+
"aria-pressed": isActive,
|
|
3577
|
+
onClick: (event) => {
|
|
3578
|
+
event.stopPropagation();
|
|
3579
|
+
onSelect(org);
|
|
3580
|
+
},
|
|
3581
|
+
className: cn(
|
|
3582
|
+
"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-foreground transition-colors hover:bg-accent",
|
|
3583
|
+
isActive && "bg-primary/10 font-medium text-primary",
|
|
3584
|
+
itemClassName
|
|
3585
|
+
),
|
|
3586
|
+
children: [
|
|
3587
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3588
|
+
OrganizationAbbreviation,
|
|
3589
|
+
{
|
|
3590
|
+
abbreviation: org.abbreviation,
|
|
3591
|
+
name: org.name,
|
|
3592
|
+
className: cn(
|
|
3593
|
+
"h-5 min-w-8 rounded border border-border bg-muted px-1 text-[9px]",
|
|
3594
|
+
isActive ? "text-primary" : "text-muted-foreground"
|
|
3595
|
+
)
|
|
3596
|
+
}
|
|
3597
|
+
),
|
|
3598
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "min-w-0 flex-1 truncate", children: org.name }),
|
|
3599
|
+
org.isPersonal && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] font-medium text-muted-foreground", children: "Personal" }),
|
|
3600
|
+
isDefault(org.id) && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3601
|
+
StarIcon,
|
|
3602
|
+
{
|
|
3603
|
+
className: "h-[13px] w-[13px] shrink-0 fill-warning text-warning",
|
|
3604
|
+
"aria-hidden": false,
|
|
3605
|
+
"aria-label": "Default organization",
|
|
3606
|
+
role: "img"
|
|
3607
|
+
}
|
|
3608
|
+
),
|
|
3609
|
+
isActive && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(LucideCheckIcon, { className: "h-[15px] w-[15px] shrink-0 text-primary" })
|
|
3610
|
+
]
|
|
3611
|
+
}
|
|
3612
|
+
) }, org.id);
|
|
3613
|
+
}) }),
|
|
3614
|
+
onSetDefault && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(import_jsx_runtime36.Fragment, { children: [
|
|
3615
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "my-1 border-t border-border" }),
|
|
3616
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3617
|
+
DefaultOrganizationSwitch,
|
|
3618
|
+
{
|
|
3619
|
+
active,
|
|
3620
|
+
checked: !!active && isDefault(active.id),
|
|
3621
|
+
onChange: (on) => onSetDefault(on && active ? active.id : null)
|
|
3622
|
+
}
|
|
3623
|
+
)
|
|
3624
|
+
] })
|
|
3625
|
+
] })
|
|
3626
|
+
] });
|
|
3627
|
+
}
|
|
3628
|
+
function DefaultOrganizationSwitch({
|
|
3629
|
+
active,
|
|
3630
|
+
checked,
|
|
3631
|
+
onChange
|
|
3632
|
+
}) {
|
|
3633
|
+
const disabled = !active;
|
|
3634
|
+
return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
3635
|
+
"div",
|
|
3636
|
+
{
|
|
3637
|
+
className: "flex items-center justify-between gap-3 rounded-md px-2 py-1.5",
|
|
3638
|
+
"data-slot": "organization-picker-default",
|
|
3639
|
+
children: [
|
|
3640
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "min-w-0", children: [
|
|
3641
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "text-xs font-medium text-foreground", children: "Set as my default" }),
|
|
3642
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("p", { className: "truncate text-[11px] text-muted-foreground", children: disabled ? "Select an organization first" : checked ? `Next startup opens ${active.name}` : "Auto-select this at startup" })
|
|
3643
|
+
] }),
|
|
3644
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
3645
|
+
Switch,
|
|
3646
|
+
{
|
|
3647
|
+
checked,
|
|
3648
|
+
disabled,
|
|
3649
|
+
onCheckedChange: onChange,
|
|
3650
|
+
"aria-label": "Set this organization as my default"
|
|
3651
|
+
}
|
|
3652
|
+
)
|
|
3653
|
+
]
|
|
3654
|
+
}
|
|
3655
|
+
);
|
|
3656
|
+
}
|
|
3657
|
+
|
|
3515
3658
|
// src/tabbed-bottom-sheet.tsx
|
|
3516
3659
|
var import_react4 = require("react");
|
|
3517
|
-
var
|
|
3660
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
3518
3661
|
function TabbedBottomSheet({
|
|
3519
3662
|
open,
|
|
3520
3663
|
onOpenChange,
|
|
@@ -3528,15 +3671,15 @@ function TabbedBottomSheet({
|
|
|
3528
3671
|
if (open) setSelectedTabId(null);
|
|
3529
3672
|
}
|
|
3530
3673
|
const selectedTab = selectedTabId ? tabs.find((tab) => tab.id === selectedTabId) : null;
|
|
3531
|
-
return /* @__PURE__ */ (0,
|
|
3674
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3532
3675
|
BottomSheet,
|
|
3533
3676
|
{
|
|
3534
3677
|
open,
|
|
3535
3678
|
onOpenChange,
|
|
3536
3679
|
title,
|
|
3537
3680
|
size: "full",
|
|
3538
|
-
children: /* @__PURE__ */ (0,
|
|
3539
|
-
/* @__PURE__ */ (0,
|
|
3681
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "matrx-mobile-sheet flex min-h-0 flex-1 flex-col", children: [
|
|
3682
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
|
|
3540
3683
|
BottomSheetHeader,
|
|
3541
3684
|
{
|
|
3542
3685
|
title: selectedTab ? selectedTab.label : title,
|
|
@@ -3544,19 +3687,19 @@ function TabbedBottomSheet({
|
|
|
3544
3687
|
onBack: () => setSelectedTabId(null)
|
|
3545
3688
|
}
|
|
3546
3689
|
),
|
|
3547
|
-
selectedTab ? /* @__PURE__ */ (0,
|
|
3690
|
+
selectedTab ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden pb-safe", children: selectedTab.content }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(BottomSheetBody, { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "divide-y divide-border", children: tabs.map((tab) => {
|
|
3548
3691
|
const Icon2 = tab.icon;
|
|
3549
|
-
return /* @__PURE__ */ (0,
|
|
3692
|
+
return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
3550
3693
|
"button",
|
|
3551
3694
|
{
|
|
3552
3695
|
type: "button",
|
|
3553
3696
|
onClick: () => setSelectedTabId(tab.id),
|
|
3554
3697
|
className: "flex w-full items-center gap-3 px-4 py-3.5 text-left transition-colors hover:bg-muted/60 active:bg-muted",
|
|
3555
3698
|
children: [
|
|
3556
|
-
Icon2 ? /* @__PURE__ */ (0,
|
|
3557
|
-
/* @__PURE__ */ (0,
|
|
3699
|
+
Icon2 ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Icon2, { className: "h-5 w-5 shrink-0 text-muted-foreground" }) : null,
|
|
3700
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "min-w-0 flex-1 text-base text-foreground", children: tab.label }),
|
|
3558
3701
|
tab.trailing,
|
|
3559
|
-
/* @__PURE__ */ (0,
|
|
3702
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ChevronRightIcon, { className: "h-5 w-5 shrink-0 text-muted-foreground" })
|
|
3560
3703
|
]
|
|
3561
3704
|
}
|
|
3562
3705
|
) }, tab.id);
|
|
@@ -3568,7 +3711,7 @@ function TabbedBottomSheet({
|
|
|
3568
3711
|
|
|
3569
3712
|
// src/table.tsx
|
|
3570
3713
|
var React28 = __toESM(require("react"), 1);
|
|
3571
|
-
var
|
|
3714
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
3572
3715
|
var TABLE_SIZES = {
|
|
3573
3716
|
sm: { head: "px-2", cell: "p-2" },
|
|
3574
3717
|
md: { head: "px-3", cell: "p-3" }
|
|
@@ -3579,7 +3722,7 @@ function useTableSize() {
|
|
|
3579
3722
|
}
|
|
3580
3723
|
var Table = React28.forwardRef(
|
|
3581
3724
|
({ className, size = "md", wrap = true, wrapperClassName, ...props }, ref) => {
|
|
3582
|
-
const table = /* @__PURE__ */ (0,
|
|
3725
|
+
const table = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3583
3726
|
"table",
|
|
3584
3727
|
{
|
|
3585
3728
|
ref,
|
|
@@ -3589,7 +3732,7 @@ var Table = React28.forwardRef(
|
|
|
3589
3732
|
...props
|
|
3590
3733
|
}
|
|
3591
3734
|
);
|
|
3592
|
-
return /* @__PURE__ */ (0,
|
|
3735
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(TableSizeContext.Provider, { value: size, children: wrap ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3593
3736
|
"div",
|
|
3594
3737
|
{
|
|
3595
3738
|
"data-slot": "table-wrapper",
|
|
@@ -3600,7 +3743,7 @@ var Table = React28.forwardRef(
|
|
|
3600
3743
|
}
|
|
3601
3744
|
);
|
|
3602
3745
|
Table.displayName = "Table";
|
|
3603
|
-
var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3746
|
+
var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3604
3747
|
"thead",
|
|
3605
3748
|
{
|
|
3606
3749
|
ref,
|
|
@@ -3614,7 +3757,7 @@ var TableHeader = React28.forwardRef(({ className, sticky = false, ...props }, r
|
|
|
3614
3757
|
}
|
|
3615
3758
|
));
|
|
3616
3759
|
TableHeader.displayName = "TableHeader";
|
|
3617
|
-
var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3760
|
+
var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3618
3761
|
"tbody",
|
|
3619
3762
|
{
|
|
3620
3763
|
ref,
|
|
@@ -3624,7 +3767,7 @@ var TableBody = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE_
|
|
|
3624
3767
|
}
|
|
3625
3768
|
));
|
|
3626
3769
|
TableBody.displayName = "TableBody";
|
|
3627
|
-
var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3770
|
+
var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3628
3771
|
"tfoot",
|
|
3629
3772
|
{
|
|
3630
3773
|
ref,
|
|
@@ -3637,7 +3780,7 @@ var TableFooter = React28.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3637
3780
|
}
|
|
3638
3781
|
));
|
|
3639
3782
|
TableFooter.displayName = "TableFooter";
|
|
3640
|
-
var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3783
|
+
var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3641
3784
|
"tr",
|
|
3642
3785
|
{
|
|
3643
3786
|
ref,
|
|
@@ -3652,7 +3795,7 @@ var TableRow = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3652
3795
|
TableRow.displayName = "TableRow";
|
|
3653
3796
|
var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3654
3797
|
const size = useTableSize();
|
|
3655
|
-
return /* @__PURE__ */ (0,
|
|
3798
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3656
3799
|
"th",
|
|
3657
3800
|
{
|
|
3658
3801
|
ref,
|
|
@@ -3669,7 +3812,7 @@ var TableHead = React28.forwardRef(({ className, ...props }, ref) => {
|
|
|
3669
3812
|
TableHead.displayName = "TableHead";
|
|
3670
3813
|
var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
|
|
3671
3814
|
const size = useTableSize();
|
|
3672
|
-
return /* @__PURE__ */ (0,
|
|
3815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3673
3816
|
"td",
|
|
3674
3817
|
{
|
|
3675
3818
|
ref,
|
|
@@ -3684,7 +3827,7 @@ var TableCell = React28.forwardRef(({ className, ...props }, ref) => {
|
|
|
3684
3827
|
);
|
|
3685
3828
|
});
|
|
3686
3829
|
TableCell.displayName = "TableCell";
|
|
3687
|
-
var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3830
|
+
var TableCaption = React28.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
|
|
3688
3831
|
"caption",
|
|
3689
3832
|
{
|
|
3690
3833
|
ref,
|
|
@@ -3698,10 +3841,10 @@ TableCaption.displayName = "TableCaption";
|
|
|
3698
3841
|
// src/tabs.tsx
|
|
3699
3842
|
var TabsPrimitive = __toESM(require("@radix-ui/react-tabs"), 1);
|
|
3700
3843
|
var React29 = __toESM(require("react"), 1);
|
|
3701
|
-
var
|
|
3844
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
3702
3845
|
var Tabs = TabsPrimitive.Root;
|
|
3703
3846
|
var TABS_TRIGGER_BASE = "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm";
|
|
3704
|
-
var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3847
|
+
var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3705
3848
|
TabsPrimitive.List,
|
|
3706
3849
|
{
|
|
3707
3850
|
ref,
|
|
@@ -3714,7 +3857,7 @@ var TabsList = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
3714
3857
|
}
|
|
3715
3858
|
));
|
|
3716
3859
|
TabsList.displayName = TabsPrimitive.List.displayName;
|
|
3717
|
-
var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3860
|
+
var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3718
3861
|
TabsPrimitive.Trigger,
|
|
3719
3862
|
{
|
|
3720
3863
|
ref,
|
|
@@ -3728,7 +3871,7 @@ var TabsTrigger = React29.forwardRef(({ className, ...props }, ref) => /* @__PUR
|
|
|
3728
3871
|
}
|
|
3729
3872
|
));
|
|
3730
3873
|
TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
|
|
3731
|
-
var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3874
|
+
var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3732
3875
|
TabsPrimitive.Trigger,
|
|
3733
3876
|
{
|
|
3734
3877
|
ref,
|
|
@@ -3738,7 +3881,7 @@ var TabsTriggerCore = React29.forwardRef(({ className, ...props }, ref) => /* @_
|
|
|
3738
3881
|
}
|
|
3739
3882
|
));
|
|
3740
3883
|
TabsTriggerCore.displayName = TabsPrimitive.Trigger.displayName;
|
|
3741
|
-
var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
3884
|
+
var TabsContent = React29.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
|
|
3742
3885
|
TabsPrimitive.Content,
|
|
3743
3886
|
{
|
|
3744
3887
|
ref,
|
|
@@ -3755,7 +3898,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
3755
3898
|
|
|
3756
3899
|
// src/textarea.tsx
|
|
3757
3900
|
var React30 = __toESM(require("react"), 1);
|
|
3758
|
-
var
|
|
3901
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
3759
3902
|
var FILL_HEIGHT_REGEX = /(?:^|\s)(h-full|h-dvh|flex-1|grow)(?:\s|$)/;
|
|
3760
3903
|
var FILL_WIDTH_REGEX = /(?:^|\s)(w-full|w-screen)(?:\s|$)/;
|
|
3761
3904
|
function getStretchClasses(className) {
|
|
@@ -3808,7 +3951,7 @@ var Textarea = React30.forwardRef(
|
|
|
3808
3951
|
const stretchClasses = getStretchClasses(className);
|
|
3809
3952
|
const needsWrapper = Boolean(wrapperClassName || stretchClasses);
|
|
3810
3953
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3811
|
-
const textarea = /* @__PURE__ */ (0,
|
|
3954
|
+
const textarea = /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3812
3955
|
"textarea",
|
|
3813
3956
|
{
|
|
3814
3957
|
ref: callback,
|
|
@@ -3824,7 +3967,7 @@ var Textarea = React30.forwardRef(
|
|
|
3824
3967
|
}
|
|
3825
3968
|
);
|
|
3826
3969
|
if (!needsWrapper) return textarea;
|
|
3827
|
-
return /* @__PURE__ */ (0,
|
|
3970
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn(stretchClasses, wrapperClassName), children: textarea });
|
|
3828
3971
|
}
|
|
3829
3972
|
);
|
|
3830
3973
|
Textarea.displayName = "Textarea";
|
|
@@ -3832,7 +3975,7 @@ var BasicTextarea = React30.forwardRef(
|
|
|
3832
3975
|
({ className, autoGrow, minHeight, maxHeight, ...props }, forwarded) => {
|
|
3833
3976
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3834
3977
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3835
|
-
return /* @__PURE__ */ (0,
|
|
3978
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3836
3979
|
"textarea",
|
|
3837
3980
|
{
|
|
3838
3981
|
ref: callback,
|
|
@@ -3862,13 +4005,13 @@ var TextareaWithPrefix = React30.forwardRef(
|
|
|
3862
4005
|
}, forwarded) => {
|
|
3863
4006
|
const { ref, callback } = useMergedTextareaRef(forwarded);
|
|
3864
4007
|
useAutoGrow(ref, props.value, autoGrow, minHeight, maxHeight);
|
|
3865
|
-
return /* @__PURE__ */ (0,
|
|
4008
|
+
return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
|
|
3866
4009
|
"div",
|
|
3867
4010
|
{
|
|
3868
4011
|
className: cn("relative", getStretchClasses(className), wrapperClassName),
|
|
3869
4012
|
children: [
|
|
3870
|
-
prefix ? /* @__PURE__ */ (0,
|
|
3871
|
-
/* @__PURE__ */ (0,
|
|
4013
|
+
prefix ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "pointer-events-none absolute left-3 top-3 z-10 text-muted-foreground", children: prefix }) : null,
|
|
4014
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
|
|
3872
4015
|
"textarea",
|
|
3873
4016
|
{
|
|
3874
4017
|
ref: callback,
|
|
@@ -3948,13 +4091,13 @@ function useScrollFade() {
|
|
|
3948
4091
|
// src/hover-card.tsx
|
|
3949
4092
|
var HoverCardPrimitive = __toESM(require("@radix-ui/react-hover-card"), 1);
|
|
3950
4093
|
var React31 = __toESM(require("react"), 1);
|
|
3951
|
-
var
|
|
4094
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
3952
4095
|
var HoverCard = HoverCardPrimitive.Root;
|
|
3953
4096
|
var HoverCardTrigger = HoverCardPrimitive.Trigger;
|
|
3954
4097
|
var HoverCardContent = React31.forwardRef(
|
|
3955
4098
|
({ className, align = "center", sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
3956
4099
|
const resolved = usePortalContainer(container);
|
|
3957
|
-
return /* @__PURE__ */ (0,
|
|
4100
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(HoverCardPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
3958
4101
|
HoverCardPrimitive.Content,
|
|
3959
4102
|
{
|
|
3960
4103
|
ref,
|
|
@@ -3976,7 +4119,7 @@ HoverCardContent.displayName = HoverCardPrimitive.Content.displayName;
|
|
|
3976
4119
|
// src/radio-group.tsx
|
|
3977
4120
|
var RadioGroupPrimitive = __toESM(require("@radix-ui/react-radio-group"), 1);
|
|
3978
4121
|
var React32 = __toESM(require("react"), 1);
|
|
3979
|
-
var
|
|
4122
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
3980
4123
|
var RadioGroupSizeContext = React32.createContext("md");
|
|
3981
4124
|
var CONTROL_CLASSES = {
|
|
3982
4125
|
sm: "h-3.5 w-3.5",
|
|
@@ -3988,7 +4131,7 @@ var DOT_CLASSES = {
|
|
|
3988
4131
|
md: "h-1.5 w-1.5",
|
|
3989
4132
|
lg: "h-2 w-2"
|
|
3990
4133
|
};
|
|
3991
|
-
var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0,
|
|
4134
|
+
var RadioGroup3 = React32.forwardRef(({ className, size = "md", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadioGroupSizeContext.Provider, { value: size, children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
3992
4135
|
RadioGroupPrimitive.Root,
|
|
3993
4136
|
{
|
|
3994
4137
|
ref,
|
|
@@ -4001,7 +4144,7 @@ RadioGroup3.displayName = RadioGroupPrimitive.Root.displayName;
|
|
|
4001
4144
|
var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) => {
|
|
4002
4145
|
const groupSize = React32.useContext(RadioGroupSizeContext);
|
|
4003
4146
|
const resolved = size ?? groupSize;
|
|
4004
|
-
return /* @__PURE__ */ (0,
|
|
4147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4005
4148
|
RadioGroupPrimitive.Item,
|
|
4006
4149
|
{
|
|
4007
4150
|
ref,
|
|
@@ -4018,7 +4161,7 @@ var RadioGroupItem = React32.forwardRef(({ className, size, ...props }, ref) =>
|
|
|
4018
4161
|
className
|
|
4019
4162
|
),
|
|
4020
4163
|
...props,
|
|
4021
|
-
children: /* @__PURE__ */ (0,
|
|
4164
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
4022
4165
|
"div",
|
|
4023
4166
|
{
|
|
4024
4167
|
className: cn("rounded-full bg-primary-foreground", DOT_CLASSES[resolved])
|
|
@@ -4031,7 +4174,7 @@ RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
|
|
|
4031
4174
|
|
|
4032
4175
|
// src/resizable.tsx
|
|
4033
4176
|
var import_react_resizable_panels = require("react-resizable-panels");
|
|
4034
|
-
var
|
|
4177
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
4035
4178
|
var HANDLE_SIZES = {
|
|
4036
4179
|
xs: "w-0.5 [&[aria-orientation=horizontal]]:h-0.5 [&[aria-orientation=horizontal]]:w-full",
|
|
4037
4180
|
sm: "w-1 [&[aria-orientation=horizontal]]:h-1 [&[aria-orientation=horizontal]]:w-full",
|
|
@@ -4045,7 +4188,7 @@ var HANDLE_SIZES = {
|
|
|
4045
4188
|
var ResizablePanelGroup = ({
|
|
4046
4189
|
className,
|
|
4047
4190
|
...props
|
|
4048
|
-
}) => /* @__PURE__ */ (0,
|
|
4191
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4049
4192
|
import_react_resizable_panels.Group,
|
|
4050
4193
|
{
|
|
4051
4194
|
"data-slot": "resizable-group",
|
|
@@ -4060,7 +4203,7 @@ var ResizableHandle = ({
|
|
|
4060
4203
|
size = "xs",
|
|
4061
4204
|
className,
|
|
4062
4205
|
...props
|
|
4063
|
-
}) => /* @__PURE__ */ (0,
|
|
4206
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
|
|
4064
4207
|
import_react_resizable_panels.Separator,
|
|
4065
4208
|
{
|
|
4066
4209
|
"data-slot": "resizable-handle",
|
|
@@ -4080,7 +4223,7 @@ var ResizableHandle = ({
|
|
|
4080
4223
|
className
|
|
4081
4224
|
),
|
|
4082
4225
|
...props,
|
|
4083
|
-
children: withHandle ? /* @__PURE__ */ (0,
|
|
4226
|
+
children: withHandle ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "z-10 flex h-8 w-4 items-center justify-center rounded-sm border bg-border group-aria-[orientation=horizontal]/handle:h-4 group-aria-[orientation=horizontal]/handle:w-8", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(DragHandleDots2Icon, { className: "h-2.5 w-2.5 group-aria-[orientation=horizontal]/handle:rotate-90" }) }) : null
|
|
4084
4227
|
}
|
|
4085
4228
|
);
|
|
4086
4229
|
ResizableHandle.displayName = "ResizableHandle";
|
|
@@ -4088,7 +4231,7 @@ ResizableHandle.displayName = "ResizableHandle";
|
|
|
4088
4231
|
// src/slider.tsx
|
|
4089
4232
|
var SliderPrimitive = __toESM(require("@radix-ui/react-slider"), 1);
|
|
4090
4233
|
var React33 = __toESM(require("react"), 1);
|
|
4091
|
-
var
|
|
4234
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
4092
4235
|
var TRACK_CLASSES = {
|
|
4093
4236
|
sm: "h-1",
|
|
4094
4237
|
md: "h-1.5",
|
|
@@ -4104,7 +4247,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4104
4247
|
1,
|
|
4105
4248
|
(props.value ?? props.defaultValue ?? [0]).length
|
|
4106
4249
|
);
|
|
4107
|
-
return /* @__PURE__ */ (0,
|
|
4250
|
+
return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
4108
4251
|
SliderPrimitive.Root,
|
|
4109
4252
|
{
|
|
4110
4253
|
ref,
|
|
@@ -4116,7 +4259,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4116
4259
|
),
|
|
4117
4260
|
...props,
|
|
4118
4261
|
children: [
|
|
4119
|
-
/* @__PURE__ */ (0,
|
|
4262
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4120
4263
|
SliderPrimitive.Track,
|
|
4121
4264
|
{
|
|
4122
4265
|
"data-slot": "slider-track",
|
|
@@ -4125,7 +4268,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4125
4268
|
TRACK_CLASSES[size],
|
|
4126
4269
|
"data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"
|
|
4127
4270
|
),
|
|
4128
|
-
children: /* @__PURE__ */ (0,
|
|
4271
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4129
4272
|
SliderPrimitive.Range,
|
|
4130
4273
|
{
|
|
4131
4274
|
"data-slot": "slider-range",
|
|
@@ -4134,7 +4277,7 @@ var Slider = React33.forwardRef(({ className, size = "md", ...props }, ref) => {
|
|
|
4134
4277
|
)
|
|
4135
4278
|
}
|
|
4136
4279
|
),
|
|
4137
|
-
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0,
|
|
4280
|
+
Array.from({ length: thumbCount }, (_, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
|
|
4138
4281
|
SliderPrimitive.Thumb,
|
|
4139
4282
|
{
|
|
4140
4283
|
"data-slot": "slider-thumb",
|
|
@@ -4162,7 +4305,7 @@ var ToggleGroupPrimitive = __toESM(require("@radix-ui/react-toggle-group"), 1);
|
|
|
4162
4305
|
var TogglePrimitive = __toESM(require("@radix-ui/react-toggle"), 1);
|
|
4163
4306
|
var import_class_variance_authority6 = require("class-variance-authority");
|
|
4164
4307
|
var React34 = __toESM(require("react"), 1);
|
|
4165
|
-
var
|
|
4308
|
+
var import_jsx_runtime45 = require("react/jsx-runtime");
|
|
4166
4309
|
var toggleVariants = (0, import_class_variance_authority6.cva)(
|
|
4167
4310
|
"inline-flex cursor-pointer items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
4168
4311
|
{
|
|
@@ -4183,7 +4326,7 @@ var toggleVariants = (0, import_class_variance_authority6.cva)(
|
|
|
4183
4326
|
}
|
|
4184
4327
|
}
|
|
4185
4328
|
);
|
|
4186
|
-
var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4329
|
+
var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4187
4330
|
TogglePrimitive.Root,
|
|
4188
4331
|
{
|
|
4189
4332
|
ref,
|
|
@@ -4194,20 +4337,20 @@ var Toggle = React34.forwardRef(({ className, variant, size, ...props }, ref) =>
|
|
|
4194
4337
|
));
|
|
4195
4338
|
Toggle.displayName = TogglePrimitive.Root.displayName;
|
|
4196
4339
|
var ToggleGroupContext = React34.createContext({ size: "default", variant: "default" });
|
|
4197
|
-
var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0,
|
|
4340
|
+
var ToggleGroup = React34.forwardRef(({ className, variant, size, children, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4198
4341
|
ToggleGroupPrimitive.Root,
|
|
4199
4342
|
{
|
|
4200
4343
|
ref,
|
|
4201
4344
|
"data-slot": "toggle-group",
|
|
4202
4345
|
className: cn("flex items-center justify-center gap-1", className),
|
|
4203
4346
|
...props,
|
|
4204
|
-
children: /* @__PURE__ */ (0,
|
|
4347
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(ToggleGroupContext.Provider, { value: { variant, size }, children })
|
|
4205
4348
|
}
|
|
4206
4349
|
));
|
|
4207
4350
|
ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
|
|
4208
4351
|
var ToggleGroupItem = React34.forwardRef(({ className, children, variant, size, ...props }, ref) => {
|
|
4209
4352
|
const context = React34.useContext(ToggleGroupContext);
|
|
4210
|
-
return /* @__PURE__ */ (0,
|
|
4353
|
+
return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
|
|
4211
4354
|
ToggleGroupPrimitive.Item,
|
|
4212
4355
|
{
|
|
4213
4356
|
ref,
|
|
@@ -4229,13 +4372,13 @@ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
|
|
|
4229
4372
|
// src/tooltip.tsx
|
|
4230
4373
|
var TooltipPrimitive = __toESM(require("@radix-ui/react-tooltip"), 1);
|
|
4231
4374
|
var React35 = __toESM(require("react"), 1);
|
|
4232
|
-
var
|
|
4375
|
+
var import_jsx_runtime46 = require("react/jsx-runtime");
|
|
4233
4376
|
var TooltipProvider = TooltipPrimitive.Provider;
|
|
4234
4377
|
var Tooltip = TooltipPrimitive.Root;
|
|
4235
4378
|
var TooltipTrigger = TooltipPrimitive.Trigger;
|
|
4236
4379
|
var TooltipContent = React35.forwardRef(({ className, sideOffset = 4, container, animated = true, ...props }, ref) => {
|
|
4237
4380
|
const resolved = usePortalContainer(container);
|
|
4238
|
-
return /* @__PURE__ */ (0,
|
|
4381
|
+
return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(TooltipPrimitive.Portal, { container: resolved ?? null, children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
|
|
4239
4382
|
TooltipPrimitive.Content,
|
|
4240
4383
|
{
|
|
4241
4384
|
ref,
|