@chatsdk-dev/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 (153) hide show
  1. package/README.md +199 -0
  2. package/dist/components/accordion.d.ts +7 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +18 -0
  5. package/dist/components/alert-dialog.d.ts +19 -0
  6. package/dist/components/alert-dialog.d.ts.map +1 -0
  7. package/dist/components/alert-dialog.js +42 -0
  8. package/dist/components/alert.d.ts +11 -0
  9. package/dist/components/alert.d.ts.map +1 -0
  10. package/dist/components/alert.js +27 -0
  11. package/dist/components/avatar.d.ts +12 -0
  12. package/dist/components/avatar.d.ts.map +1 -0
  13. package/dist/components/avatar.js +23 -0
  14. package/dist/components/badge.d.ts +8 -0
  15. package/dist/components/badge.d.ts.map +1 -0
  16. package/dist/components/badge.js +44 -0
  17. package/dist/components/button-group.d.ts +11 -0
  18. package/dist/components/button-group.d.ts.map +1 -0
  19. package/dist/components/button-group.js +36 -0
  20. package/dist/components/button-loader.d.ts +9 -0
  21. package/dist/components/button-loader.d.ts.map +1 -0
  22. package/dist/components/button-loader.js +10 -0
  23. package/dist/components/button.d.ts +9 -0
  24. package/dist/components/button.d.ts.map +1 -0
  25. package/dist/components/button.js +32 -0
  26. package/dist/components/card.d.ts +12 -0
  27. package/dist/components/card.d.ts.map +1 -0
  28. package/dist/components/card.js +25 -0
  29. package/dist/components/carousel.d.ts +29 -0
  30. package/dist/components/carousel.d.ts.map +1 -0
  31. package/dist/components/carousel.js +91 -0
  32. package/dist/components/collapsible.d.ts +6 -0
  33. package/dist/components/collapsible.d.ts.map +1 -0
  34. package/dist/components/collapsible.js +13 -0
  35. package/dist/components/command.d.ts +20 -0
  36. package/dist/components/command.d.ts.map +1 -0
  37. package/dist/components/command.js +35 -0
  38. package/dist/components/container.d.ts +8 -0
  39. package/dist/components/container.d.ts.map +1 -0
  40. package/dist/components/container.js +5 -0
  41. package/dist/components/dialog.d.ts +19 -0
  42. package/dist/components/dialog.d.ts.map +1 -0
  43. package/dist/components/dialog.js +38 -0
  44. package/dist/components/dots-loader.d.ts +15 -0
  45. package/dist/components/dots-loader.d.ts.map +1 -0
  46. package/dist/components/dots-loader.js +21 -0
  47. package/dist/components/drawer.d.ts +14 -0
  48. package/dist/components/drawer.d.ts.map +1 -0
  49. package/dist/components/drawer.js +35 -0
  50. package/dist/components/dropdown-menu.d.ts +26 -0
  51. package/dist/components/dropdown-menu.d.ts.map +1 -0
  52. package/dist/components/dropdown-menu.js +51 -0
  53. package/dist/components/empty.d.ts +12 -0
  54. package/dist/components/empty.d.ts.map +1 -0
  55. package/dist/components/empty.js +33 -0
  56. package/dist/components/field.d.ts +25 -0
  57. package/dist/components/field.d.ts.map +1 -0
  58. package/dist/components/field.js +68 -0
  59. package/dist/components/form.d.ts +23 -0
  60. package/dist/components/form.d.ts.map +1 -0
  61. package/dist/components/form.js +68 -0
  62. package/dist/components/header.d.ts +6 -0
  63. package/dist/components/header.d.ts.map +1 -0
  64. package/dist/components/header.js +6 -0
  65. package/dist/components/hover-card.d.ts +6 -0
  66. package/dist/components/hover-card.d.ts.map +1 -0
  67. package/dist/components/hover-card.js +14 -0
  68. package/dist/components/index.d.ts +5 -0
  69. package/dist/components/index.d.ts.map +1 -0
  70. package/dist/components/index.js +5 -0
  71. package/dist/components/input-group.d.ts +19 -0
  72. package/dist/components/input-group.d.ts.map +1 -0
  73. package/dist/components/input-group.js +57 -0
  74. package/dist/components/input.d.ts +7 -0
  75. package/dist/components/input.d.ts.map +1 -0
  76. package/dist/components/input.js +6 -0
  77. package/dist/components/label.d.ts +3 -0
  78. package/dist/components/label.d.ts.map +1 -0
  79. package/dist/components/label.js +7 -0
  80. package/dist/components/logo.d.ts +7 -0
  81. package/dist/components/logo.d.ts.map +1 -0
  82. package/dist/components/logo.js +6 -0
  83. package/dist/components/number-flow.d.ts +3 -0
  84. package/dist/components/number-flow.d.ts.map +1 -0
  85. package/dist/components/number-flow.js +6 -0
  86. package/dist/components/popover.d.ts +10 -0
  87. package/dist/components/popover.d.ts.map +1 -0
  88. package/dist/components/popover.js +23 -0
  89. package/dist/components/progress.d.ts +8 -0
  90. package/dist/components/progress.d.ts.map +1 -0
  91. package/dist/components/progress.js +20 -0
  92. package/dist/components/radio-group.d.ts +6 -0
  93. package/dist/components/radio-group.d.ts.map +1 -0
  94. package/dist/components/radio-group.js +13 -0
  95. package/dist/components/scroll-area.d.ts +5 -0
  96. package/dist/components/scroll-area.d.ts.map +1 -0
  97. package/dist/components/scroll-area.js +11 -0
  98. package/dist/components/select.d.ts +17 -0
  99. package/dist/components/select.d.ts.map +1 -0
  100. package/dist/components/select.js +34 -0
  101. package/dist/components/separator.d.ts +3 -0
  102. package/dist/components/separator.d.ts.map +1 -0
  103. package/dist/components/separator.js +7 -0
  104. package/dist/components/sheet.d.ts +15 -0
  105. package/dist/components/sheet.d.ts.map +1 -0
  106. package/dist/components/sheet.js +37 -0
  107. package/dist/components/sidebar.d.ts +65 -0
  108. package/dist/components/sidebar.d.ts.map +1 -0
  109. package/dist/components/sidebar.js +258 -0
  110. package/dist/components/skeleton.d.ts +2 -0
  111. package/dist/components/skeleton.d.ts.map +1 -0
  112. package/dist/components/skeleton.js +5 -0
  113. package/dist/components/spinner.d.ts +3 -0
  114. package/dist/components/spinner.d.ts.map +1 -0
  115. package/dist/components/spinner.js +7 -0
  116. package/dist/components/switch.d.ts +5 -0
  117. package/dist/components/switch.d.ts.map +1 -0
  118. package/dist/components/switch.js +7 -0
  119. package/dist/components/table.d.ts +13 -0
  120. package/dist/components/table.d.ts.map +1 -0
  121. package/dist/components/table.js +28 -0
  122. package/dist/components/tabs.d.ts +12 -0
  123. package/dist/components/tabs.d.ts.map +1 -0
  124. package/dist/components/tabs.js +32 -0
  125. package/dist/components/textarea.d.ts +3 -0
  126. package/dist/components/textarea.d.ts.map +1 -0
  127. package/dist/components/textarea.js +5 -0
  128. package/dist/components/toggle.d.ts +9 -0
  129. package/dist/components/toggle.d.ts.map +1 -0
  130. package/dist/components/toggle.js +26 -0
  131. package/dist/components/tooltip.d.ts +7 -0
  132. package/dist/components/tooltip.d.ts.map +1 -0
  133. package/dist/components/tooltip.js +17 -0
  134. package/dist/components/typography/h1.d.ts +10 -0
  135. package/dist/components/typography/h1.d.ts.map +1 -0
  136. package/dist/components/typography/h1.js +6 -0
  137. package/dist/components/typography/paragraph.d.ts +6 -0
  138. package/dist/components/typography/paragraph.d.ts.map +1 -0
  139. package/dist/components/typography/paragraph.js +6 -0
  140. package/dist/components/typography/text.d.ts +14 -0
  141. package/dist/components/typography/text.d.ts.map +1 -0
  142. package/dist/components/typography/text.js +41 -0
  143. package/dist/hooks/use-breakpoint.d.ts +5 -0
  144. package/dist/hooks/use-breakpoint.d.ts.map +1 -0
  145. package/dist/hooks/use-breakpoint.js +45 -0
  146. package/dist/hooks/use-controllable-state.d.ts +14 -0
  147. package/dist/hooks/use-controllable-state.d.ts.map +1 -0
  148. package/dist/hooks/use-controllable-state.js +35 -0
  149. package/dist/index.css +5405 -0
  150. package/dist/lib/utils.d.ts +3 -0
  151. package/dist/lib/utils.d.ts.map +1 -0
  152. package/dist/lib/utils.js +14 -0
  153. package/package.json +87 -0
