@lssm/lib.ui-kit-web 1.41.1 → 1.42.1

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 (409) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +13 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/ui/accordion.d.ts +25 -0
  5. package/dist/ui/accordion.d.ts.map +1 -0
  6. package/dist/ui/accordion.js +2 -1
  7. package/dist/ui/accordion.js.map +1 -0
  8. package/dist/ui/alert-dialog.d.ts +49 -0
  9. package/dist/ui/alert-dialog.d.ts.map +1 -0
  10. package/dist/ui/alert-dialog.js +2 -1
  11. package/dist/ui/alert-dialog.js.map +1 -0
  12. package/dist/ui/alert.d.ts +25 -0
  13. package/dist/ui/alert.d.ts.map +1 -0
  14. package/dist/ui/alert.js +2 -1
  15. package/dist/ui/alert.js.map +1 -0
  16. package/dist/ui/aspect-ratio.d.ts +8 -0
  17. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  18. package/dist/ui/aspect-ratio.js +2 -1
  19. package/dist/ui/aspect-ratio.js.map +1 -0
  20. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  21. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  22. package/dist/ui/atoms/FilterSelect/FilterSelect.js +2 -1
  23. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  24. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  25. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  26. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  27. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  28. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  29. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +2 -1
  30. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  31. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  32. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  33. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  34. package/dist/ui/atoms/Pagination/Pagination.js +2 -1
  35. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  36. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  37. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  38. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  39. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  40. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  41. package/dist/ui/atoms/SearchInput/SearchInput.js +2 -1
  42. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  43. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  44. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  45. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  46. package/dist/ui/avatar.d.ts +20 -0
  47. package/dist/ui/avatar.d.ts.map +1 -0
  48. package/dist/ui/avatar.js +2 -1
  49. package/dist/ui/avatar.js.map +1 -0
  50. package/dist/ui/badge.d.ts +20 -0
  51. package/dist/ui/badge.d.ts.map +1 -0
  52. package/dist/ui/badge.js +2 -1
  53. package/dist/ui/badge.js.map +1 -0
  54. package/dist/ui/breadcrumb.d.ts +38 -0
  55. package/dist/ui/breadcrumb.d.ts.map +1 -0
  56. package/dist/ui/breadcrumb.js +2 -1
  57. package/dist/ui/breadcrumb.js.map +1 -0
  58. package/dist/ui/button.d.ts +21 -0
  59. package/dist/ui/button.d.ts.map +1 -0
  60. package/dist/ui/button.js +2 -1
  61. package/dist/ui/button.js.map +1 -0
  62. package/dist/ui/calendar.d.ts +27 -0
  63. package/dist/ui/calendar.d.ts.map +1 -0
  64. package/dist/ui/calendar.js +3 -2
  65. package/dist/ui/calendar.js.map +1 -0
  66. package/dist/ui/card.d.ts +35 -0
  67. package/dist/ui/card.d.ts.map +1 -0
  68. package/dist/ui/card.js +2 -1
  69. package/dist/ui/card.js.map +1 -0
  70. package/dist/ui/carousel.d.ts +48 -0
  71. package/dist/ui/carousel.d.ts.map +1 -0
  72. package/dist/ui/carousel.js +2 -1
  73. package/dist/ui/carousel.js.map +1 -0
  74. package/dist/ui/checkbox.d.ts +12 -0
  75. package/dist/ui/checkbox.d.ts.map +1 -0
  76. package/dist/ui/checkbox.js +2 -1
  77. package/dist/ui/checkbox.js.map +1 -0
  78. package/dist/ui/collapsible.d.ts +16 -0
  79. package/dist/ui/collapsible.d.ts.map +1 -0
  80. package/dist/ui/collapsible.js +2 -1
  81. package/dist/ui/collapsible.js.map +1 -0
  82. package/dist/ui/command.d.ts +53 -0
  83. package/dist/ui/command.d.ts.map +1 -0
  84. package/dist/ui/command.js +2 -1
  85. package/dist/ui/command.js.map +1 -0
  86. package/dist/ui/confirm-dialog.d.ts +31 -0
  87. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  88. package/dist/ui/confirm-dialog.js +2 -1
  89. package/dist/ui/confirm-dialog.js.map +1 -0
  90. package/dist/ui/context-menu.d.ts +35 -0
  91. package/dist/ui/context-menu.d.ts.map +1 -0
  92. package/dist/ui/context-menu.js +2 -1
  93. package/dist/ui/context-menu.js.map +1 -0
  94. package/dist/ui/cta.d.ts +23 -0
  95. package/dist/ui/cta.d.ts.map +1 -0
  96. package/dist/ui/cta.js +2 -1
  97. package/dist/ui/cta.js.map +1 -0
  98. package/dist/ui/date-picker.d.ts +26 -0
  99. package/dist/ui/date-picker.d.ts.map +1 -0
  100. package/dist/ui/date-picker.js +2 -1
  101. package/dist/ui/date-picker.js.map +1 -0
  102. package/dist/ui/date-range-picker.d.ts +26 -0
  103. package/dist/ui/date-range-picker.d.ts.map +1 -0
  104. package/dist/ui/date-range-picker.js +2 -1
  105. package/dist/ui/date-range-picker.js.map +1 -0
  106. package/dist/ui/datetime-picker.d.ts +28 -0
  107. package/dist/ui/datetime-picker.d.ts.map +1 -0
  108. package/dist/ui/datetime-picker.js +2 -1
  109. package/dist/ui/datetime-picker.js.map +1 -0
  110. package/dist/ui/dialog.d.ts +48 -0
  111. package/dist/ui/dialog.d.ts.map +1 -0
  112. package/dist/ui/dialog.js +2 -1
  113. package/dist/ui/dialog.js.map +1 -0
  114. package/dist/ui/drawer.d.ts +45 -0
  115. package/dist/ui/drawer.d.ts.map +1 -0
  116. package/dist/ui/drawer.js +2 -1
  117. package/dist/ui/drawer.js.map +1 -0
  118. package/dist/ui/dropdown-menu.d.ts +78 -0
  119. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  120. package/dist/ui/dropdown-menu.js +2 -1
  121. package/dist/ui/dropdown-menu.js.map +1 -0
  122. package/dist/ui/empty-state.d.ts +29 -0
  123. package/dist/ui/empty-state.d.ts.map +1 -0
  124. package/dist/ui/empty-state.js +2 -1
  125. package/dist/ui/empty-state.js.map +1 -0
  126. package/dist/ui/empty.d.ts +37 -0
  127. package/dist/ui/empty.d.ts.map +1 -0
  128. package/dist/ui/empty.js +2 -1
  129. package/dist/ui/empty.js.map +1 -0
  130. package/dist/ui/field.d.ts +66 -0
  131. package/dist/ui/field.d.ts.map +1 -0
  132. package/dist/ui/field.js +2 -1
  133. package/dist/ui/field.js.map +1 -0
  134. package/dist/ui/focus-on-route-change.d.ts +9 -0
  135. package/dist/ui/focus-on-route-change.d.ts.map +1 -0
  136. package/dist/ui/focus-on-route-change.js +2 -1
  137. package/dist/ui/focus-on-route-change.js.map +1 -0
  138. package/dist/ui/form.d.ts +47 -0
  139. package/dist/ui/form.d.ts.map +1 -0
  140. package/dist/ui/form.js +2 -1
  141. package/dist/ui/form.js.map +1 -0
  142. package/dist/ui/hover-card.d.ts +20 -0
  143. package/dist/ui/hover-card.d.ts.map +1 -0
  144. package/dist/ui/hover-card.js +2 -1
  145. package/dist/ui/hover-card.js.map +1 -0
  146. package/dist/ui/input-group.d.ts +44 -0
  147. package/dist/ui/input-group.d.ts.map +1 -0
  148. package/dist/ui/input-group.js +8 -1
  149. package/dist/ui/input-group.js.map +1 -0
  150. package/dist/ui/input-otp.d.ts +39 -0
  151. package/dist/ui/input-otp.d.ts.map +1 -0
  152. package/dist/ui/input-otp.js +2 -1
  153. package/dist/ui/input-otp.js.map +1 -0
  154. package/dist/ui/input.d.ts +13 -0
  155. package/dist/ui/input.d.ts.map +1 -0
  156. package/dist/ui/input.js +2 -1
  157. package/dist/ui/input.js.map +1 -0
  158. package/dist/ui/label.d.ts +12 -0
  159. package/dist/ui/label.d.ts.map +1 -0
  160. package/dist/ui/label.js +2 -1
  161. package/dist/ui/label.js.map +1 -0
  162. package/dist/ui/link.d.ts +9 -0
  163. package/dist/ui/link.d.ts.map +1 -0
  164. package/dist/ui/link.js +2 -1
  165. package/dist/ui/link.js.map +1 -0
  166. package/dist/ui/live-region.d.ts +17 -0
  167. package/dist/ui/live-region.d.ts.map +1 -0
  168. package/dist/ui/live-region.js +2 -1
  169. package/dist/ui/live-region.js.map +1 -0
  170. package/dist/ui/loading-button.d.ts +20 -0
  171. package/dist/ui/loading-button.d.ts.map +1 -0
  172. package/dist/ui/loading-button.js +2 -1
  173. package/dist/ui/loading-button.js.map +1 -0
  174. package/dist/ui/map/MapBase.d.ts +28 -0
  175. package/dist/ui/map/MapBase.d.ts.map +1 -0
  176. package/dist/ui/map/MapBase.js +3 -2
  177. package/dist/ui/map/MapBase.js.map +1 -0
  178. package/dist/ui/map/MapGeoJsonOverlay.d.ts +16 -0
  179. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -0
  180. package/dist/ui/map/MapGeoJsonOverlay.js +2 -1
  181. package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -0
  182. package/dist/ui/map/MapHeatmapH3.d.ts +18 -0
  183. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -0
  184. package/dist/ui/map/MapHeatmapH3.js +3 -2
  185. package/dist/ui/map/MapHeatmapH3.js.map +1 -0
  186. package/dist/ui/map/MapMarkers.d.ts +20 -0
  187. package/dist/ui/map/MapMarkers.d.ts.map +1 -0
  188. package/dist/ui/map/MapMarkers.js +9 -2
  189. package/dist/ui/map/MapMarkers.js.map +1 -0
  190. package/dist/ui/map/index.d.ts +5 -0
  191. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  192. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  193. package/dist/ui/marketing/FeatureGrid.js +2 -1
  194. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  195. package/dist/ui/marketing/Hero.d.ts +28 -0
  196. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  197. package/dist/ui/marketing/Hero.js +2 -1
  198. package/dist/ui/marketing/Hero.js.map +1 -0
  199. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  200. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  201. package/dist/ui/marketing/PricingTable.js +2 -1
  202. package/dist/ui/marketing/PricingTable.js.map +1 -0
  203. package/dist/ui/marketing/index.d.ts +4 -0
  204. package/dist/ui/menubar.d.ts +85 -0
  205. package/dist/ui/menubar.d.ts.map +1 -0
  206. package/dist/ui/menubar.js +2 -1
  207. package/dist/ui/menubar.js.map +1 -0
  208. package/dist/ui/molecules/Autocomplete/index.d.ts +7 -0
  209. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  210. package/dist/ui/molecules/Autocomplete/index.js +2 -1
  211. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  212. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  213. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  214. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +4 -1
  215. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  216. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  217. package/dist/ui/molecules/SearchAndFilter/types.d.ts +24 -0
  218. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  219. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  220. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  221. package/dist/ui/molecules/SkeletonList.js +2 -1
  222. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  223. package/dist/ui/nav-layout.d.ts +71 -0
  224. package/dist/ui/nav-layout.d.ts.map +1 -0
  225. package/dist/ui/nav-layout.js +3 -2
  226. package/dist/ui/nav-layout.js.map +1 -0
  227. package/dist/ui/navigation-menu.d.ts +47 -0
  228. package/dist/ui/navigation-menu.d.ts.map +1 -0
  229. package/dist/ui/navigation-menu.js +2 -1
  230. package/dist/ui/navigation-menu.js.map +1 -0
  231. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  232. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  233. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +2 -1
  234. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  235. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  236. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  237. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  238. package/dist/ui/organisms/ListPage/ListPage.js +4 -1
  239. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  240. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  241. package/dist/ui/organisms/ListPage/types.d.ts +41 -0
  242. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  243. package/dist/ui/page-header.d.ts +27 -0
  244. package/dist/ui/page-header.d.ts.map +1 -0
  245. package/dist/ui/page-header.js +2 -1
  246. package/dist/ui/page-header.js.map +1 -0
  247. package/dist/ui/pagination.d.ts +50 -0
  248. package/dist/ui/pagination.d.ts.map +1 -0
  249. package/dist/ui/pagination.js +2 -1
  250. package/dist/ui/pagination.js.map +1 -0
  251. package/dist/ui/popover.d.ts +23 -0
  252. package/dist/ui/popover.d.ts.map +1 -0
  253. package/dist/ui/popover.js +2 -1
  254. package/dist/ui/popover.js.map +1 -0
  255. package/dist/ui/progress.d.ts +13 -0
  256. package/dist/ui/progress.d.ts.map +1 -0
  257. package/dist/ui/progress.js +2 -1
  258. package/dist/ui/progress.js.map +1 -0
  259. package/dist/ui/radio-group.d.ts +16 -0
  260. package/dist/ui/radio-group.d.ts.map +1 -0
  261. package/dist/ui/radio-group.js +2 -1
  262. package/dist/ui/radio-group.js.map +1 -0
  263. package/dist/ui/resizable.d.ts +36 -0
  264. package/dist/ui/resizable.d.ts.map +1 -0
  265. package/dist/ui/resizable.js +2 -1
  266. package/dist/ui/resizable.js.map +1 -0
  267. package/dist/ui/route-announcer.d.ts +11 -0
  268. package/dist/ui/route-announcer.d.ts.map +1 -0
  269. package/dist/ui/route-announcer.js +2 -1
  270. package/dist/ui/route-announcer.js.map +1 -0
  271. package/dist/ui/scroll-area.d.ts +18 -0
  272. package/dist/ui/scroll-area.d.ts.map +1 -0
  273. package/dist/ui/scroll-area.js +2 -1
  274. package/dist/ui/scroll-area.js.map +1 -0
  275. package/dist/ui/section.d.ts +27 -0
  276. package/dist/ui/section.d.ts.map +1 -0
  277. package/dist/ui/section.js +2 -1
  278. package/dist/ui/section.js.map +1 -0
  279. package/dist/ui/select.d.ts +52 -0
  280. package/dist/ui/select.d.ts.map +1 -0
  281. package/dist/ui/select.js +2 -1
  282. package/dist/ui/select.js.map +1 -0
  283. package/dist/ui/separator.d.ts +14 -0
  284. package/dist/ui/separator.d.ts.map +1 -0
  285. package/dist/ui/separator.js +2 -1
  286. package/dist/ui/separator.js.map +1 -0
  287. package/dist/ui/sheet.d.ts +41 -0
  288. package/dist/ui/sheet.d.ts.map +1 -0
  289. package/dist/ui/sheet.js +2 -1
  290. package/dist/ui/sheet.js.map +1 -0
  291. package/dist/ui/sidebar.d.ts +167 -0
  292. package/dist/ui/sidebar.d.ts.map +1 -0
  293. package/dist/ui/sidebar.js +2 -1
  294. package/dist/ui/sidebar.js.map +1 -0
  295. package/dist/ui/skeleton.d.ts +11 -0
  296. package/dist/ui/skeleton.d.ts.map +1 -0
  297. package/dist/ui/skeleton.js +2 -1
  298. package/dist/ui/skeleton.js.map +1 -0
  299. package/dist/ui/skip-link.d.ts +17 -0
  300. package/dist/ui/skip-link.d.ts.map +1 -0
  301. package/dist/ui/skip-link.js +2 -1
  302. package/dist/ui/skip-link.js.map +1 -0
  303. package/dist/ui/slider.d.ts +16 -0
  304. package/dist/ui/slider.d.ts.map +1 -0
  305. package/dist/ui/slider.js +2 -1
  306. package/dist/ui/slider.js.map +1 -0
  307. package/dist/ui/sonner.d.ts +10 -0
  308. package/dist/ui/sonner.d.ts.map +1 -0
  309. package/dist/ui/sonner.js +3 -2
  310. package/dist/ui/sonner.js.map +1 -0
  311. package/dist/ui/stack.d.ts +48 -0
  312. package/dist/ui/stack.d.ts.map +1 -0
  313. package/dist/ui/stack.js +2 -1
  314. package/dist/ui/stack.js.map +1 -0
  315. package/dist/ui/stat-card-group.d.ts +19 -0
  316. package/dist/ui/stat-card-group.d.ts.map +1 -0
  317. package/dist/ui/stat-card-group.js +2 -1
  318. package/dist/ui/stat-card-group.js.map +1 -0
  319. package/dist/ui/stepper.d.ts +23 -0
  320. package/dist/ui/stepper.d.ts.map +1 -0
  321. package/dist/ui/stepper.js +2 -1
  322. package/dist/ui/stepper.js.map +1 -0
  323. package/dist/ui/switch.d.ts +15 -0
  324. package/dist/ui/switch.d.ts.map +1 -0
  325. package/dist/ui/switch.js +2 -2
  326. package/dist/ui/switch.js.map +1 -0
  327. package/dist/ui/table.d.ts +39 -0
  328. package/dist/ui/table.d.ts.map +1 -0
  329. package/dist/ui/table.js +2 -1
  330. package/dist/ui/table.js.map +1 -0
  331. package/dist/ui/tabs.d.ts +24 -0
  332. package/dist/ui/tabs.d.ts.map +1 -0
  333. package/dist/ui/tabs.js +2 -1
  334. package/dist/ui/tabs.js.map +1 -0
  335. package/dist/ui/text.d.ts +15 -0
  336. package/dist/ui/text.d.ts.map +1 -0
  337. package/dist/ui/text.js +2 -1
  338. package/dist/ui/text.js.map +1 -0
  339. package/dist/ui/textarea.d.ts +12 -0
  340. package/dist/ui/textarea.d.ts.map +1 -0
  341. package/dist/ui/textarea.js +2 -1
  342. package/dist/ui/textarea.js.map +1 -0
  343. package/dist/ui/time-picker.d.ts +22 -0
  344. package/dist/ui/time-picker.d.ts.map +1 -0
  345. package/dist/ui/time-picker.js +2 -1
  346. package/dist/ui/time-picker.js.map +1 -0
  347. package/dist/ui/toast.d.ts +20 -0
  348. package/dist/ui/toast.d.ts.map +1 -0
  349. package/dist/ui/toast.js +2 -1
  350. package/dist/ui/toast.js.map +1 -0
  351. package/dist/ui/toaster.d.ts +7 -0
  352. package/dist/ui/toaster.d.ts.map +1 -0
  353. package/dist/ui/toaster.js +2 -1
  354. package/dist/ui/toaster.js.map +1 -0
  355. package/dist/ui/toggle-group.d.ts +24 -0
  356. package/dist/ui/toggle-group.d.ts.map +1 -0
  357. package/dist/ui/toggle-group.js +2 -1
  358. package/dist/ui/toggle-group.js.map +1 -0
  359. package/dist/ui/toggle.d.ts +20 -0
  360. package/dist/ui/toggle.d.ts.map +1 -0
  361. package/dist/ui/toggle.js +2 -1
  362. package/dist/ui/toggle.js.map +1 -0
  363. package/dist/ui/tooltip.d.ts +24 -0
  364. package/dist/ui/tooltip.d.ts.map +1 -0
  365. package/dist/ui/tooltip.js +2 -1
  366. package/dist/ui/tooltip.js.map +1 -0
  367. package/dist/ui/typography.d.ts +65 -0
  368. package/dist/ui/typography.d.ts.map +1 -0
  369. package/dist/ui/typography.js +2 -1
  370. package/dist/ui/typography.js.map +1 -0
  371. package/dist/ui/use-media-query.d.ts +5 -0
  372. package/dist/ui/use-media-query.d.ts.map +1 -0
  373. package/dist/ui/use-media-query.js +2 -1
  374. package/dist/ui/use-media-query.js.map +1 -0
  375. package/dist/ui/use-mobile.d.ts +5 -0
  376. package/dist/ui/use-mobile.d.ts.map +1 -0
  377. package/dist/ui/use-mobile.js +2 -1
  378. package/dist/ui/use-mobile.js.map +1 -0
  379. package/dist/ui/use-reduced-motion.d.ts +5 -0
  380. package/dist/ui/use-reduced-motion.d.ts.map +1 -0
  381. package/dist/ui/use-reduced-motion.js +2 -1
  382. package/dist/ui/use-reduced-motion.js.map +1 -0
  383. package/dist/ui/use-toast.d.ts +50 -0
  384. package/dist/ui/use-toast.d.ts.map +1 -0
  385. package/dist/ui/use-toast.js +2 -1
  386. package/dist/ui/use-toast.js.map +1 -0
  387. package/dist/ui/useListState.d.ts +34 -0
  388. package/dist/ui/useListState.d.ts.map +1 -0
  389. package/dist/ui/useListState.js +2 -1
  390. package/dist/ui/useListState.js.map +1 -0
  391. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  392. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  393. package/dist/ui/usecases/UseCaseCard.js +2 -1
  394. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  395. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  396. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  397. package/dist/ui/usecases/UserStoryCard.js +2 -1
  398. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  399. package/dist/ui/usecases/index.d.ts +3 -0
  400. package/dist/ui/utils.d.ts +7 -0
  401. package/dist/ui/utils.d.ts.map +1 -0
  402. package/dist/ui/utils.js +2 -1
  403. package/dist/ui/utils.js.map +1 -0
  404. package/dist/ui/visually-hidden.d.ts +10 -0
  405. package/dist/ui/visually-hidden.d.ts.map +1 -0
  406. package/dist/ui/visually-hidden.js +2 -1
  407. package/dist/ui/visually-hidden.js.map +1 -0
  408. package/package.json +130 -123
  409. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -80,7 +80,7 @@ function NavColumns({ columns }) {
80
80
  })] }, idx))
