@lssm-tech/lib.ui-kit-web 3.13.4

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 (391) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -0
  3. package/dist/browser/index.js +1 -0
  4. package/dist/browser/ui/accordion.js +1 -0
  5. package/dist/browser/ui/alert-dialog.js +1 -0
  6. package/dist/browser/ui/alert.js +1 -0
  7. package/dist/browser/ui/aspect-ratio.js +1 -0
  8. package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +1 -0
  9. package/dist/browser/ui/atoms/FilterSelect/index.js +1 -0
  10. package/dist/browser/ui/atoms/FilterSelect/types.js +0 -0
  11. package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -0
  12. package/dist/browser/ui/atoms/LoadingSpinner/index.js +1 -0
  13. package/dist/browser/ui/atoms/Pagination/Pagination.js +1 -0
  14. package/dist/browser/ui/atoms/Pagination/index.js +1 -0
  15. package/dist/browser/ui/atoms/Pagination/types.js +0 -0
  16. package/dist/browser/ui/atoms/SearchInput/SearchInput.js +1 -0
  17. package/dist/browser/ui/atoms/SearchInput/index.js +1 -0
  18. package/dist/browser/ui/atoms/SearchInput/types.js +0 -0
  19. package/dist/browser/ui/avatar.js +1 -0
  20. package/dist/browser/ui/badge.js +1 -0
  21. package/dist/browser/ui/breadcrumb.js +1 -0
  22. package/dist/browser/ui/button-group.js +1 -0
  23. package/dist/browser/ui/button.js +1 -0
  24. package/dist/browser/ui/calendar.js +1 -0
  25. package/dist/browser/ui/card.js +1 -0
  26. package/dist/browser/ui/carousel.js +1 -0
  27. package/dist/browser/ui/chart.js +1 -0
  28. package/dist/browser/ui/checkbox.js +1 -0
  29. package/dist/browser/ui/collapsible.js +1 -0
  30. package/dist/browser/ui/combobox.js +1 -0
  31. package/dist/browser/ui/command.js +1 -0
  32. package/dist/browser/ui/confirm-dialog.js +1 -0
  33. package/dist/browser/ui/context-menu.js +1 -0
  34. package/dist/browser/ui/contracts.typecheck.js +0 -0
  35. package/dist/browser/ui/cta.js +1 -0
  36. package/dist/browser/ui/data-table.js +1 -0
  37. package/dist/browser/ui/data-table.parts.js +1 -0
  38. package/dist/browser/ui/date-picker.js +1 -0
  39. package/dist/browser/ui/date-range-picker.js +1 -0
  40. package/dist/browser/ui/datetime-picker.js +1 -0
  41. package/dist/browser/ui/dialog.js +1 -0
  42. package/dist/browser/ui/direction.js +1 -0
  43. package/dist/browser/ui/drawer.js +1 -0
  44. package/dist/browser/ui/dropdown-menu.js +1 -0
  45. package/dist/browser/ui/empty-state.js +1 -0
  46. package/dist/browser/ui/empty.js +1 -0
  47. package/dist/browser/ui/field.js +1 -0
  48. package/dist/browser/ui/focus-on-route-change.js +1 -0
  49. package/dist/browser/ui/form.js +1 -0
  50. package/dist/browser/ui/hover-card.js +1 -0
  51. package/dist/browser/ui/input-group.js +1 -0
  52. package/dist/browser/ui/input-otp.js +1 -0
  53. package/dist/browser/ui/input-password.js +1 -0
  54. package/dist/browser/ui/input.js +1 -0
  55. package/dist/browser/ui/item.js +1 -0
  56. package/dist/browser/ui/kbd.js +1 -0
  57. package/dist/browser/ui/label.js +1 -0
  58. package/dist/browser/ui/link.js +1 -0
  59. package/dist/browser/ui/list.js +1 -0
  60. package/dist/browser/ui/live-region.js +1 -0
  61. package/dist/browser/ui/loading-button.js +1 -0
  62. package/dist/browser/ui/map/MapBase.js +1 -0
  63. package/dist/browser/ui/map/MapGeoJsonOverlay.js +1 -0
  64. package/dist/browser/ui/map/MapHeatmapH3.js +1 -0
  65. package/dist/browser/ui/map/MapMarkers.js +1 -0
  66. package/dist/browser/ui/map/index.js +1 -0
  67. package/dist/browser/ui/marketing/FeatureGrid.js +1 -0
  68. package/dist/browser/ui/marketing/Hero.js +1 -0
  69. package/dist/browser/ui/marketing/PricingTable.js +1 -0
  70. package/dist/browser/ui/marketing/index.js +1 -0
  71. package/dist/browser/ui/menubar.js +1 -0
  72. package/dist/browser/ui/molecules/Autocomplete/index.js +1 -0
  73. package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -0
  74. package/dist/browser/ui/molecules/SearchAndFilter/index.js +1 -0
  75. package/dist/browser/ui/molecules/SearchAndFilter/types.js +0 -0
  76. package/dist/browser/ui/molecules/SkeletonList.js +1 -0
  77. package/dist/browser/ui/native-select.js +1 -0
  78. package/dist/browser/ui/nav-layout.js +1 -0
  79. package/dist/browser/ui/navigation-menu.js +1 -0
  80. package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +1 -0
  81. package/dist/browser/ui/organisms/ErrorBoundary/index.js +1 -0
  82. package/dist/browser/ui/organisms/ListPage/ListPage.js +1 -0
  83. package/dist/browser/ui/organisms/ListPage/index.js +1 -0
  84. package/dist/browser/ui/organisms/ListPage/types.js +0 -0
  85. package/dist/browser/ui/page-header.js +1 -0
  86. package/dist/browser/ui/pagination.js +1 -0
  87. package/dist/browser/ui/popover.js +1 -0
  88. package/dist/browser/ui/progress.js +1 -0
  89. package/dist/browser/ui/radio-group.js +1 -0
  90. package/dist/browser/ui/resizable.js +1 -0
  91. package/dist/browser/ui/route-announcer.js +1 -0
  92. package/dist/browser/ui/scroll-area.js +1 -0
  93. package/dist/browser/ui/section.js +1 -0
  94. package/dist/browser/ui/select.js +1 -0
  95. package/dist/browser/ui/separator.js +1 -0
  96. package/dist/browser/ui/sheet.js +1 -0
  97. package/dist/browser/ui/sidebar.js +1 -0
  98. package/dist/browser/ui/skeleton.js +1 -0
  99. package/dist/browser/ui/skip-link.js +1 -0
  100. package/dist/browser/ui/slider.js +1 -0
  101. package/dist/browser/ui/sonner.js +1 -0
  102. package/dist/browser/ui/spinner.js +1 -0
  103. package/dist/browser/ui/stack.js +1 -0
  104. package/dist/browser/ui/stat-card-group.js +1 -0
  105. package/dist/browser/ui/stepper.js +1 -0
  106. package/dist/browser/ui/switch.js +1 -0
  107. package/dist/browser/ui/table.js +1 -0
  108. package/dist/browser/ui/tabs.js +1 -0
  109. package/dist/browser/ui/text.js +1 -0
  110. package/dist/browser/ui/textarea.js +1 -0
  111. package/dist/browser/ui/time-picker.js +1 -0
  112. package/dist/browser/ui/toast.js +1 -0
  113. package/dist/browser/ui/toaster.js +1 -0
  114. package/dist/browser/ui/toggle-group.js +1 -0
  115. package/dist/browser/ui/toggle.js +1 -0
  116. package/dist/browser/ui/tooltip.js +1 -0
  117. package/dist/browser/ui/typography.js +1 -0
  118. package/dist/browser/ui/use-media-query.js +1 -0
  119. package/dist/browser/ui/use-mobile.js +1 -0
  120. package/dist/browser/ui/use-reduced-motion.js +1 -0
  121. package/dist/browser/ui/use-toast.js +1 -0
  122. package/dist/browser/ui/useListState.js +1 -0
  123. package/dist/browser/ui/usecases/UseCaseCard.js +1 -0
  124. package/dist/browser/ui/usecases/UserStoryCard.js +1 -0
  125. package/dist/browser/ui/usecases/index.js +1 -0
  126. package/dist/browser/ui/utils.js +1 -0
  127. package/dist/browser/ui/visualization/Visualization.js +1 -0
  128. package/dist/browser/ui/visualization/Visualization.support.js +1 -0
  129. package/dist/browser/ui/visualization/index.js +1 -0
  130. package/dist/browser/ui/visually-hidden.js +1 -0
  131. package/dist/index.d.ts +1 -0
  132. package/dist/index.js +2 -0
  133. package/dist/ui/accordion.d.ts +7 -0
  134. package/dist/ui/accordion.js +2 -0
  135. package/dist/ui/alert-dialog.d.ts +14 -0
  136. package/dist/ui/alert-dialog.js +2 -0
  137. package/dist/ui/alert.d.ts +9 -0
  138. package/dist/ui/alert.js +2 -0
  139. package/dist/ui/aspect-ratio.d.ts +3 -0
  140. package/dist/ui/aspect-ratio.js +2 -0
  141. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +3 -0
  142. package/dist/ui/atoms/FilterSelect/FilterSelect.js +2 -0
  143. package/dist/ui/atoms/FilterSelect/index.d.ts +2 -0
  144. package/dist/ui/atoms/FilterSelect/index.js +2 -0
  145. package/dist/ui/atoms/FilterSelect/types.d.ts +5 -0
  146. package/dist/ui/atoms/FilterSelect/types.js +1 -0
  147. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +19 -0
  148. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +2 -0
  149. package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -0
  150. package/dist/ui/atoms/LoadingSpinner/index.js +2 -0
  151. package/dist/ui/atoms/Pagination/Pagination.d.ts +3 -0
  152. package/dist/ui/atoms/Pagination/Pagination.js +2 -0
  153. package/dist/ui/atoms/Pagination/index.d.ts +2 -0
  154. package/dist/ui/atoms/Pagination/index.js +2 -0
  155. package/dist/ui/atoms/Pagination/types.d.ts +3 -0
  156. package/dist/ui/atoms/Pagination/types.js +1 -0
  157. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +3 -0
  158. package/dist/ui/atoms/SearchInput/SearchInput.js +2 -0
  159. package/dist/ui/atoms/SearchInput/index.d.ts +2 -0
  160. package/dist/ui/atoms/SearchInput/index.js +2 -0
  161. package/dist/ui/atoms/SearchInput/types.d.ts +3 -0
  162. package/dist/ui/atoms/SearchInput/types.js +1 -0
  163. package/dist/ui/avatar.d.ts +6 -0
  164. package/dist/ui/avatar.js +2 -0
  165. package/dist/ui/badge.d.ts +9 -0
  166. package/dist/ui/badge.js +2 -0
  167. package/dist/ui/breadcrumb.d.ts +11 -0
  168. package/dist/ui/breadcrumb.js +2 -0
  169. package/dist/ui/button-group.d.ts +5 -0
  170. package/dist/ui/button-group.js +2 -0
  171. package/dist/ui/button.d.ts +17 -0
  172. package/dist/ui/button.js +2 -0
  173. package/dist/ui/calendar.d.ts +8 -0
  174. package/dist/ui/calendar.js +2 -0
  175. package/dist/ui/card.d.ts +9 -0
  176. package/dist/ui/card.js +2 -0
  177. package/dist/ui/carousel.d.ts +19 -0
  178. package/dist/ui/carousel.js +2 -0
  179. package/dist/ui/chart.d.ts +45 -0
  180. package/dist/ui/chart.js +2 -0
  181. package/dist/ui/checkbox.d.ts +4 -0
  182. package/dist/ui/checkbox.js +2 -0
  183. package/dist/ui/collapsible.d.ts +5 -0
  184. package/dist/ui/collapsible.js +2 -0
  185. package/dist/ui/combobox.d.ts +32 -0
  186. package/dist/ui/combobox.js +2 -0
  187. package/dist/ui/combobox.test.d.ts +1 -0
  188. package/dist/ui/command.d.ts +18 -0
  189. package/dist/ui/command.js +2 -0
  190. package/dist/ui/confirm-dialog.d.ts +14 -0
  191. package/dist/ui/confirm-dialog.js +2 -0
  192. package/dist/ui/context-menu.d.ts +31 -0
  193. package/dist/ui/context-menu.js +2 -0
  194. package/dist/ui/contracts.typecheck.d.ts +1 -0
  195. package/dist/ui/contracts.typecheck.js +1 -0
  196. package/dist/ui/cta.d.ts +12 -0
  197. package/dist/ui/cta.js +2 -0
  198. package/dist/ui/data-table.d.ts +8 -0
  199. package/dist/ui/data-table.js +2 -0
  200. package/dist/ui/data-table.parts.d.ts +19 -0
  201. package/dist/ui/data-table.parts.js +2 -0
  202. package/dist/ui/data-table.test.d.ts +1 -0
  203. package/dist/ui/date-picker.d.ts +5 -0
  204. package/dist/ui/date-picker.js +2 -0
  205. package/dist/ui/date-range-picker.d.ts +6 -0
  206. package/dist/ui/date-range-picker.js +2 -0
  207. package/dist/ui/datetime-picker.d.ts +6 -0
  208. package/dist/ui/datetime-picker.js +2 -0
  209. package/dist/ui/dialog.d.ts +15 -0
  210. package/dist/ui/dialog.js +2 -0
  211. package/dist/ui/direction.d.ts +9 -0
  212. package/dist/ui/direction.js +2 -0
  213. package/dist/ui/drawer.d.ts +13 -0
  214. package/dist/ui/drawer.js +2 -0
  215. package/dist/ui/dropdown-menu.d.ts +25 -0
  216. package/dist/ui/dropdown-menu.js +2 -0
  217. package/dist/ui/empty-state.d.ts +9 -0
  218. package/dist/ui/empty-state.js +2 -0
  219. package/dist/ui/empty.d.ts +12 -0
  220. package/dist/ui/empty.js +2 -0
  221. package/dist/ui/field.d.ts +20 -0
  222. package/dist/ui/field.js +2 -0
  223. package/dist/ui/focus-on-route-change.d.ts +3 -0
  224. package/dist/ui/focus-on-route-change.js +2 -0
  225. package/dist/ui/form.d.ts +26 -0
  226. package/dist/ui/form.js +2 -0
  227. package/dist/ui/hover-card.d.ts +6 -0
  228. package/dist/ui/hover-card.js +2 -0
  229. package/dist/ui/input-group.d.ts +18 -0
  230. package/dist/ui/input-group.js +2 -0
  231. package/dist/ui/input-otp.d.ts +16 -0
  232. package/dist/ui/input-otp.js +2 -0
  233. package/dist/ui/input-password.d.ts +11 -0
  234. package/dist/ui/input-password.js +2 -0
  235. package/dist/ui/input-password.test.d.ts +1 -0
  236. package/dist/ui/input.d.ts +7 -0
  237. package/dist/ui/input.js +2 -0
  238. package/dist/ui/item.d.ts +23 -0
  239. package/dist/ui/item.js +2 -0
  240. package/dist/ui/kbd.d.ts +3 -0
  241. package/dist/ui/kbd.js +2 -0
  242. package/dist/ui/label.d.ts +4 -0
  243. package/dist/ui/label.js +2 -0
  244. package/dist/ui/link.d.ts +6 -0
  245. package/dist/ui/link.js +2 -0
  246. package/dist/ui/list.d.ts +20 -0
  247. package/dist/ui/list.js +2 -0
  248. package/dist/ui/live-region.d.ts +10 -0
  249. package/dist/ui/live-region.js +2 -0
  250. package/dist/ui/loading-button.d.ts +9 -0
  251. package/dist/ui/loading-button.js +2 -0
  252. package/dist/ui/map/MapBase.d.ts +22 -0
  253. package/dist/ui/map/MapBase.js +2 -0
  254. package/dist/ui/map/MapGeoJsonOverlay.d.ts +10 -0
  255. package/dist/ui/map/MapGeoJsonOverlay.js +2 -0
  256. package/dist/ui/map/MapHeatmapH3.d.ts +12 -0
  257. package/dist/ui/map/MapHeatmapH3.js +2 -0
  258. package/dist/ui/map/MapMarkers.d.ts +12 -0
  259. package/dist/ui/map/MapMarkers.js +2 -0
  260. package/dist/ui/map/index.d.ts +4 -0
  261. package/dist/ui/map/index.js +2 -0
  262. package/dist/ui/marketing/FeatureGrid.d.ts +4 -0
  263. package/dist/ui/marketing/FeatureGrid.js +2 -0
  264. package/dist/ui/marketing/Hero.d.ts +16 -0
  265. package/dist/ui/marketing/Hero.js +2 -0
  266. package/dist/ui/marketing/PricingTable.d.ts +4 -0
  267. package/dist/ui/marketing/PricingTable.js +2 -0
  268. package/dist/ui/marketing/index.d.ts +3 -0
  269. package/dist/ui/marketing/index.js +2 -0
  270. package/dist/ui/menubar.d.ts +26 -0
  271. package/dist/ui/menubar.js +2 -0
  272. package/dist/ui/molecules/Autocomplete/index.d.ts +1 -0
  273. package/dist/ui/molecules/Autocomplete/index.js +2 -0
  274. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +3 -0
  275. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +2 -0
  276. package/dist/ui/molecules/SearchAndFilter/index.d.ts +2 -0
  277. package/dist/ui/molecules/SearchAndFilter/index.js +2 -0
  278. package/dist/ui/molecules/SearchAndFilter/types.d.ts +3 -0
  279. package/dist/ui/molecules/SearchAndFilter/types.js +1 -0
  280. package/dist/ui/molecules/SkeletonList.d.ts +7 -0
  281. package/dist/ui/molecules/SkeletonList.js +2 -0
  282. package/dist/ui/native-select.d.ts +4 -0
  283. package/dist/ui/native-select.js +2 -0
  284. package/dist/ui/nav-layout.d.ts +47 -0
  285. package/dist/ui/nav-layout.js +2 -0
  286. package/dist/ui/navigation-menu.d.ts +14 -0
  287. package/dist/ui/navigation-menu.js +2 -0
  288. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +25 -0
  289. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +2 -0
  290. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  291. package/dist/ui/organisms/ErrorBoundary/index.js +2 -0
  292. package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -0
  293. package/dist/ui/organisms/ListPage/ListPage.js +2 -0
  294. package/dist/ui/organisms/ListPage/index.d.ts +2 -0
  295. package/dist/ui/organisms/ListPage/index.js +2 -0
  296. package/dist/ui/organisms/ListPage/types.d.ts +37 -0
  297. package/dist/ui/organisms/ListPage/types.js +1 -0
  298. package/dist/ui/page-header.d.ts +9 -0
  299. package/dist/ui/page-header.js +2 -0
  300. package/dist/ui/pagination.d.ts +17 -0
  301. package/dist/ui/pagination.js +2 -0
  302. package/dist/ui/popover.d.ts +7 -0
  303. package/dist/ui/popover.js +2 -0
  304. package/dist/ui/progress.d.ts +4 -0
  305. package/dist/ui/progress.js +2 -0
  306. package/dist/ui/radio-group.d.ts +5 -0
  307. package/dist/ui/radio-group.js +2 -0
  308. package/dist/ui/resizable.d.ts +8 -0
  309. package/dist/ui/resizable.js +2 -0
  310. package/dist/ui/route-announcer.d.ts +3 -0
  311. package/dist/ui/route-announcer.js +2 -0
  312. package/dist/ui/scroll-area.d.ts +5 -0
  313. package/dist/ui/scroll-area.js +2 -0
  314. package/dist/ui/section.d.ts +15 -0
  315. package/dist/ui/section.js +2 -0
  316. package/dist/ui/select.d.ts +15 -0
  317. package/dist/ui/select.js +2 -0
  318. package/dist/ui/select.test.d.ts +1 -0
  319. package/dist/ui/separator.d.ts +4 -0
  320. package/dist/ui/separator.js +2 -0
  321. package/dist/ui/sheet.d.ts +13 -0
  322. package/dist/ui/sheet.js +2 -0
  323. package/dist/ui/sidebar.d.ts +69 -0
  324. package/dist/ui/sidebar.js +2 -0
  325. package/dist/ui/skeleton.d.ts +3 -0
  326. package/dist/ui/skeleton.js +2 -0
  327. package/dist/ui/skip-link.d.ts +7 -0
  328. package/dist/ui/skip-link.js +2 -0
  329. package/dist/ui/slider.d.ts +4 -0
  330. package/dist/ui/slider.js +2 -0
  331. package/dist/ui/sonner.d.ts +3 -0
  332. package/dist/ui/sonner.js +2 -0
  333. package/dist/ui/spinner.d.ts +5 -0
  334. package/dist/ui/spinner.js +2 -0
  335. package/dist/ui/stack.d.ts +35 -0
  336. package/dist/ui/stack.js +2 -0
  337. package/dist/ui/stat-card-group.d.ts +10 -0
  338. package/dist/ui/stat-card-group.js +2 -0
  339. package/dist/ui/stepper.d.ts +10 -0
  340. package/dist/ui/stepper.js +2 -0
  341. package/dist/ui/switch.d.ts +6 -0
  342. package/dist/ui/switch.js +2 -0
  343. package/dist/ui/table.d.ts +10 -0
  344. package/dist/ui/table.js +2 -0
  345. package/dist/ui/tabs.d.ts +7 -0
  346. package/dist/ui/tabs.js +2 -0
  347. package/dist/ui/text.d.ts +6 -0
  348. package/dist/ui/text.js +2 -0
  349. package/dist/ui/textarea.d.ts +5 -0
  350. package/dist/ui/textarea.js +2 -0
  351. package/dist/ui/time-picker.d.ts +4 -0
  352. package/dist/ui/time-picker.js +2 -0
  353. package/dist/ui/toast.d.ts +28 -0
  354. package/dist/ui/toast.js +2 -0
  355. package/dist/ui/toaster.d.ts +1 -0
  356. package/dist/ui/toaster.js +2 -0
  357. package/dist/ui/toggle-group.d.ts +7 -0
  358. package/dist/ui/toggle-group.js +2 -0
  359. package/dist/ui/toggle.d.ts +9 -0
  360. package/dist/ui/toggle.js +2 -0
  361. package/dist/ui/tooltip.d.ts +7 -0
  362. package/dist/ui/tooltip.js +2 -0
  363. package/dist/ui/typography.d.ts +16 -0
  364. package/dist/ui/typography.js +2 -0
  365. package/dist/ui/use-media-query.d.ts +1 -0
  366. package/dist/ui/use-media-query.js +2 -0
  367. package/dist/ui/use-mobile.d.ts +1 -0
  368. package/dist/ui/use-mobile.js +2 -0
  369. package/dist/ui/use-reduced-motion.d.ts +1 -0
  370. package/dist/ui/use-reduced-motion.js +2 -0
  371. package/dist/ui/use-toast.d.ts +44 -0
  372. package/dist/ui/use-toast.js +2 -0
  373. package/dist/ui/useListState.d.ts +6 -0
  374. package/dist/ui/useListState.js +2 -0
  375. package/dist/ui/usecases/UseCaseCard.d.ts +7 -0
  376. package/dist/ui/usecases/UseCaseCard.js +2 -0
  377. package/dist/ui/usecases/UserStoryCard.d.ts +5 -0
  378. package/dist/ui/usecases/UserStoryCard.js +2 -0
  379. package/dist/ui/usecases/index.d.ts +2 -0
  380. package/dist/ui/usecases/index.js +2 -0
  381. package/dist/ui/utils.d.ts +2 -0
  382. package/dist/ui/utils.js +2 -0
  383. package/dist/ui/visualization/Visualization.d.ts +7 -0
  384. package/dist/ui/visualization/Visualization.js +2 -0
  385. package/dist/ui/visualization/Visualization.support.d.ts +15 -0
  386. package/dist/ui/visualization/Visualization.support.js +2 -0
  387. package/dist/ui/visualization/index.d.ts +1 -0
  388. package/dist/ui/visualization/index.js +2 -0
  389. package/dist/ui/visually-hidden.d.ts +8 -0
  390. package/dist/ui/visually-hidden.js +2 -0
  391. package/package.json +1691 -0
