@burtson-labs/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.
Files changed (95) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +102 -0
  3. package/THIRD_PARTY_NOTICES.md +34 -0
  4. package/dist/components/accordion.d.ts +7 -0
  5. package/dist/components/accordion.js +48 -0
  6. package/dist/components/accordion.js.map +1 -0
  7. package/dist/components/alert.d.ts +9 -0
  8. package/dist/components/alert.js +41 -0
  9. package/dist/components/alert.js.map +1 -0
  10. package/dist/components/avatar.d.ts +6 -0
  11. package/dist/components/avatar.js +30 -0
  12. package/dist/components/avatar.js.map +1 -0
  13. package/dist/components/badge.d.ts +10 -0
  14. package/dist/components/badge.js +30 -0
  15. package/dist/components/badge.js.map +1 -0
  16. package/dist/components/button.d.ts +12 -0
  17. package/dist/components/button.js +46 -0
  18. package/dist/components/button.js.map +1 -0
  19. package/dist/components/card.d.ts +9 -0
  20. package/dist/components/card.js +57 -0
  21. package/dist/components/card.js.map +1 -0
  22. package/dist/components/checkbox.d.ts +4 -0
  23. package/dist/components/checkbox.js +26 -0
  24. package/dist/components/checkbox.js.map +1 -0
  25. package/dist/components/dialog.d.ts +15 -0
  26. package/dist/components/dialog.js +84 -0
  27. package/dist/components/dialog.js.map +1 -0
  28. package/dist/components/dropdown-menu.d.ts +24 -0
  29. package/dist/components/dropdown-menu.js +127 -0
  30. package/dist/components/dropdown-menu.js.map +1 -0
  31. package/dist/components/input.d.ts +5 -0
  32. package/dist/components/input.js +18 -0
  33. package/dist/components/input.js.map +1 -0
  34. package/dist/components/kbd.d.ts +4 -0
  35. package/dist/components/kbd.js +22 -0
  36. package/dist/components/kbd.js.map +1 -0
  37. package/dist/components/label.d.ts +4 -0
  38. package/dist/components/label.js +16 -0
  39. package/dist/components/label.js.map +1 -0
  40. package/dist/components/popover.d.ts +9 -0
  41. package/dist/components/popover.js +38 -0
  42. package/dist/components/popover.js.map +1 -0
  43. package/dist/components/progress.d.ts +4 -0
  44. package/dist/components/progress.js +22 -0
  45. package/dist/components/progress.js.map +1 -0
  46. package/dist/components/radio-group.d.ts +5 -0
  47. package/dist/components/radio-group.js +28 -0
  48. package/dist/components/radio-group.js.map +1 -0
  49. package/dist/components/scroll-area.d.ts +5 -0
  50. package/dist/components/scroll-area.js +37 -0
  51. package/dist/components/scroll-area.js.map +1 -0
  52. package/dist/components/select.d.ts +13 -0
  53. package/dist/components/select.js +103 -0
  54. package/dist/components/select.js.map +1 -0
  55. package/dist/components/separator.d.ts +4 -0
  56. package/dist/components/separator.js +18 -0
  57. package/dist/components/separator.js.map +1 -0
  58. package/dist/components/sheet.d.ts +17 -0
  59. package/dist/components/sheet.js +77 -0
  60. package/dist/components/sheet.js.map +1 -0
  61. package/dist/components/skeleton.d.ts +3 -0
  62. package/dist/components/skeleton.js +16 -0
  63. package/dist/components/skeleton.js.map +1 -0
  64. package/dist/components/spinner.d.ts +6 -0
  65. package/dist/components/spinner.js +18 -0
  66. package/dist/components/spinner.js.map +1 -0
  67. package/dist/components/switch.d.ts +4 -0
  68. package/dist/components/switch.js +20 -0
  69. package/dist/components/switch.js.map +1 -0
  70. package/dist/components/table.d.ts +10 -0
  71. package/dist/components/table.js +68 -0
  72. package/dist/components/table.js.map +1 -0
  73. package/dist/components/tabs.d.ts +7 -0
  74. package/dist/components/tabs.js +37 -0
  75. package/dist/components/tabs.js.map +1 -0
  76. package/dist/components/textarea.d.ts +3 -0
  77. package/dist/components/textarea.js +16 -0
  78. package/dist/components/textarea.js.map +1 -0
  79. package/dist/components/tooltip.d.ts +8 -0
  80. package/dist/components/tooltip.js +38 -0
  81. package/dist/components/tooltip.js.map +1 -0
  82. package/dist/index.d.ts +28 -0
  83. package/dist/index.js +29 -0
  84. package/dist/lib/utils.d.ts +3 -0
  85. package/dist/lib/utils.js +11 -0
  86. package/dist/lib/utils.js.map +1 -0
  87. package/dist/mui/index.d.ts +13 -0
  88. package/dist/mui/index.js +82 -0
  89. package/dist/mui/index.js.map +1 -0
  90. package/dist/styles.css +2 -0
  91. package/dist/theme.css +170 -0
  92. package/dist/tokens.d.ts +28 -0
  93. package/dist/tokens.js +73 -0
  94. package/dist/tokens.js.map +1 -0
  95. package/package.json +122 -0