81
81
  });
82
82
  }
83
- function NavCategorizedWithPreview({ categories, modules, activeCategory, setActiveCategory, activeKey, setActiveKey, preview }) {
83
+ function NavCategorizedWithPreview({ categories, modules, activeCategory, setActiveCategory, activeKey: _activeKey, setActiveKey, preview }) {
84
84
  const visible = React$1.useMemo(() => modules.filter((m) => activeCategory === "all" || m.categories.includes(activeCategory)), [modules, activeCategory]);
85
85
  return /* @__PURE__ */ jsxs("div", {
86
86
  className: "flex items-start gap-3",
@@ -129,4 +129,5 @@ function NavCategorizedWithPreview({ categories, modules, activeCategory, setAct
129
129
  }
130
130
 
131
131
  //#endregion
132
- export { NavCategorizedWithPreview, NavColumns, NavigationMenuContent as NavContent, NavigationMenuItem as NavItem, NavigationMenuLink as NavLink, NavigationMenuList as NavList, NavPanel, NavigationMenu as NavRoot, NavSimpleList, NavigationMenuTrigger as NavTrigger, navPanelVariants };
132
+ export { NavCategorizedWithPreview, NavColumns, NavigationMenuContent as NavContent, NavigationMenuItem as NavItem, NavigationMenuLink as NavLink, NavigationMenuList as NavList, NavPanel, NavigationMenu as NavRoot, NavSimpleList, NavigationMenuTrigger as NavTrigger, navPanelVariants };
133
+ //# sourceMappingURL=nav-layout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-layout.js","names":["React"],"sources":["../../ui/nav-layout.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n} from './navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\n\nexport const navPanelVariants = cva('', {\n variants: {\n width: {\n sm: 'w-[280px]',\n md: 'w-[500px]',\n lg: 'w-[900px]',\n full: 'w-[calc(100vw-2rem)]',\n },\n padding: {\n none: '',\n sm: 'p-2',\n md: 'p-3',\n },\n },\n defaultVariants: {\n width: 'lg',\n padding: 'md',\n },\n});\n\nexport interface NavPanelProps extends React.ComponentPropsWithoutRef<'div'> {\n width?: 'sm' | 'md' | 'lg' | 'full';\n padding?: 'none' | 'sm' | 'md';\n}\n\nexport function NavPanel({\n width,\n padding,\n className,\n ...props\n}: NavPanelProps) {\n return (\n <div\n className={cn(navPanelVariants({ width, padding }), className)}\n {...props}\n />\n );\n}\n\n// Simple list layout\nexport function NavSimpleList({\n title,\n items,\n}: {\n title?: React.ReactNode;\n items: { href: string; label: string; description?: string }[];\n}) {\n return (\n <div>\n {title && <div className=\"mb-2 text-base font-semibold\">{title}</div>}\n <ul className=\"grid w-[280px] gap-2\">\n {items.map((it) => (\n <li key={it.href}>\n <NavigationMenuLink asChild>\n <a\n href={it.href}\n className=\"hover:bg-accent block rounded-md p-2\"\n >\n <div className=\"text-base font-medium\">{it.label}</div>\n {it.description && (\n <div className=\"text-muted-foreground line-clamp-2 text-sm\">\n {it.description}\n </div>\n )}\n </a>\n </NavigationMenuLink>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n\n// Columns layout\nexport function NavColumns({\n columns,\n}: {\n columns: {\n title?: string;\n items: { href: string; label: string; description?: string }[];\n }[];\n}) {\n return (\n <div className=\"grid w-[500px] grid-cols-2 gap-3\">\n {columns.map((col, idx) => (\n <div key={idx}>\n {col.title && (\n <div className=\"text-muted-foreground mb-2 text-base font-semibold\">\n {col.title}\n </div>\n )}\n <ul className=\"grid gap-2\">\n {col.items.map((it) => (\n <li key={it.href}>\n <NavigationMenuLink asChild>\n <a\n href={it.href}\n className=\"hover:bg-accent block rounded-md p-2\"\n >\n <div className=\"text-base font-medium\">{it.label}</div>\n {it.description && (\n <div className=\"text-muted-foreground line-clamp-2 text-sm\">\n {it.description}\n </div>\n )}\n </a>\n </NavigationMenuLink>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n );\n}\n\n// Categorized with preview layout\nexport function NavCategorizedWithPreview({\n categories,\n modules,\n activeCategory,\n setActiveCategory,\n activeKey: _activeKey,\n setActiveKey,\n preview,\n}: {\n categories: { key: string; label: string }[];\n modules: {\n key: string;\n title: string;\n description?: string;\n categories: string[];\n }[];\n activeCategory: string;\n setActiveCategory: (k: string) => void;\n activeKey: string | null;\n setActiveKey: (k: string | null) => void;\n preview: React.ReactNode;\n}) {\n const visible = React.useMemo(\n () =>\n modules.filter(\n (m) => activeCategory === 'all' || m.categories.includes(activeCategory)\n ),\n [modules, activeCategory]\n );\n\n return (\n <div className=\"flex items-start gap-3\">\n <div className=\"max-h-96 w-48 shrink-0 overflow-auto pr-1\">\n <button\n className={`hover:bg-muted w-full rounded-md px-3 py-2 text-left text-base transition-colors ${\n activeCategory === 'all' ? 'bg-muted' : ''\n }`}\n onMouseEnter={() => setActiveCategory('all')}\n onFocus={() => setActiveCategory('all')}\n onClick={() => setActiveCategory('all')}\n >\n All\n </button>\n {categories.map((c) => (\n <button\n key={c.key}\n className={`hover:bg-muted w-full rounded-md px-3 py-2 text-left text-base transition-colors ${\n activeCategory === c.key ? 'bg-muted' : ''\n }`}\n onMouseEnter={() => setActiveCategory(c.key)}\n onFocus={() => setActiveCategory(c.key)}\n onClick={() => setActiveCategory(c.key)}\n >\n {c.label}\n </button>\n ))}\n </div>\n <div className=\"grid max-h-96 flex-1 grid-cols-1 gap-1 overflow-auto pr-1\">\n {visible.map((m) => (\n <NavigationMenuLink asChild key={m.key}>\n <a\n href={`/modules/${m.key}`}\n className=\"hover:bg-muted rounded-md px-3 py-2 text-left transition-colors\"\n onMouseEnter={() => setActiveKey(m.key)}\n onFocus={() => setActiveKey(m.key)}\n >\n <div className=\"text-base font-medium\">{m.title}</div>\n {m.description && (\n <div className=\"text-muted-foreground line-clamp-2 text-sm\">\n {m.description}\n </div>\n )}\n </a>\n </NavigationMenuLink>\n ))}\n </div>\n <div className=\"w-[320px] shrink-0\">{preview}</div>\n </div>\n );\n}\n\nexport {\n NavigationMenu as NavRoot,\n NavigationMenuList as NavList,\n NavigationMenuItem as NavItem,\n NavigationMenuTrigger as NavTrigger,\n NavigationMenuContent as NavContent,\n NavigationMenuLink as NavLink,\n};\n"],"mappings":";;;;;;;AAYA,MAAa,mBAAmB,IAAI,IAAI;CACtC,UAAU;EACR,OAAO;GACL,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;GACP;EACD,SAAS;GACP,MAAM;GACN,IAAI;GACJ,IAAI;GACL;EACF;CACD,iBAAiB;EACf,OAAO;EACP,SAAS;EACV;CACF,CAAC;AAOF,SAAgB,SAAS,EACvB,OACA,SACA,WACA,GAAG,SACa;AAChB,QACE,oBAAC;EACC,WAAW,GAAG,iBAAiB;GAAE;GAAO;GAAS,CAAC,EAAE,UAAU;EAC9D,GAAI;GACJ;;AAKN,SAAgB,cAAc,EAC5B,OACA,SAIC;AACD,QACE,qBAAC,oBACE,SAAS,oBAAC;EAAI,WAAU;YAAgC;GAAY,EACrE,oBAAC;EAAG,WAAU;YACX,MAAM,KAAK,OACV,oBAAC,kBACC,oBAAC;GAAmB;aAClB,qBAAC;IACC,MAAM,GAAG;IACT,WAAU;eAEV,oBAAC;KAAI,WAAU;eAAyB,GAAG;MAAY,EACtD,GAAG,eACF,oBAAC;KAAI,WAAU;eACZ,GAAG;MACA;KAEN;IACe,IAbd,GAAG,KAcP,CACL;GACC,IACD;;AAKV,SAAgB,WAAW,EACzB,WAMC;AACD,QACE,oBAAC;EAAI,WAAU;YACZ,QAAQ,KAAK,KAAK,QACjB,qBAAC,oBACE,IAAI,SACH,oBAAC;GAAI,WAAU;aACZ,IAAI;IACD,EAER,oBAAC;GAAG,WAAU;aACX,IAAI,MAAM,KAAK,OACd,oBAAC,kBACC,oBAAC;IAAmB;cAClB,qBAAC;KACC,MAAM,GAAG;KACT,WAAU;gBAEV,oBAAC;MAAI,WAAU;gBAAyB,GAAG;OAAY,EACtD,GAAG,eACF,oBAAC;MAAI,WAAU;gBACZ,GAAG;OACA;MAEN;KACe,IAbd,GAAG,KAcP,CACL;IACC,KAxBG,IAyBJ,CACN;GACE;;AAKV,SAAgB,0BAA0B,EACxC,YACA,SACA,gBACA,mBACA,WAAW,YACX,cACA,WAcC;CACD,MAAM,UAAUA,QAAM,cAElB,QAAQ,QACL,MAAM,mBAAmB,SAAS,EAAE,WAAW,SAAS,eAAe,CACzE,EACH,CAAC,SAAS,eAAe,CAC1B;AAED,QACE,qBAAC;EAAI,WAAU;;GACb,qBAAC;IAAI,WAAU;eACb,oBAAC;KACC,WAAW,oFACT,mBAAmB,QAAQ,aAAa;KAE1C,oBAAoB,kBAAkB,MAAM;KAC5C,eAAe,kBAAkB,MAAM;KACvC,eAAe,kBAAkB,MAAM;eACxC;MAEQ,EACR,WAAW,KAAK,MACf,oBAAC;KAEC,WAAW,oFACT,mBAAmB,EAAE,MAAM,aAAa;KAE1C,oBAAoB,kBAAkB,EAAE,IAAI;KAC5C,eAAe,kBAAkB,EAAE,IAAI;KACvC,eAAe,kBAAkB,EAAE,IAAI;eAEtC,EAAE;OARE,EAAE,IASA,CACT;KACE;GACN,oBAAC;IAAI,WAAU;cACZ,QAAQ,KAAK,MACZ,oBAAC;KAAmB;eAClB,qBAAC;MACC,MAAM,YAAY,EAAE;MACpB,WAAU;MACV,oBAAoB,aAAa,EAAE,IAAI;MACvC,eAAe,aAAa,EAAE,IAAI;iBAElC,oBAAC;OAAI,WAAU;iBAAyB,EAAE;QAAY,EACrD,EAAE,eACD,oBAAC;OAAI,WAAU;iBACZ,EAAE;QACC;OAEN;OAb2B,EAAE,IAcd,CACrB;KACE;GACN,oBAAC;IAAI,WAAU;cAAsB;KAAc;;GAC/C"}
@@ -0,0 +1,47 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime259 from "react/jsx-runtime";
3
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
4
+ import * as class_variance_authority_types21 from "class-variance-authority/types";
5
+
6
+ //#region ui/navigation-menu.d.ts
7
+ declare function NavigationMenu({
8
+ className,
9
+ children,
10
+ viewport,
11
+ ...props
12
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
13
+ viewport?: boolean;
14
+ }): react_jsx_runtime259.JSX.Element;
15
+ declare function NavigationMenuList({
16
+ className,
17
+ ...props
18
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.List>): react_jsx_runtime259.JSX.Element;
19
+ declare function NavigationMenuItem({
20
+ className,
21
+ ...props
22
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Item>): react_jsx_runtime259.JSX.Element;
23
+ declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types21.ClassProp | undefined) => string;
24
+ declare function NavigationMenuTrigger({
25
+ className,
26
+ children,
27
+ ...props
28
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Trigger>): react_jsx_runtime259.JSX.Element;
29
+ declare function NavigationMenuContent({
30
+ className,
31
+ ...props
32
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Content>): react_jsx_runtime259.JSX.Element;
33
+ declare function NavigationMenuViewport({
34
+ className,
35
+ ...props
36
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Viewport>): react_jsx_runtime259.JSX.Element;
37
+ declare function NavigationMenuLink({
38
+ className,
39
+ ...props
40
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Link>): react_jsx_runtime259.JSX.Element;
41
+ declare function NavigationMenuIndicator({
42
+ className,
43
+ ...props
44
+ }: React$1.ComponentProps<typeof NavigationMenuPrimitive.Indicator>): react_jsx_runtime259.JSX.Element;
45
+ //#endregion
46
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
47
+ //# sourceMappingURL=navigation-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAOS,cAAA;;;;;GAKN,OAAA,CAAM,sBAAsB,uBAAA,CAAwB;;IAEtD,oBAAA,CAAA,GAAA,CAAA;iBAiBQ,kBAAA;;;GAGN,OAAA,CAAM,sBAAsB,uBAAA,CAAwB,QAAK,oBAAA,CAAA,GAAA,CAAA;AAjCe,iBA8ClE,kBAAA,CAxCc;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2CpB,OAAA,CAAM,cA3Cc,CAAA,OA2CQ,uBAAA,CAAwB,IA3ChC,CAAA,CAAA,EA2CqC,oBAAA,CAAA,GAAA,CAAA,OA3CrC;cAqDjB,0BApDJ,EAAA,CAAA,KAAA,CAAA,EAsDD,gCAAA,CAF+B,SAAA,GApD9B,SAAA,EAAA,GAAA,MAAA;iBAwDO,qBAAA,CAvDP;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA2DC,OAAA,CAAM,cA3DP,CAAA,OA2D6B,uBAAA,CAAwB,OA3DrD,CAAA,CAAA,EA2D6D,oBAAA,CAAA,GAAA,CAAA,OA3D7D;iBA2EO,qBAAA,CA1EP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6EC,OAAA,CAAM,cA7EP,CAAA,OA6E6B,uBAAA,CAAwB,OA7ErD,CAAA,CAAA,EA6E6D,oBAAA,CAAA,GAAA,CAAA,OA7E7D;iBA2FO,sBAAA,CAzF8C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4FpD,OAAA,CAAM,cA5F8C,CAAA,OA4FxB,uBAAA,CAAwB,QA5FA,CAAA,CAAA,EA4FS,oBAAA,CAAA,GAAA,CAAA,OA5FT;iBA+G9C,kBAAA,CA/GA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkHN,OAAA,CAAM,cAlHA,CAAA,OAkHsB,uBAAA,CAAwB,IAlH9C,CAAA,CAAA,EAkHmD,oBAAA,CAAA,GAAA,CAAA,OAlHnD;iBA+HA,uBAAA,CA7HR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgIE,OAAA,CAAM,cAhIR,CAAA,OAgI8B,uBAAA,CAAwB,SAhItD,CAAA,CAAA,EAgIgE,oBAAA,CAAA,GAAA,CAAA,OAhIhE"}
@@ -79,4 +79,5 @@ function NavigationMenuIndicator({ className, ...props }) {
79
79
  }
80
80
 
81
81
  //#endregion
82
- export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
82
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
83
+ //# sourceMappingURL=navigation-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-menu.js","names":[],"sources":["../../ui/navigation-menu.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';\nimport { cva } from 'class-variance-authority';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n 'group/navigation-menu relative flex max-w-max flex-1 items-center justify-center',\n className\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n 'group flex flex-1 list-none items-center justify-center gap-1',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn('relative', className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n 'group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1'\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), 'group', className)}\n {...props}\n >\n {children}{' '}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n 'data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out 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 md:absolute md:w-auto',\n 'bg-background group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground data-[state=open]:group-data-[viewport=false]/navigation-menu:animate-in data-[state=closed]:group-data-[viewport=false]/navigation-menu:animate-out 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 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:shadow-2xs group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div\n className={cn(\n 'absolute top-full left-0 isolate z-50 flex justify-center'\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n 'origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border shadow-2xs md:w-(--radix-navigation-menu-viewport-width)',\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-ring/50 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-xs p-2 text-sm outline-hidden transition-all focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n 'data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-1 flex h-1.5 items-end justify-center overflow-hidden',\n className\n )}\n {...props}\n >\n <div className=\"bg-border relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;;AAOA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAGF;AACD,QACE,qBAAC,wBAAwB;EACvB,aAAU;EACV,iBAAe;EACf,WAAW,GACT,oFACA,UACD;EACD,GAAI;aAEH,UACA,YAAY,oBAAC,2BAAyB;GACV;;AAInC,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GACT,iEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GAAG,YAAY,UAAU;EACpC,GAAI;GACJ;;AAIN,MAAM,6BAA6B,IACjC,igBACD;AAED,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GAAG,4BAA4B,EAAE,SAAS,UAAU;EAC/D,GAAI;;GAEH;GAAU;GACX,oBAAC;IACC,WAAU;IACV,eAAY;KACZ;;GAC8B;;AAItC,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GACT,oWACA,ijCACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC;EACC,WAAW,GACT,4DACD;YAED,oBAAC,wBAAwB;GACvB,aAAU;GACV,WAAW,GACT,gVACA,UACD;GACD,GAAI;IACJ;GACE;;AAIV,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GACT,2dACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;AACjE,QACE,oBAAC,wBAAwB;EACvB,aAAU;EACV,WAAW,GACT,8LACA,UACD;EACD,GAAI;YAEJ,oBAAC,SAAI,WAAU,2EAA2E;GACxD"}
@@ -0,0 +1,30 @@
1
+ import React from "react";
2
+ import * as react_jsx_runtime257 from "react/jsx-runtime";
3
+
4
+ //#region ui/organisms/ErrorBoundary/ErrorBoundary.d.ts
5
+ interface ErrorBoundaryState {
6
+ hasError: boolean;
7
+ error: Error | null;
8
+ errorId: string | null;
9
+ }
10
+ interface ErrorBoundaryProps {
11
+ children: React.ReactNode;
12
+ fallback?: React.ComponentType<ErrorFallbackProps>;
13
+ onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
14
+ }
15
+ interface ErrorFallbackProps {
16
+ error: Error;
17
+ errorId: string | null;
18
+ resetError: () => void;
19
+ }
20
+ declare class ErrorBoundary extends React.Component<ErrorBoundaryProps, ErrorBoundaryState> {
21
+ constructor(props: ErrorBoundaryProps);
22
+ static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState>;
23
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
24
+ resetError: () => void;
25
+ render(): string | number | bigint | boolean | react_jsx_runtime257.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | null | undefined;
26
+ }
27
+ declare const useErrorHandler: () => (error: Error) => never;
28
+ //#endregion
29
+ export { ErrorBoundary, type ErrorBoundaryProps, type ErrorFallbackProps, useErrorHandler };
30
+ //# sourceMappingURL=ErrorBoundary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.d.ts","names":[],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":[],"mappings":";;;;UAOU,kBAAA;;SAED;EAFC,OAAA,EAAA,MAAA,GAAA,IAAkB;AAEd;UAIJ,kBAAA,CACQ;EACe,QAAA,EADrB,KAAA,CAAM,SACe;EAApB,QAAM,CAAA,EAAN,KAAA,CAAM,aAAA,CAAc,kBAAd,CAAA;EACC,OAAA,CAAA,EAAA,CAAA,KAAA,EAAA,KAAA,EAAA,SAAA,EAAkB,KAAA,CAAM,SAAxB,EAAA,GAAA,IAAA;;UAGV,kBAAA,CAH2C;EAG3C,KAAA,EACD,KADC;EAmEG,OAAA,EAAA,MAAA,GAAc,IAAA;EACzB,UAAA,EAAA,GAAA,GAAA,IAAA;;AAGmB,cAJR,aAAA,SAAsB,KAAA,CAAM,SAIpB,CAHnB,kBAGmB,EAFnB,kBAEmB,CAAA,CAAA;EASoB,WAAA,CAAA,KAAA,EATpB,kBASoB;EAAgB,OAAA,wBAAA,CAAA,KAAA,EAAhB,KAAgB,CAAA,EAAR,OAAQ,CAAA,kBAAA,CAAA;EAAR,iBAAA,CAAA,KAAA,EAOtB,KAPsB,EAAA,SAAA,EAOJ,KAAA,CAAM,SAPF,CAAA,EAAA,IAAA;EAOtB,UAAA,EAAA,GAAA,GAAA,IAAA;EAAkB,MAAM,CAAA,CAAA,EAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,oBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAgC3C,OAhC2C,CAAA,MAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA,GAgC3C,KAAA,CAAA,WAhC2C,GAgC3C,KAAA,CAAA,YAhC2C,CAAA,OAAA,EAAA,MAAA,GAgC3C,KAAA,CAAA,qBAhC2C,CAAA,GAAA,CAAA,CAAA,GAgC3C,QAhC2C,CAgC3C,KAAA,CAAA,SAhC2C,CAAA,GAAA,IAAA,GAAA,SAAA,CAAA,GAAA,IAAA,GAAA,SAAA;;AAgC3C,cAkBK,eAlBL,EAAA,GAAA,GAAA,CAAA,KAAA,EAmB2B,KAnB3B,EAAA,GAAA,KAAA"}
@@ -103,4 +103,5 @@ const useErrorHandler = () => {
103
103
  };
104
104
 
105
105
  //#endregion
106
- export { ErrorBoundary, useErrorHandler };
106
+ export { ErrorBoundary, useErrorHandler };
107
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","names":["DefaultErrorFallback: React.FC<ErrorFallbackProps>"],"sources":["../../../../ui/organisms/ErrorBoundary/ErrorBoundary.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n// import * as Sentry from '@sentry/nextjs';\nimport { AlertTriangle, RefreshCw, Home } from 'lucide-react';\nimport { Button } from '../../button';\n\ninterface ErrorBoundaryState {\n hasError: boolean;\n error: Error | null;\n errorId: string | null;\n}\n\ninterface ErrorBoundaryProps {\n children: React.ReactNode;\n fallback?: React.ComponentType<ErrorFallbackProps>;\n onError?: (error: Error, errorInfo: React.ErrorInfo) => void;\n}\n\ninterface ErrorFallbackProps {\n error: Error;\n errorId: string | null;\n resetError: () => void;\n}\n\nconst DefaultErrorFallback: React.FC<ErrorFallbackProps> = ({\n error,\n errorId,\n resetError,\n}) => {\n const isDevelopment = process.env.NODE_ENV === 'development';\n\n return (\n <div className=\"flex min-h-screen items-center justify-center bg-gray-50 px-4\">\n <div className=\"w-full max-w-md rounded-lg bg-white p-6 text-center shadow-lg\">\n <div className=\"mb-4 flex justify-center\">\n <AlertTriangle className=\"h-12 w-12 text-red-500\" />\n </div>\n\n <h1 className=\"mb-2 text-2xl font-semibold text-gray-900\">\n Une erreur s'est produite\n </h1>\n\n <p className=\"mb-6 text-gray-600\">\n Nous nous excusons pour ce désagrément. Notre équipe a été notifiée et\n travaille à résoudre le problème.\n </p>\n\n {isDevelopment && (\n <div className=\"mb-6 rounded-md bg-red-50 p-4 text-left\">\n <p className=\"mb-2 text-base font-medium text-red-800\">\n Erreur de développement:\n </p>\n <p className=\"font-mono text-sm break-all text-red-700\">\n {error.message}\n </p>\n {errorId && (\n <p className=\"mt-2 text-sm text-red-600\">ID: {errorId}</p>\n )}\n </div>\n )}\n\n <div className=\"flex flex-col justify-center gap-3 sm:flex-row\">\n <Button onClick={resetError} className=\"flex items-center gap-2\">\n <RefreshCw className=\"h-4 w-4\" />\n Réessayer\n </Button>\n\n <Button\n onClick={() => (window.location.href = '/')}\n variant=\"secondary\"\n className=\"flex items-center gap-2\"\n >\n <Home className=\"h-4 w-4\" />\n Accueil\n </Button>\n </div>\n\n {!isDevelopment && errorId && (\n <p className=\"mt-4 text-sm text-gray-500\">Code d'erreur: {errorId}</p>\n )}\n </div>\n </div>\n );\n};\n\nexport class ErrorBoundary extends React.Component<\n ErrorBoundaryProps,\n ErrorBoundaryState\n> {\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = {\n hasError: false,\n error: null,\n errorId: null,\n };\n }\n\n static getDerivedStateFromError(error: Error): Partial<ErrorBoundaryState> {\n return {\n hasError: true,\n error,\n };\n }\n\n componentDidCatch(error: Error, errorInfo: React.ErrorInfo) {\n // Generate unique error ID\n const errorId = `err_${Date.now()}_${Math.random().toString(36).substr(2, 9)}`;\n\n // Log to Sentry with additional context\n // Sentry.withScope((scope) => {\n // scope.setTag('errorBoundary', true);\n // scope.setContext('errorInfo', { ...errorInfo });\n // scope.setContext('errorId', { errorId });\n // Sentry.captureException(error);\n // });\n\n // Update state with error ID\n this.setState({ errorId });\n\n // Call custom error handler if provided\n this.props.onError?.(error, errorInfo);\n\n // Log to console in development\n if (process.env.NODE_ENV === 'development') {\n console.error('ErrorBoundary caught an error:', error, errorInfo);\n }\n }\n\n resetError = () => {\n this.setState({\n hasError: false,\n error: null,\n errorId: null,\n });\n };\n\n render() {\n if (this.state.hasError && this.state.error) {\n const FallbackComponent = this.props.fallback || DefaultErrorFallback;\n\n return (\n <FallbackComponent\n error={this.state.error}\n errorId={this.state.errorId}\n resetError={this.resetError}\n />\n );\n }\n\n return this.props.children;\n }\n}\n\n// Hook for functional components to trigger error boundary\nexport const useErrorHandler = () => {\n return React.useCallback((error: Error) => {\n // This will be caught by the nearest error boundary\n throw error;\n }, []);\n};\n\nexport type { ErrorBoundaryProps, ErrorFallbackProps };\n"],"mappings":";;;;;;;;AAyBA,MAAMA,wBAAsD,EAC1D,OACA,SACA,iBACI;AAGJ,QACE,oBAAC;EAAI,WAAU;YACb,qBAAC;GAAI,WAAU;;IACb,oBAAC;KAAI,WAAU;eACb,oBAAC,iBAAc,WAAU,2BAA2B;MAChD;IAEN,oBAAC;KAAG,WAAU;eAA4C;MAErD;IAEL,oBAAC;KAAE,WAAU;eAAqB;MAG9B;IAGF,qBAAC;KAAI,WAAU;;MACb,oBAAC;OAAE,WAAU;iBAA0C;QAEnD;MACJ,oBAAC;OAAE,WAAU;iBACV,MAAM;QACL;MACH,WACC,qBAAC;OAAE,WAAU;kBAA4B,QAAK;QAAY;;MAExD;IAGR,qBAAC;KAAI,WAAU;gBACb,qBAAC;MAAO,SAAS;MAAY,WAAU;iBACrC,oBAAC,aAAU,WAAU,YAAY;OAE1B,EAET,qBAAC;MACC,eAAgB,OAAO,SAAS,OAAO;MACvC,SAAQ;MACR,WAAU;iBAEV,oBAAC,QAAK,WAAU,YAAY;OAErB;MACL;IAEL;;IAGG;GACF;;AAIV,IAAa,gBAAb,cAAmC,MAAM,UAGvC;CACA,YAAY,OAA2B;AACrC,QAAM,MAAM;AACZ,OAAK,QAAQ;GACX,UAAU;GACV,OAAO;GACP,SAAS;GACV;;CAGH,OAAO,yBAAyB,OAA2C;AACzE,SAAO;GACL,UAAU;GACV;GACD;;CAGH,kBAAkB,OAAc,WAA4B;EAE1D,MAAM,UAAU,OAAO,KAAK,KAAK,CAAC,GAAG,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,EAAE;AAW5E,OAAK,SAAS,EAAE,SAAS,CAAC;AAG1B,OAAK,MAAM,UAAU,OAAO,UAAU;AAIpC,UAAQ,MAAM,kCAAkC,OAAO,UAAU;;CAIrE,mBAAmB;AACjB,OAAK,SAAS;GACZ,UAAU;GACV,OAAO;GACP,SAAS;GACV,CAAC;;CAGJ,SAAS;AACP,MAAI,KAAK,MAAM,YAAY,KAAK,MAAM,MAGpC,QACE,oBAHwB,KAAK,MAAM,YAAY;GAI7C,OAAO,KAAK,MAAM;GAClB,SAAS,KAAK,MAAM;GACpB,YAAY,KAAK;IACjB;AAIN,SAAO,KAAK,MAAM;;;AAKtB,MAAa,wBAAwB;AACnC,QAAO,MAAM,aAAa,UAAiB;AAEzC,QAAM;IACL,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ErrorBoundary, ErrorBoundaryProps, ErrorFallbackProps, useErrorHandler } from "./ErrorBoundary.js";
2
+ export { ErrorBoundary, type ErrorBoundaryProps, type ErrorFallbackProps, useErrorHandler };
@@ -0,0 +1,29 @@
1
+ import { ListPageProps } from "./types.js";
2
+ import * as react_jsx_runtime258 from "react/jsx-runtime";
3
+
4
+ //#region ui/organisms/ListPage/ListPage.d.ts
5
+ declare function ListPage<T>({
6
+ title,
7
+ description,
8
+ header,
9
+ items,
10
+ totalItems,
11
+ totalPages,
12
+ isLoading,
13
+ isFetching,
14
+ error,
15
+ listState,
16
+ searchPlaceholder,
17
+ filters,
18
+ onRefresh,
19
+ primaryAction,
20
+ toolbar,
21
+ renderItem,
22
+ renderEmpty,
23
+ renderStats,
24
+ className,
25
+ itemClassName
26
+ }: ListPageProps<T>): react_jsx_runtime258.JSX.Element;
27
+ //#endregion
28
+ export { ListPage };
29
+ //# sourceMappingURL=ListPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":[],"mappings":";;;;iBAWgB;;;;;;;;;;;;;;;;;;;;;GAqBb,cAAc,KAAE,oBAAA,CAAA,GAAA,CAAA"}
@@ -3,7 +3,9 @@ import { Card, CardContent } from "../../card.js";
3
3
  import { HStack, VStack } from "../../stack.js";
4
4
  import { Separator } from "../../separator.js";
5
5
  import { Pagination } from "../../atoms/Pagination/Pagination.js";
6
+ import "../../atoms/Pagination/index.js";
6
7
  import { SearchAndFilter } from "../../molecules/SearchAndFilter/SearchAndFilter.js";
8
+ import "../../molecules/SearchAndFilter/index.js";
7
9
  import React from "react";
8
10
  import { AlertTriangle, Loader2, Plus, RefreshCcw } from "lucide-react";
9
11
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -194,4 +196,5 @@ function ListPage({ title, description, header, items, totalItems, totalPages, i
194
196
  }
195
197
 
196
198
  //#endregion
197
- export { ListPage };
199
+ export { ListPage };
200
+ //# sourceMappingURL=ListPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListPage.js","names":["Link"],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":["import React from 'react';\nimport Link from 'next/link';\nimport { AlertTriangle, Loader2, Plus, RefreshCcw } from 'lucide-react';\nimport { Button } from '../../button';\nimport { Card, CardContent } from '../../card';\nimport { VStack, HStack } from '../../stack';\nimport { Separator } from '../../separator';\nimport { SearchAndFilter } from '../../molecules/SearchAndFilter';\nimport { Pagination } from '../../atoms/Pagination';\nimport type { ListPageProps } from './types';\n\nexport function ListPage<T>({\n title,\n description,\n header,\n items,\n totalItems,\n totalPages,\n isLoading,\n isFetching,\n error,\n listState,\n searchPlaceholder,\n filters = [],\n onRefresh,\n primaryAction,\n toolbar,\n renderItem,\n renderEmpty,\n renderStats,\n className = '',\n itemClassName = '',\n}: ListPageProps<T>) {\n const {\n searchQuery,\n setSearchQuery,\n filters: filterValues,\n setFilter,\n currentPage,\n itemsPerPage,\n setCurrentPage,\n setItemsPerPage,\n } = listState;\n\n // Loading state with no items\n if (isLoading && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex items-center gap-4 p-6\">\n <Loader2 className=\"text-primary h-8 w-8 animate-spin\" />\n <div>\n <h3 className=\"font-medium\">Chargement...</h3>\n <p className=\"text-muted-foreground text-base\">\n Récupération des données en cours\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Error state with no items\n if (error && !items.length) {\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {header ? (\n header\n ) : (\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n )}\n\n <div className=\"flex min-h-[400px] items-center justify-center\">\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-6 text-center\">\n <AlertTriangle className=\"text-destructive h-12 w-12\" />\n <div>\n <h3 className=\"font-medium\">Erreur de chargement</h3>\n <p className=\"text-muted-foreground text-base\">\n {error.message || 'Une erreur est survenue'}\n </p>\n </div>\n {onRefresh && (\n <Button onClick={onRefresh} variant=\"outline\" size=\"sm\">\n <RefreshCcw className=\"mr-2 h-4 w-4\" />\n Réessayer\n </Button>\n )}\n </CardContent>\n </Card>\n </div>\n </VStack>\n );\n }\n\n // Prepare filter configurations\n const filterConfigs = filters.map((filter) => ({\n key: filter.key,\n label: filter.label,\n value: filterValues[filter.key] || '',\n options: filter.options,\n onChange: (value: string) => {\n setFilter(filter.key, value === 'all' ? '' : value);\n },\n showCounts: filter.showCounts,\n }));\n\n return (\n <VStack className={`space-y-4 md:space-y-6 ${className}`}>\n {/* Header */}\n {header ? (\n header\n ) : (\n <HStack className=\"items-center justify-between\">\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-bold md:text-3xl\">{title}</h1>\n {description && (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n )}\n </VStack>\n\n <HStack className=\"items-center gap-4\">\n {toolbar}\n {(isLoading || isFetching) && (\n <div className=\"text-muted-foreground flex items-center gap-2 text-base\">\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n <span className=\"hidden sm:inline\">Mise à jour...</span>\n </div>\n )}\n\n {onRefresh && (\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={onRefresh}\n disabled={Boolean(isLoading)}\n aria-label=\"Rafraîchir\"\n >\n <RefreshCcw\n className={`mr-2 h-4 w-4 ${isLoading || isFetching ? 'animate-spin' : ''}`}\n />\n <span className=\"hidden sm:inline\">Rafraîchir</span>\n </Button>\n )}\n\n {primaryAction && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n </Link>\n ) : (\n <Button onClick={primaryAction.onClick}>\n {primaryAction.icon || <Plus className=\"mr-2 h-4 w-4\" />}\n <span className=\"hidden sm:inline\">\n {primaryAction.label}\n </span>\n <span className=\"sm:hidden\">Nouveau</span>\n </Button>\n )}\n </>\n )}\n </HStack>\n </HStack>\n )}\n\n {/* Stats (optional) */}\n {renderStats && (\n <>\n {renderStats(items)}\n <Separator />\n </>\n )}\n\n {/* Search and Filters */}\n <SearchAndFilter\n searchValue={searchQuery}\n onSearchChange={setSearchQuery}\n searchPlaceholder={searchPlaceholder}\n filters={filterConfigs}\n isLoading={isLoading}\n />\n\n {/* Content */}\n {items.length === 0 && !isLoading ? (\n renderEmpty ? (\n renderEmpty()\n ) : (\n <Card>\n <CardContent className=\"flex flex-col items-center gap-4 p-8 text-center\">\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n <div className=\"bg-muted-foreground/20 h-6 w-6 rounded-full\" />\n </div>\n <div>\n <h3 className=\"font-medium\">Aucun élément trouvé</h3>\n <p className=\"text-muted-foreground text-base\">\n {searchQuery || Object.values(filterValues).some((v) => v)\n ? 'Essayez de modifier vos critères de recherche'\n : 'Commencez par créer votre premier élément'}\n </p>\n </div>\n {primaryAction &&\n !searchQuery &&\n !Object.values(filterValues).some((v) => v) && (\n <>\n {primaryAction.href ? (\n <Link href={primaryAction.href}>\n <Button>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n </Link>\n ) : (\n <Button onClick={primaryAction.onClick}>\n {primaryAction.icon || (\n <Plus className=\"mr-2 h-4 w-4\" />\n )}\n {primaryAction.label}\n </Button>\n )}\n </>\n )}\n </CardContent>\n </Card>\n )\n ) : (\n <>\n {/* Items List */}\n <div className={`space-y-4 ${itemClassName}`}>\n {items.map((item, index) => renderItem(item, index))}\n </div>\n\n {/* Pagination */}\n {totalPages > 1 && (\n <Pagination\n currentPage={currentPage}\n totalPages={totalPages}\n totalItems={totalItems}\n itemsPerPage={itemsPerPage}\n onPageChange={setCurrentPage}\n onItemsPerPageChange={setItemsPerPage}\n disabled={isLoading}\n />\n )}\n </>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAWA,SAAgB,SAAY,EAC1B,OACA,aACA,QACA,OACA,YACA,YACA,WACA,YACA,OACA,WACA,mBACA,UAAU,EAAE,EACZ,WACA,eACA,SACA,YACA,aACA,aACA,YAAY,IACZ,gBAAgB,MACG;CACnB,MAAM,EACJ,aACA,gBACA,SAAS,cACT,WACA,aACA,cACA,gBACA,oBACE;AAGJ,KAAI,aAAa,CAAC,MAAM,OACtB,QACE,qBAAC;EAAO,WAAW,0BAA0B;aAC1C,SACC,SAEA,qBAAC;GAAO,WAAU;cAChB,oBAAC;IAAG,WAAU;cAAkC;KAAW,EAC1D,eACC,oBAAC;IAAE,WAAU;cAAmC;KAAgB;IAE3D,EAGX,oBAAC;GAAI,WAAU;aACb,oBAAC,kBACC,qBAAC;IAAY,WAAU;eACrB,oBAAC,WAAQ,WAAU,sCAAsC,EACzD,qBAAC,oBACC,oBAAC;KAAG,WAAU;eAAc;MAAkB,EAC9C,oBAAC;KAAE,WAAU;eAAkC;MAE3C,IACA;KACM,GACT;IACH;GACC;AAKb,KAAI,SAAS,CAAC,MAAM,OAClB,QACE,qBAAC;EAAO,WAAW,0BAA0B;aAC1C,SACC,SAEA,qBAAC;GAAO,WAAU;cAChB,oBAAC;IAAG,WAAU;cAAkC;KAAW,EAC1D,eACC,oBAAC;IAAE,WAAU;cAAmC;KAAgB;IAE3D,EAGX,oBAAC;GAAI,WAAU;aACb,oBAAC,kBACC,qBAAC;IAAY,WAAU;;KACrB,oBAAC,iBAAc,WAAU,+BAA+B;KACxD,qBAAC,oBACC,oBAAC;MAAG,WAAU;gBAAc;OAAyB,EACrD,oBAAC;MAAE,WAAU;gBACV,MAAM,WAAW;OAChB,IACA;KACL,aACC,qBAAC;MAAO,SAAS;MAAW,SAAQ;MAAU,MAAK;iBACjD,oBAAC,cAAW,WAAU,iBAAiB;OAEhC;;KAEC,GACT;IACH;GACC;CAKb,MAAM,gBAAgB,QAAQ,KAAK,YAAY;EAC7C,KAAK,OAAO;EACZ,OAAO,OAAO;EACd,OAAO,aAAa,OAAO,QAAQ;EACnC,SAAS,OAAO;EAChB,WAAW,UAAkB;AAC3B,aAAU,OAAO,KAAK,UAAU,QAAQ,KAAK,MAAM;;EAErD,YAAY,OAAO;EACpB,EAAE;AAEH,QACE,qBAAC;EAAO,WAAW,0BAA0B;;GAE1C,SACC,SAEA,qBAAC;IAAO,WAAU;eAChB,qBAAC;KAAO,WAAU;gBAChB,oBAAC;MAAG,WAAU;gBAAkC;OAAW,EAC1D,eACC,oBAAC;MAAE,WAAU;gBAAmC;OAAgB;MAE3D,EAET,qBAAC;KAAO,WAAU;;MACf;OACC,aAAa,eACb,qBAAC;OAAI,WAAU;kBACb,oBAAC,WAAQ,WAAU,yBAAyB,EAC5C,oBAAC;QAAK,WAAU;kBAAmB;SAAqB;QACpD;MAGP,aACC,qBAAC;OACC,SAAQ;OACR,MAAK;OACL,SAAS;OACT,UAAU,QAAQ,UAAU;OAC5B,cAAW;kBAEX,oBAAC,cACC,WAAW,gBAAgB,aAAa,aAAa,iBAAiB,OACtE,EACF,oBAAC;QAAK,WAAU;kBAAmB;SAAiB;QAC7C;MAGV,iBACC,0CACG,cAAc,OACb,oBAACA;OAAK,MAAM,cAAc;iBACxB,qBAAC;QACE,cAAc,QAAQ,oBAAC,QAAK,WAAU,iBAAiB;QACxD,oBAAC;SAAK,WAAU;mBACb,cAAc;UACV;QACP,oBAAC;SAAK,WAAU;mBAAY;UAAc;WACnC;QACJ,GAEP,qBAAC;OAAO,SAAS,cAAc;;QAC5B,cAAc,QAAQ,oBAAC,QAAK,WAAU,iBAAiB;QACxD,oBAAC;SAAK,WAAU;mBACb,cAAc;UACV;QACP,oBAAC;SAAK,WAAU;mBAAY;UAAc;;QACnC,GAEV;;MAEE;KACF;GAIV,eACC,4CACG,YAAY,MAAM,EACnB,oBAAC,cAAY,IACZ;GAIL,oBAAC;IACC,aAAa;IACb,gBAAgB;IACG;IACnB,SAAS;IACE;KACX;GAGD,MAAM,WAAW,KAAK,CAAC,YACtB,cACE,aAAa,GAEb,oBAAC,kBACC,qBAAC;IAAY,WAAU;;KACrB,oBAAC;MAAI,WAAU;gBACb,oBAAC,SAAI,WAAU,gDAAgD;OAC3D;KACN,qBAAC,oBACC,oBAAC;MAAG,WAAU;gBAAc;OAAyB,EACrD,oBAAC;MAAE,WAAU;gBACV,eAAe,OAAO,OAAO,aAAa,CAAC,MAAM,MAAM,EAAE,GACtD,kDACA;OACF,IACA;KACL,iBACC,CAAC,eACD,CAAC,OAAO,OAAO,aAAa,CAAC,MAAM,MAAM,EAAE,IACzC,0CACG,cAAc,OACb,oBAACA;MAAK,MAAM,cAAc;gBACxB,qBAAC,qBACE,cAAc,QACb,oBAAC,QAAK,WAAU,iBAAiB,EAElC,cAAc,SACR;OACJ,GAEP,qBAAC;MAAO,SAAS,cAAc;iBAC5B,cAAc,QACb,oBAAC,QAAK,WAAU,iBAAiB,EAElC,cAAc;OACR,GAEV;;KAEK,GACT,GAGT,4CAEE,oBAAC;IAAI,WAAW,aAAa;cAC1B,MAAM,KAAK,MAAM,UAAU,WAAW,MAAM,MAAM,CAAC;KAChD,EAGL,aAAa,KACZ,oBAAC;IACc;IACD;IACA;IACE;IACd,cAAc;IACd,sBAAsB;IACtB,UAAU;KACV,IAEH;;GAEE"}
@@ -0,0 +1,3 @@
1
+ import { ListPageFilter, ListPageProps } from "./types.js";
2
+ import { ListPage } from "./ListPage.js";
3
+ export { ListPage, type ListPageFilter, type ListPageProps };
@@ -0,0 +1,41 @@
1
+ import { UseListStateReturn } from "../../useListState.js";
2
+ import { ReactNode } from "react";
3
+ import { FilterOption } from "@lssm/lib.ui-kit-web/ui/atoms/FilterSelect";
4
+
5
+ //#region ui/organisms/ListPage/types.d.ts
6
+ interface ListPageFilter {
7
+ key: string;
8
+ label: string;
9
+ options: FilterOption[];
10
+ showCounts?: boolean;
11
+ }
12
+ interface ListPageProps<T = unknown> {
13
+ title: string;
14
+ description?: string;
15
+ header?: ReactNode;
16
+ items: T[];
17
+ totalItems: number;
18
+ totalPages: number;
19
+ isLoading: boolean;
20
+ isFetching?: boolean;
21
+ error?: Error | null;
22
+ listState: UseListStateReturn;
23
+ searchPlaceholder?: string;
24
+ filters?: ListPageFilter[];
25
+ onRefresh?: () => void;
26
+ primaryAction?: {
27
+ label: string;
28
+ href?: string;
29
+ onClick?: () => void;
30
+ icon?: ReactNode;
31
+ };
32
+ toolbar?: ReactNode;
33
+ renderItem: (item: T, index: number) => ReactNode;
34
+ renderEmpty?: () => ReactNode;
35
+ renderStats?: (items: T[]) => ReactNode;
36
+ className?: string;
37
+ itemClassName?: string;
38
+ }
39
+ //#endregion
40
+ export { ListPageFilter, ListPageProps };
41
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/types.ts"],"sourcesContent":[],"mappings":";;;;;UAIiB,cAAA;;EAAA,KAAA,EAAA,MAAA;EAOA,OAAA,EAJN,YAImB,EAAA;EAInB,UAAA,CAAA,EAAA,OAAA;;AAQD,UAZO,aAYP,CAAA,IAAA,OAAA,CAAA,CAAA;EAGG,KAAA,EAAA,MAAA;EAID,WAAA,CAAA,EAAA,MAAA;EAQD,MAAA,CAAA,EAvBA,SAuBA;EAEC,KAAA,EAtBH,CAsBG,EAAA;EAGS,UAAA,EAAA,MAAA;EAAqB,UAAA,EAAA,MAAA;EACpB,SAAA,EAAA,OAAA;EACE,UAAA,CAAA,EAAA,OAAA;EAAQ,KAAA,CAAA,EAtBtB,KAsBsB,GAAA,IAAA;EAAS,SAAA,EAnB5B,kBAmB4B;;YAf7B;;;;;;WAQD;;YAEC;qBAGS,qBAAqB;sBACpB;wBACE,QAAQ"}
@@ -0,0 +1,27 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime271 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as class_variance_authority_types22 from "class-variance-authority/types";
5
+
6
+ //#region ui/page-header.d.ts
7
+ declare const headerVariants: (props?: ({
8
+ spacing?: "sm" | "lg" | "md" | null | undefined;
9
+ } & class_variance_authority_types22.ClassProp) | undefined) => string;
10
+ interface PageHeaderProps extends VariantProps<typeof headerVariants> {
11
+ breadcrumb?: React$1.ReactNode;
12
+ title: React$1.ReactNode;
13
+ subtitle?: React$1.ReactNode;
14
+ actions?: React$1.ReactNode;
15
+ className?: string;
16
+ }
17
+ declare function PageHeader({
18
+ breadcrumb,
19
+ title,
20
+ subtitle,
21
+ actions,
22
+ spacing,
23
+ className
24
+ }: PageHeaderProps): react_jsx_runtime271.JSX.Element;
25
+ //#endregion
26
+ export { PageHeader, PageHeaderProps };
27
+ //# sourceMappingURL=page-header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header.d.ts","names":[],"sources":["../../ui/page-header.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAWJ,gCAAA,CAAA;UAEe,eAAA,SAAwB,oBAAoB;EAbvD,UAAA,CAAA,EAcS,OAAA,CAAM,SAHnB;EAEe,KAAA,EAER,OAAA,CAAM,SAFkB;EAA4B,QAAA,CAAA,EAGhD,OAAA,CAAM,SAH0C;EAC9C,OAAM,CAAA,EAGT,OAAA,CAAM,SAHG;EACZ,SAAM,CAAA,EAAA,MAAA;;AAEH,iBAII,UAAA,CAJE;EAAA,UAAA;EAAA,KAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA;AAAA,CAAA,EAWf,eAXe,CAAA,EAWA,oBAAA,CAAA,GAAA,CAAA,OAXA"}
@@ -36,4 +36,5 @@ function PageHeader({ breadcrumb, title, subtitle, actions, spacing, className }
36
36
  }
37
37
 
38
38
  //#endregion
39
- export { PageHeader };
39
+ export { PageHeader };
40
+ //# sourceMappingURL=page-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-header.js","names":[],"sources":["../../ui/page-header.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\nimport { HStack, VStack } from './stack';\n\nconst headerVariants = cva('', {\n variants: {\n spacing: {\n sm: 'gap-1',\n md: 'gap-2',\n lg: 'gap-3',\n },\n },\n defaultVariants: {\n spacing: 'md',\n },\n});\n\nexport interface PageHeaderProps extends VariantProps<typeof headerVariants> {\n breadcrumb?: React.ReactNode;\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n actions?: React.ReactNode;\n className?: string;\n}\n\nexport function PageHeader({\n breadcrumb,\n title,\n subtitle,\n actions,\n spacing,\n className,\n}: PageHeaderProps) {\n return (\n <VStack className={cn(headerVariants({ spacing }), className)}>\n {breadcrumb}\n <HStack className=\"flex-col items-start justify-between md:flex-row\">\n <VStack className=\"gap-1\">\n <h1 className=\"text-2xl font-semibold md:text-3xl\">{title}</h1>\n {subtitle ? (\n <p className=\"text-muted-foreground text-base\">{subtitle}</p>\n ) : null}\n </VStack>\n {actions ? (\n <div className=\"flex items-center gap-2\">{actions}</div>\n ) : null}\n </HStack>\n </VStack>\n );\n}\n"],"mappings":";;;;;;;AAKA,MAAM,iBAAiB,IAAI,IAAI;CAC7B,UAAU,EACR,SAAS;EACP,IAAI;EACJ,IAAI;EACJ,IAAI;EACL,EACF;CACD,iBAAiB,EACf,SAAS,MACV;CACF,CAAC;AAUF,SAAgB,WAAW,EACzB,YACA,OACA,UACA,SACA,SACA,aACkB;AAClB,QACE,qBAAC;EAAO,WAAW,GAAG,eAAe,EAAE,SAAS,CAAC,EAAE,UAAU;aAC1D,YACD,qBAAC;GAAO,WAAU;cAChB,qBAAC;IAAO,WAAU;eAChB,oBAAC;KAAG,WAAU;eAAsC;MAAW,EAC9D,WACC,oBAAC;KAAE,WAAU;eAAmC;MAAa,GAC3D;KACG,EACR,UACC,oBAAC;IAAI,WAAU;cAA2B;KAAc,GACtD;IACG;GACF"}
@@ -0,0 +1,50 @@
1
+ import { ButtonProps } from "./button.js";
2
+ import * as React$1 from "react";
3
+ import * as react_jsx_runtime108 from "react/jsx-runtime";
4
+
5
+ //#region ui/pagination.d.ts
6
+ declare const Pagination: {
7
+ ({
8
+ className,
9
+ ...props
10
+ }: React$1.ComponentPropsWithoutRef<"nav">): react_jsx_runtime108.JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const PaginationContent: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, "ref"> & React$1.RefAttributes<HTMLUListElement>>;
14
+ declare const PaginationItem: React$1.ForwardRefExoticComponent<Omit<React$1.DetailedHTMLProps<React$1.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref"> & React$1.RefAttributes<HTMLLIElement>>;
15
+ type PaginationLinkProps = {
16
+ isActive?: boolean;
17
+ } & Pick<ButtonProps, 'size'> & React$1.ComponentPropsWithoutRef<'a'>;
18
+ declare const PaginationLink: {
19
+ ({
20
+ className,
21
+ isActive,
22
+ size,
23
+ ...props
24
+ }: PaginationLinkProps): react_jsx_runtime108.JSX.Element;
25
+ displayName: string;
26
+ };
27
+ declare const PaginationPrevious: {
28
+ ({
29
+ className,
30
+ ...props
31
+ }: React$1.ComponentProps<typeof PaginationLink>): react_jsx_runtime108.JSX.Element;
32
+ displayName: string;
33
+ };
34
+ declare const PaginationNext: {
35
+ ({
36
+ className,
37
+ ...props
38
+ }: React$1.ComponentProps<typeof PaginationLink>): react_jsx_runtime108.JSX.Element;
39
+ displayName: string;
40
+ };
41
+ declare const PaginationEllipsis: {
42
+ ({
43
+ className,
44
+ ...props
45
+ }: React$1.ComponentPropsWithoutRef<"span">): react_jsx_runtime108.JSX.Element;
46
+ displayName: string;
47
+ };
48
+ //#endregion
49
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
50
+ //# sourceMappingURL=pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.d.ts","names":[],"sources":["../../ui/pagination.tsx"],"sourcesContent":[],"mappings":";;;;;cAMM;;;;KAGH,OAAA,CAAM,kCAA+B,oBAAA,CAAA,GAAA,CAAA;;AALoB,CAAA;cAetD,mBAAiB,OAAA,CAAA,0BAAA,KAAA,OAAA,CAAA,kBAAA,OAAA,CAAA,eAAA,mBAAA,4BAAA,OAAA,CAAA,cAAA;cAYjB,cAtBG,EAsBW,OAAA,CAAA,yBAtBX,CAsBW,IAtBX,CAsBW,OAAA,CAAA,iBAtBX,CAsBW,OAAA,CAAA,gBAtBX,CAsBW,aAtBX,CAAA,EAsBW,aAtBX,CAAA,EAAA,KAAA,CAAA,GAsBW,OAAA,CAAA,aAtBX,CAsBW,aAtBX,CAAA,CAAA;KA8BJ,mBAAA,GA9BmC;EAAA,QAAA,CAAA,EAAA,OAAA;AAAA,CAAA,GAgCpC,IAtBE,CAsBG,WAtBH,EAAA,MASJ,CAAA,GAcA,OAAA,CAAM,wBAdN,CAAA,GAAA,CAAA;cAgBI,cAzBiB,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,QAAA;IAAA,IAAA;IAAA,GAAA;EAAA,CAAA,EA8BpB,mBA9BoB,CAAA,EA8BD,oBAAA,CAAA,GAAA,CAAA,OA9BC;EAAA,WAAA,EAAA,MAAA;CAAA;cA6CjB,kBA7CiB,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAgDpB,OAAA,CAAM,cAhDc,CAAA,OAgDQ,cAhDR,CAAA,CAAA,EAgDuB,oBAAA,CAAA,GAAA,CAAA,OAhDvB;EAAA,WAAA,EAAA,MAAA;CAAA;cA6DjB,cA7DiB,EAAA;EAYjB,CAAA;IAAA,SAAA;IAAA,GAKJ;EAAA,CAAA,EA+CC,OAAA,CAAM,cA/CP,CAAA,OA+C6B,cA/C7B,CAAA,CAAA,EA+C4C,oBAAA,CAAA,GAAA,CAAA,OA/C5C;EALkB,WAAA,EAAA,MAAA;CAAA;cAiEd,kBAjEc,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAoEjB,OAAA,CAAM,wBApEW,CAAA,MAAA,CAAA,CAAA,EAoEqB,oBAAA,CAAA,GAAA,CAAA,OApErB;EAAA,WAAA,EAAA,MAAA;CAAA"}
@@ -61,4 +61,5 @@ const PaginationEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs("sp
61
61
  PaginationEllipsis.displayName = "PaginationEllipsis";
62
62
 
63
63
  //#endregion
64
- export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
64
+ export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious };
65
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","names":["React"],"sources":["../../ui/pagination.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from 'lucide-react';\n\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\nimport { type ButtonProps, buttonVariants } from './button';\n\nconst Pagination = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'nav'>) => (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n className={cn('mx-auto flex w-full justify-center', className)}\n {...props}\n />\n);\nPagination.displayName = 'Pagination';\n\nconst PaginationContent = React.forwardRef<\n HTMLUListElement,\n React.ComponentPropsWithoutRef<'ul'>\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n className={cn('flex flex-row items-center gap-1', className)}\n {...props}\n />\n));\nPaginationContent.displayName = 'PaginationContent';\n\nconst PaginationItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<'li'>\n>(({ className, ...props }, ref) => (\n <li ref={ref} className={cn('', className)} {...props} />\n));\nPaginationItem.displayName = 'PaginationItem';\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<ButtonProps, 'size'> &\n React.ComponentPropsWithoutRef<'a'>;\n\nconst PaginationLink = ({\n className,\n isActive,\n size = 'icon',\n ...props\n}: PaginationLinkProps) => (\n <a\n aria-current={isActive ? 'page' : undefined}\n className={cn(\n buttonVariants({\n variant: isActive ? 'outline' : 'ghost',\n size,\n }),\n className\n )}\n {...props}\n />\n);\nPaginationLink.displayName = 'PaginationLink';\n\nconst PaginationPrevious = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn('gap-1 pl-2.5', className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n);\nPaginationPrevious.displayName = 'PaginationPrevious';\n\nconst PaginationNext = ({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) => (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn('gap-1 pr-2.5', className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n);\nPaginationNext.displayName = 'PaginationNext';\n\nconst PaginationEllipsis = ({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'span'>) => (\n <span\n aria-hidden\n className={cn('flex h-9 w-9 items-center justify-center', className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n);\nPaginationEllipsis.displayName = 'PaginationEllipsis';\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n"],"mappings":";;;;;;;AAMA,MAAM,cAAc,EAClB,WACA,GAAG,YAEH,oBAAC;CACC,MAAK;CACL,cAAW;CACX,WAAW,GAAG,sCAAsC,UAAU;CAC9D,GAAI;EACJ;AAEJ,WAAW,cAAc;AAEzB,MAAM,oBAAoBA,QAAM,YAG7B,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC;CACM;CACL,WAAW,GAAG,oCAAoC,UAAU;CAC5D,GAAI;EACJ,CACF;AACF,kBAAkB,cAAc;AAEhC,MAAM,iBAAiBA,QAAM,YAG1B,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC;CAAQ;CAAK,WAAW,GAAG,IAAI,UAAU;CAAE,GAAI;EAAS,CACzD;AACF,eAAe,cAAc;AAO7B,MAAM,kBAAkB,EACtB,WACA,UACA,OAAO,QACP,GAAG,YAEH,oBAAC;CACC,gBAAc,WAAW,SAAS;CAClC,WAAW,GACT,eAAe;EACb,SAAS,WAAW,YAAY;EAChC;EACD,CAAC,EACF,UACD;CACD,GAAI;EACJ;AAEJ,eAAe,cAAc;AAE7B,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,qBAAC;CACC,cAAW;CACX,MAAK;CACL,WAAW,GAAG,gBAAgB,UAAU;CACxC,GAAI;YAEJ,oBAAC,eAAY,WAAU,YAAY,EACnC,oBAAC,oBAAK,aAAe;EACN;AAEnB,mBAAmB,cAAc;AAEjC,MAAM,kBAAkB,EACtB,WACA,GAAG,YAEH,qBAAC;CACC,cAAW;CACX,MAAK;CACL,WAAW,GAAG,gBAAgB,UAAU;CACxC,GAAI;YAEJ,oBAAC,oBAAK,SAAW,EACjB,oBAAC,gBAAa,WAAU,YAAY;EACrB;AAEnB,eAAe,cAAc;AAE7B,MAAM,sBAAsB,EAC1B,WACA,GAAG,YAEH,qBAAC;CACC;CACA,WAAW,GAAG,4CAA4C,UAAU;CACpE,GAAI;YAEJ,oBAAC,kBAAe,WAAU,YAAY,EACtC,oBAAC;EAAK,WAAU;YAAU;GAAiB;EACtC;AAET,mBAAmB,cAAc"}
@@ -0,0 +1,23 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime113 from "react/jsx-runtime";
3
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
4
+
5
+ //#region ui/popover.d.ts
6
+ declare function Popover({
7
+ ...props
8
+ }: React$1.ComponentProps<typeof PopoverPrimitive.Root>): react_jsx_runtime113.JSX.Element;
9
+ declare function PopoverTrigger({
10
+ ...props
11
+ }: React$1.ComponentProps<typeof PopoverPrimitive.Trigger>): react_jsx_runtime113.JSX.Element;
12
+ declare function PopoverContent({
13
+ className,
14
+ align,
15
+ sideOffset,
16
+ ...props
17
+ }: React$1.ComponentProps<typeof PopoverPrimitive.Content>): react_jsx_runtime113.JSX.Element;
18
+ declare function PopoverAnchor({
19
+ ...props
20
+ }: React$1.ComponentProps<typeof PopoverPrimitive.Anchor>): react_jsx_runtime113.JSX.Element;
21
+ //#endregion
22
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
23
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","names":[],"sources":["../../ui/popover.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,OAAA;;GAEN,OAAA,CAAM,sBAAsB,gBAAA,CAAiB,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAI5C,cAAA;;GAEN,OAAA,CAAM,sBAAsB,gBAAA,CAAiB,WAAQ,oBAAA,CAAA,GAAA,CAAA;iBAI/C,cAAA;;;;;GAKN,OAAA,CAAM,sBAAsB,gBAAA,CAAiB,WAAQ,oBAAA,CAAA,GAAA,CAAA;AArBI,iBAsCnD,aAAA,CAlCO;EAAA,GAAA;AAAA,CAAA,EAoCb,OAAA,CAAM,cApCO,CAAA,OAoCe,gBAAA,CAAiB,MApChC,CAAA,CAAA,EAoCuC,oBAAA,CAAA,GAAA,CAAA,OApCvC"}
@@ -35,4 +35,5 @@ function PopoverAnchor({ ...props }) {
35
35
  }
36
36
 
37
37
  //#endregion
38
- export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
38
+ export { Popover, PopoverAnchor, PopoverContent, PopoverTrigger };
39
+ //# sourceMappingURL=popover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.js","names":[],"sources":["../../ui/popover.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as PopoverPrimitive from '@radix-ui/react-popover';\n\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />;\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />;\n}\n\nfunction PopoverContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n );\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };\n"],"mappings":";;;;;;;;AAOA,SAAS,QAAQ,EACf,GAAG,SACkD;AACrD,QAAO,oBAAC,iBAAiB;EAAK,aAAU;EAAU,GAAI;GAAS;;AAGjE,SAAS,eAAe,EACtB,GAAG,SACqD;AACxD,QAAO,oBAAC,iBAAiB;EAAQ,aAAU;EAAkB,GAAI;GAAS;;AAG5E,SAAS,eAAe,EACtB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACqD;AACxD,QACE,oBAAC,iBAAiB,oBAChB,oBAAC,iBAAiB;EAChB,aAAU;EACH;EACK;EACZ,WAAW,GACT,keACA,UACD;EACD,GAAI;GACJ,GACsB;;AAI9B,SAAS,cAAc,EACrB,GAAG,SACoD;AACvD,QAAO,oBAAC,iBAAiB;EAAO,aAAU;EAAiB,GAAI;GAAS"}
@@ -0,0 +1,13 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime118 from "react/jsx-runtime";
3
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
4
+
5
+ //#region ui/progress.d.ts
6
+ declare function Progress({
7
+ className,
8
+ value,
9
+ ...props
10
+ }: React$1.ComponentProps<typeof ProgressPrimitive.Root>): react_jsx_runtime118.JSX.Element;
11
+ //#endregion
12
+ export { Progress };
13
+ //# sourceMappingURL=progress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.d.ts","names":[],"sources":["../../ui/progress.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,QAAA;;;;GAIN,OAAA,CAAM,sBAAsB,iBAAA,CAAkB,QAAK,oBAAA,CAAA,GAAA,CAAA"}
@@ -20,4 +20,5 @@ function Progress({ className, value, ...props }) {
20
20
  }
21
21
 
22
22
  //#endregion
23
- export { Progress };
23
+ export { Progress };
24
+ //# sourceMappingURL=progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progress.js","names":[],"sources":["../../ui/progress.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as ProgressPrimitive from '@radix-ui/react-progress';\n\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n 'bg-primary/20 relative h-2 w-full overflow-hidden rounded-full',\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n"],"mappings":";;;;;;;;AAOA,SAAS,SAAS,EAChB,WACA,OACA,GAAG,SACmD;AACtD,QACE,oBAAC,kBAAkB;EACjB,aAAU;EACV,WAAW,GACT,kEACA,UACD;EACD,GAAI;YAEJ,oBAAC,kBAAkB;GACjB,aAAU;GACV,WAAU;GACV,OAAO,EAAE,WAAW,eAAe,OAAO,SAAS,GAAG,KAAK;IAC3D;GACqB"}
@@ -0,0 +1,16 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime119 from "react/jsx-runtime";
3
+ import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
4
+
5
+ //#region ui/radio-group.d.ts
6
+ declare function RadioGroup({
7
+ className,
8
+ ...props
9
+ }: React$1.ComponentProps<typeof RadioGroupPrimitive.Root>): react_jsx_runtime119.JSX.Element;
10
+ declare function RadioGroupItem({
11
+ className,
12
+ ...props
13
+ }: React$1.ComponentProps<typeof RadioGroupPrimitive.Item>): react_jsx_runtime119.JSX.Element;
14
+ //#endregion
15
+ export { RadioGroup, RadioGroupItem };
16
+ //# sourceMappingURL=radio-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.d.ts","names":[],"sources":["../../ui/radio-group.tsx"],"sourcesContent":[],"mappings":";;;;;iBAQS,UAAA;;;GAGN,OAAA,CAAM,sBAAsB,mBAAA,CAAoB,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAU/C,cAAA;;;GAGN,OAAA,CAAM,sBAAsB,mBAAA,CAAoB,QAAK,oBAAA,CAAA,GAAA,CAAA"}
@@ -28,4 +28,5 @@ function RadioGroupItem({ className, ...props }) {
28
28
  }
29
29
 
30
30
  //#endregion
31
- export { RadioGroup, RadioGroupItem };
31
+ export { RadioGroup, RadioGroupItem };
32
+ //# sourceMappingURL=radio-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-group.js","names":[],"sources":["../../ui/radio-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as RadioGroupPrimitive from '@radix-ui/react-radio-group';\nimport { CircleIcon } from 'lucide-react';\n\nimport { cn } from '@lssm/lib.ui-kit-core/utils';\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn('grid gap-3', className)}\n {...props}\n />\n );\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-2xs outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n );\n}\n\nexport { RadioGroup, RadioGroupItem };\n"],"mappings":";;;;;;;;;AAQA,SAAS,WAAW,EAClB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,oBAAoB;EACnB,aAAU;EACV,WAAW,GAAG,cAAc,UAAU;EACtC,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,oBAAoB;EACnB,aAAU;EACV,WAAW,GACT,6XACA,UACD;EACD,GAAI;YAEJ,oBAAC,oBAAoB;GACnB,aAAU;GACV,WAAU;aAEV,oBAAC,cAAW,WAAU,oFAAoF;IAC5E;GACP"}
@@ -0,0 +1,36 @@
1
+ import * as react1 from "react";
2
+ import * as react_jsx_runtime121 from "react/jsx-runtime";
3
+ import * as ResizablePrimitive from "react-resizable-panels";
4
+
5
+ //#region ui/resizable.d.ts
6
+ declare const ResizablePanelGroup: ({
7
+ className,
8
+ ...props
9
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelGroup>) => react_jsx_runtime121.JSX.Element;
10
+ declare const ResizablePanel: react1.ForwardRefExoticComponent<Omit<react1.HTMLAttributes<HTMLDivElement | HTMLElement | HTMLButtonElement | HTMLSpanElement | HTMLAnchorElement | HTMLOListElement | HTMLLIElement | HTMLUListElement | HTMLObjectElement | HTMLAreaElement | HTMLAudioElement | HTMLBaseElement | HTMLQuoteElement | HTMLBodyElement | HTMLBRElement | HTMLCanvasElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLDataElement | HTMLDataListElement | HTMLModElement | HTMLDetailsElement | HTMLDialogElement | HTMLDListElement | HTMLEmbedElement | HTMLFieldSetElement | HTMLFormElement | HTMLHeadingElement | HTMLHeadElement | HTMLHRElement | HTMLHtmlElement | HTMLIFrameElement | HTMLImageElement | HTMLInputElement | HTMLLabelElement | HTMLLegendElement | HTMLLinkElement | HTMLMapElement | HTMLMenuElement | HTMLMetaElement | HTMLMeterElement | HTMLOptGroupElement | HTMLOptionElement | HTMLOutputElement | HTMLParagraphElement | HTMLPictureElement | HTMLPreElement | HTMLProgressElement | HTMLScriptElement | HTMLSelectElement | HTMLSlotElement | HTMLSourceElement | HTMLStyleElement | HTMLTableElement | HTMLTableSectionElement | HTMLTableCellElement | HTMLTemplateElement | HTMLTextAreaElement | HTMLTimeElement | HTMLTitleElement | HTMLTableRowElement | HTMLTrackElement | HTMLVideoElement>, "id" | "onResize"> & {
11
+ className?: string;
12
+ collapsedSize?: number | undefined;
13
+ collapsible?: boolean | undefined;
14
+ defaultSize?: number | undefined;
15
+ id?: string;
16
+ maxSize?: number | undefined;
17
+ minSize?: number | undefined;
18
+ onCollapse?: ResizablePrimitive.PanelOnCollapse;
19
+ onExpand?: ResizablePrimitive.PanelOnExpand;
20
+ onResize?: ResizablePrimitive.PanelOnResize;
21
+ order?: number;
22
+ style?: object;
23
+ tagName?: keyof HTMLElementTagNameMap | undefined;
24
+ } & {
25
+ children?: react1.ReactNode | undefined;
26
+ } & react1.RefAttributes<ResizablePrimitive.ImperativePanelHandle>>;
27
+ declare const ResizableHandle: ({
28
+ withHandle,
29
+ className,
30
+ ...props
31
+ }: React.ComponentProps<typeof ResizablePrimitive.PanelResizeHandle> & {
32
+ withHandle?: boolean;
33
+ }) => react_jsx_runtime121.JSX.Element;
34
+ //#endregion
35
+ export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
36
+ //# sourceMappingURL=resizable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizable.d.ts","names":[],"sources":["../../ui/resizable.tsx"],"sourcesContent":[],"mappings":";;;;;cAOM;;;GAGH,KAAA,CAAM,sBAAsB,kBAAA,CAAmB,gBAAW,oBAAA,CAAA,GAAA,CAAA;cAUvD,uBAAc,0BAAA,KAAA,MAAA,CAAA,eAAA,iBAAA,cAAA,oBAAA,kBAAA,oBAAA,mBAAA,gBAAA,mBAAA,oBAAA,kBAAA,mBAAA,kBAAA,mBAAA,kBAAA,gBAAA,oBAAA,0BAAA,sBAAA,kBAAA,sBAAA,iBAAA,qBAAA,oBAAA,mBAAA,mBAAA,sBAAA,kBAAA,qBAAA,kBAAA,gBAAA,kBAAA,oBAAA,mBAAA,mBAAA,mBAAA,oBAAA,kBAAA,iBAAA,kBAAA,kBAAA,mBAAA,sBAAA,oBAAA,oBAAA,uBAAA,qBAAA,iBAAA,sBAAA,oBAAA,oBAAA,kBAAA,oBAAA,mBAAA,mBAAA,0BAAA,uBAAA,sBAAA,sBAAA,kBAAA,mBAAA,sBAAA,mBAAA;;;EAbd,WAAA,CAAA,EAAA,OAAA,GAWL,SAAA;EAX4B,WAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAGE,EAAA,CAAA,EAAA,MAAA;EAA5B,OAAM,CAAA,EAAA,MAAA,GAAA,SAAA;EAAoD,OAAA,CAAA,EAAA,MAAA,GAAA,SAAA;EAQ5D,UAAA,CAAA,oCAAA;EAEK,QAAA,CAAA,kCAAyC;EAA3B,QAAA,CAAA,kCAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAAA,KAAA,CAAA,EAAA,MAAA;EAAA,OAAA,CAAA,EAAA,2BAAA,GAAA,SAAA;CAAA,GAAA;EAAA,QAAA,CAAA,qBAAA,SAAA;CAAA,uBAAA,yCAAA,CAAA,CAAA;cAEd,eAFc,EAAA,CAAA;EAAA,UAAA;EAAA,SAAA;EAAA,GAAA;CAAA,EAMjB,KAAA,CAAM,cANW,CAAA,OAMW,kBAAA,CAAmB,iBAN9B,CAAA,GAAA;EAAA,UAAA,CAAA,EAAA,OAAA;CAAA,EAAA,GAQnB,oBAAA,CAAA,GAAA,CAAA,OARmB"}