@@ -0,0 +1,3 @@
1
+ export { FeatureGrid, type FeatureItem } from './FeatureGrid';
2
+ export { Hero } from './Hero';
3
+ export { PricingTable, type PricingTier } from './PricingTable';
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var e=import.meta.require;export{f as PricingTable,m as Hero,i as FeatureGrid};
@@ -0,0 +1,26 @@
1
+ import * as MenubarPrimitive from '@radix-ui/react-menubar';
2
+ import * as React from 'react';
3
+ declare function Menubar({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function MenubarMenu({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Menu>): import("react/jsx-runtime").JSX.Element;
5
+ declare function MenubarGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
+ declare function MenubarPortal({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
+ declare function MenubarRadioGroup({ ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
8
+ declare function MenubarTrigger({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
9
+ declare function MenubarContent({ className, align, alignOffset, sideOffset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
10
+ declare function MenubarItem({ className, inset, variant, ...props }: React.ComponentProps<typeof MenubarPrimitive.Item> & {
11
+ inset?: boolean;
12
+ variant?: 'default' | 'destructive';
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ declare function MenubarCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
15
+ declare function MenubarRadioItem({ className, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
16
+ declare function MenubarLabel({ className, inset, ...props }: React.ComponentProps<typeof MenubarPrimitive.Label> & {
17
+ inset?: boolean;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ declare function MenubarSeparator({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
20
+ declare function MenubarShortcut({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
21
+ declare function MenubarSub({ ...props }: React.ComponentProps<typeof MenubarPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
22
+ declare function MenubarSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {
23
+ inset?: boolean;
24
+ }): import("react/jsx-runtime").JSX.Element;
25
+ declare function MenubarSubContent({ className, ...props }: React.ComponentProps<typeof MenubarPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
26
+ export { Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var U=import.meta.require;import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@radix-ui/react-menubar";import{CheckIcon as H,ChevronRightIcon as J,CircleIcon as K}from"lucide-react";import{jsx as z,jsxs as E}from"react/jsx-runtime";function Y({className:w,...y}){return z(q.Root,{"data-slot":"menubar",className:B("flex h-9 items-center gap-1 rounded-md border bg-background p-1 shadow-2xs",w),...y})}function Z({...w}){return z(q.Menu,{"data-slot":"menubar-menu",...w})}function _({...w}){return z(q.Group,{"data-slot":"menubar-group",...w})}function Q({...w}){return z(q.Portal,{"data-slot":"menubar-portal",...w})}function $({...w}){return z(q.RadioGroup,{"data-slot":"menubar-radio-group",...w})}function L({className:w,...y}){return z(q.Trigger,{"data-slot":"menubar-trigger",className:B("flex select-none items-center rounded-xs px-2 py-1 font-medium text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",w),...y})}function G({className:w,align:y="start",alignOffset:A=-4,sideOffset:D=8,...F}){return z(Q,{children:z(q.Content,{"data-slot":"menubar-content",align:y,alignOffset:A,sideOffset:D,className:B("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 z-50 min-w-48 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in",w),...F})})}function P({className:w,inset:y,variant:A="default",...D}){return z(q.Item,{"data-slot":"menubar-item","data-inset":y,"data-variant":A,className:B("relative flex cursor-default select-none items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[variant=destructive]:*:[svg]:text-destructive!",w),...D})}function T({className:w,children:y,checked:A,...D}){return E(q.CheckboxItem,{"data-slot":"menubar-checkbox-item",className:B("relative flex cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 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]:pointer-events-none [&_svg]:shrink-0",w),checked:A,...D,children:[z("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:z(q.ItemIndicator,{children:z(H,{className:"size-4"})})}),y]})}function v({className:w,children:y,...A}){return E(q.RadioItem,{"data-slot":"menubar-radio-item",className:B("relative flex cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 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]:pointer-events-none [&_svg]:shrink-0",w),...A,children:[z("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:z(q.ItemIndicator,{children:z(K,{className:"size-2 fill-current"})})}),y]})}function R({className:w,inset:y,...A}){return z(q.Label,{"data-slot":"menubar-label","data-inset":y,className:B("px-2 py-1.5 font-medium text-sm data-inset:pl-8",w),...A})}function O({className:w,...y}){return z(q.Separator,{"data-slot":"menubar-separator",className:B("-mx-1 my-1 h-px bg-border",w),...y})}function k({className:w,...y}){return z("span",{"data-slot":"menubar-shortcut",className:B("ml-auto text-muted-foreground text-xs tracking-widest",w),...y})}function S({...w}){return z(q.Sub,{"data-slot":"menubar-sub",...w})}function C({className:w,inset:y,children:A,...D}){return E(q.SubTrigger,{"data-slot":"menubar-sub-trigger","data-inset":y,className:B("flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-inset:pl-8 data-[state=open]:text-accent-foreground",w),...D,children:[A,z(J,{className:"ml-auto h-4 w-4"})]})}function I({className:w,...y}){return z(q.SubContent,{"data-slot":"menubar-sub-content",className:B("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 z-50 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=closed]:animate-out data-[state=open]:animate-in",w),...y})}export{L as MenubarTrigger,C as MenubarSubTrigger,I as MenubarSubContent,S as MenubarSub,k as MenubarShortcut,O as MenubarSeparator,v as MenubarRadioItem,$ as MenubarRadioGroup,Q as MenubarPortal,Z as MenubarMenu,R as MenubarLabel,P as MenubarItem,_ as MenubarGroup,G as MenubarContent,T as MenubarCheckboxItem,Y as Menubar};
@@ -0,0 +1 @@
1
+ export declare function ComboBoxResponsive(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var Eu=import.meta.require;import{cn as o}from"@contractspec/lib.ui-kit-core/utils";import{Slot as c}from"@radix-ui/react-slot";import{cva as i}from"class-variance-authority";import*as V from"react";import{jsx as p}from"react/jsx-runtime";var a=i("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),Y=V.forwardRef(({className:u,variant:f,size:S,asChild:t=!1,...L},U)=>{return p(t?c:"button",{ref:U,"data-slot":"button",className:o(a({variant:f,size:S,className:u})),...L})});Y.displayName="Button";import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import*as R from"@radix-ui/react-dialog";import{XIcon as r}from"lucide-react";import{jsx as M,jsxs as n}from"react/jsx-runtime";function X({...u}){return M(R.Root,{"data-slot":"dialog",...u})}function Ou({...u}){return M(R.Trigger,{"data-slot":"dialog-trigger",...u})}function s({...u}){return M(R.Portal,{"data-slot":"dialog-portal",...u})}function Uu({...u}){return M(R.Close,{"data-slot":"dialog-close",...u})}function uu({className:u,...f}){return M(R.Overlay,{"data-slot":"dialog-overlay",className:K("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",u),...f})}function k({className:u,children:f,showCloseButton:S=!0,...t}){return n(s,{"data-slot":"dialog-portal",children:[M(uu,{}),n(R.Content,{"data-slot":"dialog-content",className:K("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",u),...t,children:[f,S&&n(R.Close,{"data-slot":"dialog-close",className:"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",children:[M(r,{}),M("span",{className:"sr-only",children:"Close"})]})]})]})}function v({className:u,...f}){return M("div",{"data-slot":"dialog-header",className:K("flex flex-col gap-2 text-center sm:text-left",u),...f})}function Wu({className:u,...f}){return M("div",{"data-slot":"dialog-footer",className:K("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",u),...f})}function z({className:u,...f}){return M(R.Title,{"data-slot":"dialog-title",className:K("font-semibold text-lg leading-none",u),...f})}function T({className:u,...f}){return M(R.Description,{"data-slot":"dialog-description",className:K("text-muted-foreground text-sm",u),...f})}import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import{Command as J}from"cmdk";import{SearchIcon as fu}from"lucide-react";import{jsx as E,jsxs as q}from"react/jsx-runtime";function A({className:u,...f}){return E(J,{"data-slot":"command",className:G("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",u),...f})}function Au({title:u="Command Palette",description:f="Search for a command to run...",children:S,className:t,showCloseButton:L=!0,...U}){return q(X,{...U,children:[q(v,{className:"sr-only",children:[E(z,{children:u}),E(T,{children:f})]}),E(k,{className:G("overflow-hidden p-0",t),showCloseButton:L,children:E(A,{className:"**:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:S})})]})}function H({className:u,...f}){return q("div",{"data-slot":"command-input-wrapper",className:"flex h-9 items-center gap-2 border-b px-3",children:[E(fu,{className:"size-4 shrink-0 opacity-50"}),E(J.Input,{"data-slot":"command-input",className:G("flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",u),...f})]})}function d({className:u,...f}){return E(J.List,{"data-slot":"command-list",className:G("max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden",u),...f})}function h({...u}){return E(J.Empty,{"data-slot":"command-empty",className:"py-6 text-center text-sm",...u})}function F({className:u,...f}){return E(J.Group,{"data-slot":"command-group",className:G("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs",u),...f})}function Bu({className:u,...f}){return E(J.Separator,{"data-slot":"command-separator",className:G("-mx-1 h-px bg-border",u),...f})}function C({className:u,...f}){return E(J.Item,{"data-slot":"command-item",className:G("relative flex cursor-default select-none items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",u),...f})}function Vu({className:u,...f}){return E("span",{"data-slot":"command-shortcut",className:G("ml-auto text-muted-foreground text-xs tracking-widest",u),...f})}import{cn as Su}from"@contractspec/lib.ui-kit-core/utils";import*as y from"@radix-ui/react-popover";import{jsx as W}from"react/jsx-runtime";function g({...u}){return W(y.Root,{"data-slot":"popover",...u})}function w({...u}){return W(y.Trigger,{"data-slot":"popover-trigger",...u})}function P({className:u,align:f="center",sideOffset:S=4,...t}){return W(y.Portal,{children:W(y.Content,{"data-slot":"popover-content",align:f,sideOffset:S,className:Su("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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=closed]:animate-out data-[state=open]:animate-in",u),...t})})}function zu({...u}){return W(y.Anchor,{"data-slot":"popover-anchor",...u})}import{cn as O}from"@contractspec/lib.ui-kit-core/utils";import{Drawer as I}from"vaul";import{jsx as Q,jsxs as e}from"react/jsx-runtime";function D({...u}){return Q(I.Root,{"data-slot":"drawer",...u})}function N({...u}){return Q(I.Trigger,{"data-slot":"drawer-trigger",...u})}function tu({...u}){return Q(I.Portal,{"data-slot":"drawer-portal",...u})}function Fu({...u}){return Q(I.Close,{"data-slot":"drawer-close",...u})}function Ru({className:u,...f}){return Q(I.Overlay,{"data-slot":"drawer-overlay",className:O("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",u),...f})}function l({className:u,children:f,...S}){return e(tu,{"data-slot":"drawer-portal",children:[Q(Ru,{}),e(I.Content,{"data-slot":"drawer-content",className:O("group/drawer-content fixed z-50 flex h-auto flex-col bg-background","data-[vaul-drawer-direction=top]:inset-x-0 data-[vaul-drawer-direction=top]:top-0 data-[vaul-drawer-direction=top]:mb-24 data-[vaul-drawer-direction=top]:max-h-[80vh] data-[vaul-drawer-direction=top]:rounded-b-lg data-[vaul-drawer-direction=top]:border-b","data-[vaul-drawer-direction=bottom]:inset-x-0 data-[vaul-drawer-direction=bottom]:bottom-0 data-[vaul-drawer-direction=bottom]:mt-24 data-[vaul-drawer-direction=bottom]:max-h-[80vh] data-[vaul-drawer-direction=bottom]:rounded-t-lg data-[vaul-drawer-direction=bottom]:border-t","data-[vaul-drawer-direction=right]:inset-y-0 data-[vaul-drawer-direction=right]:right-0 data-[vaul-drawer-direction=right]:w-3/4 data-[vaul-drawer-direction=right]:border-l sm:data-[vaul-drawer-direction=right]:max-w-sm","data-[vaul-drawer-direction=left]:inset-y-0 data-[vaul-drawer-direction=left]:left-0 data-[vaul-drawer-direction=left]:w-3/4 data-[vaul-drawer-direction=left]:border-r sm:data-[vaul-drawer-direction=left]:max-w-sm",u),...S,children:[Q("div",{className:"mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full bg-muted group-data-[vaul-drawer-direction=bottom]/drawer-content:block"}),f]})]})}function Cu({className:u,...f}){return Q("div",{"data-slot":"drawer-header",className:O("flex flex-col gap-0.5 p-4 group-data-[vaul-drawer-direction=bottom]/drawer-content:text-center group-data-[vaul-drawer-direction=top]/drawer-content:text-center md:gap-1.5 md:text-left",u),...f})}function gu({className:u,...f}){return Q("div",{"data-slot":"drawer-footer",className:O("mt-auto flex flex-col gap-2 p-4",u),...f})}function wu({className:u,...f}){return Q(I.Title,{"data-slot":"drawer-title",className:O("font-semibold text-foreground",u),...f})}function Pu({className:u,...f}){return Q(I.Description,{"data-slot":"drawer-description",className:O("text-muted-foreground text-sm",u),...f})}import*as Z from"react";function m(u){let[f,S]=Z.useState(!1);return Z.useEffect(()=>{function t(U){S(U.matches)}let L=matchMedia(u);return L.addEventListener("change",t),S(L.matches),()=>L.removeEventListener("change",t)},[u]),f}import*as B from"react";import{jsx as b,jsxs as $,Fragment as _}from"react/jsx-runtime";var x=[{value:"backlog",label:"Backlog"},{value:"in progress",label:"In Progress"},{value:"done",label:"Done"},{value:"canceled",label:"Canceled"}];function cu(){let[u,f]=B.useState(!1),S=m("(min-width: 768px)"),[t,L]=B.useState(null);if(S)return $(g,{open:u,onOpenChange:f,children:[b(w,{asChild:!0,children:b(Y,{variant:"outline",className:"w-[150px] justify-start",children:t?b(_,{children:t.label}):b(_,{children:"+ Set status"})})}),b(P,{className:"w-[200px] p-0",align:"start",children:b(j,{setOpen:f,setSelectedStatus:L})})]});return $(D,{open:u,onOpenChange:f,children:[b(N,{asChild:!0,children:b(Y,{variant:"outline",className:"w-[150px] justify-start",children:t?b(_,{children:t.label}):b(_,{children:"+ Set status"})})}),b(l,{children:b("div",{className:"mt-4 border-t",children:b(j,{setOpen:f,setSelectedStatus:L})})})]})}function j({setOpen:u,setSelectedStatus:f}){return $(A,{children:[b(H,{placeholder:"Filter status..."}),$(d,{children:[b(h,{children:"No results found."}),b(F,{children:x.map((S)=>b(C,{value:S.value,onSelect:(t)=>{f(x.find((L)=>L.value===t)||null),u(!1)},children:S.label},S.value))})]})]})}export{cu as ComboBoxResponsive};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import type { SearchAndFilterProps } from './types';
3
+ export declare const SearchAndFilter: React.FC<SearchAndFilterProps>;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var $m=import.meta.require;import{cn as l}from"@contractspec/lib.ui-kit-core/utils";import{Slot as r}from"@radix-ui/react-slot";import{cva as a}from"class-variance-authority";import*as G from"react";import{jsx as i}from"react/jsx-runtime";var c=a("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),t=G.forwardRef(({className:m,variant:v,size:g,asChild:e=!1,...T},f)=>{return i(e?r:"button",{ref:f,"data-slot":"button",className:l(c({variant:v,size:g,className:m})),...T})});t.displayName="Button";import{cn as x}from"@contractspec/lib.ui-kit-core/utils";import*as A from"@radix-ui/react-label";import{jsx as j}from"react/jsx-runtime";function F({className:m,...v}){return j(A.Root,{"data-slot":"label",className:x("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",m),...v})}import{cn as $}from"@contractspec/lib.ui-kit-core/utils";import*as y from"@radix-ui/react-select";import{CheckIcon as s,ChevronDownIcon as k,ChevronUpIcon as mm}from"lucide-react";import{jsx as P,jsxs as O}from"react/jsx-runtime";function z({...m}){return P(y.Root,{"data-slot":"select",...m})}function Om({...m}){return P(y.Group,{"data-slot":"select-group",...m})}function S({...m}){return P(y.Value,{"data-slot":"select-value",...m})}function V({className:m,size:v="default",children:g,...e}){return O(y.Trigger,{"data-slot":"select-trigger","data-size":v,className:$("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",m),...e,children:[g,P(y.Icon,{asChild:!0,children:P(k,{className:"size-4 opacity-50"})})]})}function D({className:m,children:v,position:g="popper",...e}){return P(y.Portal,{children:O(y.Content,{"data-slot":"select-content",className:$("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",g==="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",m),position:g,...e,children:[P(ym,{}),P(y.Viewport,{className:$("p-1",g==="popper"&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),children:v}),P(vm,{})]})})}function Qm({className:m,...v}){return P(y.Label,{"data-slot":"select-label",className:$("px-2 py-1.5 text-muted-foreground text-xs",m),...v})}function M({className:m,children:v,...g}){return O(y.Item,{"data-slot":"select-item",className:$("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",m),...g,children:[P("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:P(y.ItemIndicator,{children:P(s,{className:"size-4"})})}),P(y.ItemText,{children:v})]})}function Wm({className:m,...v}){return P(y.Separator,{"data-slot":"select-separator",className:$("pointer-events-none -mx-1 my-1 h-px bg-border",m),...v})}function ym({className:m,...v}){return P(y.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:$("flex cursor-default items-center justify-center py-1",m),...v,children:P(mm,{className:"size-4"})})}function vm({className:m,...v}){return P(y.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:$("flex cursor-default items-center justify-center py-1",m),...v,children:P(k,{className:"size-4"})})}import{jsx as I,jsxs as E}from"react/jsx-runtime";var Q=({value:m,options:v,onChange:g,placeholder:e="S\xE9lectionner...",label:T,disabled:f=!1,className:X="",showCounts:q=!1})=>{return E("div",{className:`space-y-2 ${X}`,children:[T&&I(F,{className:"font-medium text-base text-foreground",children:T}),E(z,{value:m,onValueChange:g,disabled:f,children:[I(V,{className:"w-full",children:I(S,{placeholder:e})}),E(D,{className:"bg-background",children:[E(M,{value:"all",children:["Tous",q&&E("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",v.reduce((b,J)=>b+(J.count||0),0),")"]})]}),v.map((b)=>I(M,{value:b.value,children:E("div",{className:"flex w-full items-center justify-between",children:[I("span",{children:b.label}),q&&b.count!==void 0&&E("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",b.count,")"]})]})},b.value))]})]})]})};import{cn as Pm}from"@contractspec/lib.ui-kit-core/utils";import{jsx as gm}from"react/jsx-runtime";function U({className:m,type:v,ref:g,...e}){return gm("input",{ref:g,type:v,"data-slot":"input",className:Pm("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",m),...e})}import{Search as em,X as Rm}from"lucide-react";import{jsx as w,jsxs as B}from"react/jsx-runtime";var W=({value:m,onChange:v,placeholder:g="Rechercher...",onClear:e,disabled:T=!1,className:f="",autoFocus:X=!1})=>{let q=()=>{v(""),e?.()};return B("div",{className:`relative w-full ${f}`,children:[w("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",children:w(em,{className:"h-4 w-4 text-muted-foreground"})}),w(U,{type:"text",value:m,onChange:(b)=>v(b.target.value),placeholder:g,disabled:T,autoFocus:X,className:"pr-10 pl-10"}),m&&w("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3",children:B(t,{type:"button",variant:"ghost",size:"sm",onClick:q,disabled:T,className:"h-6 w-6 p-0 hover:bg-transparent",children:[w(Rm,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),w("span",{className:"sr-only",children:"Effacer la recherche"})]})})]})};import*as C from"@radix-ui/react-collapsible";import{jsx as Y}from"react/jsx-runtime";function N({...m}){return Y(C.Root,{"data-slot":"collapsible",...m})}function L({...m}){return Y(C.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...m})}function h({...m}){return Y(C.CollapsibleContent,{"data-slot":"collapsible-content",...m})}import{ChevronDown as um,ChevronUp as Tm,Filter as bm}from"lucide-react";import{useState as fm}from"react";import{jsx as u,jsxs as H}from"react/jsx-runtime";var sm=({searchValue:m,onSearchChange:v,searchPlaceholder:g,filters:e=[],isLoading:T=!1,disabled:f=!1,className:X="",collapsible:q=!0,defaultCollapsed:b=!1})=>{let[J,o]=fm(b),Z=e.length>0,K=e.filter((R)=>R.value).length,n=q&&Z,_=()=>u("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:e.map((R)=>u(Q,{value:R.value,options:R.options,onChange:R.onChange,label:R.label,disabled:f||T,showCounts:R.showCounts,className:"min-w-0"},R.key))});return H("div",{className:`space-y-4 ${X}`,children:[H("div",{className:"flex flex-col gap-4 sm:flex-row",children:[u("div",{className:"flex-1",children:u(W,{value:m,onChange:v,placeholder:g,disabled:f||T,className:"w-full"})}),n&&H(N,{open:!J,onOpenChange:o,className:"sm:hidden",children:[u(L,{asChild:!0,children:H(t,{variant:"outline",className:"sm:hidden",disabled:f||T,children:[u(bm,{className:"mr-2 h-4 w-4"}),"Filtres",K>0&&u("span",{className:"ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",children:K}),J?u(um,{className:"ml-2 h-4 w-4"}):u(Tm,{className:"ml-2 h-4 w-4"})]})}),u(h,{className:"mt-4 space-y-4",children:u(_,{})})]})]}),Z&&u("div",{className:"hidden sm:block",children:u(_,{})}),K>0&&H("div",{className:"flex flex-wrap items-center gap-2",children:[u("span",{className:"text-base text-muted-foreground",children:"Filtres actifs:"}),e.filter((R)=>R.value).map((R)=>{let p=R.options.find((d)=>d.value===R.value);return H(t,{variant:"secondary",size:"sm",onClick:()=>R.onChange(""),disabled:f||T,className:"h-7 px-2 text-sm",children:[R.label,": ",p?.label,u("span",{className:"ml-1",children:"\xD7"})]},R.key)})]})]})};export{sm as SearchAndFilter};
@@ -0,0 +1,2 @@
1
+ export { SearchAndFilter } from './SearchAndFilter';
2
+ export type { SearchAndFilterProps } from './types';
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var $m=import.meta.require;import{cn as r}from"@contractspec/lib.ui-kit-core/utils";import{Slot as l}from"@radix-ui/react-slot";import{cva as a}from"class-variance-authority";import*as Z from"react";import{jsx as i}from"react/jsx-runtime";var c=a("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),q=Z.forwardRef(({className:m,variant:y,size:v,asChild:g=!1,...u},T)=>{return i(g?l:"button",{ref:T,"data-slot":"button",className:r(c({variant:y,size:v,className:m})),...u})});q.displayName="Button";import{cn as x}from"@contractspec/lib.ui-kit-core/utils";import*as _ from"@radix-ui/react-label";import{jsx as j}from"react/jsx-runtime";function G({className:m,...y}){return j(_.Root,{"data-slot":"label",className:x("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",m),...y})}import{cn as b}from"@contractspec/lib.ui-kit-core/utils";import*as e from"@radix-ui/react-select";import{CheckIcon as s,ChevronDownIcon as S,ChevronUpIcon as mm}from"lucide-react";import{jsx as P,jsxs as K}from"react/jsx-runtime";function k({...m}){return P(e.Root,{"data-slot":"select",...m})}function Mm({...m}){return P(e.Group,{"data-slot":"select-group",...m})}function z({...m}){return P(e.Value,{"data-slot":"select-value",...m})}function V({className:m,size:y="default",children:v,...g}){return K(e.Trigger,{"data-slot":"select-trigger","data-size":y,className:b("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",m),...g,children:[v,P(e.Icon,{asChild:!0,children:P(S,{className:"size-4 opacity-50"})})]})}function D({className:m,children:y,position:v="popper",...g}){return P(e.Portal,{children:K(e.Content,{"data-slot":"select-content",className:b("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",v==="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",m),position:v,...g,children:[P(em,{}),P(e.Viewport,{className:b("p-1",v==="popper"&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),children:y}),P(ym,{})]})})}function Om({className:m,...y}){return P(e.Label,{"data-slot":"select-label",className:b("px-2 py-1.5 text-muted-foreground text-xs",m),...y})}function J({className:m,children:y,...v}){return K(e.Item,{"data-slot":"select-item",className:b("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",m),...v,children:[P("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:P(e.ItemIndicator,{children:P(s,{className:"size-4"})})}),P(e.ItemText,{children:y})]})}function Qm({className:m,...y}){return P(e.Separator,{"data-slot":"select-separator",className:b("pointer-events-none -mx-1 my-1 h-px bg-border",m),...y})}function em({className:m,...y}){return P(e.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:b("flex cursor-default items-center justify-center py-1",m),...y,children:P(mm,{className:"size-4"})})}function ym({className:m,...y}){return P(e.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:b("flex cursor-default items-center justify-center py-1",m),...y,children:P(S,{className:"size-4"})})}import{jsx as F,jsxs as $}from"react/jsx-runtime";var M=({value:m,options:y,onChange:v,placeholder:g="S\xE9lectionner...",label:u,disabled:T=!1,className:E="",showCounts:X=!1})=>{return $("div",{className:`space-y-2 ${E}`,children:[u&&F(G,{className:"font-medium text-base text-foreground",children:u}),$(k,{value:m,onValueChange:v,disabled:T,children:[F(V,{className:"w-full",children:F(z,{placeholder:g})}),$(D,{className:"bg-background",children:[$(J,{value:"all",children:["Tous",X&&$("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",y.reduce((f,H)=>f+(H.count||0),0),")"]})]}),y.map((f)=>F(J,{value:f.value,children:$("div",{className:"flex w-full items-center justify-between",children:[F("span",{children:f.label}),X&&f.count!==void 0&&$("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",f.count,")"]})]})},f.value))]})]})]})};import{cn as Pm}from"@contractspec/lib.ui-kit-core/utils";import{jsx as vm}from"react/jsx-runtime";function U({className:m,type:y,ref:v,...g}){return vm("input",{ref:v,type:y,"data-slot":"input",className:Pm("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",m),...g})}import{Search as gm,X as Rm}from"lucide-react";import{jsx as w,jsxs as o}from"react/jsx-runtime";var O=({value:m,onChange:y,placeholder:v="Rechercher...",onClear:g,disabled:u=!1,className:T="",autoFocus:E=!1})=>{let X=()=>{y(""),g?.()};return o("div",{className:`relative w-full ${T}`,children:[w("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",children:w(gm,{className:"h-4 w-4 text-muted-foreground"})}),w(U,{type:"text",value:m,onChange:(f)=>y(f.target.value),placeholder:v,disabled:u,autoFocus:E,className:"pr-10 pl-10"}),m&&w("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3",children:o(q,{type:"button",variant:"ghost",size:"sm",onClick:X,disabled:u,className:"h-6 w-6 p-0 hover:bg-transparent",children:[w(Rm,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),w("span",{className:"sr-only",children:"Effacer la recherche"})]})})]})};import*as A from"@radix-ui/react-collapsible";import{jsx as Q}from"react/jsx-runtime";function B({...m}){return Q(A.Root,{"data-slot":"collapsible",...m})}function p({...m}){return Q(A.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...m})}function N({...m}){return Q(A.CollapsibleContent,{"data-slot":"collapsible-content",...m})}import{ChevronDown as tm,ChevronUp as um,Filter as fm}from"lucide-react";import{useState as Tm}from"react";import{jsx as t,jsxs as C}from"react/jsx-runtime";var bm=({searchValue:m,onSearchChange:y,searchPlaceholder:v,filters:g=[],isLoading:u=!1,disabled:T=!1,className:E="",collapsible:X=!0,defaultCollapsed:f=!1})=>{let[H,h]=Tm(f),W=g.length>0,I=g.filter((R)=>R.value).length,L=X&&W,Y=()=>t("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:g.map((R)=>t(M,{value:R.value,options:R.options,onChange:R.onChange,label:R.label,disabled:T||u,showCounts:R.showCounts,className:"min-w-0"},R.key))});return C("div",{className:`space-y-4 ${E}`,children:[C("div",{className:"flex flex-col gap-4 sm:flex-row",children:[t("div",{className:"flex-1",children:t(O,{value:m,onChange:y,placeholder:v,disabled:T||u,className:"w-full"})}),L&&C(B,{open:!H,onOpenChange:h,className:"sm:hidden",children:[t(p,{asChild:!0,children:C(q,{variant:"outline",className:"sm:hidden",disabled:T||u,children:[t(fm,{className:"mr-2 h-4 w-4"}),"Filtres",I>0&&t("span",{className:"ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",children:I}),H?t(tm,{className:"ml-2 h-4 w-4"}):t(um,{className:"ml-2 h-4 w-4"})]})}),t(N,{className:"mt-4 space-y-4",children:t(Y,{})})]})]}),W&&t("div",{className:"hidden sm:block",children:t(Y,{})}),I>0&&C("div",{className:"flex flex-wrap items-center gap-2",children:[t("span",{className:"text-base text-muted-foreground",children:"Filtres actifs:"}),g.filter((R)=>R.value).map((R)=>{let n=R.options.find((d)=>d.value===R.value);return C(q,{variant:"secondary",size:"sm",onClick:()=>R.onChange(""),disabled:T||u,className:"h-7 px-2 text-sm",children:[R.label,": ",n?.label,t("span",{className:"ml-1",children:"\xD7"})]},R.key)})]})]})};export{bm as SearchAndFilter};
@@ -0,0 +1,3 @@
1
+ import type { SharedSearchAndFilterProps } from '@contractspec/lib.ui-kit-core/interfaces';
2
+ export interface SearchAndFilterProps extends SharedSearchAndFilterProps<string> {
3
+ }
@@ -0,0 +1 @@
1
+ // @bun
@@ -0,0 +1,7 @@
1
+ interface Props {
2
+ count?: number;
3
+ className?: string;
4
+ itemClassName?: string;
5
+ }
6
+ export declare function SkeletonList({ count, className, itemClassName, }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var c=import.meta.require;import{clsx as s}from"clsx";import{twMerge as i}from"tailwind-merge";function o(...e){return i(s(e))}import{jsx as l}from"react/jsx-runtime";function r({className:e,...t}){return l("div",{"data-slot":"skeleton",className:o("animate-pulse rounded-md bg-accent",e),...t})}import{jsx as a}from"react/jsx-runtime";function C({count:e=6,className:t="",itemClassName:n=""}){return a("div",{className:`space-y-3 ${t}`,children:Array.from({length:e}).map((p,m)=>a(r,{className:`h-20 rounded-md ${n}`},m))})}export{C as SkeletonList};
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ export declare function NativeSelect({ className, ...props }: React.ComponentPropsWithoutRef<'select'>): import("react/jsx-runtime").JSX.Element;
3
+ export declare function NativeSelectOption({ ...props }: React.ComponentPropsWithoutRef<'option'>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function NativeSelectOptGroup({ ...props }: React.ComponentPropsWithoutRef<'optgroup'>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var q=import.meta.require;import{cn as h}from"@contractspec/lib.ui-kit-core/utils";import{jsx as f}from"react/jsx-runtime";function y({className:d,...g}){return f("select",{"data-slot":"native-select",className:h("h-9 w-full rounded-md border border-input bg-background px-3 py-2 text-sm shadow-xs outline-none 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 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",d),...g})}function z({...d}){return f("option",{"data-slot":"native-select-option",...d})}function A({...d}){return f("optgroup",{"data-slot":"native-select-opt-group",...d})}export{z as NativeSelectOption,A as NativeSelectOptGroup,y as NativeSelect};
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger } from './navigation-menu';
3
+ export declare const navPanelVariants: (props?: ({
4
+ width?: "sm" | "lg" | "md" | "full" | null | undefined;
5
+ padding?: "none" | "sm" | "md" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export interface NavPanelProps extends React.ComponentPropsWithoutRef<'div'> {
8
+ width?: 'sm' | 'md' | 'lg' | 'full';
9
+ padding?: 'none' | 'sm' | 'md';
10
+ }
11
+ export declare function NavPanel({ width, padding, className, ...props }: NavPanelProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function NavSimpleList({ title, items, }: {
13
+ title?: React.ReactNode;
14
+ items: {
15
+ href: string;
16
+ label: string;
17
+ description?: string;
18
+ }[];
19
+ }): import("react/jsx-runtime").JSX.Element;
20
+ export declare function NavColumns({ columns, }: {
21
+ columns: {
22
+ title?: string;
23
+ items: {
24
+ href: string;
25
+ label: string;
26
+ description?: string;
27
+ }[];
28
+ }[];
29
+ }): import("react/jsx-runtime").JSX.Element;
30
+ export declare function NavCategorizedWithPreview({ categories, modules, activeCategory, setActiveCategory, activeKey: _activeKey, setActiveKey, preview, }: {
31
+ categories: {
32
+ key: string;
33
+ label: string;
34
+ }[];
35
+ modules: {
36
+ key: string;
37
+ title: string;
38
+ description?: string;
39
+ categories: string[];
40
+ }[];
41
+ activeCategory: string;
42
+ setActiveCategory: (k: string) => void;
43
+ activeKey: string | null;
44
+ setActiveKey: (k: string | null) => void;
45
+ preview: React.ReactNode;
46
+ }): import("react/jsx-runtime").JSX.Element;
47
+ export { NavigationMenu as NavRoot, NavigationMenuContent as NavContent, NavigationMenuItem as NavItem, NavigationMenuLink as NavLink, NavigationMenuList as NavList, NavigationMenuTrigger as NavTrigger, };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var h=import.meta.require;import{cn as J}from"@contractspec/lib.ui-kit-core/utils";import*as G from"@radix-ui/react-navigation-menu";import{cva as Z}from"class-variance-authority";import{ChevronDownIcon as _}from"lucide-react";import{jsx as H,jsxs as U}from"react/jsx-runtime";function $({className:q,children:f,viewport:B=!0,...E}){return U(G.Root,{"data-slot":"navigation-menu","data-viewport":B,className:J("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",q),...E,children:[f,B&&H(I,{})]})}function D({className:q,...f}){return H(G.List,{"data-slot":"navigation-menu-list",className:J("group flex flex-1 list-none items-center justify-center gap-1",q),...f})}function P({className:q,...f}){return H(G.Item,{"data-slot":"navigation-menu-item",className:J("relative",q),...f})}var S=Z("group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 font-medium text-sm outline-hidden transition-[color,box-shadow] hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:hover:bg-accent");function b({className:q,children:f,...B}){return U(G.Trigger,{"data-slot":"navigation-menu-trigger",className:J(S(),"group",q),...B,children:[f," ",H(_,{className:"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180","aria-hidden":"true"})]})}function V({className:q,...f}){return H(G.Content,{"data-slot":"navigation-menu-content",className:J("data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out md:absolute md:w-auto","data-[state=closed]:group-data-[viewport=false]/navigation-menu:fade-out-0 data-[state=open]:group-data-[viewport=false]/navigation-menu:fade-in-0 data-[state=closed]:group-data-[viewport=false]/navigation-menu:zoom-out-95 data-[state=open]:group-data-[viewport=false]/navigation-menu:zoom-in-95 bg-background **:data-[slot=navigation-menu-link]:focus:outline-hidden **:data-[slot=navigation-menu-link]:focus:ring-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-2xs group-data-[viewport=false]/navigation-menu:duration-200 data-[state=closed]:group-data-[viewport=false]/navigation-menu:animate-out data-[state=open]:group-data-[viewport=false]/navigation-menu:animate-in",q),...f})}function I({className:q,...f}){return H("div",{className:J("absolute top-full left-0 isolate z-50 flex justify-center"),children:H(G.Viewport,{"data-slot":"navigation-menu-viewport",className:J("data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full origin-top-center overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-2xs data-[state=closed]:animate-out data-[state=open]:animate-in md:w-(--radix-navigation-menu-viewport-width)",q),...f})})}function Q({className:q,...f}){return H(G.Link,{"data-slot":"navigation-menu-link",className:J("flex flex-col gap-1 rounded-xs p-2 text-sm outline-hidden transition-all hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",q),...f})}function C({className:q,...f}){return H(G.Indicator,{"data-slot":"navigation-menu-indicator",className:J("data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=visible]:animate-in",q),...f,children:H("div",{className:"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md"})})}import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import{cva as T}from"class-variance-authority";import*as W from"react";import{jsx as z,jsxs as O}from"react/jsx-runtime";var k=T("",{variants:{width:{sm:"w-[280px]",md:"w-[500px]",lg:"w-[900px]",full:"w-[calc(100vw-2rem)]"},padding:{none:"",sm:"p-2",md:"p-3"}},defaultVariants:{width:"lg",padding:"md"}});function m({width:q,padding:f,className:B,...E}){return z("div",{className:K(k({width:q,padding:f}),B),...E})}function p({title:q,items:f}){return O("div",{children:[q&&z("div",{className:"mb-2 font-semibold text-base",children:q}),z("ul",{className:"grid w-[280px] gap-2",children:f.map((B)=>z("li",{children:z(Q,{asChild:!0,children:O("a",{href:B.href,className:"block rounded-md p-2 hover:bg-accent",children:[z("div",{className:"font-medium text-base",children:B.label}),B.description&&z("div",{className:"line-clamp-2 text-muted-foreground text-sm",children:B.description})]})})},B.href))})]})}function l({columns:q}){return z("div",{className:"grid w-[500px] grid-cols-2 gap-3",children:q.map((f,B)=>O("div",{children:[f.title&&z("div",{className:"mb-2 font-semibold text-base text-muted-foreground",children:f.title}),z("ul",{className:"grid gap-2",children:f.items.map((E)=>z("li",{children:z(Q,{asChild:!0,children:O("a",{href:E.href,className:"block rounded-md p-2 hover:bg-accent",children:[z("div",{className:"font-medium text-base",children:E.label}),E.description&&z("div",{className:"line-clamp-2 text-muted-foreground text-sm",children:E.description})]})})},E.href))})]},B))})}function g({categories:q,modules:f,activeCategory:B,setActiveCategory:E,activeKey:L,setActiveKey:R,preview:X}){let Y=W.useMemo(()=>f.filter((F)=>B==="all"||F.categories.includes(B)),[f,B]);return O("div",{className:"flex items-start gap-3",children:[O("div",{className:"max-h-96 w-48 shrink-0 overflow-auto pr-1",children:[z("button",{className:`w-full rounded-md px-3 py-2 text-left text-base transition-colors hover:bg-muted ${B==="all"?"bg-muted":""}`,onMouseEnter:()=>E("all"),onFocus:()=>E("all"),onClick:()=>E("all"),children:"All"}),q.map((F)=>z("button",{className:`w-full rounded-md px-3 py-2 text-left text-base transition-colors hover:bg-muted ${B===F.key?"bg-muted":""}`,onMouseEnter:()=>E(F.key),onFocus:()=>E(F.key),onClick:()=>E(F.key),children:F.label},F.key))]}),z("div",{className:"grid max-h-96 flex-1 grid-cols-1 gap-1 overflow-auto pr-1",children:Y.map((F)=>z(Q,{asChild:!0,children:O("a",{href:`/modules/${F.key}`,className:"rounded-md px-3 py-2 text-left transition-colors hover:bg-muted",onMouseEnter:()=>R(F.key),onFocus:()=>R(F.key),children:[z("div",{className:"font-medium text-base",children:F.title}),F.description&&z("div",{className:"line-clamp-2 text-muted-foreground text-sm",children:F.description})]})},F.key))}),z("div",{className:"w-[320px] shrink-0",children:X})]})}export{k as navPanelVariants,b as NavTrigger,p as NavSimpleList,$ as NavRoot,m as NavPanel,D as NavList,Q as NavLink,P as NavItem,V as NavContent,l as NavColumns,g as NavCategorizedWithPreview};
@@ -0,0 +1,14 @@
1
+ import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
2
+ import * as React from 'react';
3
+ declare function NavigationMenu({ className, children, viewport, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
4
+ viewport?: boolean;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ declare function NavigationMenuList({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.List>): import("react/jsx-runtime").JSX.Element;
7
+ declare function NavigationMenuItem({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
8
+ declare const navigationMenuTriggerStyle: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
9
+ declare function NavigationMenuTrigger({ className, children, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
10
+ declare function NavigationMenuContent({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
11
+ declare function NavigationMenuViewport({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): import("react/jsx-runtime").JSX.Element;
12
+ declare function NavigationMenuLink({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>): import("react/jsx-runtime").JSX.Element;
13
+ declare function NavigationMenuIndicator({ className, ...props }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): import("react/jsx-runtime").JSX.Element;
14
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle, };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var P=import.meta.require;import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@radix-ui/react-navigation-menu";import{cva as H}from"class-variance-authority";import{ChevronDownIcon as J}from"lucide-react";import{jsx as A,jsxs as F}from"react/jsx-runtime";function X({className:q,children:z,viewport:E=!0,...G}){return F(f.Root,{"data-slot":"navigation-menu","data-viewport":E,className:B("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",q),...G,children:[z,E&&A(O,{})]})}function Y({className:q,...z}){return A(f.List,{"data-slot":"navigation-menu-list",className:B("group flex flex-1 list-none items-center justify-center gap-1",q),...z})}function Z({className:q,...z}){return A(f.Item,{"data-slot":"navigation-menu-item",className:B("relative",q),...z})}var K=H("group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 font-medium text-sm outline-hidden transition-[color,box-shadow] hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:hover:bg-accent");function _({className:q,children:z,...E}){return F(f.Trigger,{"data-slot":"navigation-menu-trigger",className:B(K(),"group",q),...E,children:[z," ",A(J,{className:"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180","aria-hidden":"true"})]})}function $({className:q,...z}){return A(f.Content,{"data-slot":"navigation-menu-content",className:B("data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out md:absolute md:w-auto","data-[state=closed]:group-data-[viewport=false]/navigation-menu:fade-out-0 data-[state=open]:group-data-[viewport=false]/navigation-menu:fade-in-0 data-[state=closed]:group-data-[viewport=false]/navigation-menu:zoom-out-95 data-[state=open]:group-data-[viewport=false]/navigation-menu:zoom-in-95 bg-background **:data-[slot=navigation-menu-link]:focus:outline-hidden **:data-[slot=navigation-menu-link]:focus:ring-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow-2xs group-data-[viewport=false]/navigation-menu:duration-200 data-[state=closed]:group-data-[viewport=false]/navigation-menu:animate-out data-[state=open]:group-data-[viewport=false]/navigation-menu:animate-in",q),...z})}function O({className:q,...z}){return A("div",{className:B("absolute top-full left-0 isolate z-50 flex justify-center"),children:A(f.Viewport,{"data-slot":"navigation-menu-viewport",className:B("data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full origin-top-center overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-2xs data-[state=closed]:animate-out data-[state=open]:animate-in md:w-(--radix-navigation-menu-viewport-width)",q),...z})})}function b({className:q,...z}){return A(f.Link,{"data-slot":"navigation-menu-link",className:B("flex flex-col gap-1 rounded-xs p-2 text-sm outline-hidden transition-all hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:outline-1 focus-visible:ring-[3px] focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",q),...z})}function D({className:q,...z}){return A(f.Indicator,{"data-slot":"navigation-menu-indicator",className:B("data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=visible]:animate-in",q),...z,children:A("div",{className:"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md"})})}export{K as navigationMenuTriggerStyle,O as NavigationMenuViewport,_ as NavigationMenuTrigger,Y as NavigationMenuList,b as NavigationMenuLink,Z as NavigationMenuItem,D as NavigationMenuIndicator,$ as NavigationMenuContent,X as NavigationMenu};
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ interface ErrorBoundaryState {
3
+ hasError: boolean;
4
+ error: Error | null;
5
+ errorId: string | null;
6
+ }
7
+ interface ErrorBoundaryProps {
8
+ children: React.ReactNode;
9
+ fallback?: React.ComponentType<ErrorFallbackProps>;
10
+ onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
11
+ }
12
+ interface ErrorFallbackProps {
13
+ error: Error;
14
+ errorId: string | null;
15
+ resetError: () => void;
16
+ }
17
+ export declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
18
+ constructor(props: ErrorBoundaryProps);
19
+ static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
20
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
21
+ resetError: () => void;
22
+ render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
23
+ }
24
+ export declare const useErrorHandler: () => (error: Error) => never;
25
+ export type { ErrorBoundaryProps, ErrorFallbackProps };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var z=import.meta.require;import{cn as X}from"@contractspec/lib.ui-kit-core/utils";import{Slot as Y}from"@radix-ui/react-slot";import{cva as Z}from"class-variance-authority";import*as P from"react";import{jsx as $}from"react/jsx-runtime";var _=Z("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),M=P.forwardRef(({className:q,variant:J,size:K,asChild:O=!1,...U},W)=>{return $(O?Y:"button",{ref:W,"data-slot":"button",className:X(_({variant:J,size:K,className:q})),...U})});M.displayName="Button";import{AlertTriangle as A,Home as D,RefreshCw as H}from"lucide-react";import Q from"react";import{jsx as G,jsxs as L}from"react/jsx-runtime";var S=({error:q,errorId:J,resetError:K})=>{return G("div",{className:"flex min-h-screen items-center justify-center bg-gray-50 px-4",children:L("div",{className:"w-full max-w-md rounded-lg bg-white p-6 text-center shadow-lg",children:[G("div",{className:"mb-4 flex justify-center",children:G(A,{className:"h-12 w-12 text-red-500"})}),G("h1",{className:"mb-2 font-semibold text-2xl text-gray-900",children:"Une erreur s'est produite"}),G("p",{className:"mb-6 text-gray-600",children:"Nous nous excusons pour ce d\xE9sagr\xE9ment. Notre \xE9quipe a \xE9t\xE9 notifi\xE9e et travaille \xE0 r\xE9soudre le probl\xE8me."}),!1,L("div",{className:"flex flex-col justify-center gap-3 sm:flex-row",children:[L(M,{onClick:K,className:"flex items-center gap-2",children:[G(H,{className:"h-4 w-4"}),"R\xE9essayer"]}),L(M,{onClick:()=>window.location.href="/",variant:"secondary",className:"flex items-center gap-2",children:[G(D,{className:"h-4 w-4"}),"Accueil"]})]}),J&&L("p",{className:"mt-4 text-gray-500 text-sm",children:["Code d'erreur: ",J]})]})})};class g extends Q.Component{constructor(q){super(q);this.state={hasError:!1,error:null,errorId:null}}static getDerivedStateFromError(q){return{hasError:!0,error:q}}componentDidCatch(q,J){let K=`err_${Date.now()}_${Math.random().toString(36).substr(2,9)}`;this.setState({errorId:K}),this.props.onError?.(q,J)}resetError=()=>{this.setState({hasError:!1,error:null,errorId:null})};render(){if(this.state.hasError&&this.state.error){let q=this.props.fallback||S;return G(q,{error:this.state.error,errorId:this.state.errorId,resetError:this.resetError})}return this.props.children}}var B=()=>{return Q.useCallback((q)=>{throw q},[])};export{B as useErrorHandler,g as ErrorBoundary};
@@ -0,0 +1,2 @@
1
+ export type { ErrorBoundaryProps, ErrorFallbackProps } from './ErrorBoundary';
2
+ export { ErrorBoundary, useErrorHandler } from './ErrorBoundary';
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var r=import.meta.require;export{E as useErrorHandler,p as ErrorBoundary};
@@ -0,0 +1,2 @@
1
+ import type { ListPageProps } from './types';
2
+ export declare function ListPage<T>({ title, description, header, items, totalItems, totalPages, isLoading, isFetching, error, listState, searchPlaceholder, filters, onRefresh, primaryAction, toolbar, renderItem, renderEmpty, renderStats, className, itemClassName, }: ListPageProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var bv=import.meta.require;import{cn as F1}from"@contractspec/lib.ui-kit-core/utils";import{Slot as u1}from"@radix-ui/react-slot";import{cva as N1}from"class-variance-authority";import*as $1 from"react";import{jsx as y1}from"react/jsx-runtime";var k1=N1("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),J=$1.forwardRef(({className:v,variant:w,size:R,asChild:T=!1,...G},_)=>{return y1(T?u1:"button",{ref:_,"data-slot":"button",className:F1(k1({variant:w,size:R,className:v})),...G})});J.displayName="Button";import{cn as C1}from"@contractspec/lib.ui-kit-core/utils";import*as z1 from"@radix-ui/react-label";import{jsx as V1}from"react/jsx-runtime";function G1({className:v,...w}){return V1(z1.Root,{"data-slot":"label",className:C1("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",v),...w})}import{cn as U}from"@contractspec/lib.ui-kit-core/utils";import*as z from"@radix-ui/react-select";import{CheckIcon as S1,ChevronDownIcon as M1,ChevronUpIcon as L1}from"lucide-react";import{jsx as K,jsxs as j}from"react/jsx-runtime";function A({...v}){return K(z.Root,{"data-slot":"select",...v})}function Ov({...v}){return K(z.Group,{"data-slot":"select-group",...v})}function g({...v}){return K(z.Value,{"data-slot":"select-value",...v})}function d({className:v,size:w="default",children:R,...T}){return j(z.Trigger,{"data-slot":"select-trigger","data-size":w,className:U("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",v),...T,children:[R,K(z.Icon,{asChild:!0,children:K(M1,{className:"size-4 opacity-50"})})]})}function l({className:v,children:w,position:R="popper",...T}){return K(z.Portal,{children:j(z.Content,{"data-slot":"select-content",className:U("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",R==="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",v),position:R,...T,children:[K(P1,{}),K(z.Viewport,{className:U("p-1",R==="popper"&&"h-(--radix-select-trigger-height) w-full min-w-(--radix-select-trigger-width) scroll-my-1"),children:w}),K(h1,{})]})})}function Wv({className:v,...w}){return K(z.Label,{"data-slot":"select-label",className:U("px-2 py-1.5 text-muted-foreground text-xs",v),...w})}function S({className:v,children:w,...R}){return j(z.Item,{"data-slot":"select-item",className:U("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",v),...R,children:[K("span",{className:"absolute right-2 flex size-3.5 items-center justify-center",children:K(z.ItemIndicator,{children:K(S1,{className:"size-4"})})}),K(z.ItemText,{children:w})]})}function Yv({className:v,...w}){return K(z.Separator,{"data-slot":"select-separator",className:U("pointer-events-none -mx-1 my-1 h-px bg-border",v),...w})}function P1({className:v,...w}){return K(z.ScrollUpButton,{"data-slot":"select-scroll-up-button",className:U("flex cursor-default items-center justify-center py-1",v),...w,children:K(L1,{className:"size-4"})})}function h1({className:v,...w}){return K(z.ScrollDownButton,{"data-slot":"select-scroll-down-button",className:U("flex cursor-default items-center justify-center py-1",v),...w,children:K(M1,{className:"size-4"})})}import{jsx as L,jsxs as f}from"react/jsx-runtime";var i=({value:v,options:w,onChange:R,placeholder:T="S\xE9lectionner...",label:G,disabled:_=!1,className:M="",showCounts:W=!1})=>{return f("div",{className:`space-y-2 ${M}`,children:[G&&L(G1,{className:"font-medium text-base text-foreground",children:G}),f(A,{value:v,onValueChange:R,disabled:_,children:[L(d,{className:"w-full",children:L(g,{placeholder:T})}),f(l,{className:"bg-background",children:[f(S,{value:"all",children:["Tous",W&&f("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",w.reduce((O,D)=>O+(D.count||0),0),")"]})]}),w.map((O)=>L(S,{value:O.value,children:f("div",{className:"flex w-full items-center justify-between",children:[L("span",{children:O.label}),W&&O.count!==void 0&&f("span",{className:"ml-2 text-muted-foreground text-sm",children:["(",O.count,")"]})]})},O.value))]})]})]})};import{ChevronLeft as A1,ChevronRight as g1,ChevronsLeft as d1,ChevronsRight as l1}from"lucide-react";import{jsx as Y,jsxs as Q}from"react/jsx-runtime";var r=({currentPage:v,totalPages:w,totalItems:R,itemsPerPage:T,onPageChange:G,onItemsPerPageChange:_,disabled:M=!1,className:W="",showItemsPerPage:O=!0,itemsPerPageOptions:D=[10,25,50,100]})=>{let V=(v-1)*T+1,u=Math.min(v*T,R),I=v>1&&!M,q=v<w&&!M,N=()=>{if(w<=7)return Array.from({length:w},($,H)=>H+1);if(v<=3)return[1,2,3,4,5,-1,w];if(v>=w-2)return[1,-1,w-4,w-3,w-2,w-1,w];return[1,-1,v-1,v,v+1,-1,w]};if(w===0)return null;return Q("div",{className:`flex flex-col items-center justify-between gap-4 sm:flex-row ${W}`,children:[Q("div",{className:"order-2 text-base text-muted-foreground sm:order-1",children:["Affichage de ",V," \xE0 ",u," sur ",R," r\xE9sultats"]}),Q("div",{className:"order-1 flex items-center gap-2 sm:order-2",children:[Q(J,{variant:"outline",size:"sm",onClick:()=>G(1),disabled:!I,className:"hidden h-8 w-8 p-0 sm:flex",children:[Y(d1,{className:"h-4 w-4"}),Y("span",{className:"sr-only",children:"Premi\xE8re page"})]}),Q(J,{variant:"outline",size:"sm",onClick:()=>G(v-1),disabled:!I,className:"h-8 w-8 p-0",children:[Y(A1,{className:"h-4 w-4"}),Y("span",{className:"sr-only",children:"Page pr\xE9c\xE9dente"})]}),Y("div",{className:"flex items-center gap-1",children:N().map(($,H)=>{if($===-1)return Y("span",{className:"px-2 py-1 text-muted-foreground",children:"..."},`ellipsis-${H}`);return Y(J,{variant:$===v?"default":"outline",size:"sm",onClick:()=>G($),disabled:M,className:"h-8 min-w-8 px-2",children:$},$)})}),Q(J,{variant:"outline",size:"sm",onClick:()=>G(v+1),disabled:!q,className:"h-8 w-8 p-0",children:[Y(g1,{className:"h-4 w-4"}),Y("span",{className:"sr-only",children:"Page suivante"})]}),Q(J,{variant:"outline",size:"sm",onClick:()=>G(w),disabled:!q,className:"hidden h-8 w-8 p-0 sm:flex",children:[Y(l1,{className:"h-4 w-4"}),Y("span",{className:"sr-only",children:"Derni\xE8re page"})]})]}),O&&_&&Q("div",{className:"order-3 flex items-center gap-2 text-base",children:[Y("span",{className:"text-muted-foreground",children:"Afficher:"}),Q(A,{value:T.toString(),onValueChange:($)=>_(parseInt($)),disabled:M,children:[Y(d,{className:"h-8 w-16",children:Y(g,{})}),Y(l,{className:"bg-background",children:D.map(($)=>Y(S,{value:$.toString(),children:$},$))})]})]})]})};import{cn as p1}from"@contractspec/lib.ui-kit-core/utils";import{jsx as n1}from"react/jsx-runtime";function X1({className:v,type:w,ref:R,...T}){return n1("input",{ref:R,type:w,"data-slot":"input",className:p1("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",v),...T})}import{Search as o1,X as e1}from"lucide-react";import{jsx as k,jsxs as _1}from"react/jsx-runtime";var a=({value:v,onChange:w,placeholder:R="Rechercher...",onClear:T,disabled:G=!1,className:_="",autoFocus:M=!1})=>{let W=()=>{w(""),T?.()};return _1("div",{className:`relative w-full ${_}`,children:[k("div",{className:"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",children:k(o1,{className:"h-4 w-4 text-muted-foreground"})}),k(X1,{type:"text",value:v,onChange:(O)=>w(O.target.value),placeholder:R,disabled:G,autoFocus:M,className:"pr-10 pl-10"}),v&&k("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3",children:_1(J,{type:"button",variant:"ghost",size:"sm",onClick:W,disabled:G,className:"h-6 w-6 p-0 hover:bg-transparent",children:[k(e1,{className:"h-4 w-4 text-muted-foreground hover:text-foreground"}),k("span",{className:"sr-only",children:"Effacer la recherche"})]})})]})};import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import{jsx as m}from"react/jsx-runtime";function p({className:v,...w}){return m("div",{"data-slot":"card",className:B("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-2xs",v),...w})}function nv({className:v,...w}){return m("div",{"data-slot":"card-header",className:B("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",v),...w})}function ov({className:v,...w}){return m("div",{"data-slot":"card-title",className:B("font-semibold leading-none",v),...w})}function ev({className:v,...w}){return m("div",{"data-slot":"card-description",className:B("text-muted-foreground text-sm",v),...w})}function xv({className:v,...w}){return m("div",{"data-slot":"card-action",className:B("col-start-2 row-span-2 row-start-1 self-start justify-self-end",v),...w})}function n({className:v,...w}){return m("div",{"data-slot":"card-content",className:B("px-6",v),...w})}function cv({className:v,...w}){return m("div",{"data-slot":"card-footer",className:B("flex items-center px-6 [.border-t]:pt-6",v),...w})}import*as y from"@radix-ui/react-collapsible";import{jsx as s}from"react/jsx-runtime";function q1({...v}){return s(y.Root,{"data-slot":"collapsible",...v})}function J1({...v}){return s(y.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...v})}function K1({...v}){return s(y.CollapsibleContent,{"data-slot":"collapsible-content",...v})}import{cn as v1}from"@contractspec/lib.ui-kit-core/utils";import{cva as w1}from"class-variance-authority";import{jsx as R1}from"react/jsx-runtime";var x1=w1("flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"}},defaultVariants:{gap:"md",align:"stretch",justify:"start"}});function F({className:v,gap:w,align:R,justify:T,as:G="div",ref:_,...M}){return R1(G,{ref:_,className:v1(x1({gap:w,align:R,justify:T}),v),...M})}var c1=w1("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:"wrap"}});function b1({className:v,gap:w,align:R,justify:T,wrap:G,as:_="div",ref:M,...W}){return R1(_,{ref:M,className:v1(c1({gap:w,align:R,justify:T,wrap:G}),v),...W})}var t1=w1("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"center",wrap:"nowrap"}});function v0({className:v,gap:w,align:R,justify:T,wrap:G,as:_="div",ref:M,...W}){return R1(_,{ref:M,className:v1(t1({gap:w,align:R,justify:T,wrap:G}),v),...W})}import{cn as j1}from"@contractspec/lib.ui-kit-core/utils";import*as O1 from"@radix-ui/react-separator";import{jsx as i1}from"react/jsx-runtime";function W1({className:v,orientation:w="horizontal",decorative:R=!0,...T}){return i1(O1.Root,{"data-slot":"separator",decorative:R,orientation:w,className:j1("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",v),...T})}import{ChevronDown as r1,ChevronUp as a1,Filter as s1}from"lucide-react";import{useState as vv}from"react";import{jsx as Z,jsxs as C}from"react/jsx-runtime";var T1=({searchValue:v,onSearchChange:w,searchPlaceholder:R,filters:T=[],isLoading:G=!1,disabled:_=!1,className:M="",collapsible:W=!0,defaultCollapsed:O=!1})=>{let[D,V]=vv(O),u=T.length>0,I=T.filter(($)=>$.value).length,q=W&&u,N=()=>Z("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:T.map(($)=>Z(i,{value:$.value,options:$.options,onChange:$.onChange,label:$.label,disabled:_||G,showCounts:$.showCounts,className:"min-w-0"},$.key))});return C("div",{className:`space-y-4 ${M}`,children:[C("div",{className:"flex flex-col gap-4 sm:flex-row",children:[Z("div",{className:"flex-1",children:Z(a,{value:v,onChange:w,placeholder:R,disabled:_||G,className:"w-full"})}),q&&C(q1,{open:!D,onOpenChange:V,className:"sm:hidden",children:[Z(J1,{asChild:!0,children:C(J,{variant:"outline",className:"sm:hidden",disabled:_||G,children:[Z(s1,{className:"mr-2 h-4 w-4"}),"Filtres",I>0&&Z("span",{className:"ml-2 flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground text-sm",children:I}),D?Z(r1,{className:"ml-2 h-4 w-4"}):Z(a1,{className:"ml-2 h-4 w-4"})]})}),Z(K1,{className:"mt-4 space-y-4",children:Z(N,{})})]})]}),u&&Z("div",{className:"hidden sm:block",children:Z(N,{})}),I>0&&C("div",{className:"flex flex-wrap items-center gap-2",children:[Z("span",{className:"text-base text-muted-foreground",children:"Filtres actifs:"}),T.filter(($)=>$.value).map(($)=>{let H=$.options.find((P)=>P.value===$.value);return C(J,{variant:"secondary",size:"sm",onClick:()=>$.onChange(""),disabled:_||G,className:"h-7 px-2 text-sm",children:[$.label,": ",H?.label,Z("span",{className:"ml-1",children:"\xD7"})]},$.key)})]})]})};import{AlertTriangle as wv,Loader2 as Y1,Plus as o,RefreshCcw as Z1}from"lucide-react";import E1 from"next/link";import{jsx as b,jsxs as X,Fragment as e}from"react/jsx-runtime";function B0({title:v,description:w,header:R,items:T,totalItems:G,totalPages:_,isLoading:M,isFetching:W,error:O,listState:D,searchPlaceholder:V,filters:u=[],onRefresh:I,primaryAction:q,toolbar:N,renderItem:$,renderEmpty:H,renderStats:P,className:x="",itemClassName:I1=""}){let{searchQuery:c,setSearchQuery:Q1,filters:t,setFilter:D1,currentPage:H1,itemsPerPage:U1,setCurrentPage:f1,setItemsPerPage:B1}=D;if(M&&!T.length)return X(F,{className:`space-y-4 md:space-y-6 ${x}`,children:[R?R:X(F,{className:"gap-1",children:[b("h1",{className:"font-bold text-2xl md:text-3xl",children:v}),w&&b("p",{className:"text-base text-muted-foreground",children:w})]}),b("div",{className:"flex min-h-[400px] items-center justify-center",children:b(p,{children:X(n,{className:"flex items-center gap-4 p-6",children:[b(Y1,{className:"h-8 w-8 animate-spin text-primary"}),X("div",{children:[b("h3",{className:"font-medium",children:"Chargement..."}),b("p",{className:"text-base text-muted-foreground",children:"R\xE9cup\xE9ration des donn\xE9es en cours"})]})]})})})]});if(O&&!T.length)return X(F,{className:`space-y-4 md:space-y-6 ${x}`,children:[R?R:X(F,{className:"gap-1",children:[b("h1",{className:"font-bold text-2xl md:text-3xl",children:v}),w&&b("p",{className:"text-base text-muted-foreground",children:w})]}),b("div",{className:"flex min-h-[400px] items-center justify-center",children:b(p,{children:X(n,{className:"flex flex-col items-center gap-4 p-6 text-center",children:[b(wv,{className:"h-12 w-12 text-destructive"}),X("div",{children:[b("h3",{className:"font-medium",children:"Erreur de chargement"}),b("p",{className:"text-base text-muted-foreground",children:O.message||"Une erreur est survenue"})]}),I&&X(J,{onClick:I,variant:"outline",size:"sm",children:[b(Z1,{className:"mr-2 h-4 w-4"}),"R\xE9essayer"]})]})})})]});let m1=u.map((E)=>({key:E.key,label:E.label,value:t[E.key]||"",options:E.options,onChange:(h)=>{D1(E.key,h==="all"?"":h||"")},showCounts:E.showCounts}));return X(F,{className:`space-y-4 md:space-y-6 ${x}`,children:[R?R:X(b1,{className:"items-center justify-between",children:[X(F,{className:"gap-1",children:[b("h1",{className:"font-bold text-2xl md:text-3xl",children:v}),w&&b("p",{className:"text-base text-muted-foreground",children:w})]}),X(b1,{className:"items-center gap-4",children:[N,(M||W)&&X("div",{className:"flex items-center gap-2 text-base text-muted-foreground",children:[b(Y1,{className:"h-4 w-4 animate-spin"}),b("span",{className:"hidden sm:inline",children:"Mise \xE0 jour..."})]}),I&&X(J,{variant:"outline",size:"sm",onClick:I,disabled:Boolean(M),"aria-label":"Rafra\xEEchir",children:[b(Z1,{className:`mr-2 h-4 w-4 ${M||W?"animate-spin":""}`}),b("span",{className:"hidden sm:inline",children:"Rafra\xEEchir"})]}),q&&b(e,{children:q.href?b(E1,{href:q.href,children:X(J,{children:[q.icon||b(o,{className:"mr-2 h-4 w-4"}),b("span",{className:"hidden sm:inline",children:q.label}),b("span",{className:"sm:hidden",children:"Nouveau"})]})}):X(J,{onClick:q.onClick,children:[q.icon||b(o,{className:"mr-2 h-4 w-4"}),b("span",{className:"hidden sm:inline",children:q.label}),b("span",{className:"sm:hidden",children:"Nouveau"})]})})]})]}),P&&X(e,{children:[P(T),b(W1,{})]}),b(T1,{searchValue:c,onSearchChange:Q1,searchPlaceholder:V,filters:m1,isLoading:M}),T.length===0&&!M?H?H():b(p,{children:X(n,{className:"flex flex-col items-center gap-4 p-8 text-center",children:[b("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:b("div",{className:"h-6 w-6 rounded-full bg-muted-foreground/20"})}),X("div",{children:[b("h3",{className:"font-medium",children:"Aucun \xE9l\xE9ment trouv\xE9"}),b("p",{className:"text-base text-muted-foreground",children:c||Object.values(t).some((E)=>E)?"Essayez de modifier vos crit\xE8res de recherche":"Commencez par cr\xE9er votre premier \xE9l\xE9ment"})]}),q&&!c&&!Object.values(t).some((E)=>E)&&b(e,{children:q.href?b(E1,{href:q.href,children:X(J,{children:[q.icon||b(o,{className:"mr-2 h-4 w-4"}),q.label]})}):X(J,{onClick:q.onClick,children:[q.icon||b(o,{className:"mr-2 h-4 w-4"}),q.label]})})]})}):X(e,{children:[b("div",{className:`space-y-4 ${I1}`,children:T.map((E,h)=>$(E,h))}),_>1&&b(r,{currentPage:H1,totalPages:_,totalItems:G,itemsPerPage:U1,onPageChange:f1,onItemsPerPageChange:B1,disabled:M})]})]})}export{B0 as ListPage};
@@ -0,0 +1,2 @@
1
+ export { ListPage } from './ListPage';
2
+ export type { ListPageFilter, ListPageProps } from './types';
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var e=import.meta.require;export{p as ListPage};
@@ -0,0 +1,37 @@
1
+ import type { SharedListPageProps } from '@contractspec/lib.ui-kit-core/interfaces';
2
+ import type { FilterOption } from '@contractspec/lib.ui-kit-web/ui/atoms/FilterSelect';
3
+ import type { ReactNode } from 'react';
4
+ import type { UseListStateReturn } from '../../useListState';
5
+ export interface ListPageFilter {
6
+ key: string;
7
+ label: string;
8
+ options: FilterOption[];
9
+ showCounts?: boolean;
10
+ }
11
+ export interface ListPageProps<T = unknown> extends SharedListPageProps<T> {
12
+ title: string;
13
+ description?: string;
14
+ header?: ReactNode;
15
+ items: T[];
16
+ totalItems: number;
17
+ totalPages: number;
18
+ isLoading: boolean;
19
+ isFetching?: boolean;
20
+ error?: Error | null;
21
+ listState: UseListStateReturn;
22
+ searchPlaceholder?: string;
23
+ filters?: ListPageFilter[];
24
+ onRefresh?: () => void;
25
+ primaryAction?: {
26
+ label: string;
27
+ href?: string;
28
+ onClick?: () => void;
29
+ icon?: ReactNode;
30
+ };
31
+ toolbar?: ReactNode;
32
+ renderItem: (item: T, index: number) => ReactNode;
33
+ renderEmpty?: () => ReactNode;
34
+ renderStats?: (items: T[]) => ReactNode;
35
+ className?: string;
36
+ itemClassName?: string;
37
+ }
@@ -0,0 +1 @@
1
+ // @bun
@@ -0,0 +1,9 @@
1
+ import type { SharedPageHeaderProps } from '@contractspec/lib.ui-kit-core/interfaces';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ declare const headerVariants: (props?: ({
4
+ spacing?: "sm" | "lg" | "md" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export interface PageHeaderProps extends SharedPageHeaderProps, VariantProps<typeof headerVariants> {
7
+ }
8
+ export declare function PageHeader({ breadcrumb, title, subtitle, actions, spacing, className, }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var Z=import.meta.require;import{cn as I}from"@contractspec/lib.ui-kit-core/utils";import{cva as J}from"class-variance-authority";import{jsx as L}from"react/jsx-runtime";var R=J("flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"}},defaultVariants:{gap:"md",align:"stretch",justify:"start"}});function K({className:A,gap:C,align:q,justify:z,as:D="div",ref:E,...F}){return L(D,{ref:E,className:I(R({gap:C,align:q,justify:z}),A),...F})}var T=J("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:"wrap"}});function P({className:A,gap:C,align:q,justify:z,wrap:D,as:E="div",ref:F,...G}){return L(E,{ref:F,className:I(T({gap:C,align:q,justify:z,wrap:D}),A),...G})}var U=J("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"center",wrap:"nowrap"}});function H({className:A,gap:C,align:q,justify:z,wrap:D,as:E="div",ref:F,...G}){return L(E,{ref:F,className:I(U({gap:C,align:q,justify:z,wrap:D}),A),...G})}import{cn as W}from"@contractspec/lib.ui-kit-core/utils";import{cva as X}from"class-variance-authority";import{jsx as M,jsxs as O}from"react/jsx-runtime";var Y=X("",{variants:{spacing:{sm:"gap-1",md:"gap-2",lg:"gap-3"}},defaultVariants:{spacing:"md"}});function N({breadcrumb:A,title:C,subtitle:q,actions:z,spacing:D,className:E}){return O(K,{className:W(Y({spacing:D}),E),children:[A,O(P,{className:"flex-col items-start justify-between md:flex-row",children:[O(K,{className:"gap-1",children:[M("h1",{className:"font-semibold text-2xl md:text-3xl",children:C}),q?M("p",{className:"text-base text-muted-foreground",children:q}):null]}),z?M("div",{className:"flex items-center gap-2",children:z}):null]})]})}export{N as PageHeader};
@@ -0,0 +1,17 @@
1
+ import * as React from 'react';
2
+ import { type ButtonProps } from './button';
3
+ declare function Pagination({ className, ...props }: React.ComponentPropsWithoutRef<'nav'>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PaginationContent({ className, ref, ...props }: React.ComponentPropsWithoutRef<'ul'> & {
5
+ ref?: React.Ref<HTMLUListElement>;
6
+ }): import("react/jsx-runtime").JSX.Element;
7
+ declare function PaginationItem({ className, ref, ...props }: React.ComponentPropsWithoutRef<'li'> & {
8
+ ref?: React.Ref<HTMLLIElement>;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ type PaginationLinkProps = {
11
+ isActive?: boolean;
12
+ } & Pick<ButtonProps, 'size'> & React.ComponentPropsWithoutRef<'a'>;
13
+ declare function PaginationLink({ className, isActive, size, ...props }: PaginationLinkProps): import("react/jsx-runtime").JSX.Element;
14
+ declare function PaginationPrevious({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
15
+ declare function PaginationNext({ className, ...props }: React.ComponentProps<typeof PaginationLink>): import("react/jsx-runtime").JSX.Element;
16
+ declare function PaginationEllipsis({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
17
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var P=import.meta.require;import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import{Slot as H}from"@radix-ui/react-slot";import{cva as d}from"class-variance-authority";import*as E from"react";import{jsx as A}from"react/jsx-runtime";var X=d("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",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",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",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),w=E.forwardRef(({className:D,variant:q,size:F,asChild:J=!1,...K},O)=>{return A(J?H:"button",{ref:O,"data-slot":"button",className:B(X({variant:q,size:F,className:D})),...K})});w.displayName="Button";import{cn as Y}from"@contractspec/lib.ui-kit-core/utils";import{cva as Z}from"class-variance-authority";import{jsx as _}from"react/jsx-runtime";var L=Z("flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"}},defaultVariants:{gap:"md",align:"stretch",justify:"start"}});function x({className:D,gap:q,align:F,justify:J,as:K="div",ref:O,...T}){return _(K,{ref:O,className:Y(L({gap:q,align:F,justify:J}),D),...T})}var W=Z("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:"wrap"}});function I({className:D,gap:q,align:F,justify:J,wrap:K,as:O="div",ref:T,...U}){return _(O,{ref:T,className:Y(W({gap:q,align:F,justify:J,wrap:K}),D),...U})}var z=Z("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"center",wrap:"nowrap"}});function j({className:D,gap:q,align:F,justify:J,wrap:K,as:O="div",ref:T,...U}){return _(O,{ref:T,className:Y(z({gap:q,align:F,justify:J,wrap:K}),D),...U})}import{cn as Q}from"@contractspec/lib.ui-kit-core/utils";import{ChevronLeft as C,ChevronRight as y,MoreHorizontal as b}from"lucide-react";import{jsx as G,jsxs as $}from"react/jsx-runtime";function n({className:D,...q}){return G(I,{as:"nav",role:"navigation","aria-label":"pagination",justify:"center",wrap:"nowrap",className:Q("mx-auto w-full",D),...q})}function c({className:D,ref:q,...F}){return G("ul",{ref:q,className:Q(W({align:"center",gap:"xs",wrap:"nowrap"}),D),...F})}function r({className:D,ref:q,...F}){return G("li",{ref:q,className:Q("",D),...F})}function M({className:D,isActive:q,size:F="icon",...J}){return G("a",{"aria-current":q?"page":void 0,className:Q(X({variant:q?"outline":"ghost",size:F}),D),...J})}function i({className:D,...q}){return $(M,{"aria-label":"Go to previous page",size:"default",className:Q("gap-1 pl-2.5",D),...q,children:[G(C,{className:"h-4 w-4"}),G("span",{children:"Previous"})]})}function t({className:D,...q}){return $(M,{"aria-label":"Go to next page",size:"default",className:Q("gap-1 pr-2.5",D),...q,children:[G("span",{children:"Next"}),G(y,{className:"h-4 w-4"})]})}function s({className:D,...q}){return $("span",{"aria-hidden":!0,className:Q(W({align:"center",gap:"none",justify:"center",wrap:"nowrap"}),"h-9 w-9",D),...q,children:[G(b,{className:"h-4 w-4"}),G("span",{className:"sr-only",children:"More pages"})]})}export{i as PaginationPrevious,t as PaginationNext,M as PaginationLink,r as PaginationItem,s as PaginationEllipsis,c as PaginationContent,n as Pagination};
@@ -0,0 +1,7 @@
1
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
2
+ import * as React from 'react';
3
+ declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
6
+ declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): import("react/jsx-runtime").JSX.Element;
7
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var F=import.meta.require;import{cn as E}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@radix-ui/react-popover";import{jsx as y}from"react/jsx-runtime";function I({...w}){return y(q.Root,{"data-slot":"popover",...w})}function J({...w}){return y(q.Trigger,{"data-slot":"popover-trigger",...w})}function K({className:w,align:z="center",sideOffset:B=4,...D}){return y(q.Portal,{children:y(q.Content,{"data-slot":"popover-content",align:z,sideOffset:B,className:E("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 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=closed]:animate-out data-[state=open]:animate-in",w),...D})})}function L({...w}){return y(q.Anchor,{"data-slot":"popover-anchor",...w})}export{J as PopoverTrigger,K as PopoverContent,L as PopoverAnchor,I as Popover};
@@ -0,0 +1,4 @@
1
+ import * as ProgressPrimitive from '@radix-ui/react-progress';
2
+ import * as React from 'react';
3
+ declare function Progress({ className, value, ...props }: React.ComponentProps<typeof ProgressPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Progress };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var A=import.meta.require;import{cn as z}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@radix-ui/react-progress";import{jsx as h}from"react/jsx-runtime";function D({className:q,value:w,...y}){return h(f.Root,{"data-slot":"progress",className:z("relative h-2 w-full overflow-hidden rounded-full bg-primary/20",q),...y,children:h(f.Indicator,{"data-slot":"progress-indicator",className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(w||0)}%)`}})})}export{D as Progress};
@@ -0,0 +1,5 @@
1
+ import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
2
+ import * as React from 'react';
3
+ declare function RadioGroup({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function RadioGroupItem({ className, ...props }: React.ComponentProps<typeof RadioGroupPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
5
+ export { RadioGroup, RadioGroupItem };
@@ -0,0 +1,2 @@
1
+ // @bun
2
+ var z=import.meta.require;import{cn as w}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@radix-ui/react-radio-group";import{CircleIcon as y}from"lucide-react";import{jsx as h}from"react/jsx-runtime";function E({className:q,...v}){return h(f.Root,{"data-slot":"radio-group",className:w("grid gap-3",q),...v})}function F({className:q,...v}){return h(f.Item,{"data-slot":"radio-group-item",className:w("aspect-square size-4 shrink-0 rounded-full border border-input text-primary 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 dark:bg-input/30 dark:aria-invalid:ring-destructive/40",q),...v,children:h(f.Indicator,{"data-slot":"radio-group-indicator",className:"relative flex items-center justify-center",children:h(y,{className:"absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2 fill-primary"})})})}export{F as RadioGroupItem,E as RadioGroup};
@@ -0,0 +1,8 @@
1
+ import type { GroupProps, SeparatorProps } from 'react-resizable-panels';
2
+ import { Panel } from 'react-resizable-panels';
3
+ declare const ResizablePanelGroup: ({ className, ...props }: GroupProps) => import("react/jsx-runtime").JSX.Element;
4
+ declare const ResizablePanel: typeof Panel;
5
+ declare const ResizableHandle: ({ withHandle, className, ...props }: SeparatorProps & {
6
+ withHandle?: boolean;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };