@contractspec/lib.ui-kit-web 3.7.6 → 3.9.2

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 +1009 -0
  25. package/dist/browser/ui/data-table.parts.js +467 -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 +447 -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 +1004 -0
  127. package/dist/ui/data-table.parts.d.ts +14 -0
  128. package/dist/ui/data-table.parts.js +462 -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 +442 -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
@@ -6,16 +6,31 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
6
6
  throw Error('Dynamic require of "' + x + '" is not supported');
7
7
  });
8
8
 
9
+ // ui/label.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
11
+ import * as LabelPrimitive from "@radix-ui/react-label";
12
+ import { jsxDEV } from "react/jsx-dev-runtime";
13
+ "use client";
14
+ function Label({
15
+ className,
16
+ ...props
17
+ }) {
18
+ return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
19
+ "data-slot": "label",
20
+ className: cn("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50", className),
21
+ ...props
22
+ }, undefined, false, undefined, this);
23
+ }
9
24
  // ui/select.tsx
25
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
10
26
  import * as SelectPrimitive from "@radix-ui/react-select";
11
27
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
- import { jsxDEV } from "react/jsx-dev-runtime";
28
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
14
29
  "use client";
15
30
  function Select({
16
31
  ...props
17
32
  }) {
18
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Root, {
33
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Root, {
19
34
  "data-slot": "select",
20
35
  ...props
21
36
  }, undefined, false, undefined, this);
@@ -23,7 +38,7 @@ function Select({
23
38
  function SelectGroup({
24
39
  ...props
25
40
  }) {
26
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Group, {
41
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Group, {
27
42
  "data-slot": "select-group",
28
43
  ...props
29
44
  }, undefined, false, undefined, this);
@@ -31,7 +46,7 @@ function SelectGroup({
31
46
  function SelectValue({
32
47
  ...props
33
48
  }) {
34
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Value, {
49
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Value, {
35
50
  "data-slot": "select-value",
36
51
  ...props
37
52
  }, undefined, false, undefined, this);
@@ -42,16 +57,16 @@ function SelectTrigger({
42
57
  children,
43
58
  ...props
44
59
  }) {
45
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Trigger, {
60
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
46
61
  "data-slot": "select-trigger",
47
62
  "data-size": size,
48
- className: cn("aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border-input focus-visible:border-ring focus-visible:ring-ring/50 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-2xs outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
63
+ className: cn2("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-2xs outline-hidden transition-[color,box-shadow] 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-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", className),
49
64
  ...props,
50
65
  children: [
51
66
  children,
52
- /* @__PURE__ */ jsxDEV(SelectPrimitive.Icon, {
67
+ /* @__PURE__ */ jsxDEV2(SelectPrimitive.Icon, {
53
68
  asChild: true,
54
- children: /* @__PURE__ */ jsxDEV(ChevronDownIcon, {
69
+ children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
55
70
  className: "size-4 opacity-50"
56
71
  }, undefined, false, undefined, this)
57
72
  }, undefined, false, undefined, this)
@@ -64,19 +79,19 @@ function SelectContent({
64
79
  position = "popper",
65
80
  ...props
66
81
  }) {
67
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Portal, {
68
- children: /* @__PURE__ */ jsxDEV(SelectPrimitive.Content, {
82
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
83
+ children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
69
84
  "data-slot": "select-content",
70
- className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
85
+ className: cn2("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in", position === "popper" && "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1", className),
71
86
  position,
72
87
  ...props,
73
88
  children: [
74
- /* @__PURE__ */ jsxDEV(SelectScrollUpButton, {}, undefined, false, undefined, this),
75
- /* @__PURE__ */ jsxDEV(SelectPrimitive.Viewport, {
76
- className: cn("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
89
+ /* @__PURE__ */ jsxDEV2(SelectScrollUpButton, {}, undefined, false, undefined, this),
90
+ /* @__PURE__ */ jsxDEV2(SelectPrimitive.Viewport, {
91
+ className: cn2("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
77
92
  children
78
93
  }, undefined, false, undefined, this),
79
- /* @__PURE__ */ jsxDEV(SelectScrollDownButton, {}, undefined, false, undefined, this)
94
+ /* @__PURE__ */ jsxDEV2(SelectScrollDownButton, {}, undefined, false, undefined, this)
80
95
  ]
81
96
  }, undefined, true, undefined, this)
82
97
  }, undefined, false, undefined, this);
@@ -85,9 +100,9 @@ function SelectLabel({
85
100
  className,
86
101
  ...props
87
102
  }) {
88
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Label, {
103
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
89
104
  "data-slot": "select-label",
90
- className: cn("text-muted-foreground px-2 py-1.5 text-xs", className),
105
+ className: cn2("px-2 py-1.5 text-muted-foreground text-xs", className),
91
106
  ...props
92
107
  }, undefined, false, undefined, this);
93
108
  }
@@ -96,20 +111,20 @@ function SelectItem({
96
111
  children,
97
112
  ...props
98
113
  }) {
99
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Item, {
114
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
100
115
  "data-slot": "select-item",
101
- className: cn("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
116
+ className: cn2("relative flex w-full cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
102
117
  ...props,
103
118
  children: [
104
- /* @__PURE__ */ jsxDEV("span", {
119
+ /* @__PURE__ */ jsxDEV2("span", {
105
120
  className: "absolute right-2 flex size-3.5 items-center justify-center",
106
- children: /* @__PURE__ */ jsxDEV(SelectPrimitive.ItemIndicator, {
107
- children: /* @__PURE__ */ jsxDEV(CheckIcon, {
121
+ children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemIndicator, {
122
+ children: /* @__PURE__ */ jsxDEV2(CheckIcon, {
108
123
  className: "size-4"
109
124
  }, undefined, false, undefined, this)
110
125
  }, undefined, false, undefined, this)
111
126
  }, undefined, false, undefined, this),
112
- /* @__PURE__ */ jsxDEV(SelectPrimitive.ItemText, {
127
+ /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemText, {
113
128
  children
114
129
  }, undefined, false, undefined, this)
115
130
  ]
@@ -119,9 +134,9 @@ function SelectSeparator({
119
134
  className,
120
135
  ...props
121
136
  }) {
122
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.Separator, {
137
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
123
138
  "data-slot": "select-separator",
124
- className: cn("bg-border pointer-events-none -mx-1 my-1 h-px", className),
139
+ className: cn2("pointer-events-none -mx-1 my-1 h-px bg-border", className),
125
140
  ...props
126
141
  }, undefined, false, undefined, this);
127
142
  }
@@ -129,11 +144,11 @@ function SelectScrollUpButton({
129
144
  className,
130
145
  ...props
131
146
  }) {
132
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.ScrollUpButton, {
147
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollUpButton, {
133
148
  "data-slot": "select-scroll-up-button",
134
- className: cn("flex cursor-default items-center justify-center py-1", className),
149
+ className: cn2("flex cursor-default items-center justify-center py-1", className),
135
150
  ...props,
136
- children: /* @__PURE__ */ jsxDEV(ChevronUpIcon, {
151
+ children: /* @__PURE__ */ jsxDEV2(ChevronUpIcon, {
137
152
  className: "size-4"
138
153
  }, undefined, false, undefined, this)
139
154
  }, undefined, false, undefined, this);
@@ -142,30 +157,15 @@ function SelectScrollDownButton({
142
157
  className,
143
158
  ...props
144
159
  }) {
145
- return /* @__PURE__ */ jsxDEV(SelectPrimitive.ScrollDownButton, {
160
+ return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollDownButton, {
146
161
  "data-slot": "select-scroll-down-button",
147
- className: cn("flex cursor-default items-center justify-center py-1", className),
162
+ className: cn2("flex cursor-default items-center justify-center py-1", className),
148
163
  ...props,
149
- children: /* @__PURE__ */ jsxDEV(ChevronDownIcon, {
164
+ children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
150
165
  className: "size-4"
151
166
  }, undefined, false, undefined, this)
152
167
  }, undefined, false, undefined, this);
153
168
  }
154
- // ui/label.tsx
155
- import * as LabelPrimitive from "@radix-ui/react-label";
156
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
157
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
158
- "use client";
159
- function Label2({
160
- className,
161
- ...props
162
- }) {
163
- return /* @__PURE__ */ jsxDEV2(LabelPrimitive.Root, {
164
- "data-slot": "label",
165
- className: cn2("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
166
- ...props
167
- }, undefined, false, undefined, this);
168
- }
169
169
  // ui/atoms/FilterSelect/FilterSelect.tsx
170
170
  import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
171
171
  var FilterSelect = ({
@@ -181,8 +181,8 @@ var FilterSelect = ({
181
181
  return /* @__PURE__ */ jsxDEV3("div", {
182
182
  className: `space-y-2 ${className}`,
183
183
  children: [
184
- label && /* @__PURE__ */ jsxDEV3(Label2, {
185
- className: "text-foreground text-base font-medium",
184
+ label && /* @__PURE__ */ jsxDEV3(Label, {
185
+ className: "font-medium text-base text-foreground",
186
186
  children: label
187
187
  }, undefined, false, undefined, this),
188
188
  /* @__PURE__ */ jsxDEV3(Select, {
@@ -204,7 +204,7 @@ var FilterSelect = ({
204
204
  children: [
205
205
  "Tous",
206
206
  showCounts && /* @__PURE__ */ jsxDEV3("span", {
207
- className: "text-muted-foreground ml-2 text-sm",
207
+ className: "ml-2 text-muted-foreground text-sm",
208
208
  children: [
209
209
  "(",
210
210
  options.reduce((sum, option) => sum + (option.count || 0), 0),
@@ -222,7 +222,7 @@ var FilterSelect = ({
222
222
  children: option.label
223
223
  }, undefined, false, undefined, this),
224
224
  showCounts && option.count !== undefined && /* @__PURE__ */ jsxDEV3("span", {
225
- className: "text-muted-foreground ml-2 text-sm",
225
+ className: "ml-2 text-muted-foreground text-sm",
226
226
  children: [
227
227
  "(",
228
228
  option.count,
@@ -32,7 +32,7 @@ var LoadingSpinner = ({
32
32
  className: cn("flex flex-col items-center justify-center gap-2", className),
33
33
  children: [
34
34
  /* @__PURE__ */ jsxDEV(Loader2, {
35
- className: cn("text-primary-600 animate-spin", sizeClasses[size])
35
+ className: cn("animate-spin text-primary-600", sizeClasses[size])
36
36
  }, undefined, false, undefined, this),
37
37
  text && /* @__PURE__ */ jsxDEV("p", {
38
38
  className: "animate-pulse text-base text-gray-600",
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // ui/button.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
10
11
  import { Slot } from "@radix-ui/react-slot";
11
12
  import { cva } from "class-variance-authority";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
13
  import { jsxDEV } from "react/jsx-dev-runtime";
14
- 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", {
14
+ 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", {
15
15
  variants: {
16
16
  variant: {
17
17
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
18
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
19
- 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",
18
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
19
+ 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",
20
20
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
21
21
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
22
22
  link: "text-primary underline-offset-4 hover:underline"
23
23
  },
24
24
  size: {
25
25
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
27
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
28
  icon: "size-9"
29
29
  }
@@ -56,9 +56,9 @@ function Button({
56
56
  }, undefined, false, undefined, this);
57
57
  }
58
58
  // ui/select.tsx
59
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
59
60
  import * as SelectPrimitive from "@radix-ui/react-select";
60
61
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
61
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
62
62
  import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
63
63
  "use client";
64
64
  function Select({
@@ -94,7 +94,7 @@ function SelectTrigger({
94
94
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
95
95
  "data-slot": "select-trigger",
96
96
  "data-size": size,
97
- className: cn2("aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border-input focus-visible:border-ring focus-visible:ring-ring/50 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-2xs outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
97
+ className: cn2("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-2xs outline-hidden transition-[color,box-shadow] 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-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", className),
98
98
  ...props,
99
99
  children: [
100
100
  children,
@@ -116,7 +116,7 @@ function SelectContent({
116
116
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
117
117
  children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
118
118
  "data-slot": "select-content",
119
- className: cn2("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
119
+ className: cn2("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in", position === "popper" && "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1", className),
120
120
  position,
121
121
  ...props,
122
122
  children: [
@@ -136,7 +136,7 @@ function SelectLabel({
136
136
  }) {
137
137
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
138
138
  "data-slot": "select-label",
139
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
139
+ className: cn2("px-2 py-1.5 text-muted-foreground text-xs", className),
140
140
  ...props
141
141
  }, undefined, false, undefined, this);
142
142
  }
@@ -147,7 +147,7 @@ function SelectItem({
147
147
  }) {
148
148
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
149
149
  "data-slot": "select-item",
150
- className: cn2("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
150
+ className: cn2("relative flex w-full cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
151
151
  ...props,
152
152
  children: [
153
153
  /* @__PURE__ */ jsxDEV2("span", {
@@ -170,7 +170,7 @@ function SelectSeparator({
170
170
  }) {
171
171
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
172
172
  "data-slot": "select-separator",
173
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
173
+ className: cn2("pointer-events-none -mx-1 my-1 h-px bg-border", className),
174
174
  ...props
175
175
  }, undefined, false, undefined, this);
176
176
  }
@@ -258,7 +258,7 @@ var Pagination = ({
258
258
  className: `flex flex-col items-center justify-between gap-4 sm:flex-row ${className}`,
259
259
  children: [
260
260
  /* @__PURE__ */ jsxDEV3("div", {
261
- className: "text-muted-foreground order-2 text-base sm:order-1",
261
+ className: "order-2 text-base text-muted-foreground sm:order-1",
262
262
  children: [
263
263
  "Affichage de ",
264
264
  startItem,
@@ -309,7 +309,7 @@ var Pagination = ({
309
309
  children: getVisiblePageNumbers().map((page, index) => {
310
310
  if (page === -1) {
311
311
  return /* @__PURE__ */ jsxDEV3("span", {
312
- className: "text-muted-foreground px-2 py-1",
312
+ className: "px-2 py-1 text-muted-foreground",
313
313
  children: "..."
314
314
  }, `ellipsis-${index}`, false, undefined, this);
315
315
  }
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // ui/button.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
10
11
  import { Slot } from "@radix-ui/react-slot";
11
12
  import { cva } from "class-variance-authority";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
13
  import { jsxDEV } from "react/jsx-dev-runtime";
14
- 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", {
14
+ 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", {
15
15
  variants: {
16
16
  variant: {
17
17
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
18
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
19
- 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",
18
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
19
+ 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",
20
20
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
21
21
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
22
22
  link: "text-primary underline-offset-4 hover:underline"
23
23
  },
24
24
  size: {
25
25
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
27
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
28
  icon: "size-9"
29
29
  }
@@ -56,9 +56,9 @@ function Button({
56
56
  }, undefined, false, undefined, this);
57
57
  }
58
58
  // ui/select.tsx
59
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
59
60
  import * as SelectPrimitive from "@radix-ui/react-select";
60
61
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
61
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
62
62
  import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
63
63
  "use client";
64
64
  function Select({
@@ -94,7 +94,7 @@ function SelectTrigger({
94
94
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
95
95
  "data-slot": "select-trigger",
96
96
  "data-size": size,
97
- className: cn2("aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border-input focus-visible:border-ring focus-visible:ring-ring/50 data-placeholder:text-muted-foreground dark:bg-input/30 dark:hover:bg-input/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-2xs outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
97
+ className: cn2("flex w-fit items-center justify-between gap-2 whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-2xs outline-hidden transition-[color,box-shadow] 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-destructive/20 data-[size=default]:h-9 data-[size=sm]:h-8 data-placeholder:text-muted-foreground *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:hover:bg-input/50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0", className),
98
98
  ...props,
99
99
  children: [
100
100
  children,
@@ -116,7 +116,7 @@ function SelectContent({
116
116
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
117
117
  children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
118
118
  "data-slot": "select-content",
119
- className: cn2("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md", position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", className),
119
+ className: cn2("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-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 relative z-50 max-h-(--radix-select-content-available-height) min-w-32 origin-(--radix-select-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in", position === "popper" && "data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1", className),
120
120
  position,
121
121
  ...props,
122
122
  children: [
@@ -136,7 +136,7 @@ function SelectLabel({
136
136
  }) {
137
137
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
138
138
  "data-slot": "select-label",
139
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
139
+ className: cn2("px-2 py-1.5 text-muted-foreground text-xs", className),
140
140
  ...props
141
141
  }, undefined, false, undefined, this);
142
142
  }
@@ -147,7 +147,7 @@ function SelectItem({
147
147
  }) {
148
148
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
149
149
  "data-slot": "select-item",
150
- className: cn2("focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
150
+ className: cn2("relative flex w-full cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-8 pl-2 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2", className),
151
151
  ...props,
152
152
  children: [
153
153
  /* @__PURE__ */ jsxDEV2("span", {
@@ -170,7 +170,7 @@ function SelectSeparator({
170
170
  }) {
171
171
  return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
172
172
  "data-slot": "select-separator",
173
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
173
+ className: cn2("pointer-events-none -mx-1 my-1 h-px bg-border", className),
174
174
  ...props
175
175
  }, undefined, false, undefined, this);
176
176
  }
@@ -258,7 +258,7 @@ var Pagination = ({
258
258
  className: `flex flex-col items-center justify-between gap-4 sm:flex-row ${className}`,
259
259
  children: [
260
260
  /* @__PURE__ */ jsxDEV3("div", {
261
- className: "text-muted-foreground order-2 text-base sm:order-1",
261
+ className: "order-2 text-base text-muted-foreground sm:order-1",
262
262
  children: [
263
263
  "Affichage de ",
264
264
  startItem,
@@ -309,7 +309,7 @@ var Pagination = ({
309
309
  children: getVisiblePageNumbers().map((page, index) => {
310
310
  if (page === -1) {
311
311
  return /* @__PURE__ */ jsxDEV3("span", {
312
- className: "text-muted-foreground px-2 py-1",
312
+ className: "px-2 py-1 text-muted-foreground",
313
313
  children: "..."
314
314
  }, `ellipsis-${index}`, false, undefined, this);
315
315
  }
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // ui/button.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
10
11
  import { Slot } from "@radix-ui/react-slot";
11
12
  import { cva } from "class-variance-authority";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
13
  import { jsxDEV } from "react/jsx-dev-runtime";
14
- 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", {
14
+ 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", {
15
15
  variants: {
16
16
  variant: {
17
17
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
18
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
19
- 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",
18
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
19
+ 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",
20
20
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
21
21
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
22
22
  link: "text-primary underline-offset-4 hover:underline"
23
23
  },
24
24
  size: {
25
25
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
27
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
28
  icon: "size-9"
29
29
  }
@@ -62,7 +62,7 @@ function Input({ className, type, ...props }) {
62
62
  return /* @__PURE__ */ jsxDEV2("input", {
63
63
  type,
64
64
  "data-slot": "input",
65
- className: cn2("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),
65
+ className: cn2("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),
66
66
  ...props
67
67
  }, undefined, false, undefined, this);
68
68
  }
@@ -88,7 +88,7 @@ var SearchInput = ({
88
88
  /* @__PURE__ */ jsxDEV3("div", {
89
89
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
90
90
  children: /* @__PURE__ */ jsxDEV3(Search, {
91
- className: "text-muted-foreground h-4 w-4"
91
+ className: "h-4 w-4 text-muted-foreground"
92
92
  }, undefined, false, undefined, this)
93
93
  }, undefined, false, undefined, this),
94
94
  /* @__PURE__ */ jsxDEV3(Input, {
@@ -111,7 +111,7 @@ var SearchInput = ({
111
111
  className: "h-6 w-6 p-0 hover:bg-transparent",
112
112
  children: [
113
113
  /* @__PURE__ */ jsxDEV3(X, {
114
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
114
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
115
115
  }, undefined, false, undefined, this),
116
116
  /* @__PURE__ */ jsxDEV3("span", {
117
117
  className: "sr-only",
@@ -7,23 +7,23 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // ui/button.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
10
11
  import { Slot } from "@radix-ui/react-slot";
11
12
  import { cva } from "class-variance-authority";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
13
  import { jsxDEV } from "react/jsx-dev-runtime";
14
- 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", {
14
+ 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", {
15
15
  variants: {
16
16
  variant: {
17
17
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
18
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
19
- 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",
18
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
19
+ 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",
20
20
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
21
21
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
22
22
  link: "text-primary underline-offset-4 hover:underline"
23
23
  },
24
24
  size: {
25
25
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
26
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
26
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
27
27
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
28
28
  icon: "size-9"
29
29
  }
@@ -62,7 +62,7 @@ function Input({ className, type, ...props }) {
62
62
  return /* @__PURE__ */ jsxDEV2("input", {
63
63
  type,
64
64
  "data-slot": "input",
65
- className: cn2("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),
65
+ className: cn2("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),
66
66
  ...props
67
67
  }, undefined, false, undefined, this);
68
68
  }
@@ -88,7 +88,7 @@ var SearchInput = ({
88
88
  /* @__PURE__ */ jsxDEV3("div", {
89
89
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
90
90
  children: /* @__PURE__ */ jsxDEV3(Search, {
91
- className: "text-muted-foreground h-4 w-4"
91
+ className: "h-4 w-4 text-muted-foreground"
92
92
  }, undefined, false, undefined, this)
93
93
  }, undefined, false, undefined, this),
94
94
  /* @__PURE__ */ jsxDEV3(Input, {
@@ -111,7 +111,7 @@ var SearchInput = ({
111
111
  className: "h-6 w-6 p-0 hover:bg-transparent",
112
112
  children: [
113
113
  /* @__PURE__ */ jsxDEV3(X, {
114
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
114
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
115
115
  }, undefined, false, undefined, this),
116
116
  /* @__PURE__ */ jsxDEV3("span", {
117
117
  className: "sr-only",
@@ -43,7 +43,7 @@ function AvatarFallback({
43
43
  }) {
44
44
  return /* @__PURE__ */ jsxDEV(AvatarPrimitive.Fallback, {
45
45
  "data-slot": "avatar-fallback",
46
- className: cn("bg-muted flex size-full items-center justify-center rounded-full", className),
46
+ className: cn("flex size-full items-center justify-center rounded-full bg-muted", className),
47
47
  ...props
48
48
  }, undefined, false, undefined, this);
49
49
  }
@@ -7,16 +7,16 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
7
7
  });
8
8
 
9
9
  // ui/badge.tsx
10
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
10
11
  import { Slot } from "@radix-ui/react-slot";
11
12
  import { cva } from "class-variance-authority";
12
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
13
13
  import { jsxDEV } from "react/jsx-dev-runtime";
14
- var badgeVariants = cva("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none 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 transition-[color,box-shadow] overflow-hidden", {
14
+ var badgeVariants = cva("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden whitespace-nowrap rounded-md border px-2 py-0.5 font-medium text-xs transition-[color,box-shadow] 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 [&>svg]:pointer-events-none [&>svg]:size-3", {
15
15
  variants: {
16
16
  variant: {
17
17
  default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
18
18
  secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
19
- destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
19
+ destructive: "border-transparent bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",
20
20
  outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
21
21
  }
22
22
  },