@contractspec/lib.ui-kit-web 3.7.5 → 3.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +33 -88
  2. package/dist/browser/ui/accordion.js +4 -4
  3. package/dist/browser/ui/alert-dialog.js +9 -9
  4. package/dist/browser/ui/alert.js +4 -4
  5. package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +51 -51
  6. package/dist/browser/ui/atoms/FilterSelect/index.js +51 -51
  7. package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
  8. package/dist/browser/ui/atoms/Pagination/Pagination.js +13 -13
  9. package/dist/browser/ui/atoms/Pagination/index.js +13 -13
  10. package/dist/browser/ui/atoms/SearchInput/SearchInput.js +8 -8
  11. package/dist/browser/ui/atoms/SearchInput/index.js +8 -8
  12. package/dist/browser/ui/avatar.js +1 -1
  13. package/dist/browser/ui/badge.js +3 -3
  14. package/dist/browser/ui/breadcrumb.js +4 -4
  15. package/dist/browser/ui/button.js +5 -5
  16. package/dist/browser/ui/calendar.js +21 -21
  17. package/dist/browser/ui/card.js +2 -2
  18. package/dist/browser/ui/carousel.js +6 -6
  19. package/dist/browser/ui/checkbox.js +2 -2
  20. package/dist/browser/ui/command.js +14 -14
  21. package/dist/browser/ui/confirm-dialog.js +9 -9
  22. package/dist/browser/ui/context-menu.js +10 -10
  23. package/dist/browser/ui/cta.js +5 -5
  24. package/dist/browser/ui/data-table.js +1005 -0
  25. package/dist/browser/ui/data-table.parts.js +463 -0
  26. package/dist/browser/ui/date-picker.js +26 -26
  27. package/dist/browser/ui/date-range-picker.js +24 -24
  28. package/dist/browser/ui/datetime-picker.js +29 -29
  29. package/dist/browser/ui/dialog.js +5 -5
  30. package/dist/browser/ui/drawer.js +5 -5
  31. package/dist/browser/ui/dropdown-menu.js +10 -10
  32. package/dist/browser/ui/empty-state.js +5 -5
  33. package/dist/browser/ui/empty.js +7 -7
  34. package/dist/browser/ui/field.js +12 -12
  35. package/dist/browser/ui/form.js +4 -4
  36. package/dist/browser/ui/hover-card.js +2 -2
  37. package/dist/browser/ui/input-group.js +16 -16
  38. package/dist/browser/ui/input-otp.js +4 -4
  39. package/dist/browser/ui/input.js +1 -1
  40. package/dist/browser/ui/label.js +2 -2
  41. package/dist/browser/ui/loading-button.js +8 -8
  42. package/dist/browser/ui/marketing/FeatureGrid.js +3 -3
  43. package/dist/browser/ui/marketing/Hero.js +7 -7
  44. package/dist/browser/ui/marketing/PricingTable.js +10 -10
  45. package/dist/browser/ui/menubar.js +12 -12
  46. package/dist/browser/ui/molecules/Autocomplete/index.js +26 -26
  47. package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
  48. package/dist/browser/ui/molecules/SearchAndFilter/index.js +62 -62
  49. package/dist/browser/ui/molecules/SkeletonList.js +1 -1
  50. package/dist/browser/ui/nav-layout.js +22 -22
  51. package/dist/browser/ui/navigation-menu.js +7 -7
  52. package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
  53. package/dist/browser/ui/organisms/ListPage/ListPage.js +84 -84
  54. package/dist/browser/ui/page-header.js +4 -4
  55. package/dist/browser/ui/pagination.js +6 -6
  56. package/dist/browser/ui/popover.js +2 -2
  57. package/dist/browser/ui/progress.js +3 -3
  58. package/dist/browser/ui/radio-group.js +3 -3
  59. package/dist/browser/ui/resizable.js +3 -3
  60. package/dist/browser/ui/scroll-area.js +4 -4
  61. package/dist/browser/ui/section.js +1 -1
  62. package/dist/browser/ui/select.js +6 -6
  63. package/dist/browser/ui/separator.js +2 -2
  64. package/dist/browser/ui/sheet.js +5 -5
  65. package/dist/browser/ui/sidebar.js +64 -64
  66. package/dist/browser/ui/skeleton.js +1 -1
  67. package/dist/browser/ui/slider.js +6 -6
  68. package/dist/browser/ui/stack.js +1 -1
  69. package/dist/browser/ui/stat-card-group.js +5 -5
  70. package/dist/browser/ui/stepper.js +2 -2
  71. package/dist/browser/ui/switch.js +3 -3
  72. package/dist/browser/ui/table.js +5 -5
  73. package/dist/browser/ui/tabs.js +3 -3
  74. package/dist/browser/ui/text.js +2 -2
  75. package/dist/browser/ui/textarea.js +1 -1
  76. package/dist/browser/ui/time-picker.js +10 -10
  77. package/dist/browser/ui/toast.js +5 -5
  78. package/dist/browser/ui/toaster.js +5 -5
  79. package/dist/browser/ui/toggle-group.js +7 -7
  80. package/dist/browser/ui/toggle.js +5 -5
  81. package/dist/browser/ui/tooltip.js +3 -3
  82. package/dist/browser/ui/typography.js +14 -14
  83. package/dist/browser/ui/usecases/UseCaseCard.js +8 -8
  84. package/dist/browser/ui/usecases/UserStoryCard.js +3 -3
  85. package/dist/browser/ui/visualization/Visualization.js +439 -0
  86. package/dist/browser/ui/visualization/Visualization.support.js +128 -0
  87. package/dist/browser/ui/visualization/index.js +10 -0
  88. package/dist/ui/accordion.d.ts +2 -2
  89. package/dist/ui/accordion.js +4 -4
  90. package/dist/ui/alert-dialog.d.ts +2 -2
  91. package/dist/ui/alert-dialog.js +9 -9
  92. package/dist/ui/alert.d.ts +2 -2
  93. package/dist/ui/alert.js +4 -4
  94. package/dist/ui/atoms/FilterSelect/FilterSelect.js +51 -51
  95. package/dist/ui/atoms/FilterSelect/index.d.ts +1 -1
  96. package/dist/ui/atoms/FilterSelect/index.js +51 -51
  97. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -1
  98. package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -1
  99. package/dist/ui/atoms/Pagination/Pagination.js +13 -13
  100. package/dist/ui/atoms/Pagination/index.js +13 -13
  101. package/dist/ui/atoms/SearchInput/SearchInput.js +8 -8
  102. package/dist/ui/atoms/SearchInput/index.js +8 -8
  103. package/dist/ui/avatar.d.ts +2 -2
  104. package/dist/ui/avatar.js +1 -1
  105. package/dist/ui/badge.d.ts +1 -1
  106. package/dist/ui/badge.js +3 -3
  107. package/dist/ui/breadcrumb.d.ts +1 -1
  108. package/dist/ui/breadcrumb.js +4 -4
  109. package/dist/ui/button.d.ts +1 -1
  110. package/dist/ui/button.js +5 -5
  111. package/dist/ui/calendar.js +21 -21
  112. package/dist/ui/card.d.ts +1 -1
  113. package/dist/ui/card.js +2 -2
  114. package/dist/ui/carousel.d.ts +2 -2
  115. package/dist/ui/carousel.js +6 -6
  116. package/dist/ui/checkbox.d.ts +1 -1
  117. package/dist/ui/checkbox.js +2 -2
  118. package/dist/ui/collapsible.d.ts +1 -1
  119. package/dist/ui/command.d.ts +2 -2
  120. package/dist/ui/command.js +14 -14
  121. package/dist/ui/confirm-dialog.js +9 -9
  122. package/dist/ui/context-menu.d.ts +2 -2
  123. package/dist/ui/context-menu.js +10 -10
  124. package/dist/ui/cta.js +5 -5
  125. package/dist/ui/data-table.d.ts +12 -0
  126. package/dist/ui/data-table.js +1000 -0
  127. package/dist/ui/data-table.parts.d.ts +14 -0
  128. package/dist/ui/data-table.parts.js +458 -0
  129. package/dist/ui/date-picker.js +26 -26
  130. package/dist/ui/date-range-picker.js +24 -24
  131. package/dist/ui/datetime-picker.js +29 -29
  132. package/dist/ui/dialog.d.ts +1 -1
  133. package/dist/ui/dialog.js +5 -5
  134. package/dist/ui/drawer.d.ts +1 -1
  135. package/dist/ui/drawer.js +5 -5
  136. package/dist/ui/dropdown-menu.d.ts +2 -2
  137. package/dist/ui/dropdown-menu.js +10 -10
  138. package/dist/ui/empty-state.d.ts +1 -1
  139. package/dist/ui/empty-state.js +5 -5
  140. package/dist/ui/empty.d.ts +2 -2
  141. package/dist/ui/empty.js +7 -7
  142. package/dist/ui/field.d.ts +2 -2
  143. package/dist/ui/field.js +12 -12
  144. package/dist/ui/form.d.ts +3 -3
  145. package/dist/ui/form.js +4 -4
  146. package/dist/ui/hover-card.d.ts +2 -2
  147. package/dist/ui/hover-card.js +2 -2
  148. package/dist/ui/input-group.d.ts +2 -2
  149. package/dist/ui/input-group.js +16 -16
  150. package/dist/ui/input-otp.d.ts +2 -2
  151. package/dist/ui/input-otp.js +4 -4
  152. package/dist/ui/input.js +1 -1
  153. package/dist/ui/label.d.ts +1 -1
  154. package/dist/ui/label.js +2 -2
  155. package/dist/ui/loading-button.js +8 -8
  156. package/dist/ui/map/index.d.ts +1 -1
  157. package/dist/ui/marketing/FeatureGrid.js +3 -3
  158. package/dist/ui/marketing/Hero.js +7 -7
  159. package/dist/ui/marketing/PricingTable.js +10 -10
  160. package/dist/ui/marketing/index.d.ts +1 -1
  161. package/dist/ui/menubar.d.ts +2 -2
  162. package/dist/ui/menubar.js +12 -12
  163. package/dist/ui/molecules/Autocomplete/index.js +26 -26
  164. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +62 -62
  165. package/dist/ui/molecules/SearchAndFilter/index.js +62 -62
  166. package/dist/ui/molecules/SkeletonList.js +1 -1
  167. package/dist/ui/nav-layout.d.ts +1 -1
  168. package/dist/ui/nav-layout.js +22 -22
  169. package/dist/ui/navigation-menu.d.ts +2 -2
  170. package/dist/ui/navigation-menu.js +7 -7
  171. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +11 -11
  172. package/dist/ui/organisms/ErrorBoundary/index.d.ts +1 -1
  173. package/dist/ui/organisms/ListPage/ListPage.js +84 -84
  174. package/dist/ui/organisms/ListPage/index.d.ts +1 -1
  175. package/dist/ui/organisms/ListPage/types.d.ts +1 -1
  176. package/dist/ui/page-header.d.ts +1 -1
  177. package/dist/ui/page-header.js +4 -4
  178. package/dist/ui/pagination.js +6 -6
  179. package/dist/ui/popover.d.ts +2 -2
  180. package/dist/ui/popover.js +2 -2
  181. package/dist/ui/progress.d.ts +1 -1
  182. package/dist/ui/progress.js +3 -3
  183. package/dist/ui/radio-group.d.ts +1 -1
  184. package/dist/ui/radio-group.js +3 -3
  185. package/dist/ui/resizable.d.ts +2 -2
  186. package/dist/ui/resizable.js +3 -3
  187. package/dist/ui/scroll-area.d.ts +1 -1
  188. package/dist/ui/scroll-area.js +4 -4
  189. package/dist/ui/section.d.ts +1 -1
  190. package/dist/ui/section.js +1 -1
  191. package/dist/ui/select.d.ts +1 -1
  192. package/dist/ui/select.js +6 -6
  193. package/dist/ui/separator.d.ts +1 -1
  194. package/dist/ui/separator.js +2 -2
  195. package/dist/ui/sheet.d.ts +2 -2
  196. package/dist/ui/sheet.js +5 -5
  197. package/dist/ui/sidebar.d.ts +1 -1
  198. package/dist/ui/sidebar.js +64 -64
  199. package/dist/ui/skeleton.js +1 -1
  200. package/dist/ui/slider.d.ts +1 -1
  201. package/dist/ui/slider.js +6 -6
  202. package/dist/ui/stack.d.ts +4 -4
  203. package/dist/ui/stack.js +1 -1
  204. package/dist/ui/stat-card-group.js +5 -5
  205. package/dist/ui/stepper.js +2 -2
  206. package/dist/ui/switch.d.ts +1 -1
  207. package/dist/ui/switch.js +3 -3
  208. package/dist/ui/table.d.ts +1 -1
  209. package/dist/ui/table.js +5 -5
  210. package/dist/ui/tabs.d.ts +2 -2
  211. package/dist/ui/tabs.js +3 -3
  212. package/dist/ui/text.js +2 -2
  213. package/dist/ui/textarea.js +1 -1
  214. package/dist/ui/time-picker.js +10 -10
  215. package/dist/ui/toast.d.ts +2 -2
  216. package/dist/ui/toast.js +5 -5
  217. package/dist/ui/toaster.js +5 -5
  218. package/dist/ui/toggle-group.d.ts +1 -1
  219. package/dist/ui/toggle-group.js +7 -7
  220. package/dist/ui/toggle.d.ts +1 -1
  221. package/dist/ui/toggle.js +5 -5
  222. package/dist/ui/tooltip.d.ts +2 -2
  223. package/dist/ui/tooltip.js +3 -3
  224. package/dist/ui/typography.js +14 -14
  225. package/dist/ui/use-toast.d.ts +1 -1
  226. package/dist/ui/usecases/UseCaseCard.js +8 -8
  227. package/dist/ui/usecases/UserStoryCard.js +3 -3
  228. package/dist/ui/visualization/Visualization.d.ts +9 -0
  229. package/dist/ui/visualization/Visualization.js +434 -0
  230. package/dist/ui/visualization/Visualization.support.d.ts +15 -0
  231. package/dist/ui/visualization/Visualization.support.js +123 -0
  232. package/dist/ui/visualization/index.d.ts +1 -0
  233. package/dist/ui/visualization/index.js +5 -0
  234. package/package.json +75 -12
