@contractspec/lib.ui-kit-web 3.7.5 → 3.8.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 (234) hide show
  1. package/README.md +33 -88
  2. package/dist/browser/ui/accordion.js +4 -4
  3. package/dist/browser/ui/alert-dialog.js +9 -9
  4. package/dist/browser/ui/alert.js +4 -4
  5. package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +51 -51
  6. package/dist/browser/ui/atoms/FilterSelect/index.js +51 -51
  7. package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
  8. package/dist/browser/ui/atoms/Pagination/Pagination.js +13 -13
  9. package/dist/browser/ui/atoms/Pagination/index.js +13 -13
  10. package/dist/browser/ui/atoms/SearchInput/SearchInput.js +8 -8
  11. package/dist/browser/ui/atoms/SearchInput/index.js +8 -8
  12. package/dist/browser/ui/avatar.js +1 -1
  13. package/dist/browser/ui/badge.js +3 -3
  14. package/dist/browser/ui/breadcrumb.js +4 -4
  15. package/dist/browser/ui/button.js +5 -5
  16. package/dist/browser/ui/calendar.js +21 -21
  17. package/dist/browser/ui/card.js +2 -2
  18. package/dist/browser/ui/carousel.js +6 -6
  19. package/dist/browser/ui/checkbox.js +2 -2
  20. package/dist/browser/ui/command.js +14 -14
  21. package/dist/browser/ui/confirm-dialog.js +9 -9
  22. package/dist/browser/ui/context-menu.js +10 -10
  23. package/dist/browser/ui/cta.js +5 -5
  24. package/dist/browser/ui/data-table.js +1005 -0
  25. package/dist/browser/ui/data-table.parts.js +463 -0
  26. package/dist/browser/ui/date-picker.js +26 -26
  27. package/dist/browser/ui/date-range-picker.js +24 -24
  28. package/dist/browser/ui/datetime-picker.js +29 -29
  29. package/dist/browser/ui/dialog.js +5 -5
  30. package/dist/browser/ui/drawer.js +5 -5
  31. package/dist/browser/ui/dropdown-menu.js +10 -10
  32. package/dist/browser/ui/empty-state.js +5 -5
  33. package/dist/browser/ui/empty.js +7 -7
  34. package/dist/browser/ui/field.js +12 -12
  35. package/dist/browser/ui/form.js +4 -4
  36. package/dist/browser/ui/hover-card.js +2 -2
  37. package/dist/browser/ui/input-group.js +16 -16
  38. package/dist/browser/ui/input-otp.js +4 -4
  39. package/dist/browser/ui/input.js +1 -1
  40. package/dist/browser/ui/label.js +2 -2
  41. package/dist/browser/ui/loading-button.js +8 -8
  42. package/dist/browser/ui/marketing/FeatureGrid.js +3 -3
  43. package/dist/browser/ui/marketing/Hero.js +7 -7
  44. package/dist/browser/ui/marketing/PricingTable.js +10 -10
  45. package/dist/browser/ui/menubar.js +12 -12
  46. package/dist/browser/ui/molecules/Autocomplete/index.js +26 -26
  47. package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
  48. package/dist/browser/ui/molecules/SearchAndFilter/index.js +62 -62
  49. package/dist/browser/ui/molecules/SkeletonList.js +1 -1
  50. package/dist/browser/ui/nav-layout.js +22 -22
  51. package/dist/browser/ui/navigation-menu.js +7 -7
  52. package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
  53. package/dist/browser/ui/organisms/ListPage/ListPage.js +84 -84
  54. package/dist/browser/ui/page-header.js +4 -4
  55. package/dist/browser/ui/pagination.js +6 -6
  56. package/dist/browser/ui/popover.js +2 -2
  57. package/dist/browser/ui/progress.js +3 -3
  58. package/dist/browser/ui/radio-group.js +3 -3
  59. package/dist/browser/ui/resizable.js +3 -3
  60. package/dist/browser/ui/scroll-area.js +4 -4
  61. package/dist/browser/ui/section.js +1 -1
  62. package/dist/browser/ui/select.js +6 -6
  63. package/dist/browser/ui/separator.js +2 -2
  64. package/dist/browser/ui/sheet.js +5 -5
  65. package/dist/browser/ui/sidebar.js +64 -64
  66. package/dist/browser/ui/skeleton.js +1 -1
  67. package/dist/browser/ui/slider.js +6 -6
  68. package/dist/browser/ui/stack.js +1 -1
  69. package/dist/browser/ui/stat-card-group.js +5 -5
  70. package/dist/browser/ui/stepper.js +2 -2
  71. package/dist/browser/ui/switch.js +3 -3
  72. package/dist/browser/ui/table.js +5 -5
  73. package/dist/browser/ui/tabs.js +3 -3
  74. package/dist/browser/ui/text.js +2 -2
  75. package/dist/browser/ui/textarea.js +1 -1
  76. package/dist/browser/ui/time-picker.js +10 -10
  77. package/dist/browser/ui/toast.js +5 -5
  78. package/dist/browser/ui/toaster.js +5 -5
  79. package/dist/browser/ui/toggle-group.js +7 -7
  80. package/dist/browser/ui/toggle.js +5 -5
  81. package/dist/browser/ui/tooltip.js +3 -3
  82. package/dist/browser/ui/typography.js +14 -14
  83. package/dist/browser/ui/usecases/UseCaseCard.js +8 -8
  84. package/dist/browser/ui/usecases/UserStoryCard.js +3 -3
  85. package/dist/browser/ui/visualization/Visualization.js +439 -0
  86. package/dist/browser/ui/visualization/Visualization.support.js +128 -0
  87. package/dist/browser/ui/visualization/index.js +10 -0
  88. package/dist/ui/accordion.d.ts +2 -2
  89. package/dist/ui/accordion.js +4 -4
  90. package/dist/ui/alert-dialog.d.ts +2 -2
  91. package/dist/ui/alert-dialog.js +9 -9
  92. package/dist/ui/alert.d.ts +2 -2
  93. package/dist/ui/alert.js +4 -4
  94. package/dist/ui/atoms/FilterSelect/FilterSelect.js +51 -51
  95. package/dist/ui/atoms/FilterSelect/index.d.ts +1 -1
  96. package/dist/ui/atoms/FilterSelect/index.js +51 -51
  97. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
  98. package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -1
  99. package/dist/ui/atoms/Pagination/Pagination.js +13 -13
  100. package/dist/ui/atoms/Pagination/index.js +13 -13
  101. package/dist/ui/atoms/SearchInput/SearchInput.js +8 -8
  102. package/dist/ui/atoms/SearchInput/index.js +8 -8
  103. package/dist/ui/avatar.d.ts +2 -2
  104. package/dist/ui/avatar.js +1 -1
  105. package/dist/ui/badge.d.ts +1 -1
  106. package/dist/ui/badge.js +3 -3
  107. package/dist/ui/breadcrumb.d.ts +1 -1
  108. package/dist/ui/breadcrumb.js +4 -4
  109. package/dist/ui/button.d.ts +1 -1
  110. package/dist/ui/button.js +5 -5
  111. package/dist/ui/calendar.js +21 -21
  112. package/dist/ui/card.d.ts +1 -1
  113. package/dist/ui/card.js +2 -2
  114. package/dist/ui/carousel.d.ts +2 -2
  115. package/dist/ui/carousel.js +6 -6
  116. package/dist/ui/checkbox.d.ts +1 -1
  117. package/dist/ui/checkbox.js +2 -2
  118. package/dist/ui/collapsible.d.ts +1 -1
  119. package/dist/ui/command.d.ts +2 -2
  120. package/dist/ui/command.js +14 -14
  121. package/dist/ui/confirm-dialog.js +9 -9
  122. package/dist/ui/context-menu.d.ts +2 -2
  123. package/dist/ui/context-menu.js +10 -10
  124. package/dist/ui/cta.js +5 -5
  125. package/dist/ui/data-table.d.ts +12 -0
  126. package/dist/ui/data-table.js +1000 -0
  127. package/dist/ui/data-table.parts.d.ts +14 -0
  128. package/dist/ui/data-table.parts.js +458 -0
  129. package/dist/ui/date-picker.js +26 -26
  130. package/dist/ui/date-range-picker.js +24 -24
  131. package/dist/ui/datetime-picker.js +29 -29
  132. package/dist/ui/dialog.d.ts +1 -1
  133. package/dist/ui/dialog.js +5 -5
  134. package/dist/ui/drawer.d.ts +1 -1
  135. package/dist/ui/drawer.js +5 -5
  136. package/dist/ui/dropdown-menu.d.ts +2 -2
  137. package/dist/ui/dropdown-menu.js +10 -10
  138. package/dist/ui/empty-state.d.ts +1 -1
  139. package/dist/ui/empty-state.js +5 -5
  140. package/dist/ui/empty.d.ts +2 -2
  141. package/dist/ui/empty.js +7 -7
  142. package/dist/ui/field.d.ts +2 -2
  143. package/dist/ui/field.js +12 -12
  144. package/dist/ui/form.d.ts +3 -3
  145. package/dist/ui/form.js +4 -4
  146. package/dist/ui/hover-card.d.ts +2 -2
  147. package/dist/ui/hover-card.js +2 -2
  148. package/dist/ui/input-group.d.ts +2 -2
  149. package/dist/ui/input-group.js +16 -16
  150. package/dist/ui/input-otp.d.ts +2 -2
  151. package/dist/ui/input-otp.js +4 -4
  152. package/dist/ui/input.js +1 -1
  153. package/dist/ui/label.d.ts +1 -1
  154. package/dist/ui/label.js +2 -2
  155. package/dist/ui/loading-button.js +8 -8
  156. package/dist/ui/map/index.d.ts +1 -1
  157. package/dist/ui/marketing/FeatureGrid.js +3 -3
  158. package/dist/ui/marketing/Hero.js +7 -7
  159. package/dist/ui/marketing/PricingTable.js +10 -10
  160. package/dist/ui/marketing/index.d.ts +1 -1
  161. package/dist/ui/menubar.d.ts +2 -2
  162. package/dist/ui/menubar.js +12 -12
  163. package/dist/ui/molecules/Autocomplete/index.js +26 -26
  164. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
  165. package/dist/ui/molecules/SearchAndFilter/index.js +62 -62
  166. package/dist/ui/molecules/SkeletonList.js +1 -1
  167. package/dist/ui/nav-layout.d.ts +1 -1
  168. package/dist/ui/nav-layout.js +22 -22
  169. package/dist/ui/navigation-menu.d.ts +2 -2
  170. package/dist/ui/navigation-menu.js +7 -7
  171. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
  172. package/dist/ui/organisms/ErrorBoundary/index.d.ts +1 -1
  173. package/dist/ui/organisms/ListPage/ListPage.js +84 -84
  174. package/dist/ui/organisms/ListPage/index.d.ts +1 -1
  175. package/dist/ui/organisms/ListPage/types.d.ts +1 -1
  176. package/dist/ui/page-header.d.ts +1 -1
  177. package/dist/ui/page-header.js +4 -4
  178. package/dist/ui/pagination.js +6 -6
  179. package/dist/ui/popover.d.ts +2 -2
  180. package/dist/ui/popover.js +2 -2
  181. package/dist/ui/progress.d.ts +1 -1
  182. package/dist/ui/progress.js +3 -3
  183. package/dist/ui/radio-group.d.ts +1 -1
  184. package/dist/ui/radio-group.js +3 -3
  185. package/dist/ui/resizable.d.ts +2 -2
  186. package/dist/ui/resizable.js +3 -3
  187. package/dist/ui/scroll-area.d.ts +1 -1
  188. package/dist/ui/scroll-area.js +4 -4
  189. package/dist/ui/section.d.ts +1 -1
  190. package/dist/ui/section.js +1 -1
  191. package/dist/ui/select.d.ts +1 -1
  192. package/dist/ui/select.js +6 -6
  193. package/dist/ui/separator.d.ts +1 -1
  194. package/dist/ui/separator.js +2 -2
  195. package/dist/ui/sheet.d.ts +2 -2
  196. package/dist/ui/sheet.js +5 -5
  197. package/dist/ui/sidebar.d.ts +1 -1
  198. package/dist/ui/sidebar.js +64 -64
  199. package/dist/ui/skeleton.js +1 -1
  200. package/dist/ui/slider.d.ts +1 -1
  201. package/dist/ui/slider.js +6 -6
  202. package/dist/ui/stack.d.ts +4 -4
  203. package/dist/ui/stack.js +1 -1
  204. package/dist/ui/stat-card-group.js +5 -5
  205. package/dist/ui/stepper.js +2 -2
  206. package/dist/ui/switch.d.ts +1 -1
  207. package/dist/ui/switch.js +3 -3
  208. package/dist/ui/table.d.ts +1 -1
  209. package/dist/ui/table.js +5 -5
  210. package/dist/ui/tabs.d.ts +2 -2
  211. package/dist/ui/tabs.js +3 -3
  212. package/dist/ui/text.js +2 -2
  213. package/dist/ui/textarea.js +1 -1
  214. package/dist/ui/time-picker.js +10 -10
  215. package/dist/ui/toast.d.ts +2 -2
  216. package/dist/ui/toast.js +5 -5
  217. package/dist/ui/toaster.js +5 -5
  218. package/dist/ui/toggle-group.d.ts +1 -1
  219. package/dist/ui/toggle-group.js +7 -7
  220. package/dist/ui/toggle.d.ts +1 -1
  221. package/dist/ui/toggle.js +5 -5
  222. package/dist/ui/tooltip.d.ts +2 -2
  223. package/dist/ui/tooltip.js +3 -3
  224. package/dist/ui/typography.js +14 -14
  225. package/dist/ui/use-toast.d.ts +1 -1
  226. package/dist/ui/usecases/UseCaseCard.js +8 -8
  227. package/dist/ui/usecases/UserStoryCard.js +3 -3
  228. package/dist/ui/visualization/Visualization.d.ts +9 -0
  229. package/dist/ui/visualization/Visualization.js +434 -0
  230. package/dist/ui/visualization/Visualization.support.d.ts +15 -0
  231. package/dist/ui/visualization/Visualization.support.js +123 -0
  232. package/dist/ui/visualization/index.d.ts +1 -0
  233. package/dist/ui/visualization/index.js +5 -0
  234. package/package.json +75 -12