@@ -0,0 +1,103 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { surfaceClasses } from "./popover.js";
3
+ import { fieldClasses } from "./input.js";
4
+ import ChevronDown from "@burtson-labs/icons/react/chevron-down";
5
+ import { Select } from "radix-ui";
6
+ import "react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import Check from "@burtson-labs/icons/react/check";
9
+ import ChevronUp from "@burtson-labs/icons/react/chevron-up";
10
+ //#region src/components/select.tsx
11
+ function Select$1(props) {
12
+ return /* @__PURE__ */ jsx(Select.Root, {
13
+ "data-slot": "select",
14
+ ...props
15
+ });
16
+ }
17
+ function SelectGroup(props) {
18
+ return /* @__PURE__ */ jsx(Select.Group, {
19
+ "data-slot": "select-group",
20
+ ...props
21
+ });
22
+ }
23
+ function SelectValue(props) {
24
+ return /* @__PURE__ */ jsx(Select.Value, {
25
+ "data-slot": "select-value",
26
+ ...props
27
+ });
28
+ }
29
+ function SelectTrigger({ className, size = "default", children, ...props }) {
30
+ return /* @__PURE__ */ jsxs(Select.Trigger, {
31
+ "data-slot": "select-trigger",
32
+ "data-size": size,
33
+ className: cn(fieldClasses, "flex w-fit items-center justify-between gap-2 py-2 whitespace-nowrap data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
34
+ ...props,
35
+ children: [children, /* @__PURE__ */ jsx(Select.Icon, {
36
+ asChild: true,
37
+ children: /* @__PURE__ */ jsx(ChevronDown, {
38
+ className: "size-4 opacity-60",
39
+ "aria-hidden": true
40
+ })
41
+ })]
42
+ });
43
+ }
44
+ function SelectContent({ className, children, position = "popper", ...props }) {
45
+ return /* @__PURE__ */ jsx(Select.Portal, { children: /* @__PURE__ */ jsxs(Select.Content, {
46
+ "data-slot": "select-content",
47
+ className: cn(surfaceClasses, "relative max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
48
+ position,
49
+ ...props,
50
+ children: [
51
+ /* @__PURE__ */ jsx(Select.ScrollUpButton, {
52
+ className: "flex cursor-default items-center justify-center py-1",
53
+ children: /* @__PURE__ */ jsx(ChevronUp, {
54
+ className: "size-4",
55
+ "aria-hidden": true
56
+ })
57
+ }),
58
+ /* @__PURE__ */ jsx(Select.Viewport, {
59
+ className: cn("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
60
+ children
61
+ }),
62
+ /* @__PURE__ */ jsx(Select.ScrollDownButton, {
63
+ className: "flex cursor-default items-center justify-center py-1",
64
+ children: /* @__PURE__ */ jsx(ChevronDown, {
65
+ className: "size-4",
66
+ "aria-hidden": true
67
+ })
68
+ })
69
+ ]
70
+ }) });
71
+ }
72
+ function SelectLabel({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx(Select.Label, {
74
+ "data-slot": "select-label",
75
+ className: cn("px-2 py-1.5 text-xs text-muted-foreground", className),
76
+ ...props
77
+ });
78
+ }
79
+ function SelectItem({ className, children, ...props }) {
80
+ return /* @__PURE__ */ jsxs(Select.Item, {
81
+ "data-slot": "select-item",
82
+ className: cn("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
83
+ ...props,
84
+ children: [/* @__PURE__ */ jsx("span", {
85
+ className: "absolute right-2 flex size-3.5 items-center justify-center",
86
+ children: /* @__PURE__ */ jsx(Select.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, {
87
+ className: "size-4",
88
+ "aria-hidden": true
89
+ }) })
90
+ }), /* @__PURE__ */ jsx(Select.ItemText, { children })]
91
+ });
92
+ }
93
+ function SelectSeparator({ className, ...props }) {
94
+ return /* @__PURE__ */ jsx(Select.Separator, {
95
+ "data-slot": "select-separator",
96
+ className: cn("pointer-events-none -mx-1 my-1 h-px bg-border", className),
97
+ ...props
98
+ });
99
+ }
100
+ //#endregion
101
+ export { Select$1 as Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue };
102
+
103
+ //# sourceMappingURL=select.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.js","names":["Select","SelectPrimitive"],"sources":["../../src/components/select.tsx"],"sourcesContent":["import Check from '@burtson-labs/icons/react/check';\nimport ChevronDown from '@burtson-labs/icons/react/chevron-down';\nimport ChevronUp from '@burtson-labs/icons/react/chevron-up';\nimport { Select as SelectPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nimport { fieldClasses } from './input';\nimport { surfaceClasses } from './popover';\n\nfunction Select(props: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />;\n}\n\nfunction SelectGroup(props: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />;\n}\n\nfunction SelectValue(props: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />;\n}\n\nfunction SelectTrigger({\n className,\n size = 'default',\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & { size?: 'sm' | 'default' }) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n fieldClasses,\n \"flex w-fit items-center justify-between gap-2 py-2 whitespace-nowrap data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"size-4 opacity-60\" aria-hidden />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n );\n}\n\nfunction SelectContent({\n className,\n children,\n position = 'popper',\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n surfaceClasses,\n 'relative max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto',\n position === 'popper' &&\n 'data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1',\n className,\n )}\n position={position}\n {...props}\n >\n <SelectPrimitive.ScrollUpButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronUp className=\"size-4\" aria-hidden />\n </SelectPrimitive.ScrollUpButton>\n <SelectPrimitive.Viewport\n className={cn(\n 'p-1',\n position === 'popper' &&\n 'h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1',\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectPrimitive.ScrollDownButton className=\"flex cursor-default items-center justify-center py-1\">\n <ChevronDown className=\"size-4\" aria-hidden />\n </SelectPrimitive.ScrollDownButton>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n );\n}\n\nfunction SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn('px-2 py-1.5 text-xs text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"size-4\" aria-hidden />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n );\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn('pointer-events-none -mx-1 my-1 h-px bg-border', className)}\n {...props}\n />\n );\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n};\n"],"mappings":";;;;;;;;;;AAWA,SAASA,SAAO,OAA0D;CACxE,OAAO,oBAACC,OAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;CAAQ,CAAA;AAC9D;AAEA,SAAS,YAAY,OAA2D;CAC9E,OAAO,oBAACA,OAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,YAAY,OAA2D;CAC9E,OAAO,oBAACA,OAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,cAAc,EACrB,WACA,OAAO,WACP,UACA,GAAG,SACkF;CACrF,OACE,qBAACA,OAAgB,SAAjB;EACE,aAAU;EACV,aAAW;EACX,WAAW,GACT,cACA,+XACA,SACF;EACA,GAAI;EARN,UAAA,CAUG,UACD,oBAACA,OAAgB,MAAjB;GAAsB,SAAA;GACpB,UAAA,oBAAC,aAAD;IAAa,WAAU;IAAoB,eAAA;GAAa,CAAA;EACpC,CAAA,CACC;;AAE7B;AAEA,SAAS,cAAc,EACrB,WACA,UACA,WAAW,UACX,GAAG,SACoD;CACvD,OACE,oBAACA,OAAgB,QAAjB,EAAA,UACE,qBAACA,OAAgB,SAAjB;EACE,aAAU;EACV,WAAW,GACT,gBACA,4JACA,aAAa,YACX,mIACF,SACF;EACU;EACV,GAAI;EAVN,UAAA;GAYE,oBAACA,OAAgB,gBAAjB;IAAgC,WAAU;IACxC,UAAA,oBAAC,WAAD;KAAW,WAAU;KAAS,eAAA;IAAa,CAAA;GACb,CAAA;GAChC,oBAACA,OAAgB,UAAjB;IACE,WAAW,GACT,OACA,aAAa,YACX,2FACJ;IAEC;GACuB,CAAA;GAC1B,oBAACA,OAAgB,kBAAjB;IAAkC,WAAU;IAC1C,UAAA,oBAAC,aAAD;KAAa,WAAU;KAAS,eAAA;IAAa,CAAA;GACb,CAAA;EACX;CACH,CAAA,EAAA,CAAA;AAE5B;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,OACE,oBAACA,OAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,6CAA6C,SAAS;EACpE,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAClB,WACA,UACA,GAAG,SACiD;CACpD,OACE,qBAACA,OAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,uTACA,SACF;EACA,GAAI;EANN,UAAA,CAQE,oBAAC,QAAD;GAAM,WAAU;GACd,UAAA,oBAACA,OAAgB,eAAjB,EAAA,UACE,oBAAC,OAAD;IAAO,WAAU;IAAS,eAAA;GAAa,CAAA,EACV,CAAA;EAC3B,CAAA,GACN,oBAACA,OAAgB,UAAjB,EAA2B,SAAmC,CAAA,CAC1C;;AAE1B;AAEA,SAAS,gBAAgB,EACvB,WACA,GAAG,SACsD;CACzD,OACE,oBAACA,OAAgB,WAAjB;EACE,aAAU;EACV,WAAW,GAAG,iDAAiD,SAAS;EACxE,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,4 @@
1
+ import { Separator as SeparatorPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Separator({ className, orientation, decorative, ...props }: React.ComponentProps<typeof SeparatorPrimitive.Root>): React.JSX.Element;
4
+ export { Separator };
@@ -0,0 +1,18 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { Separator } from "radix-ui";
3
+ import "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/separator.tsx
6
+ function Separator$1({ className, orientation = "horizontal", decorative = true, ...props }) {
7
+ return /* @__PURE__ */ jsx(Separator.Root, {
8
+ "data-slot": "separator",
9
+ decorative,
10
+ orientation,
11
+ className: cn("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className),
12
+ ...props
13
+ });
14
+ }
15
+ //#endregion
16
+ export { Separator$1 as Separator };
17
+
18
+ //# sourceMappingURL=separator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.js","names":["Separator","SeparatorPrimitive"],"sources":["../../src/components/separator.tsx"],"sourcesContent":["import { Separator as SeparatorPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Separator({\n className,\n orientation = 'horizontal',\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n 'shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px',\n className,\n )}\n {...props}\n />\n );\n}\n\nexport { Separator };\n"],"mappings":";;;;;AAKA,SAASA,YAAU,EACjB,WACA,cAAc,cACd,aAAa,MACb,GAAG,SACoD;CACvD,OACE,oBAACC,UAAmB,MAApB;EACE,aAAU;EACE;EACC;EACb,WAAW,GACT,kKACA,SACF;EACA,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,17 @@
1
+ import { Dialog as SheetPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Sheet(props: React.ComponentProps<typeof SheetPrimitive.Root>): React.JSX.Element;
4
+ declare function SheetTrigger(props: React.ComponentProps<typeof SheetPrimitive.Trigger>): React.JSX.Element;
5
+ declare function SheetClose(props: React.ComponentProps<typeof SheetPrimitive.Close>): React.JSX.Element;
6
+ declare const sideClasses: {
7
+ readonly right: "inset-y-0 right-0 h-full w-3/4 border-l [--bl-sheet-from:100%] sm:max-w-sm";
8
+ readonly left: "inset-y-0 left-0 h-full w-3/4 border-r [--bl-sheet-from:-100%] sm:max-w-sm";
9
+ };
10
+ declare function SheetContent({ className, children, side, ...props }: React.ComponentProps<typeof SheetPrimitive.Content> & {
11
+ side?: keyof typeof sideClasses;
12
+ }): React.JSX.Element;
13
+ declare function SheetHeader({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
14
+ declare function SheetFooter({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
15
+ declare function SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>): React.JSX.Element;
16
+ declare function SheetDescription({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Description>): React.JSX.Element;
17
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, };
@@ -0,0 +1,77 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { Dialog } from "radix-ui";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import X from "@burtson-labs/icons/react/x";
6
+ //#region src/components/sheet.tsx
7
+ function Sheet(props) {
8
+ return /* @__PURE__ */ jsx(Dialog.Root, {
9
+ "data-slot": "sheet",
10
+ ...props
11
+ });
12
+ }
13
+ function SheetTrigger(props) {
14
+ return /* @__PURE__ */ jsx(Dialog.Trigger, {
15
+ "data-slot": "sheet-trigger",
16
+ ...props
17
+ });
18
+ }
19
+ function SheetClose(props) {
20
+ return /* @__PURE__ */ jsx(Dialog.Close, {
21
+ "data-slot": "sheet-close",
22
+ ...props
23
+ });
24
+ }
25
+ var sideClasses = {
26
+ right: "inset-y-0 right-0 h-full w-3/4 border-l [--bl-sheet-from:100%] sm:max-w-sm",
27
+ left: "inset-y-0 left-0 h-full w-3/4 border-r [--bl-sheet-from:-100%] sm:max-w-sm"
28
+ };
29
+ function SheetContent({ className, children, side = "right", ...props }) {
30
+ return /* @__PURE__ */ jsxs(Dialog.Portal, { children: [/* @__PURE__ */ jsx(Dialog.Overlay, {
31
+ "data-slot": "sheet-overlay",
32
+ className: "fixed inset-0 z-50 bg-black/60 data-[state=closed]:animate-out data-[state=open]:animate-in"
33
+ }), /* @__PURE__ */ jsxs(Dialog.Content, {
34
+ "data-slot": "sheet-content",
35
+ className: cn("fixed z-50 flex flex-col gap-4 bg-background shadow-2xl outline-none data-[state=closed]:animate-sheet-out data-[state=open]:animate-sheet-in", sideClasses[side], className),
36
+ ...props,
37
+ children: [children, /* @__PURE__ */ jsxs(Dialog.Close, {
38
+ className: "absolute top-4 right-4 rounded-sm opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 [&_svg]:size-4",
39
+ children: [/* @__PURE__ */ jsx(X, { "aria-hidden": true }), /* @__PURE__ */ jsx("span", {
40
+ className: "sr-only",
41
+ children: "Close"
42
+ })]
43
+ })]
44
+ })] });
45
+ }
46
+ function SheetHeader({ className, ...props }) {
47
+ return /* @__PURE__ */ jsx("div", {
48
+ "data-slot": "sheet-header",
49
+ className: cn("flex flex-col gap-1.5 p-4", className),
50
+ ...props
51
+ });
52
+ }
53
+ function SheetFooter({ className, ...props }) {
54
+ return /* @__PURE__ */ jsx("div", {
55
+ "data-slot": "sheet-footer",
56
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
57
+ ...props
58
+ });
59
+ }
60
+ function SheetTitle({ className, ...props }) {
61
+ return /* @__PURE__ */ jsx(Dialog.Title, {
62
+ "data-slot": "sheet-title",
63
+ className: cn("font-semibold text-foreground", className),
64
+ ...props
65
+ });
66
+ }
67
+ function SheetDescription({ className, ...props }) {
68
+ return /* @__PURE__ */ jsx(Dialog.Description, {
69
+ "data-slot": "sheet-description",
70
+ className: cn("text-sm text-muted-foreground", className),
71
+ ...props
72
+ });
73
+ }
74
+ //#endregion
75
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
76
+
77
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.js","names":["SheetPrimitive"],"sources":["../../src/components/sheet.tsx"],"sourcesContent":["import X from '@burtson-labs/icons/react/x';\nimport { Dialog as SheetPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Sheet(props: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger(props: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose(props: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nconst sideClasses = {\n right: 'inset-y-0 right-0 h-full w-3/4 border-l [--bl-sheet-from:100%] sm:max-w-sm',\n left: 'inset-y-0 left-0 h-full w-3/4 border-r [--bl-sheet-from:-100%] sm:max-w-sm',\n} as const;\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & { side?: keyof typeof sideClasses }) {\n return (\n <SheetPrimitive.Portal>\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className=\"fixed inset-0 z-50 bg-black/60 data-[state=closed]:animate-out data-[state=open]:animate-in\"\n />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'fixed z-50 flex flex-col gap-4 bg-background shadow-2xl outline-none data-[state=closed]:animate-sheet-out data-[state=open]:animate-sheet-in',\n sideClasses[side],\n className,\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"absolute top-4 right-4 rounded-sm opacity-70 transition-opacity outline-none hover:opacity-100 focus-visible:ring-[3px] focus-visible:ring-ring/50 [&_svg]:size-4\">\n <X aria-hidden />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPrimitive.Portal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({ className, ...props }: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('font-semibold text-foreground', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n};\n"],"mappings":";;;;;;AAMA,SAAS,MAAM,OAAyD;CACtE,OAAO,oBAACA,OAAe,MAAhB;EAAqB,aAAU;EAAQ,GAAI;CAAQ,CAAA;AAC5D;AAEA,SAAS,aAAa,OAA4D;CAChF,OAAO,oBAACA,OAAe,SAAhB;EAAwB,aAAU;EAAgB,GAAI;CAAQ,CAAA;AACvE;AAEA,SAAS,WAAW,OAA0D;CAC5E,OAAO,oBAACA,OAAe,OAAhB;EAAsB,aAAU;EAAc,GAAI;CAAQ,CAAA;AACnE;AAEA,IAAM,cAAc;CAClB,OAAO;CACP,MAAM;AACR;AAEA,SAAS,aAAa,EACpB,WACA,UACA,OAAO,SACP,GAAG,SACyF;CAC5F,OACE,qBAACA,OAAe,QAAhB,EAAA,UAAA,CACE,oBAACA,OAAe,SAAhB;EACE,aAAU;EACV,WAAU;CACX,CAAA,GACD,qBAACA,OAAe,SAAhB;EACE,aAAU;EACV,WAAW,GACT,iJACA,YAAY,OACZ,SACF;EACA,GAAI;EAPN,UAAA,CASG,UACD,qBAACA,OAAe,OAAhB;GAAsB,WAAU;GAAhC,UAAA,CACE,oBAAC,GAAD,EAAG,eAAA,KAAa,CAAA,GAChB,oBAAC,QAAD;IAAM,WAAU;IAAU,UAAA;GAAW,CAAA,CACjB;EACA,CAAA,CAAA;CACH,CAAA,CAAA,EAAA,CAAA;AAE3B;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,6BAA6B,SAAS;EACpD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;CACzE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,mCAAmC,SAAS;EAC1D,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,WAAW,EAAE,WAAW,GAAG,SAA4D;CAC9F,OACE,oBAACA,OAAe,OAAhB;EACE,aAAU;EACV,WAAW,GAAG,iCAAiC,SAAS;EACxD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;CAC1D,OACE,oBAACA,OAAe,aAAhB;EACE,aAAU;EACV,WAAW,GAAG,iCAAiC,SAAS;EACxD,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare function Skeleton({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
3
+ export { Skeleton };
@@ -0,0 +1,16 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/skeleton.tsx
5
+ function Skeleton({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-slot": "skeleton",
8
+ "aria-hidden": true,
9
+ className: cn("animate-pulse rounded-md bg-muted", className),
10
+ ...props
11
+ });
12
+ }
13
+ //#endregion
14
+ export { Skeleton };
15
+
16
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","names":[],"sources":["../../src/components/skeleton.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n aria-hidden\n className={cn('animate-pulse rounded-md bg-muted', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":";;;;AAIA,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;CACtE,OACE,oBAAC,OAAD;EACE,aAAU;EACV,eAAA;EACA,WAAW,GAAG,qCAAqC,SAAS;EAC5D,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,6 @@
1
+ import Loader from '@burtson-labs/icons/react/loader';
2
+ import * as React from 'react';
3
+ declare function Spinner({ className, label, ...props }: React.ComponentProps<typeof Loader> & {
4
+ label?: string;
5
+ }): React.JSX.Element;
6
+ export { Spinner };
@@ -0,0 +1,18 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import Loader from "@burtson-labs/icons/react/loader";
5
+ //#region src/components/spinner.tsx
6
+ function Spinner({ className, label = "Loading", ...props }) {
7
+ return /* @__PURE__ */ jsx(Loader, {
8
+ role: "status",
9
+ "aria-label": label,
10
+ "data-slot": "spinner",
11
+ className: cn("size-4 animate-spin", className),
12
+ ...props
13
+ });
14
+ }
15
+ //#endregion
16
+ export { Spinner };
17
+
18
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","names":[],"sources":["../../src/components/spinner.tsx"],"sourcesContent":["import Loader from '@burtson-labs/icons/react/loader';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Spinner({\n className,\n label = 'Loading',\n ...props\n}: React.ComponentProps<typeof Loader> & { label?: string }) {\n return (\n <Loader\n role=\"status\"\n aria-label={label}\n data-slot=\"spinner\"\n className={cn('size-4 animate-spin', className)}\n {...props}\n />\n );\n}\n\nexport { Spinner };\n"],"mappings":";;;;;AAKA,SAAS,QAAQ,EACf,WACA,QAAQ,WACR,GAAG,SACwD;CAC3D,OACE,oBAAC,QAAD;EACE,MAAK;EACL,cAAY;EACZ,aAAU;EACV,WAAW,GAAG,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,4 @@
1
+ import { Switch as SwitchPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>): React.JSX.Element;
4
+ export { Switch };
@@ -0,0 +1,20 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { Switch } from "radix-ui";
3
+ import "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/switch.tsx
6
+ function Switch$1({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(Switch.Root, {
8
+ "data-slot": "switch",
9
+ className: cn("peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input", className),
10
+ ...props,
11
+ children: /* @__PURE__ */ jsx(Switch.Thumb, {
12
+ "data-slot": "switch-thumb",
13
+ className: "pointer-events-none block size-4 rounded-full bg-background shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-1px)] data-[state=unchecked]:translate-x-px dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground/80"
14
+ })
15
+ });
16
+ }
17
+ //#endregion
18
+ export { Switch$1 as Switch };
19
+
20
+ //# sourceMappingURL=switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.js","names":["Switch","SwitchPrimitive"],"sources":["../../src/components/switch.tsx"],"sourcesContent":["import { Switch as SwitchPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n 'peer inline-flex h-5 w-9 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-colors outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',\n className,\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block size-4 rounded-full bg-background shadow-sm ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-1px)] data-[state=unchecked]:translate-x-px dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground/80\"\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n"],"mappings":";;;;;AAKA,SAASA,SAAO,EAAE,WAAW,GAAG,SAA4D;CAC1F,OACE,oBAACC,OAAgB,MAAjB;EACE,aAAU;EACV,WAAW,GACT,sSACA,SACF;EACA,GAAI;EAEJ,UAAA,oBAACA,OAAgB,OAAjB;GACE,aAAU;GACV,WAAU;EACX,CAAA;CACmB,CAAA;AAE1B"}
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ declare function Table({ className, ...props }: React.ComponentProps<'table'>): React.JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<'thead'>): React.JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<'tbody'>): React.JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>): React.JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<'tr'>): React.JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<'th'>): React.JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<'td'>): React.JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<'caption'>): React.JSX.Element;
10
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -0,0 +1,68 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region src/components/table.tsx
5
+ function Table({ className, ...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-slot": "table-container",
8
+ className: "relative w-full overflow-x-auto",
9
+ children: /* @__PURE__ */ jsx("table", {
10
+ "data-slot": "table",
11
+ className: cn("w-full caption-bottom text-sm", className),
12
+ ...props
13
+ })
14
+ });
15
+ }
16
+ function TableHeader({ className, ...props }) {
17
+ return /* @__PURE__ */ jsx("thead", {
18
+ "data-slot": "table-header",
19
+ className: cn("[&_tr]:border-b", className),
20
+ ...props
21
+ });
22
+ }
23
+ function TableBody({ className, ...props }) {
24
+ return /* @__PURE__ */ jsx("tbody", {
25
+ "data-slot": "table-body",
26
+ className: cn("[&_tr:last-child]:border-0", className),
27
+ ...props
28
+ });
29
+ }
30
+ function TableFooter({ className, ...props }) {
31
+ return /* @__PURE__ */ jsx("tfoot", {
32
+ "data-slot": "table-footer",
33
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
34
+ ...props
35
+ });
36
+ }
37
+ function TableRow({ className, ...props }) {
38
+ return /* @__PURE__ */ jsx("tr", {
39
+ "data-slot": "table-row",
40
+ className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className),
41
+ ...props
42
+ });
43
+ }
44
+ function TableHead({ className, ...props }) {
45
+ return /* @__PURE__ */ jsx("th", {
46
+ "data-slot": "table-head",
47
+ className: cn("h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0", className),
48
+ ...props
49
+ });
50
+ }
51
+ function TableCell({ className, ...props }) {
52
+ return /* @__PURE__ */ jsx("td", {
53
+ "data-slot": "table-cell",
54
+ className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className),
55
+ ...props
56
+ });
57
+ }
58
+ function TableCaption({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx("caption", {
60
+ "data-slot": "table-caption",
61
+ className: cn("mt-4 text-sm text-muted-foreground", className),
62
+ ...props
63
+ });
64
+ }
65
+ //#endregion
66
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
67
+
68
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","names":[],"sources":["../../src/components/table.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\n return (\n <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n <table\n data-slot=\"table\"\n className={cn('w-full caption-bottom text-sm', className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\n return <thead data-slot=\"table-header\" className={cn('[&_tr]:border-b', className)} {...props} />;\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn('[&_tr:last-child]:border-0', className)}\n {...props}\n />\n );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn('border-t bg-muted/50 font-medium [&>tr]:last:border-b-0', className)}\n {...props}\n />\n );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\n return (\n <tr\n data-slot=\"table-row\"\n className={cn(\n 'border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n 'h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:pr-0',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn('p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0', className)}\n {...props}\n />\n );\n}\n\nfunction TableCaption({ className, ...props }: React.ComponentProps<'caption'>) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn('mt-4 text-sm text-muted-foreground', className)}\n {...props}\n />\n );\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\n"],"mappings":";;;;AAIA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAwC;CACrE,OACE,oBAAC,OAAD;EAAK,aAAU;EAAkB,WAAU;EACzC,UAAA,oBAAC,SAAD;GACE,aAAU;GACV,WAAW,GAAG,iCAAiC,SAAS;GACxD,GAAI;EACL,CAAA;CACE,CAAA;AAET;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;CAC3E,OAAO,oBAAC,SAAD;EAAO,aAAU;EAAe,WAAW,GAAG,mBAAmB,SAAS;EAAG,GAAI;CAAQ,CAAA;AAClG;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAwC;CACzE,OACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GAAG,8BAA8B,SAAS;EACrD,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAAwC;CAC3E,OACE,oBAAC,SAAD;EACE,aAAU;EACV,WAAW,GAAG,2DAA2D,SAAS;EAClF,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,SAAS,EAAE,WAAW,GAAG,SAAqC;CACrE,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,+EACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAqC;CACtE,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GACT,sHACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,SAAqC;CACtE,OACE,oBAAC,MAAD;EACE,aAAU;EACV,WAAW,GAAG,oEAAoE,SAAS;EAC3F,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,aAAa,EAAE,WAAW,GAAG,SAA0C;CAC9E,OACE,oBAAC,WAAD;EACE,aAAU;EACV,WAAW,GAAG,sCAAsC,SAAS;EAC7D,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,7 @@
1
+ import { Tabs as TabsPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): React.JSX.Element;
4
+ declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): React.JSX.Element;
5
+ declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): React.JSX.Element;
6
+ declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element;
7
+ export { Tabs, TabsContent, TabsList, TabsTrigger };
@@ -0,0 +1,37 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { Tabs } from "radix-ui";
3
+ import "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/tabs.tsx
6
+ function Tabs$1({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx(Tabs.Root, {
8
+ "data-slot": "tabs",
9
+ className: cn("flex flex-col gap-2", className),
10
+ ...props
11
+ });
12
+ }
13
+ function TabsList({ className, ...props }) {
14
+ return /* @__PURE__ */ jsx(Tabs.List, {
15
+ "data-slot": "tabs-list",
16
+ className: cn("inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground", className),
17
+ ...props
18
+ });
19
+ }
20
+ function TabsTrigger({ className, ...props }) {
21
+ return /* @__PURE__ */ jsx(Tabs.Trigger, {
22
+ "data-slot": "tabs-trigger",
23
+ className: cn("inline-flex h-full flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2.5 py-1 text-sm font-medium whitespace-nowrap text-muted-foreground transition-[color,box-shadow] outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
24
+ ...props
25
+ });
26
+ }
27
+ function TabsContent({ className, ...props }) {
28
+ return /* @__PURE__ */ jsx(Tabs.Content, {
29
+ "data-slot": "tabs-content",
30
+ className: cn("flex-1 outline-none", className),
31
+ ...props
32
+ });
33
+ }
34
+ //#endregion
35
+ export { Tabs$1 as Tabs, TabsContent, TabsList, TabsTrigger };
36
+
37
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","names":["Tabs","TabsPrimitive"],"sources":["../../src/components/tabs.tsx"],"sourcesContent":["import { Tabs as TabsPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n className={cn('flex flex-col gap-2', className)}\n {...props}\n />\n );\n}\n\nfunction TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n className={cn(\n 'inline-flex h-9 w-fit items-center justify-center rounded-lg bg-muted p-[3px] text-muted-foreground',\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"inline-flex h-full flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2.5 py-1 text-sm font-medium whitespace-nowrap text-muted-foreground transition-[color,box-shadow] outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn('flex-1 outline-none', className)}\n {...props}\n />\n );\n}\n\nexport { Tabs, TabsContent, TabsList, TabsTrigger };\n"],"mappings":";;;;;AAKA,SAASA,OAAK,EAAE,WAAW,GAAG,SAA0D;CACtF,OACE,oBAACC,KAAc,MAAf;EACE,aAAU;EACV,WAAW,GAAG,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA0D;CAC1F,OACE,oBAACA,KAAc,MAAf;EACE,aAAU;EACV,WAAW,GACT,uGACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,OACE,oBAACA,KAAc,SAAf;EACE,aAAU;EACV,WAAW,GACT,qlBACA,SACF;EACA,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,OACE,oBAACA,KAAc,SAAf;EACE,aAAU;EACV,WAAW,GAAG,uBAAuB,SAAS;EAC9C,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,3 @@
1
+ import * as React from 'react';
2
+ declare function Textarea({ className, ...props }: React.ComponentProps<'textarea'>): React.JSX.Element;
3
+ export { Textarea };
@@ -0,0 +1,16 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { fieldClasses } from "./input.js";
3
+ import "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/textarea.tsx
6
+ function Textarea({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx("textarea", {
8
+ "data-slot": "textarea",
9
+ className: cn(fieldClasses, "field-sizing-content min-h-16 py-2", className),
10
+ ...props
11
+ });
12
+ }
13
+ //#endregion
14
+ export { Textarea };
15
+
16
+ //# sourceMappingURL=textarea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.js","names":[],"sources":["../../src/components/textarea.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nimport { fieldClasses } from './input';\n\nfunction Textarea({ className, ...props }: React.ComponentProps<'textarea'>) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(fieldClasses, 'field-sizing-content min-h-16 py-2', className)}\n {...props}\n />\n );\n}\n\nexport { Textarea };\n"],"mappings":";;;;;AAMA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;CAC3E,OACE,oBAAC,YAAD;EACE,aAAU;EACV,WAAW,GAAG,cAAc,sCAAsC,SAAS;EAC3E,GAAI;CACL,CAAA;AAEL"}
@@ -0,0 +1,8 @@
1
+ import { Tooltip as TooltipPrimitive } from 'radix-ui';
2
+ import * as React from 'react';
3
+ declare function TooltipProvider({ delayDuration, ...props }: React.ComponentProps<typeof TooltipPrimitive.Provider>): React.JSX.Element;
4
+ /** Wraps its own provider, so a lone tooltip works without app-level setup. */
5
+ declare function Tooltip(props: React.ComponentProps<typeof TooltipPrimitive.Root>): React.JSX.Element;
6
+ declare function TooltipTrigger(props: React.ComponentProps<typeof TooltipPrimitive.Trigger>): React.JSX.Element;
7
+ declare function TooltipContent({ className, sideOffset, children, ...props }: React.ComponentProps<typeof TooltipPrimitive.Content>): React.JSX.Element;
8
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
@@ -0,0 +1,38 @@
1
+ import { cn } from "../lib/utils.js";
2
+ import { Tooltip } from "radix-ui";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region src/components/tooltip.tsx
6
+ function TooltipProvider({ delayDuration = 200, ...props }) {
7
+ return /* @__PURE__ */ jsx(Tooltip.Provider, {
8
+ "data-slot": "tooltip-provider",
9
+ delayDuration,
10
+ ...props
11
+ });
12
+ }
13
+ /** Wraps its own provider, so a lone tooltip works without app-level setup. */
14
+ function Tooltip$1(props) {
15
+ return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(Tooltip.Root, {
16
+ "data-slot": "tooltip",
17
+ ...props
18
+ }) });
19
+ }
20
+ function TooltipTrigger(props) {
21
+ return /* @__PURE__ */ jsx(Tooltip.Trigger, {
22
+ "data-slot": "tooltip-trigger",
23
+ ...props
24
+ });
25
+ }
26
+ function TooltipContent({ className, sideOffset = 6, children, ...props }) {
27
+ return /* @__PURE__ */ jsx(Tooltip.Portal, { children: /* @__PURE__ */ jsxs(Tooltip.Content, {
28
+ "data-slot": "tooltip-content",
29
+ sideOffset,
30
+ className: cn("z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs text-balance text-background data-[state=closed]:animate-out", className),
31
+ ...props,
32
+ children: [children, /* @__PURE__ */ jsx(Tooltip.Arrow, { className: "fill-foreground" })]
33
+ }) });
34
+ }
35
+ //#endregion
36
+ export { Tooltip$1 as Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
37
+
38
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","names":["TooltipPrimitive","Tooltip"],"sources":["../../src/components/tooltip.tsx"],"sourcesContent":["import { Tooltip as TooltipPrimitive } from 'radix-ui';\nimport * as React from 'react';\n\nimport { cn } from '../lib/utils';\n\nfunction TooltipProvider({\n delayDuration = 200,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n );\n}\n\n/** Wraps its own provider, so a lone tooltip works without app-level setup. */\nfunction Tooltip(props: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n );\n}\n\nfunction TooltipTrigger(props: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 6,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'z-50 w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-2.5 py-1.5 text-xs text-balance text-background data-[state=closed]:animate-out',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n );\n}\n\nexport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };\n"],"mappings":";;;;;AAKA,SAAS,gBAAgB,EACvB,gBAAgB,KAChB,GAAG,SACsD;CACzD,OACE,oBAACA,QAAiB,UAAlB;EACE,aAAU;EACK;EACf,GAAI;CACL,CAAA;AAEL;;AAGA,SAASC,UAAQ,OAA2D;CAC1E,OACE,oBAAC,iBAAD,EAAA,UACE,oBAACD,QAAiB,MAAlB;EAAuB,aAAU;EAAU,GAAI;CAAQ,CAAA,EACxC,CAAA;AAErB;AAEA,SAAS,eAAe,OAA8D;CACpF,OAAO,oBAACA,QAAiB,SAAlB;EAA0B,aAAU;EAAkB,GAAI;CAAQ,CAAA;AAC3E;AAEA,SAAS,eAAe,EACtB,WACA,aAAa,GACb,UACA,GAAG,SACqD;CACxD,OACE,oBAACA,QAAiB,QAAlB,EAAA,UACE,qBAACA,QAAiB,SAAlB;EACE,aAAU;EACE;EACZ,WAAW,GACT,gMACA,SACF;EACA,GAAI;EAPN,UAAA,CASG,UACD,oBAACA,QAAiB,OAAlB,EAAwB,WAAU,kBAAmB,CAAA,CAC7B;CACH,CAAA,EAAA,CAAA;AAE7B"}
@@ -0,0 +1,28 @@
1
+ export { cn } from './lib/utils';
2
+ export * from './tokens';
3
+ export * from './components/accordion';
4
+ export * from './components/alert';
5
+ export * from './components/avatar';
6
+ export * from './components/badge';
7
+ export * from './components/button';
8
+ export * from './components/card';
9
+ export * from './components/checkbox';
10
+ export * from './components/dialog';
11
+ export * from './components/dropdown-menu';
12
+ export * from './components/input';
13
+ export * from './components/kbd';
14
+ export * from './components/label';
15
+ export * from './components/popover';
16
+ export * from './components/progress';
17
+ export * from './components/radio-group';
18
+ export * from './components/scroll-area';
19
+ export * from './components/select';
20
+ export * from './components/separator';
21
+ export * from './components/sheet';
22
+ export * from './components/skeleton';
23
+ export * from './components/spinner';
24
+ export * from './components/switch';
25
+ export * from './components/table';
26
+ export * from './components/tabs';
27
+ export * from './components/textarea';
28
+ export * from './components/tooltip';