@@ -0,0 +1,32 @@
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 "@chatsdk-dev/ui/lib/utils";
6
+ function Tabs({ className, orientation = "horizontal", ...props }) {
7
+ return (_jsx(TabsPrimitive.Root, { "data-slot": "tabs", "data-orientation": orientation, className: cn("gap-2 group/tabs flex data-[orientation=horizontal]:flex-col", className), ...props }));
8
+ }
9
+ const tabsListVariants = cva("relative rounded-lg p-[3px] group-data-horizontal/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col", {
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, { "data-slot": "tabs-list", "data-variant": variant, className: cn(tabsListVariants({ variant }), className), ...props }));
22
+ }
23
+ function TabsTrigger({ className, ...props }) {
24
+ return (_jsx(TabsPrimitive.Tab, { "data-slot": "tabs-trigger", className: cn("gap-1.5 rounded-sm border border-transparent px-2 py-1 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 [&_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:text-foreground dark:data-active:text-foreground", "after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100", className), ...props }));
25
+ }
26
+ function TabsIndicator({ className, ...props }) {
27
+ return (_jsx(TabsPrimitive.Indicator, { className: cn("absolute rounded-sm bg-background shadow-sm transition-all duration-200", "left-[var(--active-tab-left)] top-[var(--active-tab-top)]", "w-[var(--active-tab-width)] h-[var(--active-tab-height)]", className), ...props }));
28
+ }
29
+ function TabsContent({ className, ...props }) {
30
+ return (_jsx(TabsPrimitive.Panel, { "data-slot": "tabs-content", className: cn("text-sm flex-1 outline-none", className), ...props }));
31
+ }
32
+ export { Tabs, TabsContent, TabsIndicator, TabsList, tabsListVariants, TabsTrigger, };
@@ -0,0 +1,3 @@
1
+ import * as React from "react";
2
+ export declare function Textarea({ className, ...props }: React.ComponentProps<"textarea">): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=textarea.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.d.ts","sourceRoot":"","sources":["../../src/components/textarea.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,2CAWlC"}
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "@chatsdk-dev/ui/lib/utils";
3
+ export function Textarea({ className, ...props }) {
4
+ return (_jsx("textarea", { "data-slot": "textarea", className: cn("border-input dark:bg-input/30 focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:aria-invalid:border-destructive/50 rounded-sm border bg-transparent px-2.5 py-2 text-base shadow-xs transition-[color,box-shadow] focus-visible:ring-[3px] aria-invalid:ring-[3px] md:text-sm placeholder:text-muted-foreground flex field-sizing-content min-h-16 w-full outline-none disabled:cursor-not-allowed disabled:opacity-50", className), ...props }));
5
+ }
@@ -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?: "outline" | "default" | 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/components/toggle.tsx"],"names":[],"mappings":"AAEA,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"}
@@ -0,0 +1,26 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Toggle as TogglePrimitive } from "@base-ui/react/toggle";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "@chatsdk-dev/ui/lib/utils";
6
+ const toggleVariants = cva("hover:text-foreground aria-pressed:bg-muted focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive gap-1 rounded-md text-sm font-medium transition-[color,box-shadow] [&_svg:not([class*='size-'])]:size-4 group/toggle hover:bg-muted inline-flex items-center justify-center whitespace-nowrap outline-none focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
7
+ variants: {
8
+ variant: {
9
+ default: "bg-transparent",
10
+ outline: "border-input hover:bg-muted border bg-transparent shadow-xs",
11
+ },
12
+ size: {
13
+ default: "h-9 min-w-9 px-2",
14
+ sm: "h-8 min-w-8 px-1.5",
15
+ lg: "h-10 min-w-10 px-2.5",
16
+ },
17
+ },
18
+ defaultVariants: {
19
+ variant: "default",
20
+ size: "default",
21
+ },
22
+ });
23
+ function Toggle({ className, variant = "default", size = "default", ...props }) {
24
+ return (_jsx(TogglePrimitive, { "data-slot": "toggle", className: cn(toggleVariants({ variant, size, className })), ...props }));
25
+ }
26
+ 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/components/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 "@chatsdk-dev/ui/lib/utils";
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, side: side, sideOffset: sideOffset, className: "isolate z-50", children: _jsxs(TooltipPrimitive.Popup, { "data-slot": "tooltip-content", className: cn("data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:animate-out 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 rounded-sm px-3 py-1.5 text-xs bg-foreground text-background z-50 w-fit max-w-xs origin-(--transform-origin)", className), ...props, children: [children, _jsx(TooltipPrimitive.Arrow, { className: "size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground z-50 data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5" })] }) }) }));
16
+ }
17
+ export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from "class-variance-authority";
2
+ import React from "react";
3
+ import { textVariants } from "./text";
4
+ type H1Props = VariantProps<typeof textVariants> & {
5
+ children: React.ReactNode;
6
+ className?: string;
7
+ };
8
+ export declare function H1({ children, className, variant }: H1Props): import("react/jsx-runtime").JSX.Element;
9
+ export {};
10
+ //# sourceMappingURL=h1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"h1.d.ts","sourceRoot":"","sources":["../../../src/components/typography/h1.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,KAAK,OAAO,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,GAAG;IACjD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAgB,EAAE,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAc,EAAE,EAAE,OAAO,2CAIlE"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils";
3
+ import { textVariants } from "./text";
4
+ export function H1({ children, className, variant = "h1" }) {
5
+ return (_jsx("h1", { className: cn(textVariants({ variant }), className), children: children }));
6
+ }
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare function Paragraph({ children, className, }: {
3
+ children: React.ReactNode;
4
+ className?: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=paragraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paragraph.d.ts","sourceRoot":"","sources":["../../../src/components/typography/paragraph.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,SAAS,GACV,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,2CAMA"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { cn } from "../../lib/utils";
3
+ import { textVariants } from "./text";
4
+ export function Paragraph({ children, className, }) {
5
+ return (_jsx("p", { className: cn(textVariants({ variant: "paragraph1" }), className), children: children }));
6
+ }
@@ -0,0 +1,14 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ import { VariantProps } from "class-variance-authority";
3
+ export declare const textVariants: (props?: ({
4
+ variant?: "button" | "h1" | "h2" | "small" | "default" | "paragraph1" | "paragraph2" | "mono" | "tiny" | null | undefined;
5
+ color?: "accent" | "meta" | "popover" | "disabled" | "primary" | "secondary" | "destructive" | "default" | "muted" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type TextVariants = VariantProps<typeof textVariants>;
8
+ type DefaultTagName = "span" | "p" | "div";
9
+ interface TextProps extends Omit<useRender.ComponentProps<"div">, "color">, TextVariants {
10
+ as?: DefaultTagName;
11
+ }
12
+ export declare function Text({ className, render, as, variant, color, ...props }: TextProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
13
+ export {};
14
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/components/typography/text.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAO,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAI7D,eAAO,MAAM,YAAY;;;8EA6BvB,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,YAAY,CAAC,CAAC;AAE7D,KAAK,cAAc,GAAG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC;AAE3C,UAAU,SACR,SAAQ,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY;IACpE,EAAE,CAAC,EAAE,cAAc,CAAC;CACrB;AAED,wBAAgB,IAAI,CAAC,EACnB,SAAS,EACT,MAAM,EACN,EAAU,EACV,OAAO,EACP,KAAK,EACL,GAAG,KAAK,EACT,EAAE,SAAS,8FASX"}
@@ -0,0 +1,41 @@
1
+ import { mergeProps } from "@base-ui/react/merge-props";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ import { cva } from "class-variance-authority";
4
+ import { cn } from "../../lib/utils";
5
+ export const textVariants = cva("font-body", {
6
+ variants: {
7
+ variant: {
8
+ default: "text-sm",
9
+ h1: "font-heading text-2xl font-medium",
10
+ h2: "font-heading leading-none font-semibold text-xl",
11
+ paragraph1: "text-base",
12
+ paragraph2: "text-sm text-zinc-600",
13
+ small: "text-sm",
14
+ button: "text-button leading-none font-medium",
15
+ mono: "font-mono text-[13px] leading-none translate-y-[1px]",
16
+ tiny: "text-xs text-zinc-600",
17
+ },
18
+ color: {
19
+ default: "text-foreground",
20
+ primary: "text-primary-foreground",
21
+ secondary: "text-secondary-foreground",
22
+ muted: "text-muted-foreground",
23
+ accent: "text-accent-foreground",
24
+ popover: "text-popover-foreground",
25
+ meta: "text-zinc-400",
26
+ disabled: "text-zinc-400",
27
+ destructive: "text-destructive",
28
+ },
29
+ },
30
+ defaultVariants: {
31
+ variant: "default",
32
+ color: "default",
33
+ },
34
+ });
35
+ export function Text({ className, render, as = "div", variant, color, ...props }) {
36
+ return useRender({
37
+ defaultTagName: as,
38
+ render,
39
+ props: mergeProps({ className: cn(textVariants({ variant, color }), className) }, props),
40
+ });
41
+ }
@@ -0,0 +1,5 @@
1
+ type Breakpoint = "sm" | "md" | "lg" | "xl" | "2xl";
2
+ export declare function useBreakpoint(breakpoint: Breakpoint): boolean;
3
+ export declare function useIsMobile(): boolean;
4
+ export {};
5
+ //# sourceMappingURL=use-breakpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-breakpoint.d.ts","sourceRoot":"","sources":["../../src/hooks/use-breakpoint.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAyBpD,wBAAgB,aAAa,CAAC,UAAU,EAAE,UAAU,WAyBnD;AAED,wBAAgB,WAAW,YAG1B"}
@@ -0,0 +1,45 @@
1
+ import * as React from "react";
2
+ // Fallback to Tailwind defaults if CSS variables aren't available
3
+ const DEFAULT_BREAKPOINTS = {
4
+ sm: 640,
5
+ md: 768,
6
+ lg: 1024,
7
+ xl: 1280,
8
+ "2xl": 1536,
9
+ };
10
+ function getBreakpointValue(breakpoint) {
11
+ if (typeof window === "undefined") {
12
+ return DEFAULT_BREAKPOINTS[breakpoint];
13
+ }
14
+ const cssVarValue = getComputedStyle(document.documentElement)
15
+ .getPropertyValue(`--breakpoint-${breakpoint}`)
16
+ .trim();
17
+ return cssVarValue
18
+ ? parseInt(cssVarValue, 10)
19
+ : DEFAULT_BREAKPOINTS[breakpoint];
20
+ }
21
+ export function useBreakpoint(breakpoint) {
22
+ const [isAtBreakpoint, setIsAtBreakpoint] = React.useState(() => {
23
+ // Initialize synchronously on client side
24
+ if (typeof window === "undefined") {
25
+ return false; // Default to false on server
26
+ }
27
+ const breakpointValue = getBreakpointValue(breakpoint);
28
+ return window.innerWidth >= breakpointValue;
29
+ });
30
+ React.useEffect(() => {
31
+ const breakpointValue = getBreakpointValue(breakpoint);
32
+ const mql = window.matchMedia(`(min-width: ${breakpointValue}px)`);
33
+ const onChange = () => {
34
+ setIsAtBreakpoint(window.innerWidth >= breakpointValue);
35
+ };
36
+ mql.addEventListener("change", onChange);
37
+ setIsAtBreakpoint(window.innerWidth >= breakpointValue);
38
+ return () => mql.removeEventListener("change", onChange);
39
+ }, [breakpoint]);
40
+ return !!isAtBreakpoint;
41
+ }
42
+ export function useIsMobile() {
43
+ const isAboveMd = useBreakpoint("md");
44
+ return !isAboveMd;
45
+ }
@@ -0,0 +1,14 @@
1
+ export declare function useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined, deps?: React.DependencyList): T;
2
+ export interface UseControllableStateProps<T> {
3
+ value?: T;
4
+ defaultValue?: T | (() => T);
5
+ onChange?: (value: T) => void;
6
+ shouldUpdate?: (prev: T, next: T) => boolean;
7
+ }
8
+ /**
9
+ * The `useControllableState` hook returns the state and function that updates the state, just like React.useState does.
10
+ *
11
+ * @see Docs https://v2.chakra-ui.com/docs/hooks/use-controllable#usecontrollablestate
12
+ */
13
+ export declare function useControllableState<T>(props: UseControllableStateProps<T>): [T, React.Dispatch<React.SetStateAction<T>>];
14
+ //# sourceMappingURL=use-controllable-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-controllable-state.d.ts","sourceRoot":"","sources":["../../src/hooks/use-controllable-state.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC9D,QAAQ,EAAE,CAAC,GAAG,SAAS,EACvB,IAAI,GAAE,KAAK,CAAC,cAAmB,KAUhC;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC;IAC1C,KAAK,CAAC,EAAE,CAAC,CAAC;IACV,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAiC7C,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CACzE"}
@@ -0,0 +1,35 @@
1
+ import { useCallback, useEffect, useRef, useState } from "react";
2
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3
+ export function useCallbackRef(callback, deps = []) {
4
+ const callbackRef = useRef(callback);
5
+ useEffect(() => {
6
+ callbackRef.current = callback;
7
+ });
8
+ // eslint-disable-next-line react-hooks/exhaustive-deps
9
+ return useCallback(((...args) => callbackRef.current?.(...args)), deps);
10
+ }
11
+ /**
12
+ * The `useControllableState` hook returns the state and function that updates the state, just like React.useState does.
13
+ *
14
+ * @see Docs https://v2.chakra-ui.com/docs/hooks/use-controllable#usecontrollablestate
15
+ */
16
+ export function useControllableState(props) {
17
+ const { value: valueProp, defaultValue, onChange, shouldUpdate = (prev, next) => prev !== next, } = props;
18
+ const onChangeProp = useCallbackRef(onChange);
19
+ const shouldUpdateProp = useCallbackRef(shouldUpdate);
20
+ const [uncontrolledState, setUncontrolledState] = useState(defaultValue);
21
+ const controlled = valueProp !== undefined;
22
+ const value = controlled ? valueProp : uncontrolledState;
23
+ const setValue = useCallbackRef((next) => {
24
+ const setter = next;
25
+ const nextValue = typeof next === "function" ? setter(value) : next;
26
+ if (!shouldUpdateProp(value, nextValue)) {
27
+ return;
28
+ }
29
+ if (!controlled) {
30
+ setUncontrolledState(nextValue);
31
+ }
32
+ onChangeProp(nextValue);
33
+ }, [controlled, onChangeProp, value, shouldUpdateProp]);
34
+ return [value, setValue];
35
+ }