@kayleai/ui 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/accordion.d.ts +7 -0
  4. package/dist/accordion.d.ts.map +1 -0
  5. package/dist/accordion.js +17 -0
  6. package/dist/alert-dialog.d.ts +19 -0
  7. package/dist/alert-dialog.d.ts.map +1 -0
  8. package/dist/alert-dialog.js +41 -0
  9. package/dist/alert.d.ts +11 -0
  10. package/dist/alert.d.ts.map +1 -0
  11. package/dist/alert.js +27 -0
  12. package/dist/aspect-ratio.d.ts +5 -0
  13. package/dist/aspect-ratio.d.ts.map +1 -0
  14. package/dist/aspect-ratio.js +8 -0
  15. package/dist/avatar.d.ts +12 -0
  16. package/dist/avatar.d.ts.map +1 -0
  17. package/dist/avatar.js +23 -0
  18. package/dist/badge.d.ts +8 -0
  19. package/dist/badge.d.ts.map +1 -0
  20. package/dist/badge.js +33 -0
  21. package/dist/breadcrumb.d.ts +11 -0
  22. package/dist/breadcrumb.d.ts.map +1 -0
  23. package/dist/breadcrumb.js +38 -0
  24. package/dist/button-group.d.ts +11 -0
  25. package/dist/button-group.d.ts.map +1 -0
  26. package/dist/button-group.js +38 -0
  27. package/dist/button.d.ts +9 -0
  28. package/dist/button.d.ts.map +1 -0
  29. package/dist/button.js +34 -0
  30. package/dist/calendar.d.ts +8 -0
  31. package/dist/calendar.d.ts.map +1 -0
  32. package/dist/calendar.js +81 -0
  33. package/dist/card.d.ts +12 -0
  34. package/dist/card.d.ts.map +1 -0
  35. package/dist/card.js +24 -0
  36. package/dist/carousel.d.ts +28 -0
  37. package/dist/carousel.d.ts.map +1 -0
  38. package/dist/carousel.js +95 -0
  39. package/dist/chart.d.ts +41 -0
  40. package/dist/chart.d.ts.map +1 -0
  41. package/dist/chart.js +135 -0
  42. package/dist/checkbox.d.ts +4 -0
  43. package/dist/checkbox.d.ts.map +1 -0
  44. package/dist/checkbox.js +8 -0
  45. package/dist/collapsible.d.ts +6 -0
  46. package/dist/collapsible.d.ts.map +1 -0
  47. package/dist/collapsible.js +13 -0
  48. package/dist/combobox.d.ts +24 -0
  49. package/dist/combobox.d.ts.map +1 -0
  50. package/dist/combobox.js +58 -0
  51. package/dist/command.d.ts +20 -0
  52. package/dist/command.d.ts.map +1 -0
  53. package/dist/command.js +35 -0
  54. package/dist/context-menu.d.ts +26 -0
  55. package/dist/context-menu.d.ts.map +1 -0
  56. package/dist/context-menu.js +50 -0
  57. package/dist/css/index.css +129 -0
  58. package/dist/dialog.d.ts +18 -0
  59. package/dist/dialog.d.ts.map +1 -0
  60. package/dist/dialog.js +37 -0
  61. package/dist/drawer.d.ts +14 -0
  62. package/dist/drawer.d.ts.map +1 -0
  63. package/dist/drawer.js +35 -0
  64. package/dist/dropdown-menu.d.ts +26 -0
  65. package/dist/dropdown-menu.d.ts.map +1 -0
  66. package/dist/dropdown-menu.js +50 -0
  67. package/dist/empty.d.ts +12 -0
  68. package/dist/empty.d.ts.map +1 -0
  69. package/dist/empty.js +33 -0
  70. package/dist/field.d.ts +25 -0
  71. package/dist/field.d.ts.map +1 -0
  72. package/dist/field.js +72 -0
  73. package/dist/hover-card.d.ts +6 -0
  74. package/dist/hover-card.d.ts.map +1 -0
  75. package/dist/hover-card.js +14 -0
  76. package/dist/input-group.d.ts +19 -0
  77. package/dist/input-group.d.ts.map +1 -0
  78. package/dist/input-group.js +60 -0
  79. package/dist/input-otp.d.ts +11 -0
  80. package/dist/input-otp.d.ts.map +1 -0
  81. package/dist/input-otp.js +24 -0
  82. package/dist/input.d.ts +4 -0
  83. package/dist/input.d.ts.map +1 -0
  84. package/dist/input.js +7 -0
  85. package/dist/item.d.ts +23 -0
  86. package/dist/item.d.ts.map +1 -0
  87. package/dist/item.js +80 -0
  88. package/dist/kbd.d.ts +4 -0
  89. package/dist/kbd.d.ts.map +1 -0
  90. package/dist/kbd.js +9 -0
  91. package/dist/label.d.ts +4 -0
  92. package/dist/label.d.ts.map +1 -0
  93. package/dist/label.js +9 -0
  94. package/dist/menubar.d.ts +24 -0
  95. package/dist/menubar.d.ts.map +1 -0
  96. package/dist/menubar.js +55 -0
  97. package/dist/navigation-menu.d.ts +12 -0
  98. package/dist/navigation-menu.d.ts.map +1 -0
  99. package/dist/navigation-menu.js +31 -0
  100. package/dist/pagination.d.ts +14 -0
  101. package/dist/pagination.d.ts.map +1 -0
  102. package/dist/pagination.js +26 -0
  103. package/dist/popover.d.ts +10 -0
  104. package/dist/popover.d.ts.map +1 -0
  105. package/dist/popover.js +22 -0
  106. package/dist/progress.d.ts +8 -0
  107. package/dist/progress.d.ts.map +1 -0
  108. package/dist/progress.js +20 -0
  109. package/dist/radio-group.d.ts +6 -0
  110. package/dist/radio-group.d.ts.map +1 -0
  111. package/dist/radio-group.js +12 -0
  112. package/dist/resizable.d.ts +9 -0
  113. package/dist/resizable.d.ts.map +1 -0
  114. package/dist/resizable.js +14 -0
  115. package/dist/scroll-area.d.ts +5 -0
  116. package/dist/scroll-area.d.ts.map +1 -0
  117. package/dist/scroll-area.js +10 -0
  118. package/dist/select.d.ts +16 -0
  119. package/dist/select.d.ts.map +1 -0
  120. package/dist/select.js +34 -0
  121. package/dist/separator.d.ts +4 -0
  122. package/dist/separator.d.ts.map +1 -0
  123. package/dist/separator.js +7 -0
  124. package/dist/sheet.d.ts +15 -0
  125. package/dist/sheet.d.ts.map +1 -0
  126. package/dist/sheet.js +36 -0
  127. package/dist/sidebar.d.ts +63 -0
  128. package/dist/sidebar.d.ts.map +1 -0
  129. package/dist/sidebar.js +256 -0
  130. package/dist/skeleton.d.ts +3 -0
  131. package/dist/skeleton.d.ts.map +1 -0
  132. package/dist/skeleton.js +6 -0
  133. package/dist/slider.d.ts +4 -0
  134. package/dist/slider.d.ts.map +1 -0
  135. package/dist/slider.js +15 -0
  136. package/dist/sonner.d.ts +4 -0
  137. package/dist/sonner.d.ts.map +1 -0
  138. package/dist/sonner.js +20 -0
  139. package/dist/spinner.d.ts +3 -0
  140. package/dist/spinner.d.ts.map +1 -0
  141. package/dist/spinner.js +7 -0
  142. package/dist/switch.d.ts +6 -0
  143. package/dist/switch.d.ts.map +1 -0
  144. package/dist/switch.js +8 -0
  145. package/dist/table.d.ts +11 -0
  146. package/dist/table.d.ts.map +1 -0
  147. package/dist/table.js +27 -0
  148. package/dist/tabs.d.ts +11 -0
  149. package/dist/tabs.d.ts.map +1 -0
  150. package/dist/tabs.js +29 -0
  151. package/dist/textarea.d.ts +4 -0
  152. package/dist/textarea.d.ts.map +1 -0
  153. package/dist/textarea.js +6 -0
  154. package/dist/toggle-group.d.ts +11 -0
  155. package/dist/toggle-group.d.ts.map +1 -0
  156. package/dist/toggle-group.js +24 -0
  157. package/dist/toggle.d.ts +9 -0
  158. package/dist/toggle.d.ts.map +1 -0
  159. package/dist/toggle.js +25 -0
  160. package/dist/tooltip.d.ts +7 -0
  161. package/dist/tooltip.d.ts.map +1 -0
  162. package/dist/tooltip.js +17 -0
  163. package/dist/utils/cn.d.ts +3 -0
  164. package/dist/utils/cn.d.ts.map +1 -0
  165. package/dist/utils/cn.js +5 -0
  166. package/dist/utils/is-mobile.d.ts +2 -0
  167. package/dist/utils/is-mobile.d.ts.map +1 -0
  168. package/dist/utils/is-mobile.js +4 -0
  169. package/package.json +77 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.d.ts","sourceRoot":"","sources":["../src/sonner.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE9D,QAAA,MAAM,OAAO,GAAI,qBAAqB,YAAY,4CA0BjD,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
