@asevenid/ui 0.1.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/LICENSE +21 -0
- package/README.md +105 -0
- package/dist/components/primitives/accordion.d.ts +10 -0
- package/dist/components/primitives/accordion.d.ts.map +1 -0
- package/dist/components/primitives/accordion.js +37 -0
- package/dist/components/primitives/accordion.js.map +1 -0
- package/dist/components/primitives/alert-dialog.d.ts +9 -0
- package/dist/components/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/components/primitives/alert-dialog.js +58 -0
- package/dist/components/primitives/alert-dialog.js.map +1 -0
- package/dist/components/primitives/alert.d.ts +12 -0
- package/dist/components/primitives/alert.d.ts.map +1 -0
- package/dist/components/primitives/alert.js +32 -0
- package/dist/components/primitives/alert.js.map +1 -0
- package/dist/components/primitives/avatar.d.ts +20 -0
- package/dist/components/primitives/avatar.d.ts.map +1 -0
- package/dist/components/primitives/avatar.js +55 -0
- package/dist/components/primitives/avatar.js.map +1 -0
- package/dist/components/primitives/badge.d.ts +14 -0
- package/dist/components/primitives/badge.d.ts.map +1 -0
- package/dist/components/primitives/badge.js +42 -0
- package/dist/components/primitives/badge.js.map +1 -0
- package/dist/components/primitives/button.d.ts +7 -0
- package/dist/components/primitives/button.d.ts.map +1 -0
- package/dist/components/primitives/button.js +52 -0
- package/dist/components/primitives/button.js.map +1 -0
- package/dist/components/primitives/calendar.d.ts +7 -0
- package/dist/components/primitives/calendar.d.ts.map +1 -0
- package/dist/components/primitives/calendar.js +32 -0
- package/dist/components/primitives/calendar.js.map +1 -0
- package/dist/components/primitives/card.d.ts +14 -0
- package/dist/components/primitives/card.d.ts.map +1 -0
- package/dist/components/primitives/card.js +29 -0
- package/dist/components/primitives/card.js.map +1 -0
- package/dist/components/primitives/checkbox.d.ts +7 -0
- package/dist/components/primitives/checkbox.d.ts.map +1 -0
- package/dist/components/primitives/checkbox.js +51 -0
- package/dist/components/primitives/checkbox.js.map +1 -0
- package/dist/components/primitives/color-picker.d.ts +23 -0
- package/dist/components/primitives/color-picker.d.ts.map +1 -0
- package/dist/components/primitives/color-picker.js +128 -0
- package/dist/components/primitives/color-picker.js.map +1 -0
- package/dist/components/primitives/combobox.d.ts +17 -0
- package/dist/components/primitives/combobox.d.ts.map +1 -0
- package/dist/components/primitives/combobox.js +106 -0
- package/dist/components/primitives/combobox.js.map +1 -0
- package/dist/components/primitives/date-picker.d.ts +21 -0
- package/dist/components/primitives/date-picker.d.ts.map +1 -0
- package/dist/components/primitives/date-picker.js +81 -0
- package/dist/components/primitives/date-picker.js.map +1 -0
- package/dist/components/primitives/date-range-picker.d.ts +16 -0
- package/dist/components/primitives/date-range-picker.d.ts.map +1 -0
- package/dist/components/primitives/date-range-picker.js +51 -0
- package/dist/components/primitives/date-range-picker.js.map +1 -0
- package/dist/components/primitives/dialog.d.ts +8 -0
- package/dist/components/primitives/dialog.d.ts.map +1 -0
- package/dist/components/primitives/dialog.js +46 -0
- package/dist/components/primitives/dialog.js.map +1 -0
- package/dist/components/primitives/drawer.d.ts +2 -0
- package/dist/components/primitives/drawer.d.ts.map +1 -0
- package/dist/components/primitives/field.d.ts +19 -0
- package/dist/components/primitives/field.d.ts.map +1 -0
- package/dist/components/primitives/field.js +55 -0
- package/dist/components/primitives/field.js.map +1 -0
- package/dist/components/primitives/input-group.d.ts +11 -0
- package/dist/components/primitives/input-group.d.ts.map +1 -0
- package/dist/components/primitives/input-group.js +32 -0
- package/dist/components/primitives/input-group.js.map +1 -0
- package/dist/components/primitives/input.d.ts +7 -0
- package/dist/components/primitives/input.d.ts.map +1 -0
- package/dist/components/primitives/input.js +18 -0
- package/dist/components/primitives/input.js.map +1 -0
- package/dist/components/primitives/kbd.d.ts +13 -0
- package/dist/components/primitives/kbd.d.ts.map +1 -0
- package/dist/components/primitives/kbd.js +18 -0
- package/dist/components/primitives/kbd.js.map +1 -0
- package/dist/components/primitives/label.d.ts +7 -0
- package/dist/components/primitives/label.d.ts.map +1 -0
- package/dist/components/primitives/label.js +21 -0
- package/dist/components/primitives/label.js.map +1 -0
- package/dist/components/primitives/pagination.d.ts +12 -0
- package/dist/components/primitives/pagination.d.ts.map +1 -0
- package/dist/components/primitives/pagination.js +92 -0
- package/dist/components/primitives/pagination.js.map +1 -0
- package/dist/components/primitives/radio-group.d.ts +9 -0
- package/dist/components/primitives/radio-group.d.ts.map +1 -0
- package/dist/components/primitives/radio-group.js +36 -0
- package/dist/components/primitives/radio-group.js.map +1 -0
- package/dist/components/primitives/select.d.ts +7 -0
- package/dist/components/primitives/select.d.ts.map +1 -0
- package/dist/components/primitives/select.js +31 -0
- package/dist/components/primitives/select.js.map +1 -0
- package/dist/components/primitives/sheet.d.ts +2 -0
- package/dist/components/primitives/sheet.d.ts.map +1 -0
- package/dist/components/primitives/skeleton.d.ts +5 -0
- package/dist/components/primitives/skeleton.d.ts.map +1 -0
- package/dist/components/primitives/skeleton.js +15 -0
- package/dist/components/primitives/skeleton.js.map +1 -0
- package/dist/components/primitives/slider.d.ts +10 -0
- package/dist/components/primitives/slider.d.ts.map +1 -0
- package/dist/components/primitives/slider.js +91 -0
- package/dist/components/primitives/slider.js.map +1 -0
- package/dist/components/primitives/sonner.d.ts +5 -0
- package/dist/components/primitives/sonner.d.ts.map +1 -0
- package/dist/components/primitives/sonner.js +50 -0
- package/dist/components/primitives/sonner.js.map +1 -0
- package/dist/components/primitives/switch.d.ts +7 -0
- package/dist/components/primitives/switch.d.ts.map +1 -0
- package/dist/components/primitives/switch.js +22 -0
- package/dist/components/primitives/switch.js.map +1 -0
- package/dist/components/primitives/table.d.ts +10 -0
- package/dist/components/primitives/table.d.ts.map +1 -0
- package/dist/components/primitives/table.js +74 -0
- package/dist/components/primitives/table.js.map +1 -0
- package/dist/components/primitives/tabs.d.ts +6 -0
- package/dist/components/primitives/tabs.d.ts.map +1 -0
- package/dist/components/primitives/tabs.js +146 -0
- package/dist/components/primitives/tabs.js.map +1 -0
- package/dist/components/primitives/tag.d.ts +17 -0
- package/dist/components/primitives/tag.d.ts.map +1 -0
- package/dist/components/primitives/tag.js +71 -0
- package/dist/components/primitives/tag.js.map +1 -0
- package/dist/components/primitives/textarea.d.ts +7 -0
- package/dist/components/primitives/textarea.d.ts.map +1 -0
- package/dist/components/primitives/textarea.js +18 -0
- package/dist/components/primitives/textarea.js.map +1 -0
- package/dist/components/primitives/toggle-group.d.ts +9 -0
- package/dist/components/primitives/toggle-group.d.ts.map +1 -0
- package/dist/components/primitives/toggle-group.js +61 -0
- package/dist/components/primitives/toggle-group.js.map +1 -0
- package/dist/components/primitives/toggle.d.ts +7 -0
- package/dist/components/primitives/toggle.d.ts.map +1 -0
- package/dist/components/primitives/toggle.js +36 -0
- package/dist/components/primitives/toggle.js.map +1 -0
- package/dist/components/ui/accordion.d.ts +8 -0
- package/dist/components/ui/accordion.d.ts.map +1 -0
- package/dist/components/ui/accordion.js +67 -0
- package/dist/components/ui/accordion.js.map +1 -0
- package/dist/components/ui/alert-dialog.d.ts +19 -0
- package/dist/components/ui/alert-dialog.d.ts.map +1 -0
- package/dist/components/ui/alert-dialog.js +147 -0
- package/dist/components/ui/alert-dialog.js.map +1 -0
- package/dist/components/ui/alert.d.ts +10 -0
- package/dist/components/ui/alert.d.ts.map +1 -0
- package/dist/components/ui/alert.js +69 -0
- package/dist/components/ui/alert.js.map +1 -0
- package/dist/components/ui/avatar.d.ts +12 -0
- package/dist/components/ui/avatar.d.ts.map +1 -0
- package/dist/components/ui/avatar.js +106 -0
- package/dist/components/ui/avatar.js.map +1 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/badge.js +46 -0
- package/dist/components/ui/badge.js.map +1 -0
- package/dist/components/ui/breadcrumb.d.ts +12 -0
- package/dist/components/ui/breadcrumb.d.ts.map +1 -0
- package/dist/components/ui/breadcrumb.js +106 -0
- package/dist/components/ui/breadcrumb.js.map +1 -0
- package/dist/components/ui/button-group.d.ts +12 -0
- package/dist/components/ui/button-group.d.ts.map +1 -0
- package/dist/components/ui/button-group.js +78 -0
- package/dist/components/ui/button-group.js.map +1 -0
- package/dist/components/ui/button.d.ts +11 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/button.js +59 -0
- package/dist/components/ui/button.js.map +1 -0
- package/dist/components/ui/calendar.d.ts +9 -0
- package/dist/components/ui/calendar.d.ts.map +1 -0
- package/dist/components/ui/calendar.js +175 -0
- package/dist/components/ui/calendar.js.map +1 -0
- package/dist/components/ui/card.d.ts +10 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/card.js +93 -0
- package/dist/components/ui/card.js.map +1 -0
- package/dist/components/ui/checkbox.d.ts +5 -0
- package/dist/components/ui/checkbox.d.ts.map +1 -0
- package/dist/components/ui/combobox.d.ts +25 -0
- package/dist/components/ui/combobox.d.ts.map +1 -0
- package/dist/components/ui/combobox.js +246 -0
- package/dist/components/ui/combobox.js.map +1 -0
- package/dist/components/ui/dialog.d.ts +18 -0
- package/dist/components/ui/dialog.d.ts.map +1 -0
- package/dist/components/ui/dialog.js +125 -0
- package/dist/components/ui/dialog.js.map +1 -0
- package/dist/components/ui/drawer.d.ts +14 -0
- package/dist/components/ui/drawer.d.ts.map +1 -0
- package/dist/components/ui/drawer.js +131 -0
- package/dist/components/ui/drawer.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +26 -0
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/components/ui/dropdown-menu.js +234 -0
- package/dist/components/ui/dropdown-menu.js.map +1 -0
- package/dist/components/ui/field.d.ts +25 -0
- package/dist/components/ui/field.d.ts.map +1 -0
- package/dist/components/ui/field.js +223 -0
- package/dist/components/ui/field.js.map +1 -0
- package/dist/components/ui/input-group.d.ts +17 -0
- package/dist/components/ui/input-group.d.ts.map +1 -0
- package/dist/components/ui/input-group.js +136 -0
- package/dist/components/ui/input-group.js.map +1 -0
- package/dist/components/ui/input.d.ts +4 -0
- package/dist/components/ui/input.d.ts.map +1 -0
- package/dist/components/ui/input.js +24 -0
- package/dist/components/ui/input.js.map +1 -0
- package/dist/components/ui/kbd.d.ts +4 -0
- package/dist/components/ui/kbd.d.ts.map +1 -0
- package/dist/components/ui/kbd.js +33 -0
- package/dist/components/ui/kbd.js.map +1 -0
- package/dist/components/ui/label.d.ts +5 -0
- package/dist/components/ui/label.d.ts.map +1 -0
- package/dist/components/ui/label.js +25 -0
- package/dist/components/ui/label.js.map +1 -0
- package/dist/components/ui/pagination.d.ts +14 -0
- package/dist/components/ui/pagination.d.ts.map +1 -0
- package/dist/components/ui/pagination.js +39 -0
- package/dist/components/ui/pagination.js.map +1 -0
- package/dist/components/ui/popover.d.ts +11 -0
- package/dist/components/ui/popover.d.ts.map +1 -0
- package/dist/components/ui/popover.js +83 -0
- package/dist/components/ui/popover.js.map +1 -0
- package/dist/components/ui/radio-group.d.ts +6 -0
- package/dist/components/ui/radio-group.d.ts.map +1 -0
- package/dist/components/ui/radio-group.js +48 -0
- package/dist/components/ui/radio-group.js.map +1 -0
- package/dist/components/ui/select.d.ts +16 -0
- package/dist/components/ui/select.d.ts.map +1 -0
- package/dist/components/ui/select.js +181 -0
- package/dist/components/ui/select.js.map +1 -0
- package/dist/components/ui/separator.d.ts +5 -0
- package/dist/components/ui/separator.d.ts.map +1 -0
- package/dist/components/ui/separator.js +29 -0
- package/dist/components/ui/separator.js.map +1 -0
- package/dist/components/ui/sheet.d.ts +15 -0
- package/dist/components/ui/sheet.d.ts.map +1 -0
- package/dist/components/ui/sheet.js +130 -0
- package/dist/components/ui/sheet.js.map +1 -0
- package/dist/components/ui/sidebar.d.ts +70 -0
- package/dist/components/ui/sidebar.d.ts.map +1 -0
- package/dist/components/ui/sidebar.js +599 -0
- package/dist/components/ui/sidebar.js.map +1 -0
- package/dist/components/ui/skeleton.d.ts +3 -0
- package/dist/components/ui/skeleton.d.ts.map +1 -0
- package/dist/components/ui/skeleton.js +17 -0
- package/dist/components/ui/skeleton.js.map +1 -0
- package/dist/components/ui/slider.d.ts +5 -0
- package/dist/components/ui/slider.d.ts.map +1 -0
- package/dist/components/ui/slider.js +65 -0
- package/dist/components/ui/slider.js.map +1 -0
- package/dist/components/ui/sonner.d.ts +4 -0
- package/dist/components/ui/sonner.d.ts.map +1 -0
- package/dist/components/ui/sonner.js +33 -0
- package/dist/components/ui/sonner.js.map +1 -0
- package/dist/components/ui/spinner.d.ts +3 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/components/ui/spinner.js +19 -0
- package/dist/components/ui/spinner.js.map +1 -0
- package/dist/components/ui/switch.d.ts +7 -0
- package/dist/components/ui/switch.d.ts.map +1 -0
- package/dist/components/ui/switch.js +36 -0
- package/dist/components/ui/switch.js.map +1 -0
- package/dist/components/ui/table.d.ts +11 -0
- package/dist/components/ui/table.d.ts.map +1 -0
- package/dist/components/ui/table.js +117 -0
- package/dist/components/ui/table.js.map +1 -0
- package/dist/components/ui/tabs.d.ts +12 -0
- package/dist/components/ui/tabs.d.ts.map +1 -0
- package/dist/components/ui/tabs.js +94 -0
- package/dist/components/ui/tabs.js.map +1 -0
- package/dist/components/ui/textarea.d.ts +4 -0
- package/dist/components/ui/textarea.d.ts.map +1 -0
- package/dist/components/ui/textarea.js +21 -0
- package/dist/components/ui/textarea.js.map +1 -0
- package/dist/components/ui/toggle-group.d.ts +10 -0
- package/dist/components/ui/toggle-group.d.ts.map +1 -0
- package/dist/components/ui/toggle-group.js +71 -0
- package/dist/components/ui/toggle-group.js.map +1 -0
- package/dist/components/ui/toggle.d.ts +10 -0
- package/dist/components/ui/toggle.d.ts.map +1 -0
- package/dist/components/ui/toggle.js +46 -0
- package/dist/components/ui/toggle.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +8 -0
- package/dist/components/ui/tooltip.d.ts.map +1 -0
- package/dist/components/ui/tooltip.js +58 -0
- package/dist/components/ui/tooltip.js.map +1 -0
- package/dist/design-system/modes/options.d.ts +26 -0
- package/dist/design-system/modes/options.d.ts.map +1 -0
- package/dist/design-system/modes/options.js +61 -0
- package/dist/design-system/modes/options.js.map +1 -0
- package/dist/design-system/modes/runtime.d.ts +34 -0
- package/dist/design-system/modes/runtime.d.ts.map +1 -0
- package/dist/design-system/modes/runtime.js +195 -0
- package/dist/design-system/modes/runtime.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -0
- package/dist/hooks/use-mobile.d.ts.map +1 -0
- package/dist/hooks/use-mobile.js +16 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/index.d.ts +51 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +306 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/constants.d.ts +2 -0
- package/dist/lib/constants.d.ts.map +1 -0
- package/dist/lib/cva.d.ts +2 -0
- package/dist/lib/cva.d.ts.map +1 -0
- package/dist/lib/generate-shades.d.ts +39 -0
- package/dist/lib/generate-shades.d.ts.map +1 -0
- package/dist/lib/generate-shades.js +220 -0
- package/dist/lib/generate-shades.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +10 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/styles.css +2 -0
- package/package.json +106 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
|
+
import { SelectTrigger as o } from "../ui/select.js";
|
|
5
|
+
import { Select as u, SelectContent as s, SelectGroup as g, SelectItem as f, SelectLabel as w, SelectScrollDownButton as x, SelectScrollUpButton as T, SelectSeparator as b, SelectValue as d } from "../ui/select.js";
|
|
6
|
+
import { cn as l } from "../../lib/utils.js";
|
|
7
|
+
function n({ className: e, ...t }) {
|
|
8
|
+
return /* @__PURE__ */ r(
|
|
9
|
+
o,
|
|
10
|
+
{
|
|
11
|
+
className: l(
|
|
12
|
+
"shadow-(--surface-shadow-input) bg-[image:var(--surface-input-overlay)]",
|
|
13
|
+
e
|
|
14
|
+
),
|
|
15
|
+
...t
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
u as Select,
|
|
21
|
+
s as SelectContent,
|
|
22
|
+
g as SelectGroup,
|
|
23
|
+
f as SelectItem,
|
|
24
|
+
w as SelectLabel,
|
|
25
|
+
x as SelectScrollDownButton,
|
|
26
|
+
T as SelectScrollUpButton,
|
|
27
|
+
b as SelectSeparator,
|
|
28
|
+
n as SelectTrigger,
|
|
29
|
+
d as SelectValue
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sources":["../../../src/components/primitives/select.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger as UISelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ntype SelectTriggerProps = React.ComponentProps<typeof UISelectTrigger>\n\nfunction SelectTrigger({ className, ...props }: SelectTriggerProps) {\n return (\n <UISelectTrigger\n className={cn(\n \"shadow-(--surface-shadow-input) bg-[image:var(--surface-input-overlay)]\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\nexport type { SelectTriggerProps }\n"],"names":["SelectTrigger","className","props","jsx","UISelectTrigger","cn"],"mappings":";;;;;;AAkBA,SAASA,EAAc,EAAE,WAAAC,GAAW,GAAGC,KAA6B;AAClE,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sheet.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/sheet.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,UAAU,EACV,YAAY,GACb,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Skeleton as UISkeleton } from '../ui/skeleton';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function Skeleton({ className, ...props }: React.ComponentProps<typeof UISkeleton>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { Skeleton };
|
|
5
|
+
//# sourceMappingURL=skeleton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAMjE,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,2CAEzC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
|
+
import { Skeleton as r } from "../ui/skeleton.js";
|
|
5
|
+
import { cn as m } from "../../lib/utils.js";
|
|
6
|
+
function s({
|
|
7
|
+
className: e,
|
|
8
|
+
...o
|
|
9
|
+
}) {
|
|
10
|
+
return /* @__PURE__ */ t(r, { className: m("bg-muted", e), ...o });
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
s as Skeleton
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=skeleton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skeleton.js","sources":["../../../src/components/primitives/skeleton.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { Skeleton as UISkeleton } from \"@/components/ui/skeleton\"\nimport { cn } from \"@/lib/utils\"\n\n// A skeleton is a solid placeholder *object*, not an interaction state. ui/skeleton\n// fills with bg-accent, which now resolves to the hover state layer — pin it back to\n// the opaque neutral so placeholders read as stable blocks on any surface.\nfunction Skeleton({\n className,\n ...props\n}: React.ComponentProps<typeof UISkeleton>) {\n return <UISkeleton className={cn(\"bg-muted\", className)} {...props} />\n}\n\nexport { Skeleton }\n"],"names":["Skeleton","className","props","jsx","UISkeleton","cn"],"mappings":";;;;;AAQA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,GAAGC;AACL,GAA4C;AAC1C,SAAO,gBAAAC,EAACC,KAAW,WAAWC,EAAG,YAAYJ,CAAS,GAAI,GAAGC,GAAO;AACtE;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Slider as UISlider } from '../ui/slider';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type SliderProps = React.ComponentProps<typeof UISlider> & {
|
|
4
|
+
showHoverValue?: boolean;
|
|
5
|
+
formatValue?: (value: number) => React.ReactNode;
|
|
6
|
+
};
|
|
7
|
+
declare function Slider({ className, showHoverValue, formatValue, min, max, step, ...props }: SliderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export { Slider };
|
|
9
|
+
export type { SliderProps };
|
|
10
|
+
//# sourceMappingURL=slider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/slider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAG3D,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,GAAG;IACzD,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;CACjD,CAAA;AASD,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,cAAc,EACd,WAAW,EACX,GAAO,EACP,GAAS,EACT,IAAQ,EACR,GAAG,KAAK,EACT,EAAE,WAAW,2CAuBb;AAwED,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as d, jsxs as R } from "react/jsx-runtime";
|
|
3
|
+
import * as f from "react";
|
|
4
|
+
import { Slider as w } from "../ui/slider.js";
|
|
5
|
+
import { cn as h } from "../../lib/utils.js";
|
|
6
|
+
const x = h(
|
|
7
|
+
"isolate after:absolute after:content-[''] after:-z-10",
|
|
8
|
+
"data-[orientation=horizontal]:after:inset-x-0 data-[orientation=horizontal]:after:top-1/2 data-[orientation=horizontal]:after:h-7 data-[orientation=horizontal]:after:-translate-y-1/2",
|
|
9
|
+
"data-[orientation=vertical]:after:inset-y-0 data-[orientation=vertical]:after:left-1/2 data-[orientation=vertical]:after:w-7 data-[orientation=vertical]:after:-translate-x-1/2",
|
|
10
|
+
"[&_[data-slot=slider-range]]:bg-[image:var(--surface-filled-primary-overlay)] [&_[data-slot=slider-range][data-orientation=horizontal]]:bg-[image:var(--surface-filled-primary-overlay-horizontal)] [&_[data-slot=slider-range]]:bg-blend-normal [&_[data-slot=slider-thumb]]:border-0 [&_[data-slot=slider-thumb]]:bg-primary [&_[data-slot=slider-thumb]]:ring-ring/30 [&_[data-slot=slider-thumb]]:shadow-(--elevation-primary)"
|
|
11
|
+
);
|
|
12
|
+
function j({
|
|
13
|
+
className: i,
|
|
14
|
+
showHoverValue: l,
|
|
15
|
+
formatValue: e,
|
|
16
|
+
min: a = 0,
|
|
17
|
+
max: t = 100,
|
|
18
|
+
step: s = 1,
|
|
19
|
+
...n
|
|
20
|
+
}) {
|
|
21
|
+
return l ? /* @__PURE__ */ d(
|
|
22
|
+
_,
|
|
23
|
+
{
|
|
24
|
+
min: a,
|
|
25
|
+
max: t,
|
|
26
|
+
step: s,
|
|
27
|
+
formatValue: e,
|
|
28
|
+
className: i,
|
|
29
|
+
...n
|
|
30
|
+
}
|
|
31
|
+
) : /* @__PURE__ */ d(
|
|
32
|
+
w,
|
|
33
|
+
{
|
|
34
|
+
min: a,
|
|
35
|
+
max: t,
|
|
36
|
+
step: s,
|
|
37
|
+
className: h(x, i),
|
|
38
|
+
...n
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
function _({
|
|
43
|
+
className: i,
|
|
44
|
+
formatValue: l,
|
|
45
|
+
min: e,
|
|
46
|
+
max: a,
|
|
47
|
+
step: t,
|
|
48
|
+
...s
|
|
49
|
+
}) {
|
|
50
|
+
const n = f.useRef(null), [o, c] = f.useState(null), [g, p] = f.useState(!1);
|
|
51
|
+
return /* @__PURE__ */ R("div", { ref: n, className: "relative", children: [
|
|
52
|
+
/* @__PURE__ */ d(
|
|
53
|
+
w,
|
|
54
|
+
{
|
|
55
|
+
min: e,
|
|
56
|
+
max: a,
|
|
57
|
+
step: t,
|
|
58
|
+
onPointerMove: (v) => {
|
|
59
|
+
if (g) return;
|
|
60
|
+
const r = v.currentTarget.getBoundingClientRect(), u = n.current?.getBoundingClientRect();
|
|
61
|
+
if (!u || r.width === 0) return;
|
|
62
|
+
const m = Math.max(0, Math.min(1, (v.clientX - r.left) / r.width)), b = e + m * (a - e), y = t > 0 ? Math.round(b / t) * t : b, P = Math.max(e, Math.min(a, y)), S = r.left - u.left + m * r.width, M = r.top - u.top;
|
|
63
|
+
c({ value: P, x: S, y: M });
|
|
64
|
+
},
|
|
65
|
+
onPointerDown: () => {
|
|
66
|
+
p(!0), c(null);
|
|
67
|
+
},
|
|
68
|
+
onPointerUp: () => {
|
|
69
|
+
p(!1);
|
|
70
|
+
},
|
|
71
|
+
onPointerLeave: () => {
|
|
72
|
+
c(null);
|
|
73
|
+
},
|
|
74
|
+
className: h(x, i),
|
|
75
|
+
...s
|
|
76
|
+
}
|
|
77
|
+
),
|
|
78
|
+
o && !g && /* @__PURE__ */ d(
|
|
79
|
+
"div",
|
|
80
|
+
{
|
|
81
|
+
className: "pointer-events-none absolute -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-1.5 py-0.5 text-xs font-medium text-background shadow-md whitespace-nowrap",
|
|
82
|
+
style: { left: `${o.x}px`, top: `${o.y - 8}px` },
|
|
83
|
+
children: l ? l(o.value) : o.value
|
|
84
|
+
}
|
|
85
|
+
)
|
|
86
|
+
] });
|
|
87
|
+
}
|
|
88
|
+
export {
|
|
89
|
+
j as Slider
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.js","sources":["../../../src/components/primitives/slider.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { Slider as UISlider } from \"@/components/ui/slider\"\nimport { cn } from \"@/lib/utils\"\n\ntype SliderProps = React.ComponentProps<typeof UISlider> & {\n showHoverValue?: boolean\n formatValue?: (value: number) => React.ReactNode\n}\n\nconst SLIDER_CLASSES = cn(\n \"isolate after:absolute after:content-[''] after:-z-10\",\n \"data-[orientation=horizontal]:after:inset-x-0 data-[orientation=horizontal]:after:top-1/2 data-[orientation=horizontal]:after:h-7 data-[orientation=horizontal]:after:-translate-y-1/2\",\n \"data-[orientation=vertical]:after:inset-y-0 data-[orientation=vertical]:after:left-1/2 data-[orientation=vertical]:after:w-7 data-[orientation=vertical]:after:-translate-x-1/2\",\n \"[&_[data-slot=slider-range]]:bg-[image:var(--surface-filled-primary-overlay)] [&_[data-slot=slider-range][data-orientation=horizontal]]:bg-[image:var(--surface-filled-primary-overlay-horizontal)] [&_[data-slot=slider-range]]:bg-blend-normal [&_[data-slot=slider-thumb]]:border-0 [&_[data-slot=slider-thumb]]:bg-primary [&_[data-slot=slider-thumb]]:ring-ring/30 [&_[data-slot=slider-thumb]]:shadow-(--elevation-primary)\"\n)\n\nfunction Slider({\n className,\n showHoverValue,\n formatValue,\n min = 0,\n max = 100,\n step = 1,\n ...props\n}: SliderProps) {\n if (!showHoverValue) {\n return (\n <UISlider\n min={min}\n max={max}\n step={step}\n className={cn(SLIDER_CLASSES, className)}\n {...props}\n />\n )\n }\n\n return (\n <SliderWithHoverValue\n min={min}\n max={max}\n step={step}\n formatValue={formatValue}\n className={className}\n {...props}\n />\n )\n}\n\ntype SliderWithHoverValueProps = Omit<SliderProps, \"showHoverValue\"> & {\n min: number\n max: number\n step: number\n}\n\nfunction SliderWithHoverValue({\n className,\n formatValue,\n min,\n max,\n step,\n ...props\n}: SliderWithHoverValueProps) {\n const wrapperRef = React.useRef<HTMLDivElement>(null)\n const [hover, setHover] = React.useState<{ value: number; x: number; y: number } | null>(null)\n const [isDragging, setIsDragging] = React.useState(false)\n\n const handlePointerMove = (event: React.PointerEvent<HTMLSpanElement>) => {\n if (isDragging) return\n const sliderRect = event.currentTarget.getBoundingClientRect()\n const wrapperRect = wrapperRef.current?.getBoundingClientRect()\n if (!wrapperRect || sliderRect.width === 0) return\n const ratio = Math.max(0, Math.min(1, (event.clientX - sliderRect.left) / sliderRect.width))\n const raw = min + ratio * (max - min)\n const stepped = step > 0 ? Math.round(raw / step) * step : raw\n const clamped = Math.max(min, Math.min(max, stepped))\n const x = sliderRect.left - wrapperRect.left + ratio * sliderRect.width\n const y = sliderRect.top - wrapperRect.top\n setHover({ value: clamped, x, y })\n }\n\n const handlePointerDown = () => {\n setIsDragging(true)\n setHover(null)\n }\n\n const handlePointerUp = () => {\n setIsDragging(false)\n }\n\n const handlePointerLeave = () => {\n setHover(null)\n }\n\n return (\n <div ref={wrapperRef} className=\"relative\">\n <UISlider\n min={min}\n max={max}\n step={step}\n onPointerMove={handlePointerMove}\n onPointerDown={handlePointerDown}\n onPointerUp={handlePointerUp}\n onPointerLeave={handlePointerLeave}\n className={cn(SLIDER_CLASSES, className)}\n {...props}\n />\n {hover && !isDragging && (\n <div\n className=\"pointer-events-none absolute -translate-x-1/2 -translate-y-full rounded-md bg-foreground px-1.5 py-0.5 text-xs font-medium text-background shadow-md whitespace-nowrap\"\n style={{ left: `${hover.x}px`, top: `${hover.y - 8}px` }}\n >\n {formatValue ? formatValue(hover.value) : hover.value}\n </div>\n )}\n </div>\n )\n}\n\nexport { Slider }\nexport type { SliderProps }\n"],"names":["SLIDER_CLASSES","cn","Slider","className","showHoverValue","formatValue","min","max","step","props","jsx","SliderWithHoverValue","UISlider","wrapperRef","React","hover","setHover","isDragging","setIsDragging","jsxs","event","sliderRect","wrapperRect","ratio","raw","stepped","clamped","x","y"],"mappings":";;;;;AAUA,MAAMA,IAAiBC;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,SAASC,EAAO;AAAA,EACd,WAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,KAAAC,IAAM;AAAA,EACN,MAAAC,IAAO;AAAA,EACP,GAAGC;AACL,GAAgB;AACd,SAAKL,IAaH,gBAAAM;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,KAAAL;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,MACA,aAAAH;AAAA,MACA,WAAAF;AAAA,MACC,GAAGM;AAAA,IAAA;AAAA,EAAA,IAjBJ,gBAAAC;AAAA,IAACE;AAAAA,IAAA;AAAA,MACC,KAAAN;AAAA,MACA,KAAAC;AAAA,MACA,MAAAC;AAAA,MACA,WAAWP,EAAGD,GAAgBG,CAAS;AAAA,MACtC,GAAGM;AAAA,IAAA;AAAA,EAAA;AAeZ;AAQA,SAASE,EAAqB;AAAA,EAC5B,WAAAR;AAAA,EACA,aAAAE;AAAA,EACA,KAAAC;AAAA,EACA,KAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAGC;AACL,GAA8B;AAC5B,QAAMI,IAAaC,EAAM,OAAuB,IAAI,GAC9C,CAACC,GAAOC,CAAQ,IAAIF,EAAM,SAAyD,IAAI,GACvF,CAACG,GAAYC,CAAa,IAAIJ,EAAM,SAAS,EAAK;AA6BxD,SACE,gBAAAK,EAAC,OAAA,EAAI,KAAKN,GAAY,WAAU,YAC9B,UAAA;AAAA,IAAA,gBAAAH;AAAA,MAACE;AAAAA,MAAA;AAAA,QACC,KAAAN;AAAA,QACA,KAAAC;AAAA,QACA,MAAAC;AAAA,QACA,eAjCoB,CAACY,MAA+C;AACxE,cAAIH,EAAY;AAChB,gBAAMI,IAAaD,EAAM,cAAc,sBAAA,GACjCE,IAAcT,EAAW,SAAS,sBAAA;AACxC,cAAI,CAACS,KAAeD,EAAW,UAAU,EAAG;AAC5C,gBAAME,IAAQ,KAAK,IAAI,GAAG,KAAK,IAAI,IAAIH,EAAM,UAAUC,EAAW,QAAQA,EAAW,KAAK,CAAC,GACrFG,IAAMlB,IAAMiB,KAAShB,IAAMD,IAC3BmB,IAAUjB,IAAO,IAAI,KAAK,MAAMgB,IAAMhB,CAAI,IAAIA,IAAOgB,GACrDE,IAAU,KAAK,IAAIpB,GAAK,KAAK,IAAIC,GAAKkB,CAAO,CAAC,GAC9CE,IAAIN,EAAW,OAAOC,EAAY,OAAOC,IAAQF,EAAW,OAC5DO,IAAIP,EAAW,MAAMC,EAAY;AACvC,UAAAN,EAAS,EAAE,OAAOU,GAAS,GAAAC,GAAG,GAAAC,GAAG;AAAA,QACnC;AAAA,QAsBM,eApBoB,MAAM;AAC9B,UAAAV,EAAc,EAAI,GAClBF,EAAS,IAAI;AAAA,QACf;AAAA,QAkBM,aAhBkB,MAAM;AAC5B,UAAAE,EAAc,EAAK;AAAA,QACrB;AAAA,QAeM,gBAbqB,MAAM;AAC/B,UAAAF,EAAS,IAAI;AAAA,QACf;AAAA,QAYM,WAAWf,EAAGD,GAAgBG,CAAS;AAAA,QACtC,GAAGM;AAAA,MAAA;AAAA,IAAA;AAAA,IAELM,KAAS,CAACE,KACT,gBAAAP;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,EAAE,MAAM,GAAGK,EAAM,CAAC,MAAM,KAAK,GAAGA,EAAM,IAAI,CAAC,KAAA;AAAA,QAEjD,UAAAV,IAAcA,EAAYU,EAAM,KAAK,IAAIA,EAAM;AAAA,MAAA;AAAA,IAAA;AAAA,EAClD,GAEJ;AAEJ;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Toaster as UIToaster } from '../ui/sonner';
|
|
2
|
+
type ToasterProps = React.ComponentProps<typeof UIToaster>;
|
|
3
|
+
declare function Toaster({ style, richColors, ...props }: ToasterProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export { Toaster };
|
|
5
|
+
//# sourceMappingURL=sonner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/sonner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAI7D,KAAK,YAAY,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,SAAS,CAAC,CAAA;AAQ1D,iBAAS,OAAO,CAAC,EAAE,KAAK,EAAE,UAAiB,EAAE,GAAG,KAAK,EAAE,EAAE,YAAY,2CAoCpE;AAED,OAAO,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
3
|
+
import { Toaster as e } from "../ui/sonner.js";
|
|
4
|
+
import { buttonVariants as i } from "../ui/button.js";
|
|
5
|
+
import { cn as s } from "../../lib/utils.js";
|
|
6
|
+
const r = s(
|
|
7
|
+
i({ variant: "ghost", size: "xs" }),
|
|
8
|
+
"gap-0.75 hover:bg-state-hover",
|
|
9
|
+
"!ml-auto !rounded-md !bg-transparent !text-foreground"
|
|
10
|
+
);
|
|
11
|
+
function g({ style: a, richColors: o = !0, ...t }) {
|
|
12
|
+
return /* @__PURE__ */ n(
|
|
13
|
+
e,
|
|
14
|
+
{
|
|
15
|
+
richColors: o,
|
|
16
|
+
style: {
|
|
17
|
+
"--success-bg": "var(--success-subtle)",
|
|
18
|
+
"--success-text": "var(--success-subtle-foreground)",
|
|
19
|
+
"--success-border": "color-mix(in oklch, var(--success) 30%, transparent)",
|
|
20
|
+
"--info-bg": "var(--info-subtle)",
|
|
21
|
+
"--info-text": "var(--info-subtle-foreground)",
|
|
22
|
+
"--info-border": "color-mix(in oklch, var(--info) 30%, transparent)",
|
|
23
|
+
"--warning-bg": "var(--warning-subtle)",
|
|
24
|
+
"--warning-text": "var(--warning-subtle-foreground)",
|
|
25
|
+
"--warning-border": "color-mix(in oklch, var(--warning) 30%, transparent)",
|
|
26
|
+
"--error-bg": "var(--destructive-subtle)",
|
|
27
|
+
"--error-text": "var(--destructive-subtle-foreground)",
|
|
28
|
+
"--error-border": "color-mix(in oklch, var(--destructive) 30%, transparent)",
|
|
29
|
+
...a
|
|
30
|
+
},
|
|
31
|
+
toastOptions: {
|
|
32
|
+
...t.toastOptions,
|
|
33
|
+
classNames: {
|
|
34
|
+
...t.toastOptions?.classNames,
|
|
35
|
+
success: `[&_[data-icon]]:text-success ${t.toastOptions?.classNames?.success ?? ""}`,
|
|
36
|
+
info: `[&_[data-icon]]:text-info ${t.toastOptions?.classNames?.info ?? ""}`,
|
|
37
|
+
warning: `[&_[data-icon]]:text-warning ${t.toastOptions?.classNames?.warning ?? ""}`,
|
|
38
|
+
error: `[&_[data-icon]]:text-destructive ${t.toastOptions?.classNames?.error ?? ""}`,
|
|
39
|
+
actionButton: s(r, t.toastOptions?.classNames?.actionButton),
|
|
40
|
+
cancelButton: s(r, t.toastOptions?.classNames?.cancelButton)
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
...t
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
g as Toaster
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=sonner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonner.js","sources":["../../../src/components/primitives/sonner.tsx"],"sourcesContent":["import { Toaster as UIToaster } from \"@/components/ui/sonner\"\nimport { buttonVariants } from \"@/components/ui/button\"\nimport { cn } from \"@/lib/utils\"\n\ntype ToasterProps = React.ComponentProps<typeof UIToaster>\n\nconst actionButtonClassName = cn(\n buttonVariants({ variant: \"ghost\", size: \"xs\" }),\n \"gap-0.75 hover:bg-state-hover\",\n \"!ml-auto !rounded-md !bg-transparent !text-foreground\"\n)\n\nfunction Toaster({ style, richColors = true, ...props }: ToasterProps) {\n return (\n <UIToaster\n richColors={richColors}\n style={\n {\n \"--success-bg\": \"var(--success-subtle)\",\n \"--success-text\": \"var(--success-subtle-foreground)\",\n \"--success-border\": \"color-mix(in oklch, var(--success) 30%, transparent)\",\n \"--info-bg\": \"var(--info-subtle)\",\n \"--info-text\": \"var(--info-subtle-foreground)\",\n \"--info-border\": \"color-mix(in oklch, var(--info) 30%, transparent)\",\n \"--warning-bg\": \"var(--warning-subtle)\",\n \"--warning-text\": \"var(--warning-subtle-foreground)\",\n \"--warning-border\": \"color-mix(in oklch, var(--warning) 30%, transparent)\",\n \"--error-bg\": \"var(--destructive-subtle)\",\n \"--error-text\": \"var(--destructive-subtle-foreground)\",\n \"--error-border\": \"color-mix(in oklch, var(--destructive) 30%, transparent)\",\n ...(style as React.CSSProperties | undefined),\n } as React.CSSProperties\n }\n toastOptions={{\n ...props.toastOptions,\n classNames: {\n ...props.toastOptions?.classNames,\n success: `[&_[data-icon]]:text-success ${props.toastOptions?.classNames?.success ?? \"\"}`,\n info: `[&_[data-icon]]:text-info ${props.toastOptions?.classNames?.info ?? \"\"}`,\n warning: `[&_[data-icon]]:text-warning ${props.toastOptions?.classNames?.warning ?? \"\"}`,\n error: `[&_[data-icon]]:text-destructive ${props.toastOptions?.classNames?.error ?? \"\"}`,\n actionButton: cn(actionButtonClassName, props.toastOptions?.classNames?.actionButton),\n cancelButton: cn(actionButtonClassName, props.toastOptions?.classNames?.cancelButton),\n },\n }}\n {...props}\n />\n )\n}\n\nexport { Toaster }\n"],"names":["actionButtonClassName","cn","buttonVariants","Toaster","style","richColors","props","jsx","UIToaster"],"mappings":";;;;;AAMA,MAAMA,IAAwBC;AAAA,EAC5BC,EAAe,EAAE,SAAS,SAAS,MAAM,MAAM;AAAA,EAC/C;AAAA,EACA;AACF;AAEA,SAASC,EAAQ,EAAE,OAAAC,GAAO,YAAAC,IAAa,IAAM,GAAGC,KAAuB;AACrE,SACE,gBAAAC;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,YAAAH;AAAA,MACA,OACE;AAAA,QACE,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,QACpB,aAAa;AAAA,QACb,eAAe;AAAA,QACf,iBAAiB;AAAA,QACjB,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,oBAAoB;AAAA,QACpB,cAAc;AAAA,QACd,gBAAgB;AAAA,QAChB,kBAAkB;AAAA,QAClB,GAAID;AAAA,MAAA;AAAA,MAGR,cAAc;AAAA,QACZ,GAAGE,EAAM;AAAA,QACT,YAAY;AAAA,UACV,GAAGA,EAAM,cAAc;AAAA,UACvB,SAAS,gCAAgCA,EAAM,cAAc,YAAY,WAAW,EAAE;AAAA,UACtF,MAAM,6BAA6BA,EAAM,cAAc,YAAY,QAAQ,EAAE;AAAA,UAC7E,SAAS,gCAAgCA,EAAM,cAAc,YAAY,WAAW,EAAE;AAAA,UACtF,OAAO,oCAAoCA,EAAM,cAAc,YAAY,SAAS,EAAE;AAAA,UACtF,cAAcL,EAAGD,GAAuBM,EAAM,cAAc,YAAY,YAAY;AAAA,UACpF,cAAcL,EAAGD,GAAuBM,EAAM,cAAc,YAAY,YAAY;AAAA,QAAA;AAAA,MACtF;AAAA,MAED,GAAGA;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Switch as UISwitch } from '../ui/switch';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
type SwitchProps = React.ComponentProps<typeof UISwitch>;
|
|
4
|
+
declare function Switch(props: SwitchProps): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export { Switch };
|
|
6
|
+
export type { SwitchProps };
|
|
7
|
+
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAG3D,KAAK,WAAW,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAA;AAExD,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,2CAYjC;AAED,OAAO,EAAE,MAAM,EAAE,CAAA;AACjB,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
|
+
import { Switch as d } from "../ui/switch.js";
|
|
5
|
+
import { cn as c } from "../../lib/utils.js";
|
|
6
|
+
function l(a) {
|
|
7
|
+
const { className: t, ...e } = a;
|
|
8
|
+
return /* @__PURE__ */ s(
|
|
9
|
+
d,
|
|
10
|
+
{
|
|
11
|
+
className: c(
|
|
12
|
+
"shadow-none data-[state=checked]:bg-[image:var(--surface-filled-primary-overlay)] data-[state=checked]:shadow-(--surface-shadow-primary-sm) bg-blend-normal data-[state=checked]:border-none data-[size=default]:h-5 data-[size=default]:w-8 data-[size=sm]:h-4 data-[size=sm]:w-6 data-[size=default]:[&_[data-slot=switch-thumb]]:size-4 data-[size=sm]:[&_[data-slot=switch-thumb]]:size-3 [&_[data-slot=switch-thumb][data-state=checked]]:translate-x-[calc(100%-2px)] [&_[data-slot=switch-thumb][data-state=unchecked]]:translate-x-px [&_[data-slot=switch-thumb]]:shadow-(--surface-shadow-neutral-sm) [&_[data-slot=switch-thumb]]:bg-[image:var(--surface-filled-neutral-overlay)]",
|
|
13
|
+
t
|
|
14
|
+
),
|
|
15
|
+
...e
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
export {
|
|
20
|
+
l as Switch
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=switch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"switch.js","sources":["../../../src/components/primitives/switch.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport { Switch as UISwitch } from \"@/components/ui/switch\"\nimport { cn } from \"@/lib/utils\"\n\ntype SwitchProps = React.ComponentProps<typeof UISwitch>\n\nfunction Switch(props: SwitchProps) {\n const { className, ...rest } = props\n\n return (\n <UISwitch\n className={cn(\n \"shadow-none data-[state=checked]:bg-[image:var(--surface-filled-primary-overlay)] data-[state=checked]:shadow-(--surface-shadow-primary-sm) bg-blend-normal data-[state=checked]:border-none data-[size=default]:h-5 data-[size=default]:w-8 data-[size=sm]:h-4 data-[size=sm]:w-6 data-[size=default]:[&_[data-slot=switch-thumb]]:size-4 data-[size=sm]:[&_[data-slot=switch-thumb]]:size-3 [&_[data-slot=switch-thumb][data-state=checked]]:translate-x-[calc(100%-2px)] [&_[data-slot=switch-thumb][data-state=unchecked]]:translate-x-px [&_[data-slot=switch-thumb]]:shadow-(--surface-shadow-neutral-sm) [&_[data-slot=switch-thumb]]:bg-[image:var(--surface-filled-neutral-overlay)]\",\n className\n )}\n {...rest}\n />\n )\n}\n\nexport { Switch }\nexport type { SwitchProps }\n"],"names":["Switch","props","className","rest","jsx","UISwitch","cn"],"mappings":";;;;;AAOA,SAASA,EAAOC,GAAoB;AAClC,QAAM,EAAE,WAAAC,GAAW,GAAGC,EAAA,IAASF;AAE/B,SACI,gBAAAG;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGZ;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Table as UITable, TableBody, TableCaption, TableCell as UITableCell, TableFooter as UITableFooter, TableHead as UITableHead, TableHeader as UITableHeader, TableRow as UITableRow } from '../ui/table';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function Table({ className, ...props }: React.ComponentProps<typeof UITable>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function TableHeader({ className, ...props }: React.ComponentProps<typeof UITableHeader>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function TableHead({ className, ...props }: React.ComponentProps<typeof UITableHead>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function TableFooter({ className, ...props }: React.ComponentProps<typeof UITableFooter>): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function TableCell({ className, ...props }: React.ComponentProps<typeof UITableCell>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare function TableRow({ className, ...props }: React.ComponentProps<typeof UITableRow>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, };
|
|
10
|
+
//# sourceMappingURL=table.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,SAAS,EACT,YAAY,EACZ,SAAS,IAAI,WAAW,EACxB,WAAW,IAAI,aAAa,EAC5B,SAAS,IAAI,WAAW,EACxB,WAAW,IAAI,aAAa,EAC5B,QAAQ,IAAI,UAAU,EACvB,MAAM,uBAAuB,CAAA;AAO9B,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,OAAO,CAAC,2CAM3E;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,2CAU5C;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,2CAE1C;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,2CAO5C;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,WAAW,CAAC,2CAE1C;AAKD,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,2CAUzC;AAED,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,GACT,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r } from "react/jsx-runtime";
|
|
3
|
+
import "react";
|
|
4
|
+
import { Table as o, TableCell as l, TableFooter as b, TableHead as s, TableHeader as n, TableRow as d } from "../ui/table.js";
|
|
5
|
+
import { TableBody as $, TableCaption as v } from "../ui/table.js";
|
|
6
|
+
import { cn as t } from "../../lib/utils.js";
|
|
7
|
+
function i({ className: e, ...a }) {
|
|
8
|
+
return /* @__PURE__ */ r("div", { className: "overflow-hidden rounded-sm border bg-background", children: /* @__PURE__ */ r(o, { className: e, ...a }) });
|
|
9
|
+
}
|
|
10
|
+
function f({
|
|
11
|
+
className: e,
|
|
12
|
+
...a
|
|
13
|
+
}) {
|
|
14
|
+
return /* @__PURE__ */ r(
|
|
15
|
+
n,
|
|
16
|
+
{
|
|
17
|
+
className: t(
|
|
18
|
+
"[&_tr]:bg-muted [&_tr]:hover:bg-muted [&_th]:text-muted-foreground",
|
|
19
|
+
e
|
|
20
|
+
),
|
|
21
|
+
...a
|
|
22
|
+
}
|
|
23
|
+
);
|
|
24
|
+
}
|
|
25
|
+
function p({
|
|
26
|
+
className: e,
|
|
27
|
+
...a
|
|
28
|
+
}) {
|
|
29
|
+
return /* @__PURE__ */ r(s, { className: t("h-10 px-2", e), ...a });
|
|
30
|
+
}
|
|
31
|
+
function g({
|
|
32
|
+
className: e,
|
|
33
|
+
...a
|
|
34
|
+
}) {
|
|
35
|
+
return /* @__PURE__ */ r(
|
|
36
|
+
b,
|
|
37
|
+
{
|
|
38
|
+
className: t("bg-muted [&>tr>td]:h-10 [&>tr>td]:px-2", e),
|
|
39
|
+
...a
|
|
40
|
+
}
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
function h({
|
|
44
|
+
className: e,
|
|
45
|
+
...a
|
|
46
|
+
}) {
|
|
47
|
+
return /* @__PURE__ */ r(l, { className: t("px-2 py-1.5", e), ...a });
|
|
48
|
+
}
|
|
49
|
+
function x({
|
|
50
|
+
className: e,
|
|
51
|
+
...a
|
|
52
|
+
}) {
|
|
53
|
+
return /* @__PURE__ */ r(
|
|
54
|
+
d,
|
|
55
|
+
{
|
|
56
|
+
className: t(
|
|
57
|
+
"hover:bg-state-hover data-[state=selected]:bg-state-press",
|
|
58
|
+
e
|
|
59
|
+
),
|
|
60
|
+
...a
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
i as Table,
|
|
66
|
+
$ as TableBody,
|
|
67
|
+
v as TableCaption,
|
|
68
|
+
h as TableCell,
|
|
69
|
+
g as TableFooter,
|
|
70
|
+
p as TableHead,
|
|
71
|
+
f as TableHeader,
|
|
72
|
+
x as TableRow
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"table.js","sources":["../../../src/components/primitives/table.tsx"],"sourcesContent":["import * as React from \"react\"\n\nimport {\n Table as UITable,\n TableBody,\n TableCaption,\n TableCell as UITableCell,\n TableFooter as UITableFooter,\n TableHead as UITableHead,\n TableHeader as UITableHeader,\n TableRow as UITableRow,\n} from \"@/components/ui/table\"\nimport { cn } from \"@/lib/utils\"\n\n// ui/Table renders <div.table-container><table/></div>, but the container has\n// no radius and its className prop targets the inner <table>. Wrap it in a\n// clipping card so rounding + border + bg live on one element and the rounded\n// corners actually clip the header/rows.\nfunction Table({ className, ...props }: React.ComponentProps<typeof UITable>) {\n return (\n <div className=\"overflow-hidden rounded-sm border bg-background\">\n <UITable className={className} {...props} />\n </div>\n )\n}\n\nfunction TableHeader({\n className,\n ...props\n}: React.ComponentProps<typeof UITableHeader>) {\n return (\n <UITableHeader\n className={cn(\n \"[&_tr]:bg-muted [&_tr]:hover:bg-muted [&_th]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TableHead({\n className,\n ...props\n}: React.ComponentProps<typeof UITableHead>) {\n return <UITableHead className={cn(\"h-10 px-2\", className)} {...props} />\n}\n\nfunction TableFooter({\n className,\n ...props\n}: React.ComponentProps<typeof UITableFooter>) {\n return (\n <UITableFooter\n className={cn(\"bg-muted [&>tr>td]:h-10 [&>tr>td]:px-2\", className)}\n {...props}\n />\n )\n}\n\nfunction TableCell({\n className,\n ...props\n}: React.ComponentProps<typeof UITableCell>) {\n return <UITableCell className={cn(\"px-2 py-1.5\", className)} {...props} />\n}\n\n// Rows ride the translucent state layer: hover = state-hover, selected = state-press\n// (a step stronger). Header/footer are solid bg-muted bands; the header pins\n// [&_tr]:hover:bg-muted so its rows ignore this row-hover. Later utility wins over ui.\nfunction TableRow({\n className,\n ...props\n}: React.ComponentProps<typeof UITableRow>) {\n return (\n <UITableRow\n className={cn(\n \"hover:bg-state-hover data-[state=selected]:bg-state-press\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n}\n"],"names":["Table","className","props","jsx","UITable","TableHeader","UITableHeader","cn","TableHead","UITableHead","TableFooter","UITableFooter","TableCell","UITableCell","TableRow","UITableRow"],"mappings":";;;;;;AAkBA,SAASA,EAAM,EAAE,WAAAC,GAAW,GAAGC,KAA+C;AAC5E,SACE,gBAAAC,EAAC,SAAI,WAAU,mDACb,4BAACC,GAAA,EAAQ,WAAAH,GAAuB,GAAGC,EAAA,CAAO,EAAA,CAC5C;AAEJ;AAEA,SAASG,EAAY;AAAA,EACnB,WAAAJ;AAAA,EACA,GAAGC;AACL,GAA+C;AAC7C,SACE,gBAAAC;AAAA,IAACG;AAAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAN;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASM,EAAU;AAAA,EACjB,WAAAP;AAAA,EACA,GAAGC;AACL,GAA6C;AAC3C,SAAO,gBAAAC,EAACM,KAAY,WAAWF,EAAG,aAAaN,CAAS,GAAI,GAAGC,GAAO;AACxE;AAEA,SAASQ,EAAY;AAAA,EACnB,WAAAT;AAAA,EACA,GAAGC;AACL,GAA+C;AAC7C,SACE,gBAAAC;AAAA,IAACQ;AAAAA,IAAA;AAAA,MACC,WAAWJ,EAAG,0CAA0CN,CAAS;AAAA,MAChE,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASU,EAAU;AAAA,EACjB,WAAAX;AAAA,EACA,GAAGC;AACL,GAA6C;AAC3C,SAAO,gBAAAC,EAACU,KAAY,WAAWN,EAAG,eAAeN,CAAS,GAAI,GAAGC,GAAO;AAC1E;AAKA,SAASY,EAAS;AAAA,EAChB,WAAAb;AAAA,EACA,GAAGC;AACL,GAA4C;AAC1C,SACE,gBAAAC;AAAA,IAACY;AAAAA,IAAA;AAAA,MACC,WAAWR;AAAA,QACT;AAAA,QACAN;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Tabs, TabsContent, TabsList as UITabsList, TabsTrigger as UITabsTrigger, tabsListVariants } from '../ui/tabs';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare function TabsList({ className, variant, ...props }: React.ComponentProps<typeof UITabsList>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function TabsTrigger({ className, children, ...props }: React.ComponentProps<typeof UITabsTrigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };
|
|
6
|
+
//# sourceMappingURL=tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/primitives/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,EACL,IAAI,EACJ,WAAW,EACX,QAAQ,IAAI,UAAU,EACtB,WAAW,IAAI,aAAa,EAC5B,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAuG9B,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,2CAkDzC;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,2CAuC5C;AAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as f } from "react/jsx-runtime";
|
|
3
|
+
import * as o from "react";
|
|
4
|
+
import { Badge as c } from "./badge.js";
|
|
5
|
+
import { Badge as v } from "../ui/badge.js";
|
|
6
|
+
import { TabsList as h, TabsTrigger as m } from "../ui/tabs.js";
|
|
7
|
+
import { Tabs as R, TabsContent as k, tabsListVariants as A } from "../ui/tabs.js";
|
|
8
|
+
import { cn as g } from "../../lib/utils.js";
|
|
9
|
+
function u(a) {
|
|
10
|
+
return typeof a == "string" || typeof a == "number" ? String(a) : Array.isArray(a) ? a.map(u).join("") : o.isValidElement(a) ? u(a.props.children) : "";
|
|
11
|
+
}
|
|
12
|
+
function y(a) {
|
|
13
|
+
return o.isValidElement(a) && (a.type === c || a.type === v || a.props["data-slot"] === "badge");
|
|
14
|
+
}
|
|
15
|
+
function x() {
|
|
16
|
+
const a = o.useRef(null);
|
|
17
|
+
return o.useLayoutEffect(() => {
|
|
18
|
+
const t = a.current;
|
|
19
|
+
if (!t) return;
|
|
20
|
+
const r = () => {
|
|
21
|
+
const s = t.querySelector(
|
|
22
|
+
'[data-slot="tabs-trigger"][data-state="active"]'
|
|
23
|
+
);
|
|
24
|
+
if (!s) {
|
|
25
|
+
t.style.setProperty("--tab-w", "0px"), t.style.setProperty("--tab-h", "0px");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const d = t.getBoundingClientRect(), b = s.getBoundingClientRect(), l = Math.round(b.left - d.left), p = Math.round(b.top - d.top);
|
|
29
|
+
t.style.setProperty("--tab-x", `${l}px`), t.style.setProperty("--tab-y", `${p}px`), t.style.setProperty("--tab-w", `${Math.round(b.right - d.left) - l}px`), t.style.setProperty("--tab-h", `${Math.round(b.bottom - d.top) - p}px`);
|
|
30
|
+
};
|
|
31
|
+
r();
|
|
32
|
+
const i = requestAnimationFrame(() => {
|
|
33
|
+
t.dataset.tabIndicator = "ready";
|
|
34
|
+
}), e = new MutationObserver(r);
|
|
35
|
+
e.observe(t, {
|
|
36
|
+
attributes: !0,
|
|
37
|
+
attributeFilter: ["data-state"],
|
|
38
|
+
childList: !0,
|
|
39
|
+
subtree: !0
|
|
40
|
+
});
|
|
41
|
+
const n = new ResizeObserver(r);
|
|
42
|
+
return n.observe(t), t.querySelectorAll('[data-slot="tabs-trigger"]').forEach((s) => n.observe(s)), () => {
|
|
43
|
+
cancelAnimationFrame(i), e.disconnect(), n.disconnect(), delete t.dataset.tabIndicator;
|
|
44
|
+
};
|
|
45
|
+
}, []), a;
|
|
46
|
+
}
|
|
47
|
+
function B({
|
|
48
|
+
className: a,
|
|
49
|
+
variant: t = "default",
|
|
50
|
+
...r
|
|
51
|
+
}) {
|
|
52
|
+
const i = x();
|
|
53
|
+
return /* @__PURE__ */ f(
|
|
54
|
+
h,
|
|
55
|
+
{
|
|
56
|
+
ref: i,
|
|
57
|
+
variant: t,
|
|
58
|
+
className: g(
|
|
59
|
+
t === "default" && [
|
|
60
|
+
"relative",
|
|
61
|
+
// Sliding active "pill": a single ::before that paints behind the
|
|
62
|
+
// (relatively-positioned) triggers and matches the active trigger's
|
|
63
|
+
// box from the measured vars. Surface = the Tailwind `--shadow-sm`
|
|
64
|
+
// theme var (soft drop, no 0 0 0 1px ring — present in every style
|
|
65
|
+
// mode so the pill always reads as raised; referencing the var instead
|
|
66
|
+
// of inlining shadow-sm's literal, since the `shadow-sm` *utility*
|
|
67
|
+
// can't coexist with an arbitrary shadow on the same element) composed
|
|
68
|
+
// inline with the tactile inset lips (--surface-inset-neutral-sm). We
|
|
69
|
+
// reference the inset role directly
|
|
70
|
+
// rather than the composed --surface-shadow-neutral-sm so the pill
|
|
71
|
+
// does NOT stack --elevation-1 on top of its own soft drop when
|
|
72
|
+
// data-elevation is on; inlined together because two shadow utilities
|
|
73
|
+
// can't coexist.
|
|
74
|
+
// No bg-clip-padding/border, so the fill reaches the box edge with no
|
|
75
|
+
// track gap. Positioned with left/top/width/height so it pixel-snaps.
|
|
76
|
+
"before:pointer-events-none before:absolute",
|
|
77
|
+
"before:left-[var(--tab-x,0px)] before:top-[var(--tab-y,0px)] before:w-[var(--tab-w,0px)] before:h-[var(--tab-h,0px)]",
|
|
78
|
+
"before:rounded-md before:bg-background before:bg-[image:var(--surface-filled-neutral-overlay)] before:shadow-[var(--shadow-sm),var(--surface-inset-neutral-sm)]",
|
|
79
|
+
"dark:before:bg-input/30",
|
|
80
|
+
"data-[tab-indicator=ready]:before:transition-[left,top,width,height] data-[tab-indicator=ready]:before:duration-200 data-[tab-indicator=ready]:before:ease-out"
|
|
81
|
+
],
|
|
82
|
+
t === "line" && [
|
|
83
|
+
// Line variant owns its baseline: a full-bleed bottom border (right
|
|
84
|
+
// border when vertical) that spans the whole row, with the tabs
|
|
85
|
+
// sitting flush against it.
|
|
86
|
+
"relative w-auto justify-start gap-0 p-0",
|
|
87
|
+
"group-data-[orientation=horizontal]/tabs:h-auto group-data-[orientation=horizontal]/tabs:border-b",
|
|
88
|
+
"group-data-[orientation=vertical]/tabs:w-fit group-data-[orientation=vertical]/tabs:border-r",
|
|
89
|
+
// A single indicator (the list's ::after) slides and resizes between
|
|
90
|
+
// tabs from the measured CSS vars above, painting over the hairline so
|
|
91
|
+
// the two read as one connected line.
|
|
92
|
+
"after:pointer-events-none after:absolute after:bg-foreground",
|
|
93
|
+
"group-data-[orientation=horizontal]/tabs:after:bottom-[-1px] group-data-[orientation=horizontal]/tabs:after:left-[var(--tab-x,0px)] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=horizontal]/tabs:after:w-[var(--tab-w,0px)]",
|
|
94
|
+
"group-data-[orientation=vertical]/tabs:after:right-[-1px] group-data-[orientation=vertical]/tabs:after:top-[var(--tab-y,0px)] group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[orientation=vertical]/tabs:after:h-[var(--tab-h,0px)]",
|
|
95
|
+
"data-[tab-indicator=ready]:after:transition-[left,top,width,height] data-[tab-indicator=ready]:after:duration-200 data-[tab-indicator=ready]:after:ease-out"
|
|
96
|
+
],
|
|
97
|
+
a
|
|
98
|
+
),
|
|
99
|
+
...r
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
function E({
|
|
104
|
+
className: a,
|
|
105
|
+
children: t,
|
|
106
|
+
...r
|
|
107
|
+
}) {
|
|
108
|
+
const i = o.Children.map(t, (e) => {
|
|
109
|
+
if (!y(e))
|
|
110
|
+
return e;
|
|
111
|
+
const n = u(e.props.children).trim();
|
|
112
|
+
return /^\d{1,2}$/.test(n) ? o.cloneElement(e, {
|
|
113
|
+
"data-tab-badge-shape": "square"
|
|
114
|
+
}) : e;
|
|
115
|
+
});
|
|
116
|
+
return /* @__PURE__ */ f(
|
|
117
|
+
m,
|
|
118
|
+
{
|
|
119
|
+
className: g(
|
|
120
|
+
// Default variant: the active surface is now a single sliding pill on
|
|
121
|
+
// the TabsList (::before), so suppress the per-trigger active background,
|
|
122
|
+
// shadow and dark border that shadcn/ui sets — keep only the active text
|
|
123
|
+
// color (from the ui base).
|
|
124
|
+
"group-data-[variant=default]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=default]/tabs-list:data-[state=active]:shadow-none dark:group-data-[variant=default]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=default]/tabs-list:data-[state=active]:border-transparent",
|
|
125
|
+
// Badge sizing/spacing inside triggers.
|
|
126
|
+
"has-[>[data-slot=badge]]:pr-1 [&>[data-slot=badge]]:shrink-0 [&>[data-slot=badge]]:justify-center [&>[data-slot=badge][data-tab-badge-shape=square]]:size-5 [&>[data-slot=badge][data-tab-badge-shape=square]]:min-w-0 [&>[data-slot=badge][data-tab-badge-shape=square]]:px-0",
|
|
127
|
+
// Line variant: comfortable padding drives the height and tabs hug their
|
|
128
|
+
// label (no flex-1 stretch) so they pack left. The active indicator is
|
|
129
|
+
// not per-trigger here — it's a single sliding bar on the TabsList (see
|
|
130
|
+
// useTabIndicator) — so the trigger's own ::after is suppressed.
|
|
131
|
+
"group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:py-2.5 group-data-[variant=line]/tabs-list:after:hidden",
|
|
132
|
+
a
|
|
133
|
+
),
|
|
134
|
+
...r,
|
|
135
|
+
children: i
|
|
136
|
+
}
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
export {
|
|
140
|
+
R as Tabs,
|
|
141
|
+
k as TabsContent,
|
|
142
|
+
B as TabsList,
|
|
143
|
+
E as TabsTrigger,
|
|
144
|
+
A as tabsListVariants
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=tabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../src/components/primitives/tabs.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { Badge } from \"@/components/primitives/badge\";\nimport { Badge as UIBadge } from \"@/components/ui/badge\";\nimport {\n Tabs,\n TabsContent,\n TabsList as UITabsList,\n TabsTrigger as UITabsTrigger,\n tabsListVariants,\n} from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\n\nfunction getNodeText(node: React.ReactNode): string {\n if (typeof node === \"string\" || typeof node === \"number\") {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n return node.map(getNodeText).join(\"\");\n }\n\n if (React.isValidElement<{ children?: React.ReactNode }>(node)) {\n return getNodeText(node.props.children);\n }\n\n return \"\";\n}\n\nfunction isBadgeElement(child: React.ReactNode): child is React.ReactElement<{\n children?: React.ReactNode;\n [key: string]: unknown;\n}> {\n return (\n React.isValidElement<{\n children?: React.ReactNode;\n [key: string]: unknown;\n }>(child) &&\n (child.type === Badge ||\n child.type === UIBadge ||\n child.props[\"data-slot\"] === \"badge\")\n );\n}\n\n// Drives the sliding active indicator for both variants: measures the active\n// trigger's box (relative to the list) and writes it to CSS vars, which the\n// list's indicator pseudo-element reads and transitions. Line variant renders\n// an ::after underline (uses x/w or y/h); default variant renders a ::before\n// pill behind the triggers (uses the full x/y/w/h box). Re-measures when Radix\n// flips data-state on tab change and whenever sizes shift (font load, container\n// resize, badge counts).\nfunction useTabIndicator() {\n const ref = React.useRef<HTMLDivElement>(null);\n\n React.useLayoutEffect(() => {\n const list = ref.current;\n if (!list) return;\n\n const measure = () => {\n const active = list.querySelector<HTMLElement>(\n '[data-slot=\"tabs-trigger\"][data-state=\"active\"]',\n );\n if (!active) {\n list.style.setProperty(\"--tab-w\", \"0px\");\n list.style.setProperty(\"--tab-h\", \"0px\");\n return;\n }\n const listRect = list.getBoundingClientRect();\n const rect = active.getBoundingClientRect();\n // Snap every edge to the pixel grid. The indicator is positioned off\n // these vars; unlike the flow-laid triggers (which the browser snaps), a\n // fractional offset renders the 1px tactile rings/lips blurry — the\n // \"transparent ring\" artifact. Rounding both edges keeps width/height\n // consistent with the snapped origin.\n const left = Math.round(rect.left - listRect.left);\n const top = Math.round(rect.top - listRect.top);\n list.style.setProperty(\"--tab-x\", `${left}px`);\n list.style.setProperty(\"--tab-y\", `${top}px`);\n list.style.setProperty(\"--tab-w\", `${Math.round(rect.right - listRect.left) - left}px`);\n list.style.setProperty(\"--tab-h\", `${Math.round(rect.bottom - listRect.top) - top}px`);\n };\n\n measure();\n // Enable the transition only after the first placement so the indicator\n // doesn't slide in from the list's edge on mount.\n const raf = requestAnimationFrame(() => {\n list.dataset.tabIndicator = \"ready\";\n });\n\n const mo = new MutationObserver(measure);\n mo.observe(list, {\n attributes: true,\n attributeFilter: [\"data-state\"],\n childList: true,\n subtree: true,\n });\n const ro = new ResizeObserver(measure);\n ro.observe(list);\n list\n .querySelectorAll('[data-slot=\"tabs-trigger\"]')\n .forEach((trigger) => ro.observe(trigger));\n\n return () => {\n cancelAnimationFrame(raf);\n mo.disconnect();\n ro.disconnect();\n delete list.dataset.tabIndicator;\n };\n }, []);\n\n return ref;\n}\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof UITabsList>) {\n const ref = useTabIndicator();\n return (\n <UITabsList\n ref={ref}\n variant={variant}\n className={cn(\n variant === \"default\" && [\n \"relative\",\n // Sliding active \"pill\": a single ::before that paints behind the\n // (relatively-positioned) triggers and matches the active trigger's\n // box from the measured vars. Surface = the Tailwind `--shadow-sm`\n // theme var (soft drop, no 0 0 0 1px ring — present in every style\n // mode so the pill always reads as raised; referencing the var instead\n // of inlining shadow-sm's literal, since the `shadow-sm` *utility*\n // can't coexist with an arbitrary shadow on the same element) composed\n // inline with the tactile inset lips (--surface-inset-neutral-sm). We\n // reference the inset role directly\n // rather than the composed --surface-shadow-neutral-sm so the pill\n // does NOT stack --elevation-1 on top of its own soft drop when\n // data-elevation is on; inlined together because two shadow utilities\n // can't coexist.\n // No bg-clip-padding/border, so the fill reaches the box edge with no\n // track gap. Positioned with left/top/width/height so it pixel-snaps.\n \"before:pointer-events-none before:absolute\",\n \"before:left-[var(--tab-x,0px)] before:top-[var(--tab-y,0px)] before:w-[var(--tab-w,0px)] before:h-[var(--tab-h,0px)]\",\n \"before:rounded-md before:bg-background before:bg-[image:var(--surface-filled-neutral-overlay)] before:shadow-[var(--shadow-sm),var(--surface-inset-neutral-sm)]\",\n \"dark:before:bg-input/30\",\n \"data-[tab-indicator=ready]:before:transition-[left,top,width,height] data-[tab-indicator=ready]:before:duration-200 data-[tab-indicator=ready]:before:ease-out\",\n ],\n variant === \"line\" && [\n // Line variant owns its baseline: a full-bleed bottom border (right\n // border when vertical) that spans the whole row, with the tabs\n // sitting flush against it.\n \"relative w-auto justify-start gap-0 p-0\",\n \"group-data-[orientation=horizontal]/tabs:h-auto group-data-[orientation=horizontal]/tabs:border-b\",\n \"group-data-[orientation=vertical]/tabs:w-fit group-data-[orientation=vertical]/tabs:border-r\",\n // A single indicator (the list's ::after) slides and resizes between\n // tabs from the measured CSS vars above, painting over the hairline so\n // the two read as one connected line.\n \"after:pointer-events-none after:absolute after:bg-foreground\",\n \"group-data-[orientation=horizontal]/tabs:after:bottom-[-1px] group-data-[orientation=horizontal]/tabs:after:left-[var(--tab-x,0px)] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=horizontal]/tabs:after:w-[var(--tab-w,0px)]\",\n \"group-data-[orientation=vertical]/tabs:after:right-[-1px] group-data-[orientation=vertical]/tabs:after:top-[var(--tab-y,0px)] group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[orientation=vertical]/tabs:after:h-[var(--tab-h,0px)]\",\n \"data-[tab-indicator=ready]:after:transition-[left,top,width,height] data-[tab-indicator=ready]:after:duration-200 data-[tab-indicator=ready]:after:ease-out\",\n ],\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof UITabsTrigger>) {\n const triggerChildren = React.Children.map(children, (child) => {\n if (!isBadgeElement(child)) {\n return child;\n }\n\n const badgeText = getNodeText(child.props.children).trim();\n\n if (!/^\\d{1,2}$/.test(badgeText)) {\n return child;\n }\n\n return React.cloneElement(child, {\n \"data-tab-badge-shape\": \"square\",\n });\n });\n\n return (\n <UITabsTrigger\n className={cn(\n // Default variant: the active surface is now a single sliding pill on\n // the TabsList (::before), so suppress the per-trigger active background,\n // shadow and dark border that shadcn/ui sets — keep only the active text\n // color (from the ui base).\n \"group-data-[variant=default]/tabs-list:data-[state=active]:bg-transparent group-data-[variant=default]/tabs-list:data-[state=active]:shadow-none dark:group-data-[variant=default]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=default]/tabs-list:data-[state=active]:border-transparent\",\n // Badge sizing/spacing inside triggers.\n \"has-[>[data-slot=badge]]:pr-1 [&>[data-slot=badge]]:shrink-0 [&>[data-slot=badge]]:justify-center [&>[data-slot=badge][data-tab-badge-shape=square]]:size-5 [&>[data-slot=badge][data-tab-badge-shape=square]]:min-w-0 [&>[data-slot=badge][data-tab-badge-shape=square]]:px-0\",\n // Line variant: comfortable padding drives the height and tabs hug their\n // label (no flex-1 stretch) so they pack left. The active indicator is\n // not per-trigger here — it's a single sliding bar on the TabsList (see\n // useTabIndicator) — so the trigger's own ::after is suppressed.\n \"group-data-[variant=line]/tabs-list:h-auto group-data-[variant=line]/tabs-list:flex-none group-data-[variant=line]/tabs-list:py-2.5 group-data-[variant=line]/tabs-list:after:hidden\",\n className,\n )}\n {...props}\n >\n {triggerChildren}\n </UITabsTrigger>\n );\n}\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger, tabsListVariants };\n\n"],"names":["getNodeText","node","React","isBadgeElement","child","Badge","UIBadge","useTabIndicator","ref","list","measure","active","listRect","rect","left","top","raf","mo","ro","trigger","TabsList","className","variant","props","jsx","UITabsList","cn","TabsTrigger","children","triggerChildren","badgeText","UITabsTrigger"],"mappings":";;;;;;;;AAaA,SAASA,EAAYC,GAA+B;AAClD,SAAI,OAAOA,KAAS,YAAY,OAAOA,KAAS,WACvC,OAAOA,CAAI,IAGhB,MAAM,QAAQA,CAAI,IACbA,EAAK,IAAID,CAAW,EAAE,KAAK,EAAE,IAGlCE,EAAM,eAA+CD,CAAI,IACpDD,EAAYC,EAAK,MAAM,QAAQ,IAGjC;AACT;AAEA,SAASE,EAAeC,GAGrB;AACD,SACEF,EAAM,eAGHE,CAAK,MACPA,EAAM,SAASC,KACdD,EAAM,SAASE,KACfF,EAAM,MAAM,WAAW,MAAM;AAEnC;AASA,SAASG,IAAkB;AACzB,QAAMC,IAAMN,EAAM,OAAuB,IAAI;AAE7C,SAAAA,EAAM,gBAAgB,MAAM;AAC1B,UAAMO,IAAOD,EAAI;AACjB,QAAI,CAACC,EAAM;AAEX,UAAMC,IAAU,MAAM;AACpB,YAAMC,IAASF,EAAK;AAAA,QAClB;AAAA,MAAA;AAEF,UAAI,CAACE,GAAQ;AACX,QAAAF,EAAK,MAAM,YAAY,WAAW,KAAK,GACvCA,EAAK,MAAM,YAAY,WAAW,KAAK;AACvC;AAAA,MACF;AACA,YAAMG,IAAWH,EAAK,sBAAA,GAChBI,IAAOF,EAAO,sBAAA,GAMdG,IAAO,KAAK,MAAMD,EAAK,OAAOD,EAAS,IAAI,GAC3CG,IAAM,KAAK,MAAMF,EAAK,MAAMD,EAAS,GAAG;AAC9C,MAAAH,EAAK,MAAM,YAAY,WAAW,GAAGK,CAAI,IAAI,GAC7CL,EAAK,MAAM,YAAY,WAAW,GAAGM,CAAG,IAAI,GAC5CN,EAAK,MAAM,YAAY,WAAW,GAAG,KAAK,MAAMI,EAAK,QAAQD,EAAS,IAAI,IAAIE,CAAI,IAAI,GACtFL,EAAK,MAAM,YAAY,WAAW,GAAG,KAAK,MAAMI,EAAK,SAASD,EAAS,GAAG,IAAIG,CAAG,IAAI;AAAA,IACvF;AAEA,IAAAL,EAAA;AAGA,UAAMM,IAAM,sBAAsB,MAAM;AACtC,MAAAP,EAAK,QAAQ,eAAe;AAAA,IAC9B,CAAC,GAEKQ,IAAK,IAAI,iBAAiBP,CAAO;AACvC,IAAAO,EAAG,QAAQR,GAAM;AAAA,MACf,YAAY;AAAA,MACZ,iBAAiB,CAAC,YAAY;AAAA,MAC9B,WAAW;AAAA,MACX,SAAS;AAAA,IAAA,CACV;AACD,UAAMS,IAAK,IAAI,eAAeR,CAAO;AACrC,WAAAQ,EAAG,QAAQT,CAAI,GACfA,EACG,iBAAiB,4BAA4B,EAC7C,QAAQ,CAACU,MAAYD,EAAG,QAAQC,CAAO,CAAC,GAEpC,MAAM;AACX,2BAAqBH,CAAG,GACxBC,EAAG,WAAA,GACHC,EAAG,WAAA,GACH,OAAOT,EAAK,QAAQ;AAAA,IACtB;AAAA,EACF,GAAG,CAAA,CAAE,GAEED;AACT;AAEA,SAASY,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAA4C;AAC1C,QAAMf,IAAMD,EAAA;AACZ,SACE,gBAAAiB;AAAA,IAACC;AAAAA,IAAA;AAAA,MACC,KAAAjB;AAAA,MACA,SAAAc;AAAA,MACA,WAAWI;AAAA,QACTJ,MAAY,aAAa;AAAA,UACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAgBA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEFA,MAAY,UAAU;AAAA;AAAA;AAAA;AAAA,UAIpB;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA;AAAA,UAIA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEFD;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAY;AAAA,EACnB,WAAAN;AAAA,EACA,UAAAO;AAAA,EACA,GAAGL;AACL,GAA+C;AAC7C,QAAMM,IAAkB3B,EAAM,SAAS,IAAI0B,GAAU,CAACxB,MAAU;AAC9D,QAAI,CAACD,EAAeC,CAAK;AACvB,aAAOA;AAGT,UAAM0B,IAAY9B,EAAYI,EAAM,MAAM,QAAQ,EAAE,KAAA;AAEpD,WAAK,YAAY,KAAK0B,CAAS,IAIxB5B,EAAM,aAAaE,GAAO;AAAA,MAC/B,wBAAwB;AAAA,IAAA,CACzB,IALQA;AAAA,EAMX,CAAC;AAED,SACE,gBAAAoB;AAAA,IAACO;AAAAA,IAAA;AAAA,MACC,WAAWL;AAAA;AAAA;AAAA;AAAA;AAAA,QAKT;AAAA;AAAA,QAEA;AAAA;AAAA;AAAA;AAAA;AAAA,QAKA;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAM;AAAA,IAAA;AAAA,EAAA;AAGP;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
declare const tagVariants: (props?: ({
|
|
4
|
+
color?: "gray" | "primary" | "decorative-1" | "decorative-2" | "decorative-3" | "decorative-4" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | null | undefined;
|
|
6
|
+
} & import('class-variance-authority/types').ClassProp) | undefined) => string;
|
|
7
|
+
type TagColor = NonNullable<VariantProps<typeof tagVariants>["color"]>;
|
|
8
|
+
type TagSize = NonNullable<VariantProps<typeof tagVariants>["size"]>;
|
|
9
|
+
type TagProps = React.ComponentProps<"span"> & VariantProps<typeof tagVariants> & {
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
onDismiss?: () => void;
|
|
12
|
+
dismissLabel?: string;
|
|
13
|
+
};
|
|
14
|
+
declare function Tag({ className, color, size, asChild, onDismiss, dismissLabel, children, ...props }: TagProps): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export { Tag, tagVariants };
|
|
16
|
+
export type { TagColor, TagProps, TagSize };
|
|
17
|
+
//# sourceMappingURL=tag.d.ts.map
|