@@ -2,23 +2,23 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/button.tsx
5
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
5
6
  import { Slot } from "@radix-ui/react-slot";
6
7
  import { cva } from "class-variance-authority";
7
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
8
8
  import { jsxDEV } from "react/jsx-dev-runtime";
9
- var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
9
+ var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 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", {
10
10
  variants: {
11
11
  variant: {
12
12
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
14
- outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
13
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
14
+ outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
15
15
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
16
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
17
  link: "text-primary underline-offset-4 hover:underline"
18
18
  },
19
19
  size: {
20
20
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
21
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
21
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
22
22
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
23
  icon: "size-9"
24
24
  }
@@ -64,14 +64,26 @@ function Input({ className, type, ...props }) {
64
64
  return /* @__PURE__ */ jsxDEV2("input", {
65
65
  type,
66
66
  "data-slot": "input",
67
- className: cn3("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className),
67
+ className: cn3("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40", className),
68
+ ...props
69
+ }, undefined, false, undefined, this);
70
+ }
71
+ // ui/skeleton.tsx
72
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
73
+ function Skeleton({
74
+ className,
75
+ ...props
76
+ }) {
77
+ return /* @__PURE__ */ jsxDEV3("div", {
78
+ "data-slot": "skeleton",
79
+ className: cn2("animate-pulse rounded-md bg-accent", className),
68
80
  ...props
69
81
  }, undefined, false, undefined, this);
70
82
  }
71
83
  // ui/separator.tsx
72
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
73
84
  import { cn as cn4 } from "@contractspec/lib.ui-kit-core/utils";
74
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
85
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
86
+ import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
75
87
  "use client";
76
88
  function Separator({
77
89
  className,
@@ -79,30 +91,18 @@ function Separator({
79
91
  decorative = true,
80
92
  ...props
81
93
  }) {
82
- return /* @__PURE__ */ jsxDEV3(SeparatorPrimitive.Root, {
94
+ return /* @__PURE__ */ jsxDEV4(SeparatorPrimitive.Root, {
83
95
  "data-slot": "separator",
84
96
  decorative,
85
97
  orientation,
86
- className: cn4("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className),
87
- ...props
88
- }, undefined, false, undefined, this);
89
- }
90
- // ui/skeleton.tsx
91
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
92
- function Skeleton({
93
- className,
94
- ...props
95
- }) {
96
- return /* @__PURE__ */ jsxDEV4("div", {
97
- "data-slot": "skeleton",
98
- className: cn2("bg-accent animate-pulse rounded-md", className),
98
+ className: cn4("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px", className),
99
99
  ...props
100
100
  }, undefined, false, undefined, this);
101
101
  }
102
102
  // ui/sheet.tsx
103
+ import { cn as cn5 } from "@contractspec/lib.ui-kit-core/utils";
103
104
  import * as SheetPrimitive from "@radix-ui/react-dialog";
104
105
  import { XIcon } from "lucide-react";
105
- import { cn as cn5 } from "@contractspec/lib.ui-kit-core/utils";
106
106
  import { jsxDEV as jsxDEV5 } from "react/jsx-dev-runtime";
107
107
  "use client";
108
108
  function Sheet({ ...props }) {
@@ -141,7 +141,7 @@ function SheetOverlay({
141
141
  }) {
142
142
  return /* @__PURE__ */ jsxDEV5(SheetPrimitive.Overlay, {
143
143
  "data-slot": "sheet-overlay",
144
- className: cn5("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className),
144
+ className: cn5("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in", className),
145
145
  ...props
146
146
  }, undefined, false, undefined, this);
147
147
  }
@@ -156,12 +156,12 @@ function SheetContent({
156
156
  /* @__PURE__ */ jsxDEV5(SheetOverlay, {}, undefined, false, undefined, this),
157
157
  /* @__PURE__ */ jsxDEV5(SheetPrimitive.Content, {
158
158
  "data-slot": "sheet-content",
159
- className: cn5("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
159
+ className: cn5("fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=open]:animate-in data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
160
160
  ...props,
161
161
  children: [
162
162
  children,
163
163
  /* @__PURE__ */ jsxDEV5(SheetPrimitive.Close, {
164
- className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
164
+ className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary",
165
165
  children: [
166
166
  /* @__PURE__ */ jsxDEV5(XIcon, {
167
167
  className: "size-4"
@@ -203,7 +203,7 @@ function SheetTitle({
203
203
  }) {
204
204
  return /* @__PURE__ */ jsxDEV5(SheetPrimitive.Title, {
205
205
  "data-slot": "sheet-title",
206
- className: cn5("text-foreground font-semibold", className),
206
+ className: cn5("font-semibold text-foreground", className),
207
207
  ...props
208
208
  }, undefined, false, undefined, this);
209
209
  }
@@ -217,26 +217,9 @@ function SheetDescription({
217
217
  ...props
218
218
  }, undefined, false, undefined, this);
219
219
  }
220
- // ui/use-mobile.tsx
221
- import * as React from "react";
222
- var MOBILE_BREAKPOINT = 640;
223
- function useIsMobile() {
224
- const [isMobile, setIsMobile] = React.useState(undefined);
225
- React.useEffect(() => {
226
- const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
227
- const onChange = () => {
228
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
229
- };
230
- mql.addEventListener("change", onChange);
231
- setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
232
- return () => mql.removeEventListener("change", onChange);
233
- }, []);
234
- return !!isMobile;
235
- }
236
-
237
220
  // ui/tooltip.tsx
238
- import * as TooltipPrimitive from "@radix-ui/react-tooltip";
239
221
  import { cn as cn6 } from "@contractspec/lib.ui-kit-core/utils";
222
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
240
223
  import { jsxDEV as jsxDEV6 } from "react/jsx-dev-runtime";
241
224
  "use client";
242
225
  function TooltipProvider({
@@ -277,23 +260,40 @@ function TooltipContent({
277
260
  children: /* @__PURE__ */ jsxDEV6(TooltipPrimitive.Content, {
278
261
  "data-slot": "tooltip-content",
279
262
  sideOffset,
280
- className: cn6("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=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 origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance", className),
263
+ className: cn6("fade-in-0 zoom-in-95 data-[state=closed]:fade-out-0 data-[state=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 origin-(--radix-tooltip-content-transform-origin) animate-in text-balance rounded-md bg-foreground px-3 py-1.5 text-background text-xs data-[state=closed]:animate-out", className),
281
264
  ...props,
282
265
  children: [
283
266
  children,
284
267
  /* @__PURE__ */ jsxDEV6(TooltipPrimitive.Arrow, {
285
- className: "bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px]"
268
+ className: "z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground"
286
269
  }, undefined, false, undefined, this)
287
270
  ]
288
271
  }, undefined, true, undefined, this)
289
272
  }, undefined, false, undefined, this);
290
273
  }
274
+ // ui/use-mobile.tsx
275
+ import * as React from "react";
276
+ var MOBILE_BREAKPOINT = 640;
277
+ function useIsMobile() {
278
+ const [isMobile, setIsMobile] = React.useState(undefined);
279
+ React.useEffect(() => {
280
+ const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`);
281
+ const onChange = () => {
282
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
283
+ };
284
+ mql.addEventListener("change", onChange);
285
+ setIsMobile(window.innerWidth < MOBILE_BREAKPOINT);
286
+ return () => mql.removeEventListener("change", onChange);
287
+ }, []);
288
+ return !!isMobile;
289
+ }
290
+
291
291
  // ui/sidebar.tsx
292
- import * as React2 from "react";
292
+ import { cn as cn7 } from "@contractspec/lib.ui-kit-core/utils";
293
293
  import { Slot as Slot2 } from "@radix-ui/react-slot";
294
294
  import { cva as cva2 } from "class-variance-authority";
295
295
  import { PanelLeftIcon } from "lucide-react";
296
- import { cn as cn7 } from "@contractspec/lib.ui-kit-core/utils";
296
+ import * as React2 from "react";
297
297
  import { jsxDEV as jsxDEV7 } from "react/jsx-dev-runtime";
298
298
  "use client";
299
299
  var SIDEBAR_COOKIE_NAME = "sidebar_state";
@@ -366,7 +366,7 @@ function SidebarProvider({
366
366
  "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
367
367
  ...style
368
368
  },
369
- className: cn7("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", className),
369
+ className: cn7("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar", className),
370
370
  ...props,
371
371
  children
372
372
  }, undefined, false, undefined, this)
@@ -385,7 +385,7 @@ function Sidebar({
385
385
  if (collapsible === "none") {
386
386
  return /* @__PURE__ */ jsxDEV7("div", {
387
387
  "data-slot": "sidebar",
388
- className: cn7("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className),
388
+ className: cn7("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
389
389
  ...props,
390
390
  children
391
391
  }, undefined, false, undefined, this);
@@ -399,7 +399,7 @@ function Sidebar({
399
399
  "data-sidebar": "sidebar",
400
400
  "data-slot": "sidebar",
401
401
  "data-mobile": "true",
402
- className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
402
+ className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
403
403
  style: {
404
404
  "--sidebar-width": SIDEBAR_WIDTH_MOBILE
405
405
  },
@@ -425,7 +425,7 @@ function Sidebar({
425
425
  }, undefined, false, undefined, this);
426
426
  }
427
427
  return /* @__PURE__ */ jsxDEV7("div", {
428
- className: "group peer text-sidebar-foreground hidden md:block",
428
+ className: "group peer hidden text-sidebar-foreground md:block",
429
429
  "data-state": state,
430
430
  "data-collapsible": state === "collapsed" ? collapsible : "",
431
431
  "data-variant": variant,
@@ -443,7 +443,7 @@ function Sidebar({
443
443
  children: /* @__PURE__ */ jsxDEV7("div", {
444
444
  "data-sidebar": "sidebar",
445
445
  "data-slot": "sidebar-inner",
446
- className: "bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm",
446
+ className: "flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",
447
447
  children
448
448
  }, undefined, false, undefined, this)
449
449
  }, undefined, false, undefined, this)
@@ -488,7 +488,7 @@ function SidebarRail({
488
488
  tabIndex: -1,
489
489
  onClick: toggleSidebar,
490
490
  title: "Toggle Sidebar",
491
- className: cn7("hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className),
491
+ className: cn7("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "group-data-[collapsible=offcanvas]:translate-x-0 hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className),
492
492
  ...props
493
493
  }, undefined, false, undefined, this);
494
494
  }
@@ -498,7 +498,7 @@ function SidebarInset({
498
498
  }) {
499
499
  return /* @__PURE__ */ jsxDEV7("main", {
500
500
  "data-slot": "sidebar-inset",
501
- className: cn7("bg-background relative flex w-full flex-1 flex-col", "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2", className),
501
+ className: cn7("relative flex w-full flex-1 flex-col bg-background", "md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm", className),
502
502
  ...props
503
503
  }, undefined, false, undefined, this);
504
504
  }
@@ -509,7 +509,7 @@ function SidebarInput({
509
509
  return /* @__PURE__ */ jsxDEV7(Input, {
510
510
  "data-slot": "sidebar-input",
511
511
  "data-sidebar": "input",
512
- className: cn7("bg-background h-8 w-full shadow-none", className),
512
+ className: cn7("h-8 w-full bg-background shadow-none", className),
513
513
  ...props
514
514
  }, undefined, false, undefined, this);
515
515
  }
@@ -542,7 +542,7 @@ function SidebarSeparator({
542
542
  return /* @__PURE__ */ jsxDEV7(Separator, {
543
543
  "data-slot": "sidebar-separator",
544
544
  "data-sidebar": "separator",
545
- className: cn7("bg-sidebar-border mx-2 w-auto", className),
545
+ className: cn7("mx-2 w-auto bg-sidebar-border", className),
546
546
  ...props
547
547
  }, undefined, false, undefined, this);
548
548
  }
@@ -577,7 +577,7 @@ function SidebarGroupLabel({
577
577
  return /* @__PURE__ */ jsxDEV7(Comp, {
578
578
  "data-slot": "sidebar-group-label",
579
579
  "data-sidebar": "group-label",
580
- className: cn7("text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className),
580
+ className: cn7("flex h-8 shrink-0 items-center rounded-md px-2 font-medium text-sidebar-foreground/70 text-xs outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className),
581
581
  ...props
582
582
  }, undefined, false, undefined, this);
583
583
  }
@@ -590,7 +590,7 @@ function SidebarGroupAction({
590
590
  return /* @__PURE__ */ jsxDEV7(Comp, {
591
591
  "data-slot": "sidebar-group-action",
592
592
  "data-sidebar": "group-action",
593
- className: cn7("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", className),
593
+ className: cn7("absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", className),
594
594
  ...props
595
595
  }, undefined, false, undefined, this);
596
596
  }
@@ -696,7 +696,7 @@ function SidebarMenuAction({
696
696
  return /* @__PURE__ */ jsxDEV7(Comp, {
697
697
  "data-slot": "sidebar-menu-action",
698
698
  "data-sidebar": "menu-action",
699
- className: cn7("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover && "peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0", className),
699
+ className: cn7("absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover && "group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0", className),
700
700
  ...props
701
701
  }, undefined, false, undefined, this);
702
702
  }
@@ -707,7 +707,7 @@ function SidebarMenuBadge({
707
707
  return /* @__PURE__ */ jsxDEV7("div", {
708
708
  "data-slot": "sidebar-menu-badge",
709
709
  "data-sidebar": "menu-badge",
710
- className: cn7("text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className),
710
+ className: cn7("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 font-medium text-sidebar-foreground text-xs tabular-nums", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className),
711
711
  ...props
712
712
  }, undefined, false, undefined, this);
713
713
  }
@@ -746,7 +746,7 @@ function SidebarMenuSub({
746
746
  return /* @__PURE__ */ jsxDEV7("ul", {
747
747
  "data-slot": "sidebar-menu-sub",
748
748
  "data-sidebar": "menu-sub",
749
- className: cn7("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", className),
749
+ className: cn7("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-sidebar-border border-l px-2.5 py-0.5", "group-data-[collapsible=icon]:hidden", className),
750
750
  ...props
751
751
  }, undefined, false, undefined, this);
752
752
  }
@@ -774,7 +774,7 @@ function SidebarMenuSubButton({
774
774
  "data-sidebar": "menu-sub-button",
775
775
  "data-size": size,
776
776
  "data-active": isActive,
777
- className: cn7("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className),
777
+ className: cn7("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className),
778
778
  ...props
779
779
  }, undefined, false, undefined, this);
780
780
  }
@@ -16,7 +16,7 @@ function Skeleton({
16
16
  }) {
17
17
  return /* @__PURE__ */ jsxDEV("div", {
18
18
  "data-slot": "skeleton",
19
- className: cn("bg-accent animate-pulse rounded-md", className),
19
+ className: cn("animate-pulse rounded-md bg-accent", className),
20
20
  ...props
21
21
  }, undefined, false, undefined, this);
22
22
  }
@@ -1,4 +1,4 @@
1
- import * as React from 'react';
2
1
  import * as SliderPrimitive from '@radix-ui/react-slider';
2
+ import * as React from 'react';
3
3
  declare function Slider({ className, defaultValue, value, min, max, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
4
  export { Slider };
package/dist/ui/slider.js CHANGED
@@ -2,9 +2,9 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/slider.tsx
5
- import * as React from "react";
6
- import * as SliderPrimitive from "@radix-ui/react-slider";
7
5
  import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import * as SliderPrimitive from "@radix-ui/react-slider";
7
+ import * as React from "react";
8
8
  import { jsxDEV } from "react/jsx-dev-runtime";
9
9
  "use client";
10
10
  function Slider({
@@ -22,20 +22,20 @@ function Slider({
22
22
  value,
23
23
  min,
24
24
  max,
25
- className: cn("relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", className),
25
+ className: cn("relative flex w-full touch-none select-none items-center data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col data-disabled:opacity-50", className),
26
26
  ...props,
27
27
  children: [
28
28
  /* @__PURE__ */ jsxDEV(SliderPrimitive.Track, {
29
29
  "data-slot": "slider-track",
30
- className: cn("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),
30
+ className: cn("relative grow overflow-hidden rounded-full bg-muted data-[orientation=horizontal]:h-1.5 data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-1.5"),
31
31
  children: /* @__PURE__ */ jsxDEV(SliderPrimitive.Range, {
32
32
  "data-slot": "slider-range",
33
- className: cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
33
+ className: cn("absolute bg-primary data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
34
34
  }, undefined, false, undefined, this)
35
35
  }, undefined, false, undefined, this),
36
36
  Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsxDEV(SliderPrimitive.Thumb, {
37
37
  "data-slot": "slider-thumb",
38
- className: "border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-2xs transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
38
+ className: "block size-4 shrink-0 rounded-full border border-primary bg-background shadow-2xs ring-ring/50 transition-[color,box-shadow] hover:ring-4 focus-visible:outline-hidden focus-visible:ring-4 disabled:pointer-events-none disabled:opacity-50"
39
39
  }, index, false, undefined, this))
40
40
  ]
41
41
  }, undefined, true, undefined, this);
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import { type VariantProps } from 'class-variance-authority';
2
+ import * as React from 'react';
3
3
  declare const vStackVariants: (props?: ({
4
4
  gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
5
5
  align?: "center" | "end" | "start" | "stretch" | null | undefined;
@@ -12,7 +12,7 @@ type VStackProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof vS
12
12
  declare function VStack({ className, gap, align, justify, as, ref, ...props }: VStackProps): import("react/jsx-runtime").JSX.Element;
13
13
  declare const hStackVariants: (props?: ({
14
14
  gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
15
- align?: "center" | "end" | "start" | "stretch" | "baseline" | null | undefined;
15
+ align?: "center" | "end" | "start" | "baseline" | "stretch" | null | undefined;
16
16
  justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
17
17
  wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
18
18
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -23,7 +23,7 @@ type HStackProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof hS
23
23
  declare function HStack({ className, gap, align, justify, wrap, as, ref, ...props }: HStackProps): import("react/jsx-runtime").JSX.Element;
24
24
  declare const boxVariants: (props?: ({
25
25
  gap?: "none" | "sm" | "lg" | "xs" | "md" | "xl" | "2xl" | null | undefined;
26
- align?: "center" | "end" | "start" | "stretch" | "baseline" | null | undefined;
26
+ align?: "center" | "end" | "start" | "baseline" | "stretch" | null | undefined;
27
27
  justify?: "center" | "end" | "start" | "between" | "around" | "evenly" | null | undefined;
28
28
  wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
29
29
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -32,4 +32,4 @@ type BoxProps = React.HTMLAttributes<HTMLDivElement> & VariantProps<typeof boxVa
32
32
  ref?: React.Ref<HTMLDivElement>;
33
33
  };
34
34
  declare function Box({ className, gap, align, justify, wrap, as, ref, ...props }: BoxProps): import("react/jsx-runtime").JSX.Element;
35
- export { VStack, HStack, vStackVariants, hStackVariants, boxVariants, Box };
35
+ export { Box, boxVariants, HStack, hStackVariants, VStack, vStackVariants };
package/dist/ui/stack.js CHANGED
@@ -2,8 +2,8 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/stack.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import { cva } from "class-variance-authority";
7
7
  import { jsxDEV } from "react/jsx-dev-runtime";
8
8
  var vStackVariants = cva("flex flex-col", {
9
9
  variants: {
@@ -7,7 +7,7 @@ import { jsxDEV } from "react/jsx-dev-runtime";
7
7
  function Card({ className, ...props }) {
8
8
  return /* @__PURE__ */ jsxDEV("div", {
9
9
  "data-slot": "card",
10
- className: cn("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-2xs", className),
10
+ className: cn("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-2xs", className),
11
11
  ...props
12
12
  }, undefined, false, undefined, this);
13
13
  }
@@ -27,7 +27,7 @@ function CardTitle({
27
27
  }) {
28
28
  return /* @__PURE__ */ jsxDEV("div", {
29
29
  "data-slot": "card-title",
30
- className: cn("leading-none font-semibold", className),
30
+ className: cn("font-semibold leading-none", className),
31
31
  ...props
32
32
  }, undefined, false, undefined, this);
33
33
  }
@@ -72,8 +72,8 @@ function CardFooter({
72
72
  }, undefined, false, undefined, this);
73
73
  }
74
74
  // ui/stack.tsx
75
- import { cva } from "class-variance-authority";
76
75
  import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
76
+ import { cva } from "class-variance-authority";
77
77
  import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
78
78
  var vStackVariants = cva("flex flex-col", {
79
79
  variants: {
@@ -253,7 +253,7 @@ function StatCardGroup({
253
253
  className
254
254
  }) {
255
255
  return /* @__PURE__ */ jsxDEV3(HStack, {
256
- className: className + " w-full flex-wrap gap-3",
256
+ className: className + "w-full flex-wrap gap-3",
257
257
  children: items.map((it, idx) => /* @__PURE__ */ jsxDEV3(Card, {
258
258
  className: "border-none shadow-2xs",
259
259
  children: /* @__PURE__ */ jsxDEV3(CardContent, {
@@ -266,7 +266,7 @@ function StatCardGroup({
266
266
  children: it.label
267
267
  }, undefined, false, undefined, this),
268
268
  /* @__PURE__ */ jsxDEV3("div", {
269
- className: "text-xl font-semibold",
269
+ className: "font-semibold text-xl",
270
270
  children: it.value
271
271
  }, undefined, false, undefined, this)
272
272
  ]
@@ -2,8 +2,8 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/stack.tsx
5
- import { cva } from "class-variance-authority";
6
5
  import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import { cva } from "class-variance-authority";
7
7
  import { jsxDEV } from "react/jsx-dev-runtime";
8
8
  var vStackVariants = cva("flex flex-col", {
9
9
  variants: {
@@ -166,8 +166,8 @@ function Box({
166
166
  }, undefined, false, undefined, this);
167
167
  }
168
168
  // ui/stepper.tsx
169
- import { cva as cva2 } from "class-variance-authority";
170
169
  import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
170
+ import { cva as cva2 } from "class-variance-authority";
171
171
  import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
172
172
  var dotVariants = cva2("h-2 w-2 rounded-full", {
173
173
  variants: {
@@ -1,5 +1,5 @@
1
- import * as React from 'react';
2
1
  import * as SwitchPrimitive from '@radix-ui/react-switch';
2
+ import * as React from 'react';
3
3
  declare function Switch({ className, thumbClassName, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root> & {
4
4
  thumbClassName?: string;
5
5
  }): import("react/jsx-runtime").JSX.Element;
package/dist/ui/switch.js CHANGED
@@ -2,8 +2,8 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/switch.tsx
5
- import * as SwitchPrimitive from "@radix-ui/react-switch";
6
5
  import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import * as SwitchPrimitive from "@radix-ui/react-switch";
7
7
  import { jsxDEV } from "react/jsx-dev-runtime";
8
8
  "use client";
9
9
  function Switch({
@@ -13,11 +13,11 @@ function Switch({
13
13
  }) {
14
14
  return /* @__PURE__ */ jsxDEV(SwitchPrimitive.Root, {
15
15
  "data-slot": "switch",
16
- className: cn("peer focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-2xs outline-hidden transition-all focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50", className),
16
+ className: cn("peer inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-2xs outline-hidden transition-all focus-visible:border-ring 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 dark:data-[state=unchecked]:bg-input/80", className),
17
17
  ...props,
18
18
  children: /* @__PURE__ */ jsxDEV(SwitchPrimitive.Thumb, {
19
19
  "data-slot": "switch-thumb",
20
- className: cn("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0", thumbClassName)
20
+ className: cn("pointer-events-none block size-4 rounded-full bg-background ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground", thumbClassName)
21
21
  }, undefined, false, undefined, this)
22
22
  }, undefined, false, undefined, this);
23
23
  }
@@ -7,4 +7,4 @@ declare function TableRow({ className, ...props }: React.ComponentPropsWithoutRe
7
7
  declare function TableHead({ className, ...props }: React.ComponentPropsWithoutRef<'th'>): import("react/jsx-runtime").JSX.Element;
8
8
  declare function TableCell({ className, ...props }: React.ComponentPropsWithoutRef<'td'>): import("react/jsx-runtime").JSX.Element;
9
9
  declare function TableCaption({ className, ...props }: React.ComponentPropsWithoutRef<'caption'>): import("react/jsx-runtime").JSX.Element;
10
- export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption, };
10
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, };
package/dist/ui/table.js CHANGED
@@ -45,7 +45,7 @@ function TableFooter({
45
45
  }) {
46
46
  return /* @__PURE__ */ jsxDEV("tfoot", {
47
47
  "data-slot": "table-footer",
48
- className: cn("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0", className),
48
+ className: cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className),
49
49
  ...props
50
50
  }, undefined, false, undefined, this);
51
51
  }
@@ -55,7 +55,7 @@ function TableRow({
55
55
  }) {
56
56
  return /* @__PURE__ */ jsxDEV("tr", {
57
57
  "data-slot": "table-row",
58
- className: cn("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors", className),
58
+ className: cn("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted", className),
59
59
  ...props
60
60
  }, undefined, false, undefined, this);
61
61
  }
@@ -65,7 +65,7 @@ function TableHead({
65
65
  }) {
66
66
  return /* @__PURE__ */ jsxDEV("th", {
67
67
  "data-slot": "table-head",
68
- className: cn("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
68
+ className: cn("h-10 whitespace-nowrap px-2 text-left align-middle font-medium text-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
69
69
  ...props
70
70
  }, undefined, false, undefined, this);
71
71
  }
@@ -75,7 +75,7 @@ function TableCell({
75
75
  }) {
76
76
  return /* @__PURE__ */ jsxDEV("td", {
77
77
  "data-slot": "table-cell",
78
- className: cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
78
+ className: cn("whitespace-nowrap p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]", className),
79
79
  ...props
80
80
  }, undefined, false, undefined, this);
81
81
  }
@@ -85,7 +85,7 @@ function TableCaption({
85
85
  }) {
86
86
  return /* @__PURE__ */ jsxDEV("caption", {
87
87
  "data-slot": "table-caption",
88
- className: cn("text-muted-foreground mt-4 text-sm", className),
88
+ className: cn("mt-4 text-muted-foreground text-sm", className),
89
89
  ...props
90
90
  }, undefined, false, undefined, this);
91
91
  }
package/dist/ui/tabs.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import * as React from 'react';
2
1
  import * as TabsPrimitive from '@radix-ui/react-tabs';
2
+ import * as React from 'react';
3
3
  declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
4
  declare function TabsList({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
5
5
  declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
6
  declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
- export { Tabs, TabsList, TabsTrigger, TabsContent };
7
+ export { Tabs, TabsContent, TabsList, TabsTrigger };