@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
@@ -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
  }
@@ -55,16 +55,31 @@ function Button({
55
55
  ...props
56
56
  }, undefined, false, undefined, this);
57
57
  }
58
+ // ui/label.tsx
59
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
60
+ import * as LabelPrimitive from "@radix-ui/react-label";
61
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
62
+ "use client";
63
+ function Label({
64
+ className,
65
+ ...props
66
+ }) {
67
+ return /* @__PURE__ */ jsxDEV2(LabelPrimitive.Root, {
68
+ "data-slot": "label",
69
+ className: cn2("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),
70
+ ...props
71
+ }, undefined, false, undefined, this);
72
+ }
58
73
  // ui/select.tsx
74
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
59
75
  import * as SelectPrimitive from "@radix-ui/react-select";
60
76
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
61
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
62
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
77
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
63
78
  "use client";
64
79
  function Select({
65
80
  ...props
66
81
  }) {
67
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Root, {
82
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Root, {
68
83
  "data-slot": "select",
69
84
  ...props
70
85
  }, undefined, false, undefined, this);
@@ -72,7 +87,7 @@ function Select({
72
87
  function SelectGroup({
73
88
  ...props
74
89
  }) {
75
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Group, {
90
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Group, {
76
91
  "data-slot": "select-group",
77
92
  ...props
78
93
  }, undefined, false, undefined, this);
@@ -80,7 +95,7 @@ function SelectGroup({
80
95
  function SelectValue({
81
96
  ...props
82
97
  }) {
83
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Value, {
98
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Value, {
84
99
  "data-slot": "select-value",
85
100
  ...props
86
101
  }, undefined, false, undefined, this);
@@ -91,16 +106,16 @@ function SelectTrigger({
91
106
  children,
92
107
  ...props
93
108
  }) {
94
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
109
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Trigger, {
95
110
  "data-slot": "select-trigger",
96
111
  "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),
112
+ className: cn3("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
113
  ...props,
99
114
  children: [
100
115
  children,
101
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Icon, {
116
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Icon, {
102
117
  asChild: true,
103
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
118
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
104
119
  className: "size-4 opacity-50"
105
120
  }, undefined, false, undefined, this)
106
121
  }, undefined, false, undefined, this)
@@ -113,19 +128,19 @@ function SelectContent({
113
128
  position = "popper",
114
129
  ...props
115
130
  }) {
116
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
117
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
131
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Portal, {
132
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.Content, {
118
133
  "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),
134
+ className: cn3("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
135
  position,
121
136
  ...props,
122
137
  children: [
123
- /* @__PURE__ */ jsxDEV2(SelectScrollUpButton, {}, undefined, false, undefined, this),
124
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Viewport, {
125
- className: cn2("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
138
+ /* @__PURE__ */ jsxDEV3(SelectScrollUpButton, {}, undefined, false, undefined, this),
139
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Viewport, {
140
+ className: cn3("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
126
141
  children
127
142
  }, undefined, false, undefined, this),
128
- /* @__PURE__ */ jsxDEV2(SelectScrollDownButton, {}, undefined, false, undefined, this)
143
+ /* @__PURE__ */ jsxDEV3(SelectScrollDownButton, {}, undefined, false, undefined, this)
129
144
  ]
130
145
  }, undefined, true, undefined, this)
131
146
  }, undefined, false, undefined, this);
@@ -134,9 +149,9 @@ function SelectLabel({
134
149
  className,
135
150
  ...props
136
151
  }) {
137
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
152
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Label, {
138
153
  "data-slot": "select-label",
139
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
154
+ className: cn3("px-2 py-1.5 text-muted-foreground text-xs", className),
140
155
  ...props
141
156
  }, undefined, false, undefined, this);
142
157
  }
@@ -145,20 +160,20 @@ function SelectItem({
145
160
  children,
146
161
  ...props
147
162
  }) {
148
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
163
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Item, {
149
164
  "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),
165
+ className: cn3("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
166
  ...props,
152
167
  children: [
153
- /* @__PURE__ */ jsxDEV2("span", {
168
+ /* @__PURE__ */ jsxDEV3("span", {
154
169
  className: "absolute right-2 flex size-3.5 items-center justify-center",
155
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemIndicator, {
156
- children: /* @__PURE__ */ jsxDEV2(CheckIcon, {
170
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemIndicator, {
171
+ children: /* @__PURE__ */ jsxDEV3(CheckIcon, {
157
172
  className: "size-4"
158
173
  }, undefined, false, undefined, this)
159
174
  }, undefined, false, undefined, this)
160
175
  }, undefined, false, undefined, this),
161
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemText, {
176
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemText, {
162
177
  children
163
178
  }, undefined, false, undefined, this)
164
179
  ]
@@ -168,9 +183,9 @@ function SelectSeparator({
168
183
  className,
169
184
  ...props
170
185
  }) {
171
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
186
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Separator, {
172
187
  "data-slot": "select-separator",
173
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
188
+ className: cn3("pointer-events-none -mx-1 my-1 h-px bg-border", className),
174
189
  ...props
175
190
  }, undefined, false, undefined, this);
176
191
  }
@@ -178,11 +193,11 @@ function SelectScrollUpButton({
178
193
  className,
179
194
  ...props
180
195
  }) {
181
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollUpButton, {
196
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollUpButton, {
182
197
  "data-slot": "select-scroll-up-button",
183
- className: cn2("flex cursor-default items-center justify-center py-1", className),
198
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
184
199
  ...props,
185
- children: /* @__PURE__ */ jsxDEV2(ChevronUpIcon, {
200
+ children: /* @__PURE__ */ jsxDEV3(ChevronUpIcon, {
186
201
  className: "size-4"
187
202
  }, undefined, false, undefined, this)
188
203
  }, undefined, false, undefined, this);
@@ -191,30 +206,15 @@ function SelectScrollDownButton({
191
206
  className,
192
207
  ...props
193
208
  }) {
194
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollDownButton, {
209
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollDownButton, {
195
210
  "data-slot": "select-scroll-down-button",
196
- className: cn2("flex cursor-default items-center justify-center py-1", className),
211
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
197
212
  ...props,
198
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
213
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
199
214
  className: "size-4"
200
215
  }, undefined, false, undefined, this)
201
216
  }, undefined, false, undefined, this);
202
217
  }
203
- // ui/label.tsx
204
- import * as LabelPrimitive from "@radix-ui/react-label";
205
- import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
206
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
207
- "use client";
208
- function Label2({
209
- className,
210
- ...props
211
- }) {
212
- return /* @__PURE__ */ jsxDEV3(LabelPrimitive.Root, {
213
- "data-slot": "label",
214
- className: cn3("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),
215
- ...props
216
- }, undefined, false, undefined, this);
217
- }
218
218
  // ui/atoms/FilterSelect/FilterSelect.tsx
219
219
  import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
220
220
  var FilterSelect = ({
@@ -230,8 +230,8 @@ var FilterSelect = ({
230
230
  return /* @__PURE__ */ jsxDEV4("div", {
231
231
  className: `space-y-2 ${className}`,
232
232
  children: [
233
- label && /* @__PURE__ */ jsxDEV4(Label2, {
234
- className: "text-foreground text-base font-medium",
233
+ label && /* @__PURE__ */ jsxDEV4(Label, {
234
+ className: "font-medium text-base text-foreground",
235
235
  children: label
236
236
  }, undefined, false, undefined, this),
237
237
  /* @__PURE__ */ jsxDEV4(Select, {
@@ -253,7 +253,7 @@ var FilterSelect = ({
253
253
  children: [
254
254
  "Tous",
255
255
  showCounts && /* @__PURE__ */ jsxDEV4("span", {
256
- className: "text-muted-foreground ml-2 text-sm",
256
+ className: "ml-2 text-muted-foreground text-sm",
257
257
  children: [
258
258
  "(",
259
259
  options.reduce((sum, option) => sum + (option.count || 0), 0),
@@ -271,7 +271,7 @@ var FilterSelect = ({
271
271
  children: option.label
272
272
  }, undefined, false, undefined, this),
273
273
  showCounts && option.count !== undefined && /* @__PURE__ */ jsxDEV4("span", {
274
- className: "text-muted-foreground ml-2 text-sm",
274
+ className: "ml-2 text-muted-foreground text-sm",
275
275
  children: [
276
276
  "(",
277
277
  option.count,
@@ -295,7 +295,7 @@ function Input({ className, type, ...props }) {
295
295
  return /* @__PURE__ */ jsxDEV5("input", {
296
296
  type,
297
297
  "data-slot": "input",
298
- className: cn4("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),
298
+ className: cn4("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),
299
299
  ...props
300
300
  }, undefined, false, undefined, this);
301
301
  }
@@ -321,7 +321,7 @@ var SearchInput = ({
321
321
  /* @__PURE__ */ jsxDEV6("div", {
322
322
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
323
323
  children: /* @__PURE__ */ jsxDEV6(Search, {
324
- className: "text-muted-foreground h-4 w-4"
324
+ className: "h-4 w-4 text-muted-foreground"
325
325
  }, undefined, false, undefined, this)
326
326
  }, undefined, false, undefined, this),
327
327
  /* @__PURE__ */ jsxDEV6(Input, {
@@ -344,7 +344,7 @@ var SearchInput = ({
344
344
  className: "h-6 w-6 p-0 hover:bg-transparent",
345
345
  children: [
346
346
  /* @__PURE__ */ jsxDEV6(X, {
347
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
347
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
348
348
  }, undefined, false, undefined, this),
349
349
  /* @__PURE__ */ jsxDEV6("span", {
350
350
  className: "sr-only",
@@ -385,8 +385,8 @@ function CollapsibleContent2({
385
385
  }, undefined, false, undefined, this);
386
386
  }
387
387
  // ui/molecules/SearchAndFilter/SearchAndFilter.tsx
388
- import { useState } from "react";
389
388
  import { ChevronDown, ChevronUp, Filter } from "lucide-react";
389
+ import { useState } from "react";
390
390
  import { jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
391
391
  var SearchAndFilter = ({
392
392
  searchValue,
@@ -449,7 +449,7 @@ var SearchAndFilter = ({
449
449
  }, undefined, false, undefined, this),
450
450
  "Filtres",
451
451
  activeFiltersCount > 0 && /* @__PURE__ */ jsxDEV8("span", {
452
- className: "bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm",
452
+ className: "ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",
453
453
  children: activeFiltersCount
454
454
  }, undefined, false, undefined, this),
455
455
  isCollapsed ? /* @__PURE__ */ jsxDEV8(ChevronDown, {
@@ -476,7 +476,7 @@ var SearchAndFilter = ({
476
476
  className: "flex flex-wrap items-center gap-2",
477
477
  children: [
478
478
  /* @__PURE__ */ jsxDEV8("span", {
479
- className: "text-muted-foreground text-base",
479
+ className: "text-base text-muted-foreground",
480
480
  children: "Filtres actifs:"
481
481
  }, undefined, false, undefined, this),
482
482
  filters.filter((f) => f.value).map((filter) => {
@@ -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
  }
@@ -55,16 +55,31 @@ function Button({
55
55
  ...props
56
56
  }, undefined, false, undefined, this);
57
57
  }
58
+ // ui/label.tsx
59
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
60
+ import * as LabelPrimitive from "@radix-ui/react-label";
61
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
62
+ "use client";
63
+ function Label({
64
+ className,
65
+ ...props
66
+ }) {
67
+ return /* @__PURE__ */ jsxDEV2(LabelPrimitive.Root, {
68
+ "data-slot": "label",
69
+ className: cn2("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),
70
+ ...props
71
+ }, undefined, false, undefined, this);
72
+ }
58
73
  // ui/select.tsx
74
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
59
75
  import * as SelectPrimitive from "@radix-ui/react-select";
60
76
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
61
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
62
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
77
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
63
78
  "use client";
64
79
  function Select({
65
80
  ...props
66
81
  }) {
67
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Root, {
82
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Root, {
68
83
  "data-slot": "select",
69
84
  ...props
70
85
  }, undefined, false, undefined, this);
@@ -72,7 +87,7 @@ function Select({
72
87
  function SelectGroup({
73
88
  ...props
74
89
  }) {
75
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Group, {
90
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Group, {
76
91
  "data-slot": "select-group",
77
92
  ...props
78
93
  }, undefined, false, undefined, this);
@@ -80,7 +95,7 @@ function SelectGroup({
80
95
  function SelectValue({
81
96
  ...props
82
97
  }) {
83
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Value, {
98
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Value, {
84
99
  "data-slot": "select-value",
85
100
  ...props
86
101
  }, undefined, false, undefined, this);
@@ -91,16 +106,16 @@ function SelectTrigger({
91
106
  children,
92
107
  ...props
93
108
  }) {
94
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
109
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Trigger, {
95
110
  "data-slot": "select-trigger",
96
111
  "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),
112
+ className: cn3("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
113
  ...props,
99
114
  children: [
100
115
  children,
101
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Icon, {
116
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Icon, {
102
117
  asChild: true,
103
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
118
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
104
119
  className: "size-4 opacity-50"
105
120
  }, undefined, false, undefined, this)
106
121
  }, undefined, false, undefined, this)
@@ -113,19 +128,19 @@ function SelectContent({
113
128
  position = "popper",
114
129
  ...props
115
130
  }) {
116
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
117
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
131
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Portal, {
132
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.Content, {
118
133
  "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),
134
+ className: cn3("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
135
  position,
121
136
  ...props,
122
137
  children: [
123
- /* @__PURE__ */ jsxDEV2(SelectScrollUpButton, {}, undefined, false, undefined, this),
124
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Viewport, {
125
- className: cn2("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
138
+ /* @__PURE__ */ jsxDEV3(SelectScrollUpButton, {}, undefined, false, undefined, this),
139
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Viewport, {
140
+ className: cn3("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
126
141
  children
127
142
  }, undefined, false, undefined, this),
128
- /* @__PURE__ */ jsxDEV2(SelectScrollDownButton, {}, undefined, false, undefined, this)
143
+ /* @__PURE__ */ jsxDEV3(SelectScrollDownButton, {}, undefined, false, undefined, this)
129
144
  ]
130
145
  }, undefined, true, undefined, this)
131
146
  }, undefined, false, undefined, this);
@@ -134,9 +149,9 @@ function SelectLabel({
134
149
  className,
135
150
  ...props
136
151
  }) {
137
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
152
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Label, {
138
153
  "data-slot": "select-label",
139
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
154
+ className: cn3("px-2 py-1.5 text-muted-foreground text-xs", className),
140
155
  ...props
141
156
  }, undefined, false, undefined, this);
142
157
  }
@@ -145,20 +160,20 @@ function SelectItem({
145
160
  children,
146
161
  ...props
147
162
  }) {
148
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
163
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Item, {
149
164
  "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),
165
+ className: cn3("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
166
  ...props,
152
167
  children: [
153
- /* @__PURE__ */ jsxDEV2("span", {
168
+ /* @__PURE__ */ jsxDEV3("span", {
154
169
  className: "absolute right-2 flex size-3.5 items-center justify-center",
155
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemIndicator, {
156
- children: /* @__PURE__ */ jsxDEV2(CheckIcon, {
170
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemIndicator, {
171
+ children: /* @__PURE__ */ jsxDEV3(CheckIcon, {
157
172
  className: "size-4"
158
173
  }, undefined, false, undefined, this)
159
174
  }, undefined, false, undefined, this)
160
175
  }, undefined, false, undefined, this),
161
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemText, {
176
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemText, {
162
177
  children
163
178
  }, undefined, false, undefined, this)
164
179
  ]
@@ -168,9 +183,9 @@ function SelectSeparator({
168
183
  className,
169
184
  ...props
170
185
  }) {
171
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
186
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Separator, {
172
187
  "data-slot": "select-separator",
173
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
188
+ className: cn3("pointer-events-none -mx-1 my-1 h-px bg-border", className),
174
189
  ...props
175
190
  }, undefined, false, undefined, this);
176
191
  }
@@ -178,11 +193,11 @@ function SelectScrollUpButton({
178
193
  className,
179
194
  ...props
180
195
  }) {
181
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollUpButton, {
196
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollUpButton, {
182
197
  "data-slot": "select-scroll-up-button",
183
- className: cn2("flex cursor-default items-center justify-center py-1", className),
198
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
184
199
  ...props,
185
- children: /* @__PURE__ */ jsxDEV2(ChevronUpIcon, {
200
+ children: /* @__PURE__ */ jsxDEV3(ChevronUpIcon, {
186
201
  className: "size-4"
187
202
  }, undefined, false, undefined, this)
188
203
  }, undefined, false, undefined, this);
@@ -191,30 +206,15 @@ function SelectScrollDownButton({
191
206
  className,
192
207
  ...props
193
208
  }) {
194
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollDownButton, {
209
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollDownButton, {
195
210
  "data-slot": "select-scroll-down-button",
196
- className: cn2("flex cursor-default items-center justify-center py-1", className),
211
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
197
212
  ...props,
198
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
213
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
199
214
  className: "size-4"
200
215
  }, undefined, false, undefined, this)
201
216
  }, undefined, false, undefined, this);
202
217
  }
203
- // ui/label.tsx
204
- import * as LabelPrimitive from "@radix-ui/react-label";
205
- import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
206
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
207
- "use client";
208
- function Label2({
209
- className,
210
- ...props
211
- }) {
212
- return /* @__PURE__ */ jsxDEV3(LabelPrimitive.Root, {
213
- "data-slot": "label",
214
- className: cn3("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),
215
- ...props
216
- }, undefined, false, undefined, this);
217
- }
218
218
  // ui/atoms/FilterSelect/FilterSelect.tsx
219
219
  import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
220
220
  var FilterSelect = ({
@@ -230,8 +230,8 @@ var FilterSelect = ({
230
230
  return /* @__PURE__ */ jsxDEV4("div", {
231
231
  className: `space-y-2 ${className}`,
232
232
  children: [
233
- label && /* @__PURE__ */ jsxDEV4(Label2, {
234
- className: "text-foreground text-base font-medium",
233
+ label && /* @__PURE__ */ jsxDEV4(Label, {
234
+ className: "font-medium text-base text-foreground",
235
235
  children: label
236
236
  }, undefined, false, undefined, this),
237
237
  /* @__PURE__ */ jsxDEV4(Select, {
@@ -253,7 +253,7 @@ var FilterSelect = ({
253
253
  children: [
254
254
  "Tous",
255
255
  showCounts && /* @__PURE__ */ jsxDEV4("span", {
256
- className: "text-muted-foreground ml-2 text-sm",
256
+ className: "ml-2 text-muted-foreground text-sm",
257
257
  children: [
258
258
  "(",
259
259
  options.reduce((sum, option) => sum + (option.count || 0), 0),
@@ -271,7 +271,7 @@ var FilterSelect = ({
271
271
  children: option.label
272
272
  }, undefined, false, undefined, this),
273
273
  showCounts && option.count !== undefined && /* @__PURE__ */ jsxDEV4("span", {
274
- className: "text-muted-foreground ml-2 text-sm",
274
+ className: "ml-2 text-muted-foreground text-sm",
275
275
  children: [
276
276
  "(",
277
277
  option.count,
@@ -295,7 +295,7 @@ function Input({ className, type, ...props }) {
295
295
  return /* @__PURE__ */ jsxDEV5("input", {
296
296
  type,
297
297
  "data-slot": "input",
298
- className: cn4("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),
298
+ className: cn4("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),
299
299
  ...props
300
300
  }, undefined, false, undefined, this);
301
301
  }
@@ -321,7 +321,7 @@ var SearchInput = ({
321
321
  /* @__PURE__ */ jsxDEV6("div", {
322
322
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
323
323
  children: /* @__PURE__ */ jsxDEV6(Search, {
324
- className: "text-muted-foreground h-4 w-4"
324
+ className: "h-4 w-4 text-muted-foreground"
325
325
  }, undefined, false, undefined, this)
326
326
  }, undefined, false, undefined, this),
327
327
  /* @__PURE__ */ jsxDEV6(Input, {
@@ -344,7 +344,7 @@ var SearchInput = ({
344
344
  className: "h-6 w-6 p-0 hover:bg-transparent",
345
345
  children: [
346
346
  /* @__PURE__ */ jsxDEV6(X, {
347
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
347
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
348
348
  }, undefined, false, undefined, this),
349
349
  /* @__PURE__ */ jsxDEV6("span", {
350
350
  className: "sr-only",
@@ -385,8 +385,8 @@ function CollapsibleContent2({
385
385
  }, undefined, false, undefined, this);
386
386
  }
387
387
  // ui/molecules/SearchAndFilter/SearchAndFilter.tsx
388
- import { useState } from "react";
389
388
  import { ChevronDown, ChevronUp, Filter } from "lucide-react";
389
+ import { useState } from "react";
390
390
  import { jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
391
391
  var SearchAndFilter = ({
392
392
  searchValue,
@@ -449,7 +449,7 @@ var SearchAndFilter = ({
449
449
  }, undefined, false, undefined, this),
450
450
  "Filtres",
451
451
  activeFiltersCount > 0 && /* @__PURE__ */ jsxDEV8("span", {
452
- className: "bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm",
452
+ className: "ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",
453
453
  children: activeFiltersCount
454
454
  }, undefined, false, undefined, this),
455
455
  isCollapsed ? /* @__PURE__ */ jsxDEV8(ChevronDown, {
@@ -476,7 +476,7 @@ var SearchAndFilter = ({
476
476
  className: "flex flex-wrap items-center gap-2",
477
477
  children: [
478
478
  /* @__PURE__ */ jsxDEV8("span", {
479
- className: "text-muted-foreground text-base",
479
+ className: "text-base text-muted-foreground",
480
480
  children: "Filtres actifs:"
481
481
  }, undefined, false, undefined, this),
482
482
  filters.filter((f) => f.value).map((filter) => {