@@ -2,23 +2,23 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/button.tsx
5
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
5
6
  import { Slot } from "@radix-ui/react-slot";
6
7
  import { cva } from "class-variance-authority";
7
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
8
8
  import { jsxDEV } from "react/jsx-dev-runtime";
9
- var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
9
+ var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
10
10
  variants: {
11
11
  variant: {
12
12
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
14
- outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
13
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
14
+ outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
15
15
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
16
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
17
  link: "text-primary underline-offset-4 hover:underline"
18
18
  },
19
19
  size: {
20
20
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
21
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
21
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
22
22
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
23
  icon: "size-9"
24
24
  }
@@ -50,16 +50,31 @@ function Button({
50
50
  ...props
51
51
  }, undefined, false, undefined, this);
52
52
  }
53
+ // ui/label.tsx
54
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
55
+ import * as LabelPrimitive from "@radix-ui/react-label";
56
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
57
+ "use client";
58
+ function Label({
59
+ className,
60
+ ...props
61
+ }) {
62
+ return /* @__PURE__ */ jsxDEV2(LabelPrimitive.Root, {
63
+ "data-slot": "label",
64
+ 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),
65
+ ...props
66
+ }, undefined, false, undefined, this);
67
+ }
53
68
  // ui/select.tsx
69
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
54
70
  import * as SelectPrimitive from "@radix-ui/react-select";