package/dist/sonner.js ADDED
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { CircleCheckIcon, InfoIcon, Loader2Icon, OctagonXIcon, TriangleAlertIcon, } from "lucide-react";
3
+ import { Toaster as Sonner } from "sonner";
4
+ const Toaster = ({ theme, ...props }) => (_jsx(Sonner, { className: "toaster group", icons: {
5
+ success: _jsx(CircleCheckIcon, { className: "size-4" }),
6
+ info: _jsx(InfoIcon, { className: "size-4" }),
7
+ warning: _jsx(TriangleAlertIcon, { className: "size-4" }),
8
+ error: _jsx(OctagonXIcon, { className: "size-4" }),
9
+ loading: _jsx(Loader2Icon, { className: "size-4 animate-spin" }),
10
+ }, style: {
11
+ "--normal-bg": "var(--popover)",
12
+ "--normal-text": "var(--popover-foreground)",
13
+ "--normal-border": "var(--border)",
14
+ "--border-radius": "var(--radius)",
15
+ }, theme: theme, toastOptions: {
16
+ classNames: {
17
+ toast: "cn-toast",
18
+ },
19
+ }, ...props }));
20
+ export { Toaster };
@@ -0,0 +1,3 @@
1
+ declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): import("react/jsx-runtime").JSX.Element;
2
+ export { Spinner };
3
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../src/spinner.tsx"],"names":[],"mappings":"AAGA,iBAAS,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CASpE;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Loader2Icon } from "lucide-react";
3
+ import { cn } from "./utils/cn";
4
+ function Spinner({ className, ...props }) {
5
+ return (_jsx(Loader2Icon, { "aria-label": "Loading", className: cn("size-4 animate-spin", className), role: "status", ...props }));
6
+ }
7
+ export { Spinner };
@@ -0,0 +1,6 @@
1
+ import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
2
+ declare function Switch({ className, size, ...props }: SwitchPrimitive.Root.Props & {
3
+ size?: "sm" | "default";
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ export { Switch };
6
+ //# sourceMappingURL=switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../src/switch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIlE,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,IAAI,GAAG,SAAS,CAAC;CACzB,2CAiBA;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/dist/switch.js ADDED
@@ -0,0 +1,8 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Switch as SwitchPrimitive } from "@base-ui/react/switch";
4
+ import { cn } from "./utils/cn";
5
+ function Switch({ className, size = "default", ...props }) {
6
+ return (_jsx(SwitchPrimitive.Root, { className: cn("peer group/switch after:-inset-x-3 after:-inset-y-2 relative inline-flex shrink-0 items-center rounded-full border border-transparent outline-none transition-all after:absolute focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=sm]:h-[14px] data-[size=default]:w-[32px] data-[size=sm]:w-[24px] data-disabled:cursor-not-allowed data-checked:bg-primary data-unchecked:bg-input data-disabled:opacity-50 dark:data-unchecked:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className), "data-size": size, "data-slot": "switch", ...props, children: _jsx(SwitchPrimitive.Thumb, { className: "pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-checked:bg-primary-foreground dark:data-unchecked:bg-foreground", "data-slot": "switch-thumb" }) }));
7
+ }
8
+ export { Switch };
@@ -0,0 +1,11 @@
1
+ import type * as React from "react";
2
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): import("react/jsx-runtime").JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): import("react/jsx-runtime").JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): import("react/jsx-runtime").JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): import("react/jsx-runtime").JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): import("react/jsx-runtime").JSX.Element;
10
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
11
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../src/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAapE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAW1E;AAED,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQjC;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
package/dist/table.js ADDED
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "./utils/cn";
3
+ function Table({ className, ...props }) {
4
+ return (_jsx("div", { className: "relative w-full overflow-x-auto", "data-slot": "table-container", children: _jsx("table", { className: cn("w-full caption-bottom text-sm", className), "data-slot": "table", ...props }) }));
5
+ }
6
+ function TableHeader({ className, ...props }) {
7
+ return (_jsx("thead", { className: cn("[&_tr]:border-b", className), "data-slot": "table-header", ...props }));
8
+ }
9
+ function TableBody({ className, ...props }) {
10
+ return (_jsx("tbody", { className: cn("[&_tr:last-child]:border-0", className), "data-slot": "table-body", ...props }));
11
+ }
12
+ function TableFooter({ className, ...props }) {
13
+ return (_jsx("tfoot", { className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className), "data-slot": "table-footer", ...props }));
14
+ }
15
+ function TableRow({ className, ...props }) {
16
+ return (_jsx("tr", { className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className), "data-slot": "table-row", ...props }));
17
+ }
18
+ function TableHead({ className, ...props }) {
19
+ return (_jsx("th", { className: cn("h-12 whitespace-nowrap px-3 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0", className), "data-slot": "table-head", ...props }));
20
+ }
21
+ function TableCell({ className, ...props }) {
22
+ return (_jsx("td", { className: cn("whitespace-nowrap p-3 align-middle [&:has([role=checkbox])]:pr-0", className), "data-slot": "table-cell", ...props }));
23
+ }
24
+ function TableCaption({ className, ...props }) {
25
+ return (_jsx("caption", { className: cn("mt-4 text-muted-foreground text-sm", className), "data-slot": "table-caption", ...props }));
26
+ }
27
+ export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
package/dist/tabs.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare function Tabs({ className, orientation, ...props }: TabsPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
4
+ declare const tabsListVariants: (props?: ({
5
+ variant?: "line" | "default" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function TabsList({ className, variant, ...props }: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>): import("react/jsx-runtime").JSX.Element;
8
+ declare function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props): import("react/jsx-runtime").JSX.Element;
9
+ declare function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props): import("react/jsx-runtime").JSX.Element;
10
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
11
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../src/tabs.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,WAA0B,EAC1B,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,2CAY1B;AAED,QAAA,MAAM,gBAAgB;;8EAarB,CAAC;AAEF,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,OAAmB,EACnB,GAAG,KAAK,EACT,EAAE,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,2CASlE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,2CAcpE;AAED,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,aAAa,CAAC,KAAK,CAAC,KAAK,2CAQtE;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
package/dist/tabs.js ADDED
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "./utils/cn";
6
+ function Tabs({ className, orientation = "horizontal", ...props }) {
7
+ return (_jsx(TabsPrimitive.Root, { className: cn("group/tabs flex gap-2 data-[orientation=horizontal]:flex-col", className), "data-orientation": orientation, "data-slot": "tabs", ...props }));
8
+ }
9
+ const tabsListVariants = cva("group/tabs-list inline-flex w-fit items-center justify-center rounded-4xl p-[3px] text-muted-foreground data-[variant=line]:rounded-none group-data-[orientation=vertical]/tabs:h-fit group-data-horizontal/tabs:h-9 group-data-[orientation=vertical]/tabs:flex-col group-data-vertical/tabs:rounded-2xl", {
10
+ variants: {
11
+ variant: {
12
+ default: "bg-muted",
13
+ line: "gap-1 bg-transparent",
14
+ },
15
+ },
16
+ defaultVariants: {
17
+ variant: "default",
18
+ },
19
+ });
20
+ function TabsList({ className, variant = "default", ...props }) {
21
+ return (_jsx(TabsPrimitive.List, { className: cn(tabsListVariants({ variant }), className), "data-slot": "tabs-list", "data-variant": variant, ...props }));
22
+ }
23
+ function TabsTrigger({ className, ...props }) {
24
+ return (_jsx(TabsPrimitive.Tab, { className: cn("relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 whitespace-nowrap rounded-xl border border-transparent px-2 py-1 font-medium text-foreground/60 text-sm transition-all hover:text-foreground focus-visible:border-ring focus-visible:outline-1 focus-visible:outline-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start group-data-vertical/tabs:px-2.5 group-data-vertical/tabs:py-1.5 dark:text-muted-foreground dark:hover:text-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", "group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent", "data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground", "group-data-[orientation=vertical]/tabs:after:-right-1 after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className), "data-slot": "tabs-trigger", ...props }));
25
+ }
26
+ function TabsContent({ className, ...props }) {
27
+ return (_jsx(TabsPrimitive.Panel, { className: cn("flex-1 text-sm outline-none", className), "data-slot": "tabs-content", ...props }));
28
+ }
29
+ export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
@@ -0,0 +1,4 @@
1
+ import type * as React from "react";
2
+ declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
3
+ export { Textarea };
4
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../src/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,OAAO,CAAC;AAIpC,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,2CAW1E;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "./utils/cn";
3
+ function Textarea({ className, ...props }) {
4
+ return (_jsx("textarea", { className: cn("field-sizing-content flex min-h-16 w-full resize-none rounded-xl border border-input bg-input/30 px-3 py-3 text-base outline-none transition-colors placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-[3px] aria-invalid:ring-destructive/20 md:text-sm dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40", className), "data-slot": "textarea", ...props }));
5
+ }
6
+ export { Textarea };
@@ -0,0 +1,11 @@
1
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
2
+ import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
3
+ import type { VariantProps } from "class-variance-authority";
4
+ import { toggleVariants } from "./toggle";
5
+ declare function ToggleGroup({ className, variant, size, spacing, orientation, children, ...props }: ToggleGroupPrimitive.Props & VariantProps<typeof toggleVariants> & {
6
+ spacing?: number;
7
+ orientation?: "horizontal" | "vertical";
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ declare function ToggleGroupItem({ className, children, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
10
+ export { ToggleGroup, ToggleGroupItem };
11
+ //# sourceMappingURL=toggle-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../src/toggle-group.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,WAAW,IAAI,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAe1C,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,IAAI,EACJ,OAAW,EACX,WAA0B,EAC1B,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,KAAK,GAC3B,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC,2CAsBF;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAsB7D;AAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
4
+ import { ToggleGroup as ToggleGroupPrimitive } from "@base-ui/react/toggle-group";
5
+ import { createContext, useContext } from "react";
6
+ import { toggleVariants } from "./toggle";
7
+ import { cn } from "./utils/cn";
8
+ const ToggleGroupContext = createContext({
9
+ size: "default",
10
+ variant: "default",
11
+ spacing: 0,
12
+ orientation: "horizontal",
13
+ });
14
+ function ToggleGroup({ className, variant, size, spacing = 0, orientation = "horizontal", children, ...props }) {
15
+ return (_jsx(ToggleGroupPrimitive, { className: cn("group/toggle-group flex w-fit flex-row items-center gap-[--spacing(var(--gap))] data-[spacing=0]:data-[variant=outline]:rounded-4xl data-[orientation=vertical]:flex-col data-[orientation=vertical]:items-stretch", className), "data-orientation": orientation, "data-size": size, "data-slot": "toggle-group", "data-spacing": spacing, "data-variant": variant, style: { "--gap": spacing }, ...props, children: _jsx(ToggleGroupContext.Provider, { value: { variant, size, spacing, orientation }, children: children }) }));
16
+ }
17
+ function ToggleGroupItem({ className, children, variant = "default", size = "default", ...props }) {
18
+ const context = useContext(ToggleGroupContext);
19
+ return (_jsx(TogglePrimitive, { className: cn("shrink-0 focus:z-10 focus-visible:z-10 data-[state=on]:bg-muted group-data-[spacing=0]/toggle-group:rounded-none group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:border-t-0 group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:border-l-0 group-data-[spacing=0]/toggle-group:px-3 group-data-[spacing=0]/toggle-group:shadow-none group-data-horizontal/toggle-group:data-[spacing=0]:last:rounded-r-4xl group-data-vertical/toggle-group:data-[spacing=0]:last:rounded-b-xl group-data-vertical/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-t group-data-horizontal/toggle-group:data-[spacing=0]:data-[variant=outline]:first:border-l group-data-vertical/toggle-group:data-[spacing=0]:first:rounded-t-xl group-data-horizontal/toggle-group:data-[spacing=0]:first:rounded-l-4xl", toggleVariants({
20
+ variant: context.variant || variant,
21
+ size: context.size || size,
22
+ }), className), "data-size": context.size || size, "data-slot": "toggle-group-item", "data-spacing": context.spacing, "data-variant": context.variant || variant, ...props, children: children }));
23
+ }
24
+ export { ToggleGroup, ToggleGroupItem };
@@ -0,0 +1,9 @@
1
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
2
+ import { type VariantProps } from "class-variance-authority";
3
+ declare const toggleVariants: (props?: ({
4
+ variant?: "default" | "outline" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ declare function Toggle({ className, variant, size, ...props }: TogglePrimitive.Props & VariantProps<typeof toggleVariants>): import("react/jsx-runtime").JSX.Element;
8
+ export { Toggle, toggleVariants };
9
+ //# sourceMappingURL=toggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../src/toggle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,cAAc;;;8EAmBnB,CAAC;AAEF,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,cAAc,CAAC,2CAQ7D;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC"}
package/dist/toggle.js ADDED
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "./utils/cn";
5
+ const toggleVariants = cva("group/toggle inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-4xl font-medium text-sm outline-none transition-colors hover:bg-muted hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-pressed:bg-muted aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
6
+ variants: {
7
+ variant: {
8
+ default: "bg-transparent",
9
+ outline: "border border-input bg-transparent hover:bg-muted",
10
+ },
11
+ size: {
12
+ default: "h-9 min-w-9 rounded-[min(var(--radius-2xl),12px)] px-2.5",
13
+ sm: "h-8 min-w-8 px-3",
14
+ lg: "h-10 min-w-10 px-2.5",
15
+ },
16
+ },
17
+ defaultVariants: {
18
+ variant: "default",
19
+ size: "default",
20
+ },
21
+ });
22
+ function Toggle({ className, variant = "default", size = "default", ...props }) {
23
+ return (_jsx(TogglePrimitive, { className: cn(toggleVariants({ variant, size, className })), "data-slot": "toggle", ...props }));
24
+ }
25
+ export { Toggle, toggleVariants };
@@ -0,0 +1,7 @@
1
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
2
+ declare function TooltipProvider({ delay, ...props }: TooltipPrimitive.Provider.Props): import("react/jsx-runtime").JSX.Element;
3
+ declare function Tooltip({ ...props }: TooltipPrimitive.Root.Props): import("react/jsx-runtime").JSX.Element;
4
+ declare function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props): import("react/jsx-runtime").JSX.Element;
5
+ declare function TooltipContent({ className, side, sideOffset, align, alignOffset, children, ...props }: TooltipPrimitive.Popup.Props & Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">): import("react/jsx-runtime").JSX.Element;
6
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
7
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../src/tooltip.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAIrE,iBAAS,eAAe,CAAC,EACvB,KAAS,EACT,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,2CAQjC;AAED,iBAAS,OAAO,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,KAAK,2CAMzD;AAED,iBAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,gBAAgB,CAAC,OAAO,CAAC,KAAK,2CAEnE;AAED,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,IAAY,EACZ,UAAc,EACd,KAAgB,EAChB,WAAe,EACf,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,GAC7B,IAAI,CACF,gBAAgB,CAAC,UAAU,CAAC,KAAK,EACjC,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,CAChD,2CAwBF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
4
+ import { cn } from "./utils/cn";
5
+ function TooltipProvider({ delay = 0, ...props }) {
6
+ return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delay: delay, ...props }));
7
+ }
8
+ function Tooltip({ ...props }) {
9
+ return (_jsx(TooltipProvider, { children: _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props }) }));
10
+ }
11
+ function TooltipTrigger({ ...props }) {
12
+ return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
13
+ }
14
+ function TooltipContent({ className, side = "top", sideOffset = 4, align = "center", alignOffset = 0, children, ...props }) {
15
+ return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Positioner, { align: align, alignOffset: alignOffset, className: "isolate z-50", side: side, sideOffset: sideOffset, children: _jsxs(TooltipPrimitive.Popup, { className: cn("data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:fade-out-0 data-closed:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit max-w-xs origin-(--transform-origin) rounded-2xl bg-foreground px-3 py-1.5 text-background text-xs data-[state=delayed-open]:animate-in data-closed:animate-out data-open:animate-in **:data-[slot=kbd]:rounded-4xl", className), "data-slot": "tooltip-content", ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5 z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=right]:top-1/2!" })] }) }) }));
16
+ }
17
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=cn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cn.d.ts","sourceRoot":"","sources":["../../src/utils/cn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,5 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ export function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
@@ -0,0 +1,2 @@
1
+ export declare function useIsMobile(): boolean;
2
+ //# sourceMappingURL=is-mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-mobile.d.ts","sourceRoot":"","sources":["../../src/utils/is-mobile.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,YAE1B"}
@@ -0,0 +1,4 @@
1
+ import { useMediaQuery } from "@mantine/hooks";
2
+ export function useIsMobile() {
3
+ return useMediaQuery("(max-width: 768px)");
4
+ }
package/package.json ADDED
@@ -0,0 +1,77 @@
1
+ {
2
+ "name": "@kayleai/ui",
3
+ "description": "Kayle's UI library",
4
+ "author": "Arsen Shkrumelyak <arsen@kayle.ai>",
5
+ "version": "0.0.1",
6
+ "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "https://github.com/kayleai/ui.git"
10
+ },
11
+ "homepage": "https://github.com/kayleai/ui",
12
+ "publishConfig": {
13
+ "access": "public"
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "exports": {
19
+ "./css": "./dist/css/index.css",
20
+ "./utils/*": {
21
+ "types": "./dist/utils/*.d.ts",
22
+ "import": "./dist/utils/*.js"
23
+ },
24
+ "./*": {
25
+ "types": "./dist/*.d.ts",
26
+ "import": "./dist/*.js"
27
+ }
28
+ },
29
+ "type": "module",
30
+ "sideEffects": [
31
+ "**/*.css"
32
+ ],
33
+ "private": false,
34
+ "devDependencies": {
35
+ "@biomejs/biome": "2.3.8",
36
+ "@types/bun": "latest",
37
+ "husky": "9.1.7",
38
+ "react": "19.2.0",
39
+ "react-dom": "19.2.0",
40
+ "typescript": "^5",
41
+ "ultracite": "6.4.1"
42
+ },
43
+ "peerDependencies": {
44
+ "react": "^19",
45
+ "react-dom": "^19",
46
+ "typescript": "^5"
47
+ },
48
+ "dependencies": {
49
+ "@base-ui/react": "1.0.0",
50
+ "@fontsource-variable/inter": "5.2.8",
51
+ "@mantine/hooks": "8.3.10",
52
+ "class-variance-authority": "0.7.1",
53
+ "clsx": "2.1.1",
54
+ "cmdk": "1.1.1",
55
+ "date-fns": "4.1.0",
56
+ "embla-carousel-react": "8.6.0",
57
+ "input-otp": "1.4.2",
58
+ "lucide-react": "0.561.0",
59
+ "react-day-picker": "9.12.0",
60
+ "react-resizable-panels": "3.0.6",
61
+ "recharts": "2.15.4",
62
+ "shadcn": "3.6.1",
63
+ "sonner": "2.0.7",
64
+ "tailwind-merge": "3.4.0",
65
+ "tailwindcss": "4.0.6",
66
+ "tw-animate-css": "1.4.0",
67
+ "vaul": "1.1.2"
68
+ },
69
+ "scripts": {
70
+ "build": "bun run build:clean && bun run build:ts && bun run build:css",
71
+ "build:clean": "rm -rf dist",
72
+ "build:ts": "tsc -p tsconfig.build.json",
73
+ "build:css": "mkdir -p dist/css && cp src/css/index.css dist/css/index.css",
74
+ "prepublishOnly": "bun run build",
75
+ "prepare": "bunx husky"
76
+ }
77
+ }