55
71
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
56
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
57
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
72
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
58
73
  "use client";
59
74
  function Select({
60
75
  ...props
61
76
  }) {
62
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Root, {
77
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Root, {
63
78
  "data-slot": "select",
64
79
  ...props
65
80
  }, undefined, false, undefined, this);
@@ -67,7 +82,7 @@ function Select({
67
82
  function SelectGroup({
68
83
  ...props
69
84
  }) {
70
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Group, {
85
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Group, {
71
86
  "data-slot": "select-group",
72
87
  ...props
73
88
  }, undefined, false, undefined, this);
@@ -75,7 +90,7 @@ function SelectGroup({
75
90
  function SelectValue({
76
91
  ...props
77
92
  }) {
78
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Value, {
93
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Value, {
79
94
  "data-slot": "select-value",
80
95
  ...props
81
96
  }, undefined, false, undefined, this);
@@ -86,16 +101,16 @@ function SelectTrigger({
86
101
  children,
87
102
  ...props
88
103
  }) {
89
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
104
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Trigger, {
90
105
  "data-slot": "select-trigger",
91
106
  "data-size": size,
92
- 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),
107
+ 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),
93
108
  ...props,
94
109
  children: [
95
110
  children,
96
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Icon, {
111
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Icon, {
97
112
  asChild: true,
98
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
113
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
99
114
  className: "size-4 opacity-50"
100
115
  }, undefined, false, undefined, this)
101
116
  }, undefined, false, undefined, this)
@@ -108,19 +123,19 @@ function SelectContent({
108
123
  position = "popper",
109
124
  ...props
110
125
  }) {
111
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
112
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
126
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Portal, {
127
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.Content, {
113
128
  "data-slot": "select-content",
114
- 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),
129
+ 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),
115
130
  position,
116
131
  ...props,
117
132
  children: [
118
- /* @__PURE__ */ jsxDEV2(SelectScrollUpButton, {}, undefined, false, undefined, this),
119
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Viewport, {
120
- className: cn2("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
133
+ /* @__PURE__ */ jsxDEV3(SelectScrollUpButton, {}, undefined, false, undefined, this),
134
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Viewport, {
135
+ className: cn3("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
121
136
  children
122
137
  }, undefined, false, undefined, this),
123
- /* @__PURE__ */ jsxDEV2(SelectScrollDownButton, {}, undefined, false, undefined, this)
138
+ /* @__PURE__ */ jsxDEV3(SelectScrollDownButton, {}, undefined, false, undefined, this)
124
139
  ]
125
140
  }, undefined, true, undefined, this)
126
141
  }, undefined, false, undefined, this);
@@ -129,9 +144,9 @@ function SelectLabel({
129
144
  className,
130
145
  ...props
131
146
  }) {
132
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
147
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Label, {
133
148
  "data-slot": "select-label",
134
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
149
+ className: cn3("px-2 py-1.5 text-muted-foreground text-xs", className),
135
150
  ...props
136
151
  }, undefined, false, undefined, this);
137
152
  }
@@ -140,20 +155,20 @@ function SelectItem({
140
155
  children,
141
156
  ...props
142
157
  }) {
143
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
158
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Item, {
144
159
  "data-slot": "select-item",
145
- 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),
160
+ 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),
146
161
  ...props,
147
162
  children: [
148
- /* @__PURE__ */ jsxDEV2("span", {
163
+ /* @__PURE__ */ jsxDEV3("span", {
149
164
  className: "absolute right-2 flex size-3.5 items-center justify-center",
150
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemIndicator, {
151
- children: /* @__PURE__ */ jsxDEV2(CheckIcon, {
165
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemIndicator, {
166
+ children: /* @__PURE__ */ jsxDEV3(CheckIcon, {
152
167
  className: "size-4"
153
168
  }, undefined, false, undefined, this)
154
169
  }, undefined, false, undefined, this)
155
170
  }, undefined, false, undefined, this),
156
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemText, {
171
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemText, {
157
172
  children
158
173
  }, undefined, false, undefined, this)
159
174
  ]
@@ -163,9 +178,9 @@ function SelectSeparator({
163
178
  className,
164
179
  ...props
165
180
  }) {
166
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
181
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Separator, {
167
182
  "data-slot": "select-separator",
168
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
183
+ className: cn3("pointer-events-none -mx-1 my-1 h-px bg-border", className),
169
184
  ...props
170
185
  }, undefined, false, undefined, this);
171
186
  }
@@ -173,11 +188,11 @@ function SelectScrollUpButton({
173
188
  className,
174
189
  ...props
175
190
  }) {
176
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollUpButton, {
191
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollUpButton, {
177
192
  "data-slot": "select-scroll-up-button",
178
- className: cn2("flex cursor-default items-center justify-center py-1", className),
193
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
179
194
  ...props,
180
- children: /* @__PURE__ */ jsxDEV2(ChevronUpIcon, {
195
+ children: /* @__PURE__ */ jsxDEV3(ChevronUpIcon, {
181
196
  className: "size-4"
182
197
  }, undefined, false, undefined, this)
183
198
  }, undefined, false, undefined, this);
@@ -186,30 +201,15 @@ function SelectScrollDownButton({
186
201
  className,
187
202
  ...props
188
203
  }) {
189
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollDownButton, {
204
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollDownButton, {
190
205
  "data-slot": "select-scroll-down-button",
191
- className: cn2("flex cursor-default items-center justify-center py-1", className),
206
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
192
207
  ...props,
193
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
208
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
194
209
  className: "size-4"
195
210
  }, undefined, false, undefined, this)
196
211
  }, undefined, false, undefined, this);
197
212
  }
198
- // ui/label.tsx
199
- import * as LabelPrimitive from "@radix-ui/react-label";
200
- import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
201
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
202
- "use client";
203
- function Label2({
204
- className,
205
- ...props
206
- }) {
207
- return /* @__PURE__ */ jsxDEV3(LabelPrimitive.Root, {
208
- "data-slot": "label",
209
- 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),
210
- ...props
211
- }, undefined, false, undefined, this);
212
- }
213
213
  // ui/atoms/FilterSelect/FilterSelect.tsx
214
214
  import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
215
215
  var FilterSelect = ({
@@ -225,8 +225,8 @@ var FilterSelect = ({
225
225
  return /* @__PURE__ */ jsxDEV4("div", {
226
226
  className: `space-y-2 ${className}`,
227
227
  children: [
228
- label && /* @__PURE__ */ jsxDEV4(Label2, {
229
- className: "text-foreground text-base font-medium",
228
+ label && /* @__PURE__ */ jsxDEV4(Label, {
229
+ className: "font-medium text-base text-foreground",
230
230
  children: label
231
231
  }, undefined, false, undefined, this),
232
232
  /* @__PURE__ */ jsxDEV4(Select, {
@@ -248,7 +248,7 @@ var FilterSelect = ({
248
248
  children: [
249
249
  "Tous",
250
250
  showCounts && /* @__PURE__ */ jsxDEV4("span", {
251
- className: "text-muted-foreground ml-2 text-sm",
251
+ className: "ml-2 text-muted-foreground text-sm",
252
252
  children: [
253
253
  "(",
254
254
  options.reduce((sum, option) => sum + (option.count || 0), 0),
@@ -266,7 +266,7 @@ var FilterSelect = ({
266
266
  children: option.label
267
267
  }, undefined, false, undefined, this),
268
268
  showCounts && option.count !== undefined && /* @__PURE__ */ jsxDEV4("span", {
269
- className: "text-muted-foreground ml-2 text-sm",
269
+ className: "ml-2 text-muted-foreground text-sm",
270
270
  children: [
271
271
  "(",
272
272
  option.count,
@@ -290,7 +290,7 @@ function Input({ className, type, ...props }) {
290
290
  return /* @__PURE__ */ jsxDEV5("input", {
291
291
  type,
292
292
  "data-slot": "input",
293
- 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),
293
+ 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),
294
294
  ...props
295
295
  }, undefined, false, undefined, this);
296
296
  }
@@ -316,7 +316,7 @@ var SearchInput = ({
316
316
  /* @__PURE__ */ jsxDEV6("div", {
317
317
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
318
318
  children: /* @__PURE__ */ jsxDEV6(Search, {
319
- className: "text-muted-foreground h-4 w-4"
319
+ className: "h-4 w-4 text-muted-foreground"
320
320
  }, undefined, false, undefined, this)
321
321
  }, undefined, false, undefined, this),
322
322
  /* @__PURE__ */ jsxDEV6(Input, {
@@ -339,7 +339,7 @@ var SearchInput = ({
339
339
  className: "h-6 w-6 p-0 hover:bg-transparent",
340
340
  children: [
341
341
  /* @__PURE__ */ jsxDEV6(X, {
342
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
342
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
343
343
  }, undefined, false, undefined, this),
344
344
  /* @__PURE__ */ jsxDEV6("span", {
345
345
  className: "sr-only",
@@ -380,8 +380,8 @@ function CollapsibleContent2({
380
380
  }, undefined, false, undefined, this);
381
381
  }
382
382
  // ui/molecules/SearchAndFilter/SearchAndFilter.tsx
383
- import { useState } from "react";
384
383
  import { ChevronDown, ChevronUp, Filter } from "lucide-react";
384
+ import { useState } from "react";
385
385
  import { jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
386
386
  var SearchAndFilter = ({
387
387
  searchValue,
@@ -444,7 +444,7 @@ var SearchAndFilter = ({
444
444
  }, undefined, false, undefined, this),
445
445
  "Filtres",
446
446
  activeFiltersCount > 0 && /* @__PURE__ */ jsxDEV8("span", {
447
- className: "bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm",
447
+ className: "ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",
448
448
  children: activeFiltersCount
449
449
  }, undefined, false, undefined, this),
450
450
  isCollapsed ? /* @__PURE__ */ jsxDEV8(ChevronDown, {
@@ -471,7 +471,7 @@ var SearchAndFilter = ({
471
471
  className: "flex flex-wrap items-center gap-2",
472
472
  children: [
473
473
  /* @__PURE__ */ jsxDEV8("span", {
474
- className: "text-muted-foreground text-base",
474
+ className: "text-base text-muted-foreground",
475
475
  children: "Filtres actifs:"
476
476
  }, undefined, false, undefined, this),
477
477
  filters.filter((f) => f.value).map((filter) => {
@@ -2,23 +2,23 @@
2
2
  var __require = import.meta.require;
3
3
 
4
4
  // ui/button.tsx
5
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
5
6
  import { Slot } from "@radix-ui/react-slot";
6
7
  import { cva } from "class-variance-authority";
7
- import { cn } from "@contractspec/lib.ui-kit-core/utils";
8
8
  import { jsxDEV } from "react/jsx-dev-runtime";
9
- var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
9
+ var buttonVariants = cva("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
10
10
  variants: {
11
11
  variant: {
12
12
  default: "bg-primary text-primary-foreground hover:bg-primary/90",
13
- destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
14
- outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
13
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",
14
+ outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
15
15
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
16
16
  ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
17
17
  link: "text-primary underline-offset-4 hover:underline"
18
18
  },
19
19
  size: {
20
20
  default: "h-9 px-4 py-2 has-[>svg]:px-3",
21
- sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
21
+ sm: "h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",
22
22
  lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
23
23
  icon: "size-9"
24
24
  }
@@ -50,16 +50,31 @@ function Button({
50
50
  ...props
51
51
  }, undefined, false, undefined, this);
52
52
  }
53
+ // ui/label.tsx
54
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
55
+ import * as LabelPrimitive from "@radix-ui/react-label";
56
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
57
+ "use client";
58
+ function Label({
59
+ className,
60
+ ...props
61
+ }) {
62
+ return /* @__PURE__ */ jsxDEV2(LabelPrimitive.Root, {
63
+ "data-slot": "label",
64
+ 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),
65
+ ...props
66
+ }, undefined, false, undefined, this);
67
+ }
53
68
  // ui/select.tsx
69
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
54
70
  import * as SelectPrimitive from "@radix-ui/react-select";
55
71
  import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react";
56
- import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
57
- import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
72
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
58
73
  "use client";
59
74
  function Select({
60
75
  ...props
61
76
  }) {
62
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Root, {
77
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Root, {
63
78
  "data-slot": "select",
64
79
  ...props
65
80
  }, undefined, false, undefined, this);
@@ -67,7 +82,7 @@ function Select({
67
82
  function SelectGroup({
68
83
  ...props
69
84
  }) {
70
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Group, {
85
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Group, {
71
86
  "data-slot": "select-group",
72
87
  ...props
73
88
  }, undefined, false, undefined, this);
@@ -75,7 +90,7 @@ function SelectGroup({
75
90
  function SelectValue({
76
91
  ...props
77
92
  }) {
78
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Value, {
93
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Value, {
79
94
  "data-slot": "select-value",
80
95
  ...props
81
96
  }, undefined, false, undefined, this);
@@ -86,16 +101,16 @@ function SelectTrigger({
86
101
  children,
87
102
  ...props
88
103
  }) {
89
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Trigger, {
104
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Trigger, {
90
105
  "data-slot": "select-trigger",
91
106
  "data-size": size,
92
- 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),
107
+ 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),
93
108
  ...props,
94
109
  children: [
95
110
  children,
96
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Icon, {
111
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Icon, {
97
112
  asChild: true,
98
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
113
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
99
114
  className: "size-4 opacity-50"
100
115
  }, undefined, false, undefined, this)
101
116
  }, undefined, false, undefined, this)
@@ -108,19 +123,19 @@ function SelectContent({
108
123
  position = "popper",
109
124
  ...props
110
125
  }) {
111
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Portal, {
112
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.Content, {
126
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Portal, {
127
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.Content, {
113
128
  "data-slot": "select-content",
114
- 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),
129
+ 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),
115
130
  position,
116
131
  ...props,
117
132
  children: [
118
- /* @__PURE__ */ jsxDEV2(SelectScrollUpButton, {}, undefined, false, undefined, this),
119
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.Viewport, {
120
- className: cn2("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
133
+ /* @__PURE__ */ jsxDEV3(SelectScrollUpButton, {}, undefined, false, undefined, this),
134
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.Viewport, {
135
+ className: cn3("p-1", position === "popper" && "h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),
121
136
  children
122
137
  }, undefined, false, undefined, this),
123
- /* @__PURE__ */ jsxDEV2(SelectScrollDownButton, {}, undefined, false, undefined, this)
138
+ /* @__PURE__ */ jsxDEV3(SelectScrollDownButton, {}, undefined, false, undefined, this)
124
139
  ]
125
140
  }, undefined, true, undefined, this)
126
141
  }, undefined, false, undefined, this);
@@ -129,9 +144,9 @@ function SelectLabel({
129
144
  className,
130
145
  ...props
131
146
  }) {
132
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Label, {
147
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Label, {
133
148
  "data-slot": "select-label",
134
- className: cn2("text-muted-foreground px-2 py-1.5 text-xs", className),
149
+ className: cn3("px-2 py-1.5 text-muted-foreground text-xs", className),
135
150
  ...props
136
151
  }, undefined, false, undefined, this);
137
152
  }
@@ -140,20 +155,20 @@ function SelectItem({
140
155
  children,
141
156
  ...props
142
157
  }) {
143
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Item, {
158
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Item, {
144
159
  "data-slot": "select-item",
145
- 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),
160
+ 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),
146
161
  ...props,
147
162
  children: [
148
- /* @__PURE__ */ jsxDEV2("span", {
163
+ /* @__PURE__ */ jsxDEV3("span", {
149
164
  className: "absolute right-2 flex size-3.5 items-center justify-center",
150
- children: /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemIndicator, {
151
- children: /* @__PURE__ */ jsxDEV2(CheckIcon, {
165
+ children: /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemIndicator, {
166
+ children: /* @__PURE__ */ jsxDEV3(CheckIcon, {
152
167
  className: "size-4"
153
168
  }, undefined, false, undefined, this)
154
169
  }, undefined, false, undefined, this)
155
170
  }, undefined, false, undefined, this),
156
- /* @__PURE__ */ jsxDEV2(SelectPrimitive.ItemText, {
171
+ /* @__PURE__ */ jsxDEV3(SelectPrimitive.ItemText, {
157
172
  children
158
173
  }, undefined, false, undefined, this)
159
174
  ]
@@ -163,9 +178,9 @@ function SelectSeparator({
163
178
  className,
164
179
  ...props
165
180
  }) {
166
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.Separator, {
181
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.Separator, {
167
182
  "data-slot": "select-separator",
168
- className: cn2("bg-border pointer-events-none -mx-1 my-1 h-px", className),
183
+ className: cn3("pointer-events-none -mx-1 my-1 h-px bg-border", className),
169
184
  ...props
170
185
  }, undefined, false, undefined, this);
171
186
  }
@@ -173,11 +188,11 @@ function SelectScrollUpButton({
173
188
  className,
174
189
  ...props
175
190
  }) {
176
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollUpButton, {
191
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollUpButton, {
177
192
  "data-slot": "select-scroll-up-button",
178
- className: cn2("flex cursor-default items-center justify-center py-1", className),
193
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
179
194
  ...props,
180
- children: /* @__PURE__ */ jsxDEV2(ChevronUpIcon, {
195
+ children: /* @__PURE__ */ jsxDEV3(ChevronUpIcon, {
181
196
  className: "size-4"
182
197
  }, undefined, false, undefined, this)
183
198
  }, undefined, false, undefined, this);
@@ -186,30 +201,15 @@ function SelectScrollDownButton({
186
201
  className,
187
202
  ...props
188
203
  }) {
189
- return /* @__PURE__ */ jsxDEV2(SelectPrimitive.ScrollDownButton, {
204
+ return /* @__PURE__ */ jsxDEV3(SelectPrimitive.ScrollDownButton, {
190
205
  "data-slot": "select-scroll-down-button",
191
- className: cn2("flex cursor-default items-center justify-center py-1", className),
206
+ className: cn3("flex cursor-default items-center justify-center py-1", className),
192
207
  ...props,
193
- children: /* @__PURE__ */ jsxDEV2(ChevronDownIcon, {
208
+ children: /* @__PURE__ */ jsxDEV3(ChevronDownIcon, {
194
209
  className: "size-4"
195
210
  }, undefined, false, undefined, this)
196
211
  }, undefined, false, undefined, this);
197
212
  }
198
- // ui/label.tsx
199
- import * as LabelPrimitive from "@radix-ui/react-label";
200
- import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
201
- import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
202
- "use client";
203
- function Label2({
204
- className,
205
- ...props
206
- }) {
207
- return /* @__PURE__ */ jsxDEV3(LabelPrimitive.Root, {
208
- "data-slot": "label",
209
- 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),
210
- ...props
211
- }, undefined, false, undefined, this);
212
- }
213
213
  // ui/atoms/FilterSelect/FilterSelect.tsx
214
214
  import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
215
215
  var FilterSelect = ({
@@ -225,8 +225,8 @@ var FilterSelect = ({
225
225
  return /* @__PURE__ */ jsxDEV4("div", {
226
226
  className: `space-y-2 ${className}`,
227
227
  children: [
228
- label && /* @__PURE__ */ jsxDEV4(Label2, {
229
- className: "text-foreground text-base font-medium",
228
+ label && /* @__PURE__ */ jsxDEV4(Label, {
229
+ className: "font-medium text-base text-foreground",
230
230
  children: label
231
231
  }, undefined, false, undefined, this),
232
232
  /* @__PURE__ */ jsxDEV4(Select, {
@@ -248,7 +248,7 @@ var FilterSelect = ({
248
248
  children: [
249
249
  "Tous",
250
250
  showCounts && /* @__PURE__ */ jsxDEV4("span", {
251
- className: "text-muted-foreground ml-2 text-sm",
251
+ className: "ml-2 text-muted-foreground text-sm",
252
252
  children: [
253
253
  "(",
254
254
  options.reduce((sum, option) => sum + (option.count || 0), 0),
@@ -266,7 +266,7 @@ var FilterSelect = ({
266
266
  children: option.label
267
267
  }, undefined, false, undefined, this),
268
268
  showCounts && option.count !== undefined && /* @__PURE__ */ jsxDEV4("span", {
269
- className: "text-muted-foreground ml-2 text-sm",
269
+ className: "ml-2 text-muted-foreground text-sm",
270
270
  children: [
271
271
  "(",
272
272
  option.count,
@@ -290,7 +290,7 @@ function Input({ className, type, ...props }) {
290
290
  return /* @__PURE__ */ jsxDEV5("input", {
291
291
  type,
292
292
  "data-slot": "input",
293
- 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),
293
+ 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),
294
294
  ...props
295
295
  }, undefined, false, undefined, this);
296
296
  }
@@ -316,7 +316,7 @@ var SearchInput = ({
316
316
  /* @__PURE__ */ jsxDEV6("div", {
317
317
  className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
318
318
  children: /* @__PURE__ */ jsxDEV6(Search, {
319
- className: "text-muted-foreground h-4 w-4"
319
+ className: "h-4 w-4 text-muted-foreground"
320
320
  }, undefined, false, undefined, this)
321
321
  }, undefined, false, undefined, this),
322
322
  /* @__PURE__ */ jsxDEV6(Input, {
@@ -339,7 +339,7 @@ var SearchInput = ({
339
339
  className: "h-6 w-6 p-0 hover:bg-transparent",
340
340
  children: [
341
341
  /* @__PURE__ */ jsxDEV6(X, {
342
- className: "text-muted-foreground hover:text-foreground h-4 w-4"
342
+ className: "h-4 w-4 text-muted-foreground hover:text-foreground"
343
343
  }, undefined, false, undefined, this),
344
344
  /* @__PURE__ */ jsxDEV6("span", {
345
345
  className: "sr-only",
@@ -380,8 +380,8 @@ function CollapsibleContent2({
380
380
  }, undefined, false, undefined, this);
381
381
  }
382
382
  // ui/molecules/SearchAndFilter/SearchAndFilter.tsx
383
- import { useState } from "react";
384
383
  import { ChevronDown, ChevronUp, Filter } from "lucide-react";
384
+ import { useState } from "react";
385
385
  import { jsxDEV as jsxDEV8 } from "react/jsx-dev-runtime";
386
386
  var SearchAndFilter = ({
387
387
  searchValue,
@@ -444,7 +444,7 @@ var SearchAndFilter = ({
444
444
  }, undefined, false, undefined, this),
445
445
  "Filtres",
446
446
  activeFiltersCount > 0 && /* @__PURE__ */ jsxDEV8("span", {
447
- className: "bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm",
447
+ className: "ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",
448
448
  children: activeFiltersCount
449
449
  }, undefined, false, undefined, this),
450
450
  isCollapsed ? /* @__PURE__ */ jsxDEV8(ChevronDown, {
@@ -471,7 +471,7 @@ var SearchAndFilter = ({
471
471
  className: "flex flex-wrap items-center gap-2",
472
472
  children: [
473
473
  /* @__PURE__ */ jsxDEV8("span", {
474
- className: "text-muted-foreground text-base",
474
+ className: "text-base text-muted-foreground",
475
475
  children: "Filtres actifs:"
476
476
  }, undefined, false, undefined, this),
477
477
  filters.filter((f) => f.value).map((filter) => {
@@ -16,7 +16,7 @@ function Skeleton({
16
16
  }) {
17
17
  return /* @__PURE__ */ jsxDEV("div", {
18
18
  "data-slot": "skeleton",
19
- className: cn("bg-accent animate-pulse rounded-md", className),
19
+ className: cn("animate-pulse rounded-md bg-accent", className),
20
20
  ...props
21
21
  }, undefined, false, undefined, this);
22
22
  }