@lssm/lib.ui-kit-web 1.10.0 → 1.11.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 (399) hide show
  1. package/README.md +11 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/dist/ui/accordion.d.ts +6 -7
  4. package/dist/ui/accordion.js +1 -2
  5. package/dist/ui/alert-dialog.d.ts +13 -14
  6. package/dist/ui/alert-dialog.js +1 -2
  7. package/dist/ui/alert.d.ts +5 -6
  8. package/dist/ui/alert.js +1 -2
  9. package/dist/ui/aspect-ratio.d.ts +3 -4
  10. package/dist/ui/aspect-ratio.js +1 -2
  11. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +1 -2
  12. package/dist/ui/atoms/FilterSelect/FilterSelect.js +1 -2
  13. package/dist/ui/atoms/FilterSelect/types.d.ts +1 -2
  14. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +1 -2
  15. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -2
  16. package/dist/ui/atoms/Pagination/Pagination.d.ts +1 -2
  17. package/dist/ui/atoms/Pagination/Pagination.js +1 -2
  18. package/dist/ui/atoms/Pagination/types.d.ts +1 -2
  19. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +1 -2
  20. package/dist/ui/atoms/SearchInput/SearchInput.js +1 -2
  21. package/dist/ui/atoms/SearchInput/types.d.ts +1 -2
  22. package/dist/ui/avatar.d.ts +5 -6
  23. package/dist/ui/avatar.js +1 -2
  24. package/dist/ui/badge.d.ts +6 -7
  25. package/dist/ui/badge.js +1 -2
  26. package/dist/ui/breadcrumb.d.ts +9 -10
  27. package/dist/ui/breadcrumb.js +1 -2
  28. package/dist/ui/button.d.ts +6 -7
  29. package/dist/ui/button.js +1 -2
  30. package/dist/ui/calendar.d.ts +4 -5
  31. package/dist/ui/calendar.js +1 -2
  32. package/dist/ui/card.d.ts +9 -10
  33. package/dist/ui/card.js +1 -2
  34. package/dist/ui/carousel.d.ts +7 -8
  35. package/dist/ui/carousel.js +1 -2
  36. package/dist/ui/checkbox.d.ts +3 -4
  37. package/dist/ui/checkbox.js +1 -2
  38. package/dist/ui/collapsible.d.ts +5 -6
  39. package/dist/ui/collapsible.js +1 -2
  40. package/dist/ui/command.d.ts +11 -12
  41. package/dist/ui/command.js +1 -2
  42. package/dist/ui/confirm-dialog.d.ts +3 -4
  43. package/dist/ui/confirm-dialog.js +1 -2
  44. package/dist/ui/context-menu.d.ts +3 -4
  45. package/dist/ui/context-menu.js +1 -2
  46. package/dist/ui/cta.d.ts +2 -3
  47. package/dist/ui/cta.js +1 -2
  48. package/dist/ui/date-picker.d.ts +3 -4
  49. package/dist/ui/date-picker.js +1 -2
  50. package/dist/ui/date-range-picker.d.ts +3 -4
  51. package/dist/ui/date-range-picker.js +1 -2
  52. package/dist/ui/datetime-picker.d.ts +3 -4
  53. package/dist/ui/datetime-picker.js +1 -2
  54. package/dist/ui/dialog.d.ts +12 -13
  55. package/dist/ui/dialog.js +1 -2
  56. package/dist/ui/drawer.d.ts +12 -13
  57. package/dist/ui/drawer.js +1 -2
  58. package/dist/ui/dropdown-menu.d.ts +17 -18
  59. package/dist/ui/dropdown-menu.js +1 -2
  60. package/dist/ui/empty-state.d.ts +5 -6
  61. package/dist/ui/empty-state.js +1 -2
  62. package/dist/ui/empty.d.ts +10 -11
  63. package/dist/ui/empty.js +1 -2
  64. package/dist/ui/field.d.ts +15 -16
  65. package/dist/ui/field.js +1 -2
  66. package/dist/ui/focus-on-route-change.d.ts +1 -2
  67. package/dist/ui/focus-on-route-change.js +1 -2
  68. package/dist/ui/form.d.ts +8 -9
  69. package/dist/ui/form.js +1 -2
  70. package/dist/ui/hover-card.d.ts +5 -6
  71. package/dist/ui/hover-card.js +1 -2
  72. package/dist/ui/input-group.d.ts +11 -12
  73. package/dist/ui/input-group.js +1 -2
  74. package/dist/ui/input-otp.d.ts +3 -4
  75. package/dist/ui/input-otp.js +1 -2
  76. package/dist/ui/input.d.ts +3 -4
  77. package/dist/ui/input.js +1 -2
  78. package/dist/ui/label.d.ts +3 -4
  79. package/dist/ui/label.js +1 -2
  80. package/dist/ui/link.d.ts +4 -5
  81. package/dist/ui/link.js +1 -2
  82. package/dist/ui/live-region.d.ts +3 -4
  83. package/dist/ui/live-region.js +1 -2
  84. package/dist/ui/loading-button.d.ts +3 -4
  85. package/dist/ui/loading-button.js +1 -2
  86. package/dist/ui/map/MapBase.d.ts +3 -4
  87. package/dist/ui/map/MapBase.js +1 -2
  88. package/dist/ui/map/MapGeoJsonOverlay.d.ts +3 -4
  89. package/dist/ui/map/MapGeoJsonOverlay.js +1 -2
  90. package/dist/ui/map/MapHeatmapH3.d.ts +3 -4
  91. package/dist/ui/map/MapHeatmapH3.js +1 -2
  92. package/dist/ui/map/MapMarkers.d.ts +3 -4
  93. package/dist/ui/map/MapMarkers.js +1 -2
  94. package/dist/ui/marketing/FeatureGrid.d.ts +3 -4
  95. package/dist/ui/marketing/FeatureGrid.js +1 -2
  96. package/dist/ui/marketing/Hero.d.ts +3 -4
  97. package/dist/ui/marketing/Hero.js +1 -2
  98. package/dist/ui/marketing/PricingTable.d.ts +3 -4
  99. package/dist/ui/marketing/PricingTable.js +1 -2
  100. package/dist/ui/menubar.d.ts +18 -19
  101. package/dist/ui/menubar.js +1 -2
  102. package/dist/ui/molecules/Autocomplete/index.d.ts +3 -4
  103. package/dist/ui/molecules/Autocomplete/index.js +1 -2
  104. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +1 -2
  105. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -2
  106. package/dist/ui/molecules/SearchAndFilter/types.d.ts +1 -2
  107. package/dist/ui/molecules/SkeletonList.d.ts +3 -4
  108. package/dist/ui/molecules/SkeletonList.js +1 -2
  109. package/dist/ui/nav-layout.d.ts +10 -11
  110. package/dist/ui/nav-layout.js +1 -2
  111. package/dist/ui/navigation-menu.d.ts +12 -13
  112. package/dist/ui/navigation-menu.js +1 -2
  113. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +3 -4
  114. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +1 -2
  115. package/dist/ui/organisms/ListPage/ListPage.d.ts +3 -4
  116. package/dist/ui/organisms/ListPage/ListPage.js +1 -2
  117. package/dist/ui/organisms/ListPage/types.d.ts +1 -2
  118. package/dist/ui/page-header.d.ts +6 -7
  119. package/dist/ui/page-header.js +1 -2
  120. package/dist/ui/pagination.d.ts +7 -8
  121. package/dist/ui/pagination.js +1 -2
  122. package/dist/ui/popover.d.ts +6 -7
  123. package/dist/ui/popover.js +1 -2
  124. package/dist/ui/progress.d.ts +3 -4
  125. package/dist/ui/progress.js +1 -2
  126. package/dist/ui/radio-group.d.ts +4 -5
  127. package/dist/ui/radio-group.js +1 -2
  128. package/dist/ui/resizable.d.ts +8 -9
  129. package/dist/ui/resizable.js +1 -2
  130. package/dist/ui/route-announcer.d.ts +3 -4
  131. package/dist/ui/route-announcer.js +1 -2
  132. package/dist/ui/scroll-area.d.ts +4 -5
  133. package/dist/ui/scroll-area.js +1 -2
  134. package/dist/ui/section.d.ts +8 -9
  135. package/dist/ui/section.js +1 -2
  136. package/dist/ui/select.d.ts +12 -13
  137. package/dist/ui/select.js +1 -2
  138. package/dist/ui/separator.d.ts +3 -4
  139. package/dist/ui/separator.js +1 -2
  140. package/dist/ui/sheet.d.ts +10 -11
  141. package/dist/ui/sheet.js +1 -2
  142. package/dist/ui/sidebar.d.ts +27 -28
  143. package/dist/ui/sidebar.js +1 -2
  144. package/dist/ui/skeleton.d.ts +3 -4
  145. package/dist/ui/skeleton.js +1 -2
  146. package/dist/ui/skip-link.d.ts +3 -4
  147. package/dist/ui/skip-link.js +1 -2
  148. package/dist/ui/slider.d.ts +3 -4
  149. package/dist/ui/slider.js +1 -2
  150. package/dist/ui/sonner.d.ts +3 -4
  151. package/dist/ui/sonner.js +3 -4
  152. package/dist/ui/stack.d.ts +14 -15
  153. package/dist/ui/stack.js +1 -2
  154. package/dist/ui/stat-card-group.d.ts +3 -4
  155. package/dist/ui/stat-card-group.js +1 -2
  156. package/dist/ui/stepper.d.ts +5 -6
  157. package/dist/ui/stepper.js +1 -2
  158. package/dist/ui/switch.d.ts +3 -4
  159. package/dist/ui/switch.js +1 -2
  160. package/dist/ui/table.d.ts +10 -11
  161. package/dist/ui/table.js +1 -2
  162. package/dist/ui/tabs.d.ts +6 -7
  163. package/dist/ui/tabs.js +1 -2
  164. package/dist/ui/text.d.ts +3 -4
  165. package/dist/ui/text.js +1 -2
  166. package/dist/ui/textarea.d.ts +3 -4
  167. package/dist/ui/textarea.js +1 -2
  168. package/dist/ui/time-picker.d.ts +3 -4
  169. package/dist/ui/time-picker.js +1 -2
  170. package/dist/ui/toast.d.ts +3 -4
  171. package/dist/ui/toast.js +1 -2
  172. package/dist/ui/toaster.d.ts +3 -4
  173. package/dist/ui/toaster.js +1 -2
  174. package/dist/ui/toggle-group.d.ts +4 -5
  175. package/dist/ui/toggle-group.js +1 -2
  176. package/dist/ui/toggle.d.ts +5 -6
  177. package/dist/ui/toggle.js +1 -2
  178. package/dist/ui/tooltip.d.ts +6 -7
  179. package/dist/ui/tooltip.js +1 -2
  180. package/dist/ui/typography.d.ts +13 -14
  181. package/dist/ui/typography.js +1 -2
  182. package/dist/ui/use-media-query.d.ts +1 -2
  183. package/dist/ui/use-media-query.js +1 -2
  184. package/dist/ui/use-mobile.d.ts +1 -2
  185. package/dist/ui/use-mobile.js +1 -2
  186. package/dist/ui/use-reduced-motion.d.ts +1 -2
  187. package/dist/ui/use-reduced-motion.js +1 -2
  188. package/dist/ui/use-toast.d.ts +1 -2
  189. package/dist/ui/use-toast.js +1 -2
  190. package/dist/ui/useListState.d.ts +1 -2
  191. package/dist/ui/useListState.js +1 -2
  192. package/dist/ui/usecases/UseCaseCard.d.ts +3 -4
  193. package/dist/ui/usecases/UseCaseCard.js +1 -2
  194. package/dist/ui/usecases/UserStoryCard.d.ts +3 -4
  195. package/dist/ui/usecases/UserStoryCard.js +1 -2
  196. package/dist/ui/utils.d.ts +1 -2
  197. package/dist/ui/utils.js +1 -2
  198. package/dist/ui/visually-hidden.d.ts +1 -2
  199. package/dist/ui/visually-hidden.js +1 -2
  200. package/package.json +6 -4
  201. package/dist/node_modules/sonner/dist/index.js +0 -629
  202. package/dist/node_modules/sonner/dist/index.js.map +0 -1
  203. package/dist/ui/accordion.d.ts.map +0 -1
  204. package/dist/ui/accordion.js.map +0 -1
  205. package/dist/ui/alert-dialog.d.ts.map +0 -1
  206. package/dist/ui/alert-dialog.js.map +0 -1
  207. package/dist/ui/alert.d.ts.map +0 -1
  208. package/dist/ui/alert.js.map +0 -1
  209. package/dist/ui/aspect-ratio.d.ts.map +0 -1
  210. package/dist/ui/aspect-ratio.js.map +0 -1
  211. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +0 -1
  212. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +0 -1
  213. package/dist/ui/atoms/FilterSelect/types.d.ts.map +0 -1
  214. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +0 -1
  215. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +0 -1
  216. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +0 -1
  217. package/dist/ui/atoms/Pagination/Pagination.js.map +0 -1
  218. package/dist/ui/atoms/Pagination/types.d.ts.map +0 -1
  219. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +0 -1
  220. package/dist/ui/atoms/SearchInput/SearchInput.js.map +0 -1
  221. package/dist/ui/atoms/SearchInput/types.d.ts.map +0 -1
  222. package/dist/ui/avatar.d.ts.map +0 -1
  223. package/dist/ui/avatar.js.map +0 -1
  224. package/dist/ui/badge.d.ts.map +0 -1
  225. package/dist/ui/badge.js.map +0 -1
  226. package/dist/ui/breadcrumb.d.ts.map +0 -1
  227. package/dist/ui/breadcrumb.js.map +0 -1
  228. package/dist/ui/button.d.ts.map +0 -1
  229. package/dist/ui/button.js.map +0 -1
  230. package/dist/ui/calendar.d.ts.map +0 -1
  231. package/dist/ui/calendar.js.map +0 -1
  232. package/dist/ui/card.d.ts.map +0 -1
  233. package/dist/ui/card.js.map +0 -1
  234. package/dist/ui/carousel.d.ts.map +0 -1
  235. package/dist/ui/carousel.js.map +0 -1
  236. package/dist/ui/checkbox.d.ts.map +0 -1
  237. package/dist/ui/checkbox.js.map +0 -1
  238. package/dist/ui/collapsible.d.ts.map +0 -1
  239. package/dist/ui/collapsible.js.map +0 -1
  240. package/dist/ui/command.d.ts.map +0 -1
  241. package/dist/ui/command.js.map +0 -1
  242. package/dist/ui/confirm-dialog.d.ts.map +0 -1
  243. package/dist/ui/confirm-dialog.js.map +0 -1
  244. package/dist/ui/context-menu.d.ts.map +0 -1
  245. package/dist/ui/context-menu.js.map +0 -1
  246. package/dist/ui/cta.d.ts.map +0 -1
  247. package/dist/ui/cta.js.map +0 -1
  248. package/dist/ui/date-picker.d.ts.map +0 -1
  249. package/dist/ui/date-picker.js.map +0 -1
  250. package/dist/ui/date-range-picker.d.ts.map +0 -1
  251. package/dist/ui/date-range-picker.js.map +0 -1
  252. package/dist/ui/datetime-picker.d.ts.map +0 -1
  253. package/dist/ui/datetime-picker.js.map +0 -1
  254. package/dist/ui/dialog.d.ts.map +0 -1
  255. package/dist/ui/dialog.js.map +0 -1
  256. package/dist/ui/drawer.d.ts.map +0 -1
  257. package/dist/ui/drawer.js.map +0 -1
  258. package/dist/ui/dropdown-menu.d.ts.map +0 -1
  259. package/dist/ui/dropdown-menu.js.map +0 -1
  260. package/dist/ui/empty-state.d.ts.map +0 -1
  261. package/dist/ui/empty-state.js.map +0 -1
  262. package/dist/ui/empty.d.ts.map +0 -1
  263. package/dist/ui/empty.js.map +0 -1
  264. package/dist/ui/field.d.ts.map +0 -1
  265. package/dist/ui/field.js.map +0 -1
  266. package/dist/ui/focus-on-route-change.d.ts.map +0 -1
  267. package/dist/ui/focus-on-route-change.js.map +0 -1
  268. package/dist/ui/form.d.ts.map +0 -1
  269. package/dist/ui/form.js.map +0 -1
  270. package/dist/ui/hover-card.d.ts.map +0 -1
  271. package/dist/ui/hover-card.js.map +0 -1
  272. package/dist/ui/input-group.d.ts.map +0 -1
  273. package/dist/ui/input-group.js.map +0 -1
  274. package/dist/ui/input-otp.d.ts.map +0 -1
  275. package/dist/ui/input-otp.js.map +0 -1
  276. package/dist/ui/input.d.ts.map +0 -1
  277. package/dist/ui/input.js.map +0 -1
  278. package/dist/ui/label.d.ts.map +0 -1
  279. package/dist/ui/label.js.map +0 -1
  280. package/dist/ui/link.d.ts.map +0 -1
  281. package/dist/ui/link.js.map +0 -1
  282. package/dist/ui/live-region.d.ts.map +0 -1
  283. package/dist/ui/live-region.js.map +0 -1
  284. package/dist/ui/loading-button.d.ts.map +0 -1
  285. package/dist/ui/loading-button.js.map +0 -1
  286. package/dist/ui/map/MapBase.d.ts.map +0 -1
  287. package/dist/ui/map/MapBase.js.map +0 -1
  288. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +0 -1
  289. package/dist/ui/map/MapGeoJsonOverlay.js.map +0 -1
  290. package/dist/ui/map/MapHeatmapH3.d.ts.map +0 -1
  291. package/dist/ui/map/MapHeatmapH3.js.map +0 -1
  292. package/dist/ui/map/MapMarkers.d.ts.map +0 -1
  293. package/dist/ui/map/MapMarkers.js.map +0 -1
  294. package/dist/ui/marketing/FeatureGrid.d.ts.map +0 -1
  295. package/dist/ui/marketing/FeatureGrid.js.map +0 -1
  296. package/dist/ui/marketing/Hero.d.ts.map +0 -1
  297. package/dist/ui/marketing/Hero.js.map +0 -1
  298. package/dist/ui/marketing/PricingTable.d.ts.map +0 -1
  299. package/dist/ui/marketing/PricingTable.js.map +0 -1
  300. package/dist/ui/menubar.d.ts.map +0 -1
  301. package/dist/ui/menubar.js.map +0 -1
  302. package/dist/ui/molecules/Autocomplete/index.d.ts.map +0 -1
  303. package/dist/ui/molecules/Autocomplete/index.js.map +0 -1
  304. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +0 -1
  305. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +0 -1
  306. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +0 -1
  307. package/dist/ui/molecules/SkeletonList.d.ts.map +0 -1
  308. package/dist/ui/molecules/SkeletonList.js.map +0 -1
  309. package/dist/ui/nav-layout.d.ts.map +0 -1
  310. package/dist/ui/nav-layout.js.map +0 -1
  311. package/dist/ui/navigation-menu.d.ts.map +0 -1
  312. package/dist/ui/navigation-menu.js.map +0 -1
  313. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +0 -1
  314. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +0 -1
  315. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +0 -1
  316. package/dist/ui/organisms/ListPage/ListPage.js.map +0 -1
  317. package/dist/ui/organisms/ListPage/types.d.ts.map +0 -1
  318. package/dist/ui/page-header.d.ts.map +0 -1
  319. package/dist/ui/page-header.js.map +0 -1
  320. package/dist/ui/pagination.d.ts.map +0 -1
  321. package/dist/ui/pagination.js.map +0 -1
  322. package/dist/ui/popover.d.ts.map +0 -1
  323. package/dist/ui/popover.js.map +0 -1
  324. package/dist/ui/progress.d.ts.map +0 -1
  325. package/dist/ui/progress.js.map +0 -1
  326. package/dist/ui/radio-group.d.ts.map +0 -1
  327. package/dist/ui/radio-group.js.map +0 -1
  328. package/dist/ui/resizable.d.ts.map +0 -1
  329. package/dist/ui/resizable.js.map +0 -1
  330. package/dist/ui/route-announcer.d.ts.map +0 -1
  331. package/dist/ui/route-announcer.js.map +0 -1
  332. package/dist/ui/scroll-area.d.ts.map +0 -1
  333. package/dist/ui/scroll-area.js.map +0 -1
  334. package/dist/ui/section.d.ts.map +0 -1
  335. package/dist/ui/section.js.map +0 -1
  336. package/dist/ui/select.d.ts.map +0 -1
  337. package/dist/ui/select.js.map +0 -1
  338. package/dist/ui/separator.d.ts.map +0 -1
  339. package/dist/ui/separator.js.map +0 -1
  340. package/dist/ui/sheet.d.ts.map +0 -1
  341. package/dist/ui/sheet.js.map +0 -1
  342. package/dist/ui/sidebar.d.ts.map +0 -1
  343. package/dist/ui/sidebar.js.map +0 -1
  344. package/dist/ui/skeleton.d.ts.map +0 -1
  345. package/dist/ui/skeleton.js.map +0 -1
  346. package/dist/ui/skip-link.d.ts.map +0 -1
  347. package/dist/ui/skip-link.js.map +0 -1
  348. package/dist/ui/slider.d.ts.map +0 -1
  349. package/dist/ui/slider.js.map +0 -1
  350. package/dist/ui/sonner.d.ts.map +0 -1
  351. package/dist/ui/sonner.js.map +0 -1
  352. package/dist/ui/stack.d.ts.map +0 -1
  353. package/dist/ui/stack.js.map +0 -1
  354. package/dist/ui/stat-card-group.d.ts.map +0 -1
  355. package/dist/ui/stat-card-group.js.map +0 -1
  356. package/dist/ui/stepper.d.ts.map +0 -1
  357. package/dist/ui/stepper.js.map +0 -1
  358. package/dist/ui/switch.d.ts.map +0 -1
  359. package/dist/ui/switch.js.map +0 -1
  360. package/dist/ui/table.d.ts.map +0 -1
  361. package/dist/ui/table.js.map +0 -1
  362. package/dist/ui/tabs.d.ts.map +0 -1
  363. package/dist/ui/tabs.js.map +0 -1
  364. package/dist/ui/text.d.ts.map +0 -1
  365. package/dist/ui/text.js.map +0 -1
  366. package/dist/ui/textarea.d.ts.map +0 -1
  367. package/dist/ui/textarea.js.map +0 -1
  368. package/dist/ui/time-picker.d.ts.map +0 -1
  369. package/dist/ui/time-picker.js.map +0 -1
  370. package/dist/ui/toast.d.ts.map +0 -1
  371. package/dist/ui/toast.js.map +0 -1
  372. package/dist/ui/toaster.d.ts.map +0 -1
  373. package/dist/ui/toaster.js.map +0 -1
  374. package/dist/ui/toggle-group.d.ts.map +0 -1
  375. package/dist/ui/toggle-group.js.map +0 -1
  376. package/dist/ui/toggle.d.ts.map +0 -1
  377. package/dist/ui/toggle.js.map +0 -1
  378. package/dist/ui/tooltip.d.ts.map +0 -1
  379. package/dist/ui/tooltip.js.map +0 -1
  380. package/dist/ui/typography.d.ts.map +0 -1
  381. package/dist/ui/typography.js.map +0 -1
  382. package/dist/ui/use-media-query.d.ts.map +0 -1
  383. package/dist/ui/use-media-query.js.map +0 -1
  384. package/dist/ui/use-mobile.d.ts.map +0 -1
  385. package/dist/ui/use-mobile.js.map +0 -1
  386. package/dist/ui/use-reduced-motion.d.ts.map +0 -1
  387. package/dist/ui/use-reduced-motion.js.map +0 -1
  388. package/dist/ui/use-toast.d.ts.map +0 -1
  389. package/dist/ui/use-toast.js.map +0 -1
  390. package/dist/ui/useListState.d.ts.map +0 -1
  391. package/dist/ui/useListState.js.map +0 -1
  392. package/dist/ui/usecases/UseCaseCard.d.ts.map +0 -1
  393. package/dist/ui/usecases/UseCaseCard.js.map +0 -1
  394. package/dist/ui/usecases/UserStoryCard.d.ts.map +0 -1
  395. package/dist/ui/usecases/UserStoryCard.js.map +0 -1
  396. package/dist/ui/utils.d.ts.map +0 -1
  397. package/dist/ui/utils.js.map +0 -1
  398. package/dist/ui/visually-hidden.d.ts.map +0 -1
  399. package/dist/ui/visually-hidden.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"dialog.js","names":[],"sources":["../../ui/dialog.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from './utils';\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean;\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n 'bg-background 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 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 p-6 shadow-lg duration-200 sm:max-w-lg',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn('flex flex-col gap-2 text-center sm:text-left', className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-lg leading-none font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,OAAO,EACd,GAAG,SACiD;AACpD,QAAO,oBAAC,gBAAgB;EAAK,aAAU;EAAS,GAAI;GAAS;;AAG/D,SAAS,cAAc,EACrB,GAAG,SACoD;AACvD,QAAO,oBAAC,gBAAgB;EAAQ,aAAU;EAAiB,GAAI;GAAS;;AAG1E,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QAAO,oBAAC,gBAAgB;EAAO,aAAU;EAAgB,GAAI;GAAS;;AAGxE,SAAS,YAAY,EACnB,GAAG,SACkD;AACrD,QAAO,oBAAC,gBAAgB;EAAM,aAAU;EAAe,GAAI;GAAS;;AAGtE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,UACA,kBAAkB,MAClB,GAAG,SAGF;AACD,QACE,qBAAC;EAAa,aAAU;aACtB,oBAAC,kBAAgB,EACjB,qBAAC,gBAAgB;GACf,aAAU;GACV,WAAW,GACT,+WACA,UACD;GACD,GAAI;cAEH,UACA,mBACC,qBAAC,gBAAgB;IACf,aAAU;IACV,WAAU;eAEV,oBAAC,UAAQ,EACT,oBAAC;KAAK,WAAU;eAAU;MAAY;KAChB;IAEF;GACb;;AAInB,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,0DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawer.d.ts","names":[],"sources":["../../ui/drawer.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,MAAA;;GAEN,OAAA,CAAM,sBAAsB,QAAA,CAAgB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAI3C,aAAA;;GAEN,OAAA,CAAM,sBAAsB,QAAA,CAAgB,WAAQ,mBAAA,CAAA,GAAA,CAAA;iBAI9C,YAAA;;GAEN,OAAA,CAAM,sBAAsB,QAAA,CAAgB,UAAO,mBAAA,CAAA,GAAA,CAAA;AAlBL,iBAsBxC,WAAA,CAlBM;EAAA,GAAA;AAAA,CAAA,EAoBZ,OAAA,CAAM,cApBM,CAAA,OAoBgB,QAAA,CAAgB,KApBhC,CAAA,CAAA,EAoBsC,mBAAA,CAAA,GAAA,CAAA,OApBtC;iBAwBN,aAAA,CAtBsC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyB5C,OAAA,CAAM,cAzBsC,CAAA,OAyBhB,QAAA,CAAgB,OAzBA,CAAA,CAAA,EAyBQ,mBAAA,CAAA,GAAA,CAAA,OAzBR;iBAsCtC,aAAA,CAtCA;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA0CN,OAAA,CAAM,cA1CA,CAAA,OA0CsB,QAAA,CAAgB,OA1CtC,CAAA,CAAA,EA0C8C,mBAAA,CAAA,GAAA,CAAA,OA1C9C;iBAiEA,YAAA,CAjE2C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiEL,OAAA,CAAM,cAjED,CAAA,KAAA,CAAA,CAAA,EAiEsB,mBAAA,CAAA,GAAA,CAAA,OAjEtB;iBA8E3C,YAAA,CA9E2C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8EL,OAAA,CAAM,cA9ED,CAAA,KAAA,CAAA,CAAA,EA8EsB,mBAAA,CAAA,GAAA,CAAA,OA9EtB;AAAA,iBAwF3C,WAAA,CApFa;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAuFnB,OAAA,CAAM,cAvFa,CAAA,OAuFS,QAAA,CAAgB,KAvFzB,CAAA,CAAA,EAuF+B,mBAAA,CAAA,GAAA,CAAA,OAvF/B;iBAiGb,iBAAA,CA/FsC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkG5C,OAAA,CAAM,cAlGsC,CAAA,OAkGhB,QAAA,CAAgB,WAlGA,CAAA,CAAA,EAkGY,mBAAA,CAAA,GAAA,CAAA,OAlGZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawer.js","names":["DrawerPrimitive"],"sources":["../../ui/drawer.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Drawer as DrawerPrimitive } from 'vaul';\n\nimport { cn } from './utils';\n\nfunction Drawer({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Root>) {\n return <DrawerPrimitive.Root data-slot=\"drawer\" {...props} />;\n}\n\nfunction DrawerTrigger({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Trigger>) {\n return <DrawerPrimitive.Trigger data-slot=\"drawer-trigger\" {...props} />;\n}\n\nfunction DrawerPortal({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Portal>) {\n return <DrawerPrimitive.Portal data-slot=\"drawer-portal\" {...props} />;\n}\n\nfunction DrawerClose({\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Close>) {\n return <DrawerPrimitive.Close data-slot=\"drawer-close\" {...props} />;\n}\n\nfunction DrawerOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Overlay>) {\n return (\n <DrawerPrimitive.Overlay\n data-slot=\"drawer-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Content>) {\n return (\n <DrawerPortal data-slot=\"drawer-portal\">\n <DrawerOverlay />\n <DrawerPrimitive.Content\n data-slot=\"drawer-content\"\n className={cn(\n 'group/drawer-content bg-background fixed z-50 flex h-auto flex-col',\n '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',\n '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',\n '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',\n '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',\n className\n )}\n {...props}\n >\n <div className=\"bg-muted mx-auto mt-4 hidden h-2 w-[100px] shrink-0 rounded-full group-data-[vaul-drawer-direction=bottom]/drawer-content:block\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n );\n}\n\nfunction DrawerHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-header\"\n className={cn(\n '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',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DrawerFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"drawer-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Title>) {\n return (\n <DrawerPrimitive.Title\n data-slot=\"drawer-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction DrawerDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DrawerPrimitive.Description>) {\n return (\n <DrawerPrimitive.Description\n data-slot=\"drawer-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n"],"mappings":";;;;;;;;AAOA,SAAS,OAAO,EACd,GAAG,SACiD;AACpD,QAAO,oBAACA,SAAgB;EAAK,aAAU;EAAS,GAAI;GAAS;;AAG/D,SAAS,cAAc,EACrB,GAAG,SACoD;AACvD,QAAO,oBAACA,SAAgB;EAAQ,aAAU;EAAiB,GAAI;GAAS;;AAG1E,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QAAO,oBAACA,SAAgB;EAAO,aAAU;EAAgB,GAAI;GAAS;;AAGxE,SAAS,YAAY,EACnB,GAAG,SACkD;AACrD,QAAO,oBAACA,SAAgB;EAAM,aAAU;EAAe,GAAI;GAAS;;AAGtE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAACA,SAAgB;EACf,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,WACA,UACA,GAAG,SACoD;AACvD,QACE,qBAAC;EAAa,aAAU;aACtB,oBAAC,kBAAgB,EACjB,qBAACA,SAAgB;GACf,aAAU;GACV,WAAW,GACT,sEACA,kQACA,uRACA,+NACA,yNACA,UACD;GACD,GAAI;cAEJ,oBAAC,SAAI,WAAU,oIAAoI,EAClJ;IACuB;GACb;;AAInB,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,4LACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,mCAAmC,UAAU;EAC3D,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAACA,SAAgB;EACf,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAACA,SAAgB;EACf,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu.d.ts","names":[],"sources":["../../ui/dropdown-menu.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../ui/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from './utils';\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\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 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"data-[variant=destructive]:*:[svg]:text-destructive! focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-inset:pl-8',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\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 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,aAAa,EACpB,GAAG,SACuD;AAC1D,QAAO,oBAAC,sBAAsB;EAAK,aAAU;EAAgB,GAAI;GAAS;;AAG5E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,sBAAsB;EAAO,aAAU;EAAuB,GAAI;GAAS;;AAIhF,SAAS,oBAAoB,EAC3B,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,aAAa,GACb,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB,oBACrB,oBAAC,sBAAsB;EACrB,aAAU;EACE;EACZ,WAAW,GACT,sjBACA,UACD;EACD,GAAI;GACJ,GAC2B;;AAInC,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,sBAAsB;EAAM,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,iBAAiB,EACxB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,ymBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,yBAAyB,EAChC,WACA,UACA,SACA,GAAG,SAC+D;AAClE,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,4SACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,aAAU,WAAU,WAAW,GACI;IACjC,EACN;GACkC;;AAIzC,SAAS,uBAAuB,EAC9B,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,4SACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,cAAW,WAAU,wBAAwB,GACV;IACjC,EACN;GAC+B;;AAItC,SAAS,kBAAkB,EACzB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,mDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,GAAG,SACsD;AACzD,QAAO,oBAAC,sBAAsB;EAAI,aAAU;EAAoB,GAAI;GAAS;;AAG/E,SAAS,uBAAuB,EAC9B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,gOACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,mBAAmB;GACd;;AAIvC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,6eACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state.d.ts","names":[],"sources":["../../ui/empty-state.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAUJ,+BAAA,CAAA;UAEe,eAAA,SACP,oBAAoB;EAbxB,IAAA,CAAA,EAcG,OAAA,CAAM,SAJb;EAEe,KAAA,EAGR,OAAA,CAAM,SAFb;EAA4B,WAAA,CAAA,EAGd,OAAA,CAAM,SAHQ;EACrB,aAAM,CAAA,EAGG,OAAA,CAAM,SAHT;EACN,eAAM,CAAA,EAGK,OAAA,CAAM,SAHX;EACC,SAAM,CAAA,EAAA,MAAA;;AAEF,iBAIJ,UAAA,CAJU;EAAA,IAAA;EAAA,KAAA;EAAA,WAAA;EAAA,aAAA;EAAA,eAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAYvB,eAZuB,CAAA,EAYR,mBAAA,CAAA,GAAA,CAAA,OAZQ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty-state.js","names":[],"sources":["../../ui/empty-state.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from './utils';\nimport { VStack } from './stack';\n\nconst containerVariants = cva('items-center text-center', {\n variants: {\n density: {\n compact: 'gap-3 p-6',\n default: 'gap-4 p-8',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport interface EmptyStateProps\n extends VariantProps<typeof containerVariants> {\n icon?: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n className?: string;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n primaryAction,\n secondaryAction,\n className,\n density,\n}: EmptyStateProps) {\n return (\n <VStack className={cn(containerVariants({ density }), className)}>\n {icon ? (\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n {/* Consumers pass their own icon; keep neutral backdrop */}\n <div className=\"text-muted-foreground flex items-center justify-center\">\n {icon}\n </div>\n </div>\n ) : null}\n\n <div>\n <h3 className=\"font-medium\">{title}</h3>\n {description ? (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n ) : null}\n </div>\n\n {(primaryAction || secondaryAction) && (\n <div className=\"flex items-center justify-center gap-2\">\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;;AAKA,MAAM,oBAAoB,IAAI,4BAA4B;CACxD,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAYF,SAAgB,WAAW,EACzB,MACA,OACA,aACA,eACA,iBACA,WACA,WACkB;AAClB,QACE,qBAAC;EAAO,WAAW,GAAG,kBAAkB,EAAE,SAAS,CAAC,EAAE,UAAU;;GAC7D,OACC,oBAAC;IAAI,WAAU;cAEb,oBAAC;KAAI,WAAU;eACZ;MACG;KACF,GACJ;GAEJ,qBAAC,oBACC,oBAAC;IAAG,WAAU;cAAe;KAAW,EACvC,cACC,oBAAC;IAAE,WAAU;cAAmC;KAAgB,GAC9D,QACA;IAEJ,iBAAiB,oBACjB,qBAAC;IAAI,WAAU;eACZ,eACA;KACG;;GAED"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty.d.ts","names":[],"sources":["../../ui/empty.tsx"],"sourcesContent":[],"mappings":";;;;;iBAIS,KAAA;;;GAA+B,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;iBAa1D,WAAA;;;GAAqC,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;cAanE,0BA1BQ;;AAJoD,CAAA,GA2CjE,+BAAA,CAAA,SAvCa,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAyCL,UAAA,CAzCQ;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EA6Cd,KAAA,CAAM,cA7CQ,CAAA,KAAA,CAAA,GA6CgB,YA7ChB,CAAA,OA6CoC,kBA7CpC,CAAA,CAAA,EA6CuD,oBAAA,CAAA,GAAA,CAAA,OA7CvD;iBAwDR,UAAA,CAxDqC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwDD,KAAA,CAAM,cAxDL,CAAA,KAAA,CAAA,CAAA,EAwD0B,oBAAA,CAAA,GAAA,CAAA,OAxD1B;iBAkErC,gBAAA,CAlE0D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkEhB,KAAA,CAAM,cAlEU,CAAA,GAAA,CAAA,CAAA,EAkES,oBAAA,CAAA,GAAA,CAAA,OAlET;iBA+E1D,YAAA,CA/E0D;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+EpB,KAAA,CAAM,cA/Ec,CAAA,KAAA,CAAA,CAAA,EA+EO,oBAAA,CAAA,GAAA,CAAA,OA/EP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty.js","names":[],"sources":["../../ui/empty.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from './utils';\n\nfunction Empty({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n 'flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n 'flex max-w-sm flex-col items-center gap-2 text-center',\n className\n )}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n 'flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nfunction EmptyMedia({\n className,\n variant = 'default',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn('text-lg font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <div\n data-slot=\"empty-description\"\n className={cn(\n 'text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n"],"mappings":";;;;;AAIA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAsC;AACnE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gIACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,qBAAqB,IACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SACqE;AACxE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,mBAAmB;GAAE;GAAS;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,2GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iFACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field.d.ts","names":[],"sources":["../../ui/field.tsx"],"sourcesContent":[],"mappings":";;;;;;iBASS,QAAA;;;GAAkC,KAAA,CAAM,6BAA0B,oBAAA,CAAA,GAAA,CAAA;iBAclE,WAAA;;;;GAIN,KAAA,CAAM;;IAA2D,oBAAA,CAAA,GAAA,CAAA;AArBpC,iBAqCvB,UAAA,CAlCQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkC4B,KAAA,CAAM,cAlClC,CAAA,KAAA,CAAA,CAAA,EAkCuD,oBAAA,CAAA,GAAA,CAAA,OAlCvD;cA+CX,aA/Cc,EAAA,CAAA,KAAuD,CAAvD,EAAA,CAAA;EAAuB,WAAM,CAAA,EAAA,UAAA,GAAA,YAAA,GAAA,YAAA,GAAA,IAAA,GAAA,SAAA;CAA0B,GAqE1E,gCAAA,CAAA,SArE0E,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAuElE,KAAA,CAvEkE;EAAA,SAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EA2ExE,KAAA,CAAM,cA3EkE,CAAA,KAAA,CAAA,GA2E1C,YA3E0C,CAAA,OA2EtB,aA3EsB,CAAA,CAAA,EA2ER,oBAAA,CAAA,GAAA,CAAA,OA3EQ;AAAA,iBAuFlE,YAAA,CAzEW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyE2B,KAAA,CAAM,cAzEjC,CAAA,KAAA,CAAA,CAAA,EAyEsD,oBAAA,CAAA,GAAA,CAAA,OAzEtD;iBAsFX,UAAA,CArFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAwFC,KAAA,CAAM,cAxFP,CAAA,OAwF6B,KAxF7B,CAAA,CAAA,EAwFmC,oBAAA,CAAA,GAAA,CAAA,OAxFnC;iBAuGO,UAAA,CAtGP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAsG2C,KAAA,CAAM,cAtGjD,CAAA,KAAA,CAAA,CAAA,EAsGsE,oBAAA,CAAA,GAAA,CAAA,OAtGtE;iBAmHO,gBAAA,CAjHA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiH0C,KAAA,CAAM,cAjHhD,CAAA,GAAA,CAAA,CAAA,EAiHmE,oBAAA,CAAA,GAAA,CAAA,OAjHnE;iBAgIA,cAAA,CAhI2D;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAoIjE,KAAA,CAAM,cApI2D,CAAA,KAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EAqIvD,KAAA,CAAM,SArIiD;AAAA,CAAA,CAAA,EAsInE,oBAAA,CAAA,GAAA,CAAA,OAtHkB;iBA8IV,UAAA,CA9Ia;EAAA,SAAA;EAAA,QAAA;EAAA,MAAA;EAAA,GAAA;AAAkD,CAAlD,EAmJnB,KAAA,CAAM,cAnJa,CAAA,KAAA,CAAA,GAAA;EAAuB,MAAM,CAAA,EAAA,CAAA;IAAqB,OAAA,CAAA,EAAA,MAAA;EAAA,CAAA,GAAA,SAAA,CAAA,EAAA;AAAA,CAAA,CAAA,EAqJvE,oBAAA,CAAA,GAAA,CAAA,OAAA,GAlHA,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field.js","names":[],"sources":["../../ui/field.tsx"],"sourcesContent":["'use client';\n\nimport { useMemo } from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from './utils';\nimport { Label } from './label';\nimport { Separator } from './separator';\n\nfunction FieldSet({ className, ...props }: React.ComponentProps<'fieldset'>) {\n return (\n <fieldset\n data-slot=\"field-set\"\n className={cn(\n 'flex flex-col gap-6',\n 'has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLegend({\n className,\n variant = 'legend',\n ...props\n}: React.ComponentProps<'legend'> & { variant?: 'legend' | 'label' }) {\n return (\n <legend\n data-slot=\"field-legend\"\n data-variant={variant}\n className={cn(\n 'mb-3 font-medium',\n 'data-[variant=legend]:text-base',\n 'data-[variant=label]:text-sm',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-group\"\n className={cn(\n 'group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 data-[slot=field-group]:*:gap-4',\n className\n )}\n {...props}\n />\n );\n}\n\nconst fieldVariants = cva(\n 'group/field flex w-full gap-3 data-[invalid=true]:text-destructive',\n {\n variants: {\n orientation: {\n vertical: ['flex-col *:w-full [&>.sr-only]:w-auto'],\n horizontal: [\n 'flex-row items-center',\n 'data-[slot=field-label]:*:flex-auto',\n 'has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n responsive: [\n 'flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto',\n '@md/field-group:data-[slot=field-label]:*:flex-auto',\n '@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px',\n ],\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n }\n);\n\nfunction Field({\n className,\n orientation = 'vertical',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof fieldVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"field\"\n data-orientation={orientation}\n className={cn(fieldVariants({ orientation }), className)}\n {...props}\n />\n );\n}\n\nfunction FieldContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-content\"\n className={cn(\n 'group/field-content flex flex-1 flex-col gap-1.5 leading-snug',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldLabel({\n className,\n ...props\n}: React.ComponentProps<typeof Label>) {\n return (\n <Label\n data-slot=\"field-label\"\n className={cn(\n 'group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50',\n 'has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4',\n 'has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"field-label\"\n className={cn(\n 'flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldDescription({ className, ...props }: React.ComponentProps<'p'>) {\n return (\n <p\n data-slot=\"field-description\"\n className={cn(\n 'text-muted-foreground text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance',\n 'last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5',\n '[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FieldSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<'div'> & {\n children?: React.ReactNode;\n}) {\n return (\n <div\n data-slot=\"field-separator\"\n data-content={!!children}\n className={cn(\n 'relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2',\n className\n )}\n {...props}\n >\n <Separator className=\"absolute inset-0 top-1/2\" />\n {children && (\n <span\n className=\"bg-background text-muted-foreground relative mx-auto block w-fit px-2\"\n data-slot=\"field-separator-content\"\n >\n {children}\n </span>\n )}\n </div>\n );\n}\n\nfunction FieldError({\n className,\n children,\n errors,\n ...props\n}: React.ComponentProps<'div'> & {\n errors?: ({ message?: string } | undefined)[];\n}) {\n const content = useMemo(() => {\n if (children) {\n return children;\n }\n\n if (!errors?.length) {\n return null;\n }\n\n if (errors?.length == 1) {\n return errors[0]?.message;\n }\n\n return (\n <ul className=\"ml-4 flex list-disc flex-col gap-1\">\n {errors.map(\n (error, index) =>\n error?.message && <li key={index}>{error.message}</li>\n )}\n </ul>\n );\n }, [children, errors]);\n\n if (!content) {\n return null;\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"field-error\"\n className={cn('text-destructive text-sm font-normal', className)}\n {...props}\n >\n {content}\n </div>\n );\n}\n\nexport {\n Field,\n FieldLabel,\n FieldDescription,\n FieldError,\n FieldGroup,\n FieldLegend,\n FieldSeparator,\n FieldSet,\n FieldContent,\n FieldTitle,\n};\n"],"mappings":";;;;;;;;;;AASA,SAAS,SAAS,EAAE,WAAW,GAAG,SAA2C;AAC3E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,uBACA,gFACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,UAAU,UACV,GAAG,SACiE;AACpE,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GACT,oBACA,mCACA,gCACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,wIACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,gBAAgB,IACpB,sEACA;CACE,UAAU,EACR,aAAa;EACX,UAAU,CAAC,wCAAwC;EACnD,YAAY;GACV;GACA;GACA;GACD;EACD,YAAY;GACV;GACA;GACA;GACD;EACF,EACF;CACD,iBAAiB,EACf,aAAa,YACd;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,cAAc,YACd,GAAG,SACgE;AACnE,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,oBAAkB;EAClB,WAAW,GAAG,cAAc,EAAE,aAAa,CAAC,EAAE,UAAU;EACxD,GAAI;GACJ;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,WACA,GAAG,SACkC;AACrC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gHACA,iKACA,6HACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,8GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EAAE,WAAW,GAAG,SAAoC;AAC5E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,uHACA,gEACA,qEACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,UACA,WACA,GAAG,SAGF;AACD,QACE,qBAAC;EACC,aAAU;EACV,gBAAc,CAAC,CAAC;EAChB,WAAW,GACT,6EACA,UACD;EACD,GAAI;aAEJ,oBAAC,aAAU,WAAU,6BAA6B,EACjD,YACC,oBAAC;GACC,WAAU;GACV,aAAU;GAET;IACI;GAEL;;AAIV,SAAS,WAAW,EAClB,WACA,UACA,QACA,GAAG,SAGF;CACD,MAAM,UAAU,cAAc;AAC5B,MAAI,SACF,QAAO;AAGT,MAAI,CAAC,QAAQ,OACX,QAAO;AAGT,MAAI,QAAQ,UAAU,EACpB,QAAO,OAAO,IAAI;AAGpB,SACE,oBAAC;GAAG,WAAU;aACX,OAAO,KACL,OAAO,UACN,OAAO,WAAW,oBAAC,kBAAgB,MAAM,WAAd,MAA2B,CACzD;IACE;IAEN,CAAC,UAAU,OAAO,CAAC;AAEtB,KAAI,CAAC,QACH,QAAO;AAGT,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,WAAW,GAAG,wCAAwC,UAAU;EAChE,GAAI;YAEH;GACG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"focus-on-route-change.d.ts","names":[],"sources":["../../ui/focus-on-route-change.tsx"],"sourcesContent":[],"mappings":";iBAEgB,kBAAA;;;EAAA,aAAA,CAAA,EAAA,MAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"focus-on-route-change.js","names":[],"sources":["../../ui/focus-on-route-change.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport function FocusOnRouteChange({\n focusSelector = 'h1, [data-page-title], #main',\n}: {\n focusSelector?: string;\n}) {\n React.useEffect(() => {\n const el = document.querySelector<HTMLElement>(focusSelector);\n if (el) {\n el.tabIndex = -1;\n el.focus();\n }\n });\n return null;\n}\n"],"mappings":";;;AAEA,SAAgB,mBAAmB,EACjC,gBAAgB,kCAGf;AACD,SAAM,gBAAgB;EACpB,MAAM,KAAK,SAAS,cAA2B,cAAc;AAC7D,MAAI,IAAI;AACN,MAAG,WAAW;AACd,MAAG,OAAO;;GAEZ;AACF,QAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.d.ts","names":[],"sources":["../../ui/form.tsx"],"sourcesContent":[],"mappings":";;;;;;;;;cAqBM,4BAAI,kDAAA,qBAAA,gBAAA,CAAA,kBAAA,cAAA,UAAA,wBAAA,OAAA,CAAA,GAAA,CAAA;cAaJ,iCACiB,cAAc,2BACrB,UAAU,gBAAgB,UAAU;;GAGjD,gBAAgB,cAAc,WAAM,mBAAA,CAAA,GAAA,CAAA;cAQjC;EA1BA,OAAmB,EAAA,OAAA;EAAf,OAAA,EAAA,OAAA;EAAA,SAAA,EAAA,OAAA;EAAA,YAAA,EAAA,OAAA;EAAA,KAAA,CAAA,EA+CT,gBAAA,CAAA,UA/CS;EAAA,EAAA,EAAA,MAAA;EAAA,IAAA,EAAA,MAAA;EAAA,UAAA,EAAA,MAAA;EAAe,iBAAA,EAAA,MAAA;EAanB,aAWL,EAAA,MAAA;CAVsB;iBA2Cd,QAAA,CA3C4B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2CM,OAAA,CAAM,cA3CZ,CAAA,KAAA,CAAA,CAAA,EA2CiC,mBAAA,CAAA,GAAA,CAAA,OA3CjC;iBAyD5B,SAAA,CAxDiB;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA2DvB,OAAA,CAAM,cA3DiB,CAAA,OA2DK,cAAA,CAAe,IA3DpB,CAAA,CAAA,EA2DyB,mBAAA,CAAA,GAAA,CAAA,OA3DzB;iBAyEjB,WAAA,CAzEO;EAAA,GAAA;AAAA,CAAA,EAyEmB,OAAA,CAAM,cAzEzB,CAAA,OAyE+C,IAzE/C,CAAA,CAAA,EAyEoD,mBAAA,CAAA,GAAA,CAAA,OAzEpD;iBA4FP,eAAA,CA5F2C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4FF,OAAA,CAAM,cA5FJ,CAAA,GAAA,CAAA,CAAA,EA4FuB,mBAAA,CAAA,GAAA,CAAA,OA5FvB;iBAyG3C,WAAA,CAzGiC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyGI,OAAA,CAAM,cAzGV,CAAA,GAAA,CAAA,CAAA,EAyG6B,mBAAA,CAAA,GAAA,CAAA,OAAA,GAzG7B,IAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"form.js","names":["React"],"sources":["../../ui/form.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { Slot } from '@radix-ui/react-slot';\nimport {\n Controller,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n FormProvider,\n useFormContext,\n useFormState,\n} from 'react-hook-form';\n\nimport { cn } from './utils';\nimport { Label } from './label';\n\nexport { zodResolver } from '@hookform/resolvers/zod';\nexport { useForm, type UseFormReturn, useFieldArray } from 'react-hook-form';\n\nconst Form = FormProvider;\n\ninterface FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> {\n name: TName;\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error('useFormField should be used within <FormField>');\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ninterface FormItemContextValue {\n id: string;\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<'div'>) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn('grid gap-2', className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn('data-[error=true]:text-destructive', className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<'p'>) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<'p'>) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? '') : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn('text-destructive text-sm', className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"mappings":";;;;;;;;;;;;AAqBA,MAAM,OAAO;AASb,MAAM,mBAAmBA,QAAM,cAC7B,EAAE,CACH;AAED,MAAM,aAGJ,EACA,GAAG,YACuC;AAC1C,QACE,oBAAC,iBAAiB;EAAS,OAAO,EAAE,MAAM,MAAM,MAAM;YACpD,oBAAC,cAAW,GAAI,QAAS;GACC;;AAIhC,MAAM,qBAAqB;CACzB,MAAM,eAAeA,QAAM,WAAW,iBAAiB;CACvD,MAAM,cAAcA,QAAM,WAAW,gBAAgB;CACrD,MAAM,EAAE,kBAAkB,gBAAgB;CAC1C,MAAM,YAAY,aAAa,EAAE,MAAM,aAAa,MAAM,CAAC;CAC3D,MAAM,aAAa,cAAc,aAAa,MAAM,UAAU;AAE9D,KAAI,CAAC,aACH,OAAM,IAAI,MAAM,iDAAiD;CAGnE,MAAM,EAAE,OAAO;AAEf,QAAO;EACL;EACA,MAAM,aAAa;EACnB,YAAY,GAAG,GAAG;EAClB,mBAAmB,GAAG,GAAG;EACzB,eAAe,GAAG,GAAG;EACrB,GAAG;EACJ;;AAOH,MAAM,kBAAkBA,QAAM,cAC5B,EAAE,CACH;AAED,SAAS,SAAS,EAAE,WAAW,GAAG,SAAsC;CACtE,MAAM,KAAKA,QAAM,OAAO;AAExB,QACE,oBAAC,gBAAgB;EAAS,OAAO,EAAE,IAAI;YACrC,oBAAC;GACC,aAAU;GACV,WAAW,GAAG,cAAc,UAAU;GACtC,GAAI;IACJ;GACuB;;AAI/B,SAAS,UAAU,EACjB,WACA,GAAG,SACgD;CACnD,MAAM,EAAE,OAAO,eAAe,cAAc;AAE5C,QACE,oBAAC;EACC,aAAU;EACV,cAAY,CAAC,CAAC;EACd,WAAW,GAAG,sCAAsC,UAAU;EAC9D,SAAS;EACT,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,GAAG,SAA4C;CACpE,MAAM,EAAE,OAAO,YAAY,mBAAmB,kBAC5C,cAAc;AAEhB,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,oBACE,CAAC,QACG,GAAG,sBACH,GAAG,kBAAkB,GAAG;EAE9B,gBAAc,CAAC,CAAC;EAChB,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EAAE,WAAW,GAAG,SAAoC;CAC3E,MAAM,EAAE,sBAAsB,cAAc;AAE5C,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAAoC;CACvE,MAAM,EAAE,OAAO,kBAAkB,cAAc;CAC/C,MAAM,OAAO,QAAQ,OAAO,OAAO,WAAW,GAAG,GAAG,MAAM;AAE1D,KAAI,CAAC,KACH,QAAO;AAGT,QACE,oBAAC;EACC,aAAU;EACV,IAAI;EACJ,WAAW,GAAG,4BAA4B,UAAU;EACpD,GAAI;YAEH;GACC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hover-card.d.ts","names":[],"sources":["../../ui/hover-card.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,SAAA;;GAEN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAI9C,gBAAA;;GAEN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,WAAQ,oBAAA,CAAA,GAAA,CAAA;iBAMjD,gBAAA;;;;;GAKN,OAAA,CAAM,sBAAsB,kBAAA,CAAmB,WAAQ,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"hover-card.js","names":[],"sources":["../../ui/hover-card.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as HoverCardPrimitive from '@radix-ui/react-hover-card';\n\nimport { cn } from './utils';\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n );\n}\n\nfunction HoverCardContent({\n className,\n align = 'center',\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-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-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden',\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;;;AAOA,SAAS,UAAU,EACjB,GAAG,SACoD;AACvD,QAAO,oBAAC,mBAAmB;EAAK,aAAU;EAAa,GAAI;GAAS;;AAGtE,SAAS,iBAAiB,EACxB,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAQ,aAAU;EAAqB,GAAI;GAAS;;AAI5E,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAAC,mBAAmB;EAAO,aAAU;YACnC,oBAAC,mBAAmB;GAClB,aAAU;GACH;GACK;GACZ,WAAW,GACT,qeACA,UACD;GACD,GAAI;IACJ;GACwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-group.d.ts","names":[],"sources":["../../ui/input-group.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBAUS,UAAA;;;GAAoC,OAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA;cA4BlE;;IAmBL,+BAAA,CAAA;AAnDiC,iBAqDzB,eAAA,CAjDU;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;AAAA,CAAA,EAqDhB,OAAA,CAAM,cArDU,CAAA,KAAA,CAAA,GAqDc,YArDd,CAAA,OAqDkC,uBArDlC,CAAA,CAAA,EAqD0D,oBAAA,CAAA,GAAA,CAAA,OArD1D;cAuEb,wBAvEgB,EAAA,CAAA,KAAkD,CAAlD,EAAA,CAAA;EAAuB,IAAA,CAAM,EAAA,IAAA,GAAA,IAAA,GAAA,SAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;CAAqB,GAuFvE,+BAAA,CAAA,SAvFuE,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBAyF/D,gBAAA,CAzF+D;EAAA,SAAA;EAAA,IAAA;EAAA,OAAA;EAAA,IAAA;EAAA,GAAA;AAAA,CAAA,EA+FrE,IA/FqE,CA+FhE,OAAA,CAAM,cA/F0D,CAAA,OA+FpC,MA/FoC,CAAA,EAAA,MAAA,CAAA,GAgGtE,YAhGsE,CAAA,OAgGlD,wBAhGkD,CAAA,CAAA,EAgGzB,oBAAA,CAAA,GAAA,CAAA,OAhGyB;AAAA,iBA4G/D,cAAA,CA7DR;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6DgD,OAAA,CAAM,cA7DtD,CAAA,MAAA,CAAA,CAAA,EA6D4E,oBAAA,CAAA,GAAA,CAAA,OA7D5E;iBAyEQ,eAAA,CAvEe;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0ErB,OAAA,CAAM,cA1Ee,CAAA,OAAA,CAAA,CAAA,EA0EQ,oBAAA,CAAA,GAAA,CAAA,OA1ER;iBAuFf,kBAAA,CAtFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAyFC,OAAA,CAAM,cAzFP,CAAA,UAAA,CAAA,CAAA,EAyFiC,oBAAA,CAAA,GAAA,CAAA,OAzFjC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-group.js","names":[],"sources":["../../ui/input-group.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from './utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Textarea } from './textarea';\n\nfunction InputGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"input-group\"\n role=\"group\"\n className={cn(\n 'group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none',\n 'h-9 min-w-0 has-[>textarea]:h-auto',\n\n // Variants based on alignment.\n 'has-[>[data-align=inline-start]]:[&>input]:pl-2',\n 'has-[>[data-align=inline-end]]:[&>input]:pr-2',\n 'has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3',\n 'has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3',\n\n // Focus state.\n 'has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]',\n\n // Error state.\n 'has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40',\n\n className\n )}\n {...props}\n />\n );\n}\n\nconst inputGroupAddonVariants = cva(\n \"text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50\",\n {\n variants: {\n align: {\n 'inline-start':\n 'order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]',\n 'inline-end':\n 'order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]',\n 'block-start':\n 'order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5',\n 'block-end':\n 'order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5',\n },\n },\n defaultVariants: {\n align: 'inline-start',\n },\n }\n);\n\nfunction InputGroupAddon({\n className,\n align = 'inline-start',\n ...props\n}: React.ComponentProps<'div'> & VariantProps<typeof inputGroupAddonVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"input-group-addon\"\n data-align={align}\n className={cn(inputGroupAddonVariants({ align }), className)}\n onClick={(e) => {\n if ((e.target as HTMLElement).closest('button')) {\n return;\n }\n e.currentTarget.parentElement?.querySelector('input')?.focus();\n }}\n {...props}\n />\n );\n}\n\nconst inputGroupButtonVariants = cva(\n 'text-sm shadow-none flex gap-2 items-center',\n {\n variants: {\n size: {\n xs: \"h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2\",\n sm: 'h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5',\n 'icon-xs':\n 'size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0',\n 'icon-sm': 'size-8 p-0 has-[>svg]:p-0',\n },\n },\n defaultVariants: {\n size: 'xs',\n },\n }\n);\n\nfunction InputGroupButton({\n className,\n type = 'button',\n variant = 'ghost',\n size = 'xs',\n ...props\n}: Omit<React.ComponentProps<typeof Button>, 'size'> &\n VariantProps<typeof inputGroupButtonVariants>) {\n return (\n <Button\n type={type}\n data-size={size}\n variant={variant}\n className={cn(inputGroupButtonVariants({ size }), className)}\n {...props}\n />\n );\n}\n\nfunction InputGroupText({ className, ...props }: React.ComponentProps<'span'>) {\n return (\n <span\n className={cn(\n \"text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupInput({\n className,\n ...props\n}: React.ComponentProps<'input'>) {\n return (\n <Input\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction InputGroupTextarea({\n className,\n ...props\n}: React.ComponentProps<'textarea'>) {\n return (\n <Textarea\n data-slot=\"input-group-control\"\n className={cn(\n 'flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupText,\n InputGroupInput,\n InputGroupTextarea,\n};\n"],"mappings":";;;;;;;;;;;AAUA,SAAS,WAAW,EAAE,WAAW,GAAG,SAAsC;AACxE,QACE,oBAAC;EACC,aAAU;EACV,MAAK;EACL,WAAW,GACT,4JACA,sCAGA,mDACA,iDACA,kIACA,4HAGA,mMAGA,kLAEA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,0BAA0B,IAC9B,2PACA;CACE,UAAU,EACR,OAAO;EACL,gBACE;EACF,cACE;EACF,eACE;EACF,aACE;EACH,EACF;CACD,iBAAiB,EACf,OAAO,gBACR;CACF,CACF;AAED,SAAS,gBAAgB,EACvB,WACA,QAAQ,gBACR,GAAG,SAC0E;AAC7E,QACE,oBAAC;EACC,MAAK;EACL,aAAU;EACV,cAAY;EACZ,WAAW,GAAG,wBAAwB,EAAE,OAAO,CAAC,EAAE,UAAU;EAC5D,UAAU,MAAM;AACd,OAAK,EAAE,OAAuB,QAAQ,SAAS,CAC7C;AAEF,KAAE,cAAc,eAAe,cAAc,QAAQ,EAAE,OAAO;;EAEhE,GAAI;GACJ;;AAIN,MAAM,2BAA2B,IAC/B,+CACA;CACE,UAAU,EACR,MAAM;EACJ,IAAI;EACJ,IAAI;EACJ,WACE;EACF,WAAW;EACZ,EACF;CACD,iBAAiB,EACf,MAAM,MACP;CACF,CACF;AAED,SAAS,iBAAiB,EACxB,WACA,OAAO,UACP,UAAU,SACV,OAAO,MACP,GAAG,SAE4C;AAC/C,QACE,oBAAC;EACO;EACN,aAAW;EACF;EACT,WAAW,GAAG,yBAAyB,EAAE,MAAM,CAAC,EAAE,UAAU;EAC5D,GAAI;GACJ;;AAIN,SAAS,eAAe,EAAE,WAAW,GAAG,SAAuC;AAC7E,QACE,oBAAC;EACC,WAAW,GACT,0HACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,GAAG,SAC6B;AAChC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,oGACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACgC;AACnC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,qHACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-otp.d.ts","names":[],"sources":["../../ui/input-otp.tsx"],"sourcesContent":[],"mappings":";;;;cAQM,UAAQ,OAAA,CAAA,2BAAA,KAAA,KAAA,OAAA,CAAA,oBAAA;;;EAAR,SAAA,EAaJ,MAAA;EAbY,SAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,OAAA;EAAA,UAAA,CAAA,EAAA,CAAA,GAAA,IAAA,EAAA,GAAA,EAAA,EAAA,GAAA,OAAA;EAAA,2BAAA,CAAA,EAAA,gBAAA,GAAA,MAAA;EAAA,gBAAA,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,GAAA,MAAA;;;;EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,UAAA,CAAA,WAAA,EAAA,oBAAA;;;;;;;;;;EAAA,kBAAA,CAAA,EAAA,MAAA;EAAA,mBAAA,CAAA,EAAA,MAAA,GAAA,IAAA;AAAA,CAAA,GAgBR;EAAa,MAAA,CAAA,EAAA,KAAA;EAAA,QAAA,mBAAA;CAAA,wBAAA,iBAAA,CAAA,EAAA,KAAA,CAAA,CAAA,wBAAA,iBAAA,CAAA,CAAA;cAAb,aAAa,EAAA,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,OAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,cAAA,CAAA,EAAA,KAAA,CAAA,GAAA,OAAA,CAAA,aAAA,CAAA,cAAA,CAAA,CAAA;cAQb,YARa,EAQD,OAAA,CAAA,yBARC,CAQD,IARC,CAQD,OAAA,CAAA,iBARC,CAQD,OAAA,CAAA,cARC,CAQD,cARC,CAAA,EAQD,cARC,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,KAAA,EAAA,MAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;cAoCb,iBApCa,EAoCI,OAAA,CAAA,yBApCJ,CAoCI,IApCJ,CAoCI,OAAA,CAAA,iBApCJ,CAoCI,OAAA,CAAA,cApCJ,CAoCI,cApCJ,CAAA,EAoCI,cApCJ,CAAA,EAAA,KAAA,CAAA,GAoCI,OAAA,CAAA,aApCJ,CAoCI,cApCJ,CAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-otp.js","names":["React"],"sources":["../../ui/input-otp.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { OTPInput, OTPInputContext } from 'input-otp';\nimport { Dot } from 'lucide-react';\n\nimport { cn } from './utils';\n\nconst InputOTP = React.forwardRef<\n React.ElementRef<typeof OTPInput>,\n React.ComponentPropsWithoutRef<typeof OTPInput>\n>(({ className, containerClassName, ...props }, ref) => (\n <OTPInput\n ref={ref}\n containerClassName={cn(\n 'flex items-center gap-2 has-disabled:opacity-50',\n containerClassName\n )}\n className={cn('disabled:cursor-not-allowed', className)}\n {...props}\n />\n));\nInputOTP.displayName = 'InputOTP';\n\nconst InputOTPGroup = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center', className)} {...props} />\n));\nInputOTPGroup.displayName = 'InputOTPGroup';\n\nconst InputOTPSlot = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'> & { index: number }\n>(({ index, className, ...props }, ref) => {\n const inputOTPContext = React.useContext(OTPInputContext);\n const { char, hasFakeCaret, isActive } = inputOTPContext.slots[index] || {};\n\n return (\n <div\n ref={ref}\n className={cn(\n 'border-input relative flex h-10 w-10 items-center justify-center border-y border-r text-base transition-all first:rounded-l-md first:border-l last:rounded-r-md',\n isActive && 'ring-ring ring-offset-background z-10 ring-2',\n className\n )}\n {...props}\n >\n {char}\n {hasFakeCaret && (\n <div className=\"pointer-events-none absolute inset-0 flex items-center justify-center\">\n <div className=\"animate-caret-blink bg-foreground h-4 w-px duration-1000\" />\n </div>\n )}\n </div>\n );\n});\nInputOTPSlot.displayName = 'InputOTPSlot';\n\nconst InputOTPSeparator = React.forwardRef<\n React.ElementRef<'div'>,\n React.ComponentPropsWithoutRef<'div'>\n>(({ ...props }, ref) => (\n <div ref={ref} role=\"separator\" {...props}>\n <Dot />\n </div>\n));\nInputOTPSeparator.displayName = 'InputOTPSeparator';\n\nexport { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };\n"],"mappings":";;;;;;;;;AAQA,MAAM,WAAWA,QAAM,YAGpB,EAAE,WAAW,oBAAoB,GAAG,SAAS,QAC9C,oBAAC;CACM;CACL,oBAAoB,GAClB,mDACA,mBACD;CACD,WAAW,GAAG,+BAA+B,UAAU;CACvD,GAAI;EACJ,CACF;AACF,SAAS,cAAc;AAEvB,MAAM,gBAAgBA,QAAM,YAGzB,EAAE,WAAW,GAAG,SAAS,QAC1B,oBAAC;CAAS;CAAK,WAAW,GAAG,qBAAqB,UAAU;CAAE,GAAI;EAAS,CAC3E;AACF,cAAc,cAAc;AAE5B,MAAM,eAAeA,QAAM,YAGxB,EAAE,OAAO,WAAW,GAAG,SAAS,QAAQ;CAEzC,MAAM,EAAE,MAAM,cAAc,aADJA,QAAM,WAAW,gBAAgB,CACA,MAAM,UAAU,EAAE;AAE3E,QACE,qBAAC;EACM;EACL,WAAW,GACT,mKACA,YAAY,gDACZ,UACD;EACD,GAAI;aAEH,MACA,gBACC,oBAAC;GAAI,WAAU;aACb,oBAAC,SAAI,WAAU,6DAA6D;IACxE;GAEJ;EAER;AACF,aAAa,cAAc;AAE3B,MAAM,oBAAoBA,QAAM,YAG7B,EAAE,GAAG,SAAS,QACf,oBAAC;CAAS;CAAK,MAAK;CAAY,GAAI;WAClC,oBAAC,QAAM;EACH,CACN;AACF,kBAAkB,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","names":[],"sources":["../../ui/input.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,UAAA,GAAa,OAAA,CAAM;iBAEtB,KAAA;;;;GAAqC,aAAU,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","names":[],"sources":["../../ui/input.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { cn } from './utils';\n\nexport type InputProps = React.ComponentProps<'input'>;\n\nfunction Input({ className, type, ...props }: InputProps) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Input };\n"],"mappings":";;;;;AAMA,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,SAAqB;AACxD,QACE,oBAAC;EACO;EACN,aAAU;EACV,WAAW,GACT,8bACA,iFACA,0GACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"label.d.ts","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,KAAA;;;GAGN,OAAA,CAAM,sBAAsB,cAAA,CAAe,QAAK,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"label.js","names":[],"sources":["../../ui/label.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\n\nimport { cn } from './utils';\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Label };\n"],"mappings":";;;;;;;;AAOA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;AACnD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;GACJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.d.ts","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":[],"mappings":";;;cAIM,aAAI,0BAAA,KAAA,MAAA,CAAA,UAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"link.js","names":[],"sources":["../../ui/link.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { cn } from './utils';\nimport NextLink from 'next/link';\n\nconst Link = forwardRef<\n HTMLAnchorElement,\n React.HTMLProps<HTMLAnchorElement> & { href: string }\n>(({ className, ...props }, ref) => {\n return (\n <NextLink\n ref={ref}\n className={cn('className=\"text-primary underline\"', className)}\n {...props}\n />\n );\n});\nLink.displayName = 'Link';\n\nexport { Link };\n"],"mappings":";;;;;;AAIA,MAAM,OAAO,YAGV,EAAE,WAAW,GAAG,SAAS,QAAQ;AAClC,QACE,oBAAC;EACM;EACL,WAAW,GAAG,wCAAsC,UAAU;EAC9D,GAAI;GACJ;EAEJ;AACF,KAAK,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-region.d.ts","names":[],"sources":["../../ui/live-region.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,oBAAA;UAQF,wBAAA;wCAC8B;AATxC;AAQU,iBAOM,eAAA,CAAA,CAPkB,EAOH,wBAN6B;AAM5C,iBAOA,oBAAA,CAPe;EAAA;CAAA,EAAA;EAOf,QAAA,EAGJ,OAAA,CAAM,SAHkB;CAClC,CAAA,EAGD,oBAAA,CAAA,GAAA,CAAA,OAHC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"live-region.js","names":["React"],"sources":["../../ui/live-region.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nexport type LiveRegionPoliteness = 'polite' | 'assertive';\n\ninterface LiveRegionMessage {\n id: number;\n text: string;\n politeness: LiveRegionPoliteness;\n}\n\ninterface SRLiveRegionContextValue {\n announce: (text: string, politeness?: LiveRegionPoliteness) => void;\n}\n\nconst SRLiveRegionContext =\n React.createContext<SRLiveRegionContextValue | null>(null);\n\nexport function useSRLiveRegion() {\n const ctx = React.useContext(SRLiveRegionContext);\n if (!ctx)\n throw new Error('useSRLiveRegion must be used within SRLiveRegionProvider');\n return ctx;\n}\n\nexport function SRLiveRegionProvider({\n children,\n}: {\n children: React.ReactNode;\n}) {\n const [messages, setMessages] = React.useState<LiveRegionMessage[]>([]);\n const idRef = React.useRef(0);\n\n const announce = React.useCallback(\n (text: string, politeness: LiveRegionPoliteness = 'polite') => {\n const id = ++idRef.current;\n setMessages((prev) => [...prev, { id, text, politeness }]);\n // Remove message after render tick to avoid accumulation\n setTimeout(\n () => setMessages((prev) => prev.filter((m) => m.id !== id)),\n 1000\n );\n },\n []\n );\n\n return (\n <SRLiveRegionContext.Provider value={{ announce }}>\n {children}\n <div aria-live=\"polite\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'polite')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n <div aria-live=\"assertive\" aria-atomic=\"true\" className=\"sr-only\">\n {messages\n .filter((m) => m.politeness === 'assertive')\n .map((m) => (\n <div key={m.id}>{m.text}</div>\n ))}\n </div>\n </SRLiveRegionContext.Provider>\n );\n}\n"],"mappings":";;;;;;AAgBA,MAAM,sBACJA,QAAM,cAA+C,KAAK;AAE5D,SAAgB,kBAAkB;CAChC,MAAM,MAAMA,QAAM,WAAW,oBAAoB;AACjD,KAAI,CAAC,IACH,OAAM,IAAI,MAAM,2DAA2D;AAC7E,QAAO;;AAGT,SAAgB,qBAAqB,EACnC,YAGC;CACD,MAAM,CAAC,UAAU,eAAeA,QAAM,SAA8B,EAAE,CAAC;CACvE,MAAM,QAAQA,QAAM,OAAO,EAAE;CAE7B,MAAM,WAAWA,QAAM,aACpB,MAAc,aAAmC,aAAa;EAC7D,MAAM,KAAK,EAAE,MAAM;AACnB,eAAa,SAAS,CAAC,GAAG,MAAM;GAAE;GAAI;GAAM;GAAY,CAAC,CAAC;AAE1D,mBACQ,aAAa,SAAS,KAAK,QAAQ,MAAM,EAAE,OAAO,GAAG,CAAC,EAC5D,IACD;IAEH,EAAE,CACH;AAED,QACE,qBAAC,oBAAoB;EAAS,OAAO,EAAE,UAAU;;GAC9C;GACD,oBAAC;IAAI,aAAU;IAAS,eAAY;IAAO,WAAU;cAClD,SACE,QAAQ,MAAM,EAAE,eAAe,SAAS,CACxC,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;GACN,oBAAC;IAAI,aAAU;IAAY,eAAY;IAAO,WAAU;cACrD,SACE,QAAQ,MAAM,EAAE,eAAe,YAAY,CAC3C,KAAK,MACJ,oBAAC,mBAAgB,EAAE,QAAT,EAAE,GAAkB,CAC9B;KACA;;GACuB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading-button.d.ts","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":[],"mappings":";;;;;UAOU,kBAAA,SAA2B;;;EAA3B,QAAA,EAGE,KAAA,CAAM,SAHW;AAM7B;AACE,iBADc,aAAA,CACd;EAAA,SAAA;EAAA,WAAA;EAAA,QAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EAKC,kBALD,CAAA,EAKmB,mBAAA,CAAA,GAAA,CAAA,OALnB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"loading-button.js","names":[],"sources":["../../ui/loading-button.tsx"],"sourcesContent":["import React from 'react';\n// import { ActivityIndicator } from 'react-native';\nimport type { ButtonProps } from './button';\nimport { Button } from './button';\nimport { Text } from './text';\nimport { HStack } from './stack';\n\ninterface LoadingButtonProps extends ButtonProps {\n isLoading?: boolean;\n loadingText?: string;\n children: React.ReactNode;\n}\n\nexport function LoadingButton({\n isLoading = false,\n loadingText,\n children,\n disabled,\n ...props\n}: LoadingButtonProps) {\n return (\n <Button disabled={disabled || isLoading} {...props}>\n {isLoading ? (\n <HStack className=\"items-center gap-x-2\">\n {/*<ActivityIndicator*/}\n {/* size=\"small\"*/}\n {/* color={props.variant === 'outline' ? '#6b7280' : '#ffffff'}*/}\n {/*/>*/}\n <Text>{loadingText || 'Loading...'}</Text>\n </HStack>\n ) : (\n children\n )}\n </Button>\n );\n}\n"],"mappings":";;;;;;;AAaA,SAAgB,cAAc,EAC5B,YAAY,OACZ,aACA,UACA,UACA,GAAG,SACkB;AACrB,QACE,oBAAC;EAAO,UAAU,YAAY;EAAW,GAAI;YAC1C,YACC,oBAAC;GAAO,WAAU;aAKhB,oBAAC,kBAAM,eAAe,eAAoB;IACnC,GAET;GAEK"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapBase.d.ts","names":[],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":[],"mappings":";;;;;UAaiB,IAAA;;;EAAA,MAAA,EAAI,MAAA;EAOJ,MAAA,EAAA,MAAA;;AAMI,UANJ,YAAA,CAMI;EACF,gBAAA,CAAA,EAAA;IACN,SAAA,EAAA,MAAA;IAAS,QAAA,EAAA,MAAA;IAGN,IAAA,EAAO,MAAA;;;UARb;;;qBAGW;mBACF;aACN;;iBAGG,OAAA,QAAe,eAAY,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapBase.js","names":["React"],"sources":["../../../ui/map/MapBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { CSSProperties, ReactNode } from 'react';\nimport Map, {\n type MapRef,\n NavigationControl,\n ScaleControl,\n} from 'react-map-gl/maplibre';\n\nconst DEFAULT_STYLE =\n 'https://basemaps.cartocdn.com/gl/positron-gl-style/style.json';\n\nexport interface BBox {\n minLng: number;\n minLat: number;\n maxLng: number;\n maxLat: number;\n}\n\nexport interface MapBaseProps {\n initialViewState?: { longitude: number; latitude: number; zoom: number };\n styleUrl?: string;\n style?: CSSProperties;\n showControls?: boolean;\n showCssLink?: boolean;\n onMoveEnd?: (bbox: BBox) => void;\n onMapRef?: (ref: MapRef | null) => void;\n children?: ReactNode;\n}\n\nexport function MapBase(props: MapBaseProps) {\n const {\n initialViewState = { longitude: 2.3522, latitude: 48.8566, zoom: 5 },\n styleUrl = DEFAULT_STYLE,\n style,\n showControls = true,\n showCssLink = true,\n onMoveEnd,\n onMapRef,\n children,\n } = props;\n\n const mapRef = React.useRef<MapRef | null>(null);\n\n React.useEffect(() => {\n onMapRef?.(mapRef.current);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mapRef.current]);\n\n // const handleMoveEnd = React.useCallback(() => {\n // if (!onMoveEnd) return;\n // const b = mapRef.current?.getBounds();\n // if (!b) return;\n // // maplibre-gl bounds → [[minLng,minLat],[maxLng,maxLat]]\n // const arr = (b as any).toArray?.() as [number, number][] | undefined;\n // if (!arr || arr.length < 2) return;\n // const [sw, ne] = arr;\n // onMoveEnd({ minLng: sw[0], minLat: sw[1], maxLng: ne[0], maxLat: ne[1] });\n // }, [onMoveEnd]);\n\n return (\n <div\n style={{\n position: 'relative',\n width: '100%',\n height: '100%',\n ...(style || {}),\n }}\n >\n {showCssLink && (\n <link\n href=\"https://unpkg.com/maplibre-gl@4.7.0/dist/maplibre-gl.css\"\n rel=\"stylesheet\"\n />\n )}\n <Map\n ref={mapRef}\n mapLib={import('maplibre-gl') as unknown as any}\n initialViewState={initialViewState}\n style={{ width: '100%', height: '100%' }}\n mapStyle={styleUrl}\n // onMoveEnd={handleMoveEnd}\n maplibreLogo={false}\n >\n {showControls && (\n <>\n <ScaleControl position=\"bottom-left\" />\n <NavigationControl position=\"bottom-left\" />\n </>\n )}\n {children}\n </Map>\n </div>\n );\n}\n\nexport default MapBase;\n"],"mappings":";;;;;;;AAUA,MAAM,gBACJ;AAoBF,SAAgB,QAAQ,OAAqB;CAC3C,MAAM,EACJ,mBAAmB;EAAE,WAAW;EAAQ,UAAU;EAAS,MAAM;EAAG,EACpE,WAAW,eACX,OACA,eAAe,MACf,cAAc,MACd,WACA,UACA,aACE;CAEJ,MAAM,SAASA,QAAM,OAAsB,KAAK;AAEhD,SAAM,gBAAgB;AACpB,aAAW,OAAO,QAAQ;IAEzB,CAAC,OAAO,QAAQ,CAAC;AAapB,QACE,qBAAC;EACC,OAAO;GACL,UAAU;GACV,OAAO;GACP,QAAQ;GACR,GAAI,SAAS,EAAE;GAChB;aAEA,eACC,oBAAC;GACC,MAAK;GACL,KAAI;IACJ,EAEJ,qBAAC;GACC,KAAK;GACL,QAAQ,OAAO;GACG;GAClB,OAAO;IAAE,OAAO;IAAQ,QAAQ;IAAQ;GACxC,UAAU;GAEV,cAAc;cAEb,gBACC,4CACE,oBAAC,gBAAa,UAAS,gBAAgB,EACvC,oBAAC,qBAAkB,UAAS,gBAAgB,IAC3C,EAEJ;IACG;GACF;;AAIV,sBAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapGeoJsonOverlay.d.ts","names":[],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;QAET,OAAA,CAAQ;EAFC,SAAA,CAAA,EAAA,MAAA;EAUD,WAAA,CAAA,EAAA,MAAiB;;;;;iBAAjB,iBAAA,QAAyB,sBAAmB,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapGeoJsonOverlay.js","names":["fillLayer: any","outlineLayer: any"],"sources":["../../../ui/map/MapGeoJsonOverlay.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface GeoJsonOverlayProps {\n id?: string;\n data: GeoJSON.FeatureCollection;\n fillColor?: string;\n fillOpacity?: number;\n lineColor?: string;\n lineWidth?: number;\n lineOpacity?: number;\n}\n\nexport function MapGeoJsonOverlay(props: GeoJsonOverlayProps) {\n const {\n id = 'geojson-overlay',\n data,\n fillColor = '#2563eb',\n fillOpacity = 0.25,\n lineColor = '#1e40af',\n lineWidth = 1.5,\n lineOpacity = 0.8,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: {\n 'fill-color': fillColor,\n 'fill-opacity': fillOpacity,\n },\n };\n\n const outlineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': lineColor,\n 'line-width': lineWidth,\n 'line-opacity': lineOpacity,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...outlineLayer} />\n </Source>\n );\n}\n\nexport default MapGeoJsonOverlay;\n"],"mappings":";;;;;;;AAeA,SAAgB,kBAAkB,OAA4B;CAC5D,MAAM,EACJ,KAAK,mBACL,MACA,YAAY,WACZ,cAAc,KACd,YAAY,WACZ,YAAY,KACZ,cAAc,OACZ;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,gBAAgB;GACjB;EACF;CAED,MAAMC,eAAoB;EACxB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,eAAgB;GACpB;;AAIb,gCAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapHeatmapH3.d.ts","names":[],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,mBAAA;;;EAAA,KAAA,EAAA,MAAA;AAMjB;AAGI,UAHa,cAAA,CAGL;EAAU,EAAA,CAAA,EAAQ,MAAA;EAC1B,IAAA,EAFI,OAAA,CAAQ,iBAEZ,CADA,OAAA,CAAQ,OACR,GADkB,OAAA,CAAQ,YAC1B,EAAA,mBAAA,CAAA;EAFI,UAAQ,CAAA,EAAA,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA;EAAiB,QAAA,CAAA,EAAA,MAAA;AAwBjC;iBAAgB,YAAA,QAAoB,iBAAc,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapHeatmapH3.js","names":["fillLayer: any","lineLayer: any"],"sources":["../../../ui/map/MapHeatmapH3.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Layer, Source } from 'react-map-gl/maplibre';\n\nexport interface H3FeatureProperties {\n id: string;\n h3Index?: string;\n count: number;\n}\n\nexport interface H3HeatmapProps {\n id?: string;\n data: GeoJSON.FeatureCollection<\n GeoJSON.Polygon | GeoJSON.MultiPolygon,\n H3FeatureProperties\n >;\n colorStops?: [number, string][]; // [count, color]\n maxCount?: number; // for normalization\n}\n\nfunction buildChoroplethPaint(\n stops: [number, string][],\n maxCount: number | undefined\n) {\n const scaleStops = (stops || []).map(([c, col]) => [c, col]);\n return {\n 'fill-color': [\n 'interpolate',\n ['linear'],\n ['get', 'count'],\n ...scaleStops.flat(),\n ],\n 'fill-opacity': 0.6,\n } as const;\n}\n\nexport function MapHeatmapH3(props: H3HeatmapProps) {\n const {\n id = 'h3-heatmap',\n data,\n colorStops = [\n [0, '#22c55e'],\n [5, '#eab308'],\n [10, '#ef4444'],\n ],\n maxCount,\n } = props;\n\n const fillLayer: any = {\n id: `${id}-fill`,\n type: 'fill',\n paint: buildChoroplethPaint(colorStops, maxCount),\n };\n\n const lineLayer: any = {\n id: `${id}-outline`,\n type: 'line',\n paint: {\n 'line-color': '#ffffff',\n 'line-width': 0.25,\n 'line-opacity': 0.25,\n },\n };\n\n return (\n <Source id={id} type=\"geojson\" data={data as any}>\n <Layer {...fillLayer} />\n <Layer {...lineLayer} />\n </Source>\n );\n}\n\nexport default MapHeatmapH3;\n"],"mappings":";;;;;;;AAqBA,SAAS,qBACP,OACA,UACA;CACA,MAAM,cAAc,SAAS,EAAE,EAAE,KAAK,CAAC,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;AAC5D,QAAO;EACL,cAAc;GACZ;GACA,CAAC,SAAS;GACV,CAAC,OAAO,QAAQ;GAChB,GAAG,WAAW,MAAM;GACrB;EACD,gBAAgB;EACjB;;AAGH,SAAgB,aAAa,OAAuB;CAClD,MAAM,EACJ,KAAK,cACL,MACA,aAAa;EACX,CAAC,GAAG,UAAU;EACd,CAAC,GAAG,UAAU;EACd,CAAC,IAAI,UAAU;EAChB,EACD,aACE;CAEJ,MAAMA,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO,qBAAqB,YAAY,SAAS;EAClD;CAED,MAAMC,YAAiB;EACrB,IAAI,GAAG,GAAG;EACV,MAAM;EACN,OAAO;GACL,cAAc;GACd,cAAc;GACd,gBAAgB;GACjB;EACF;AAED,QACE,qBAAC;EAAW;EAAI,MAAK;EAAgB;aACnC,oBAAC,SAAM,GAAI,YAAa,EACxB,oBAAC,SAAM,GAAI,YAAa;GACjB;;AAIb,2BAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapMarkers.d.ts","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":[],"mappings":";;;UAKiB,QAAA;;;EAAA,GAAA,EAAA,MAAQ;EAUT,KAAA,CAAA,EAAA,MAAU;EAAG,IAAA,CAAA,EAAA,MAAA;EAAoB,SAAA,CAAA,EAAA,MAAA;EAAY,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;iBAA7C,UAAA;;;UAAiC;IAAY,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MapMarkers.js","names":[],"sources":["../../../ui/map/MapMarkers.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Marker } from 'react-map-gl/maplibre';\n\nexport interface MapPoint {\n id: string;\n lng: number;\n lat: number;\n color?: string;\n size?: number;\n ariaLabel?: string;\n onClick?: () => void;\n}\n\nexport function MapMarkers({ points }: { points: MapPoint[] }) {\n return (\n <>\n {points.map((p) => (\n <Marker key={p.id} longitude={p.lng} latitude={p.lat} anchor=\"bottom\">\n <div\n role={p.onClick ? 'button' : undefined}\n tabIndex={p.onClick ? 0 : -1}\n aria-label={p.ariaLabel || 'marker'}\n onClick={p.onClick}\n style={{\n width: p.size ?? 14,\n height: p.size ?? 14,\n background: p.color ?? '#2563eb',\n border: '2px solid white',\n borderRadius: 9999,\n boxShadow: '0 1px 3px rgba(0,0,0,0.35)',\n cursor: p.onClick ? 'pointer' : 'default',\n }}\n />\n </Marker>\n ))}\n </>\n );\n}\n\nexport default MapMarkers;\n"],"mappings":";;;;;;;AAeA,SAAgB,WAAW,EAAE,UAAkC;AAC7D,QACE,0CACG,OAAO,KAAK,MACX,oBAAC;EAAkB,WAAW,EAAE;EAAK,UAAU,EAAE;EAAK,QAAO;YAC3D,oBAAC;GACC,MAAM,EAAE,UAAU,WAAW;GAC7B,UAAU,EAAE,UAAU,IAAI;GAC1B,cAAY,EAAE,aAAa;GAC3B,SAAS,EAAE;GACX,OAAO;IACL,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,YAAY,EAAE,SAAS;IACvB,QAAQ;IACR,cAAc;IACd,WAAW;IACX,QAAQ,EAAE,UAAU,YAAY;IACjC;IACD;IAfS,EAAE,GAgBN,CACT,GACD;;AAIP,yBAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureGrid.d.ts","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":[],"mappings":";;;;UAGiB,WAAA;SACR,OAAA,CAAM;gBACC,OAAA,CAAM;EAFL,IAAA,CAAA,EAGR,OAAA,CAAM,SAHa;;AAEZ,iBAIA,WAAA,CAJM;EAAA,KAAA;EAAA,OAAA;EAAA;CAAA,EAAA;EACb,KAAM,EAQN,WARM,EAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,CAAA,GAAA,CAAA;EAGR,SAAA,CAAA,EAAA,MAAW;CACzB,CAAA,EAOD,oBAAA,CAAA,GAAA,CAAA,OAPC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeatureGrid.js","names":[],"sources":["../../../ui/marketing/FeatureGrid.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from '../utils';\n\nexport interface FeatureItem {\n title: React.ReactNode;\n description?: React.ReactNode;\n icon?: React.ReactNode;\n}\n\nexport function FeatureGrid({\n items,\n columns = 3,\n className,\n}: {\n items: FeatureItem[];\n columns?: 2 | 3 | 4;\n className?: string;\n}) {\n const gridCols =\n columns === 4\n ? 'md:grid-cols-4'\n : columns === 2\n ? 'md:grid-cols-2'\n : 'md:grid-cols-3';\n return (\n <section className={cn('mx-auto max-w-6xl py-12', className)}>\n <div className={cn('grid grid-cols-1 gap-6', gridCols)}>\n {items.map((it, idx) => (\n <div key={idx} className=\"rounded-lg border p-6\">\n {it.icon && <div className=\"text-primary mb-3\">{it.icon}</div>}\n <h3 className=\"text-lg font-semibold\">{it.title}</h3>\n {it.description && (\n <p className=\"text-muted-foreground mt-2 text-base\">\n {it.description}\n </p>\n )}\n </div>\n ))}\n </div>\n </section>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,YAAY,EAC1B,OACA,UAAU,GACV,aAKC;CACD,MAAM,WACJ,YAAY,IACR,mBACA,YAAY,IACV,mBACA;AACR,QACE,oBAAC;EAAQ,WAAW,GAAG,2BAA2B,UAAU;YAC1D,oBAAC;GAAI,WAAW,GAAG,0BAA0B,SAAS;aACnD,MAAM,KAAK,IAAI,QACd,qBAAC;IAAc,WAAU;;KACtB,GAAG,QAAQ,oBAAC;MAAI,WAAU;gBAAqB,GAAG;OAAW;KAC9D,oBAAC;MAAG,WAAU;gBAAyB,GAAG;OAAW;KACpD,GAAG,eACF,oBAAC;MAAE,WAAU;gBACV,GAAG;OACF;;MANE,IAQJ,CACN;IACE;GACE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hero.d.ts","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":[],"mappings":";;;;iBAIgB,IAAA;;;;;;;SAOP,OAAA,CAAM;aACF,OAAA,CAAM;EARH,UAAI,CAAA,EAAA;IAClB,KAAA,EAAA,MAAA;IACA,IAAA,CAAA,EAAA,MAAA;IACA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EACA,CAAA;EACA,YAAA,CAAA,EAAA;IAEO,KAAM,EAAA,MAAA;IACF,IAAM,CAAA,EAAA,MAAA;IAIlB,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;IAAA,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Hero.js","names":[],"sources":["../../../ui/marketing/Hero.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button } from '../button';\nimport { cn } from '../utils';\n\nexport function Hero({\n title,\n subtitle,\n primaryCta,\n secondaryCta,\n className,\n}: {\n title: React.ReactNode;\n subtitle?: React.ReactNode;\n primaryCta?: { label: string; href?: string; onClick?: () => void };\n secondaryCta?: { label: string; href?: string; onClick?: () => void };\n className?: string;\n}) {\n return (\n <section className={cn('mx-auto max-w-4xl py-16 text-center', className)}>\n <h1 className=\"text-4xl font-bold tracking-tight md:text-5xl\">{title}</h1>\n {subtitle && (\n <p className=\"text-muted-foreground mt-4 text-lg md:text-xl\">\n {subtitle}\n </p>\n )}\n {(primaryCta || secondaryCta) && (\n <div className=\"mt-8 flex items-center justify-center gap-3\">\n {primaryCta &&\n (primaryCta.href ? (\n <Button asChild size=\"lg\">\n {}\n <a href={primaryCta.href}>{primaryCta.label}</a>\n </Button>\n ) : (\n <Button size=\"lg\" onClick={primaryCta.onClick}>\n {primaryCta.label}\n </Button>\n ))}\n {secondaryCta &&\n (secondaryCta.href ? (\n <Button variant=\"outline\" asChild size=\"lg\">\n {}\n <a href={secondaryCta.href}>{secondaryCta.label}</a>\n </Button>\n ) : (\n <Button\n variant=\"outline\"\n size=\"lg\"\n onClick={secondaryCta.onClick}\n >\n {secondaryCta.label}\n </Button>\n ))}\n </div>\n )}\n </section>\n );\n}\n"],"mappings":";;;;;;AAIA,SAAgB,KAAK,EACnB,OACA,UACA,YACA,cACA,aAOC;AACD,QACE,qBAAC;EAAQ,WAAW,GAAG,uCAAuC,UAAU;;GACtE,oBAAC;IAAG,WAAU;cAAiD;KAAW;GACzE,YACC,oBAAC;IAAE,WAAU;cACV;KACC;IAEJ,cAAc,iBACd,qBAAC;IAAI,WAAU;eACZ,eACE,WAAW,OACV,oBAAC;KAAO;KAAQ,MAAK;eAEnB,oBAAC;MAAE,MAAM,WAAW;gBAAO,WAAW;OAAU;MACzC,GAET,oBAAC;KAAO,MAAK;KAAK,SAAS,WAAW;eACnC,WAAW;MACL,GAEZ,iBACE,aAAa,OACZ,oBAAC;KAAO,SAAQ;KAAU;KAAQ,MAAK;eAErC,oBAAC;MAAE,MAAM,aAAa;gBAAO,aAAa;OAAU;MAC7C,GAET,oBAAC;KACC,SAAQ;KACR,MAAK;KACL,SAAS,aAAa;eAErB,aAAa;MACP;KAET;;GAEA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PricingTable.d.ts","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":[],"mappings":";;;UAIiB,WAAA;;;EAAA,OAAA,CAAA,EAAA,MAAW;EASZ,QAAA,EAAA,MAAY,EAAA;EAC1B,GAAA,CAAA,EAAA;IACA,KAAA,EAAA,MAAA;IAEO,IAAA,CAAA,EAAA,MAAA;IAER,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;EAAA,CAAA;;;iBANe,YAAA;;;;SAIP;;IAER,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PricingTable.js","names":[],"sources":["../../../ui/marketing/PricingTable.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button } from '../button';\nimport { cn } from '../utils';\n\nexport interface PricingTier {\n name: string;\n price: string;\n tagline?: string;\n features: string[];\n cta?: { label: string; href?: string; onClick?: () => void };\n highlighted?: boolean;\n}\n\nexport function PricingTable({\n tiers,\n className,\n}: {\n tiers: PricingTier[];\n className?: string;\n}) {\n return (\n <section className={cn('mx-auto max-w-6xl py-12', className)}>\n <div className=\"grid grid-cols-1 gap-6 md:grid-cols-3\">\n {tiers.map((t, idx) => (\n <div\n key={idx}\n className={cn(\n 'flex flex-col rounded-lg border p-6',\n t.highlighted && 'border-primary shadow-lg'\n )}\n >\n <div className=\"text-muted-foreground mb-2 text-base font-medium\">\n {t.name}\n </div>\n <div className=\"text-3xl font-semibold\">{t.price}</div>\n {t.tagline && (\n <div className=\"text-muted-foreground mt-1 text-base\">\n {t.tagline}\n </div>\n )}\n <ul className=\"mt-4 space-y-2 text-base\">\n {t.features.map((f, i) => (\n <li key={i} className=\"flex items-start gap-2\">\n <span className=\"bg-primary mt-1 h-1.5 w-1.5 rounded-full\" />\n <span>{f}</span>\n </li>\n ))}\n </ul>\n {t.cta && (\n <div className=\"mt-6\">\n {t.cta.href ? (\n <Button asChild className=\"w-full\">\n {}\n <a href={t.cta.href}>{t.cta.label}</a>\n </Button>\n ) : (\n <Button className=\"w-full\" onClick={t.cta.onClick}>\n {t.cta.label}\n </Button>\n )}\n </div>\n )}\n </div>\n ))}\n </div>\n <p className=\"text-muted-foreground mt-6 text-center text-base\">\n Usage-based tiers inspired by generous free allowances and per-unit\n pricing.\n </p>\n </section>\n );\n}\n"],"mappings":";;;;;;AAaA,SAAgB,aAAa,EAC3B,OACA,aAIC;AACD,QACE,qBAAC;EAAQ,WAAW,GAAG,2BAA2B,UAAU;aAC1D,oBAAC;GAAI,WAAU;aACZ,MAAM,KAAK,GAAG,QACb,qBAAC;IAEC,WAAW,GACT,uCACA,EAAE,eAAe,2BAClB;;KAED,oBAAC;MAAI,WAAU;gBACZ,EAAE;OACC;KACN,oBAAC;MAAI,WAAU;gBAA0B,EAAE;OAAY;KACtD,EAAE,WACD,oBAAC;MAAI,WAAU;gBACZ,EAAE;OACC;KAER,oBAAC;MAAG,WAAU;gBACX,EAAE,SAAS,KAAK,GAAG,MAClB,qBAAC;OAAW,WAAU;kBACpB,oBAAC,UAAK,WAAU,6CAA6C,EAC7D,oBAAC,oBAAM,IAAS;SAFT,EAGJ,CACL;OACC;KACJ,EAAE,OACD,oBAAC;MAAI,WAAU;gBACZ,EAAE,IAAI,OACL,oBAAC;OAAO;OAAQ,WAAU;iBAExB,oBAAC;QAAE,MAAM,EAAE,IAAI;kBAAO,EAAE,IAAI;SAAU;QAC/B,GAET,oBAAC;OAAO,WAAU;OAAS,SAAS,EAAE,IAAI;iBACvC,EAAE,IAAI;QACA;OAEP;;MAnCH,IAqCD,CACN;IACE,EACN,oBAAC;GAAE,WAAU;aAAmD;IAG5D;GACI"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menubar.d.ts","names":[],"sources":["../../ui/menubar.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"menubar.js","names":[],"sources":["../../ui/menubar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as MenubarPrimitive from '@radix-ui/react-menubar';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from './utils';\n\nfunction Menubar({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Root>) {\n return (\n <MenubarPrimitive.Root\n data-slot=\"menubar\"\n className={cn(\n 'bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-2xs',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarMenu({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Menu>) {\n return <MenubarPrimitive.Menu data-slot=\"menubar-menu\" {...props} />;\n}\n\nfunction MenubarGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Group>) {\n return <MenubarPrimitive.Group data-slot=\"menubar-group\" {...props} />;\n}\n\nfunction MenubarPortal({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Portal>) {\n return <MenubarPrimitive.Portal data-slot=\"menubar-portal\" {...props} />;\n}\n\nfunction MenubarRadioGroup({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioGroup>) {\n return (\n <MenubarPrimitive.RadioGroup data-slot=\"menubar-radio-group\" {...props} />\n );\n}\n\nfunction MenubarTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Trigger>) {\n return (\n <MenubarPrimitive.Trigger\n data-slot=\"menubar-trigger\"\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-xs px-2 py-1 text-sm font-medium outline-hidden select-none',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarContent({\n className,\n align = 'start',\n alignOffset = -4,\n sideOffset = 8,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Content>) {\n return (\n <MenubarPortal>\n <MenubarPrimitive.Content\n data-slot=\"menubar-content\"\n align={align}\n alignOffset={alignOffset}\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in 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 p-1 shadow-md',\n className\n )}\n {...props}\n />\n </MenubarPortal>\n );\n}\n\nfunction MenubarItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <MenubarPrimitive.Item\n data-slot=\"menubar-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"data-[variant=destructive]:*:[svg]:text-destructive! focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.CheckboxItem>) {\n return (\n <MenubarPrimitive.CheckboxItem\n data-slot=\"menubar-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.CheckboxItem>\n );\n}\n\nfunction MenubarRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.RadioItem>) {\n return (\n <MenubarPrimitive.RadioItem\n data-slot=\"menubar-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <MenubarPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </MenubarPrimitive.ItemIndicator>\n </span>\n {children}\n </MenubarPrimitive.RadioItem>\n );\n}\n\nfunction MenubarLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.Label\n data-slot=\"menubar-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-inset:pl-8',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Separator>) {\n return (\n <MenubarPrimitive.Separator\n data-slot=\"menubar-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction MenubarShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"menubar-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction MenubarSub({\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.Sub>) {\n return <MenubarPrimitive.Sub data-slot=\"menubar-sub\" {...props} />;\n}\n\nfunction MenubarSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <MenubarPrimitive.SubTrigger\n data-slot=\"menubar-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto h-4 w-4\" />\n </MenubarPrimitive.SubTrigger>\n );\n}\n\nfunction MenubarSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof MenubarPrimitive.SubContent>) {\n return (\n <MenubarPrimitive.SubContent\n data-slot=\"menubar-sub-content\"\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 min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Menubar,\n MenubarPortal,\n MenubarMenu,\n MenubarTrigger,\n MenubarContent,\n MenubarGroup,\n MenubarSeparator,\n MenubarLabel,\n MenubarItem,\n MenubarShortcut,\n MenubarCheckboxItem,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSub,\n MenubarSubTrigger,\n MenubarSubContent,\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../../ui/molecules/Autocomplete/index.tsx"],"sourcesContent":[],"mappings":";;;iBAyCgB,kBAAA,CAAA,GAAkB,oBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["statuses: Status[]","React"],"sources":["../../../../ui/molecules/Autocomplete/index.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { Button } from '../../button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '../../command';\nimport { Drawer, DrawerContent, DrawerTrigger } from '../../drawer';\nimport { Popover, PopoverContent, PopoverTrigger } from '../../popover';\nimport { useMediaQuery } from '../../use-media-query';\n\ninterface Status {\n value: string;\n label: string;\n}\n\nconst statuses: Status[] = [\n {\n value: 'backlog',\n label: 'Backlog',\n },\n {\n value: 'in progress',\n label: 'In Progress',\n },\n {\n value: 'done',\n label: 'Done',\n },\n {\n value: 'canceled',\n label: 'Canceled',\n },\n];\n\nexport function ComboBoxResponsive() {\n const [open, setOpen] = React.useState(false);\n const isDesktop = useMediaQuery('(min-width: 768px)');\n const [selectedStatus, setSelectedStatus] = React.useState<Status | null>(\n null\n );\n\n if (isDesktop) {\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" className=\"w-[150px] justify-start\">\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ Set status</>}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-0\" align=\"start\">\n <StatusList setOpen={setOpen} setSelectedStatus={setSelectedStatus} />\n </PopoverContent>\n </Popover>\n );\n }\n\n return (\n <Drawer open={open} onOpenChange={setOpen}>\n <DrawerTrigger asChild>\n <Button variant=\"outline\" className=\"w-[150px] justify-start\">\n {selectedStatus ? <>{selectedStatus.label}</> : <>+ Set status</>}\n </Button>\n </DrawerTrigger>\n <DrawerContent>\n <div className=\"mt-4 border-t\">\n <StatusList setOpen={setOpen} setSelectedStatus={setSelectedStatus} />\n </div>\n </DrawerContent>\n </Drawer>\n );\n}\n\nfunction StatusList({\n setOpen,\n setSelectedStatus,\n}: {\n setOpen: (open: boolean) => void;\n setSelectedStatus: (status: Status | null) => void;\n}) {\n return (\n <Command>\n <CommandInput placeholder=\"Filter status...\" />\n <CommandList>\n <CommandEmpty>No results found.</CommandEmpty>\n <CommandGroup>\n {statuses.map((status) => (\n <CommandItem\n key={status.value}\n value={status.value}\n onSelect={(value) => {\n setSelectedStatus(\n statuses.find((priority) => priority.value === value) || null\n );\n setOpen(false);\n }}\n >\n {status.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n );\n}\n"],"mappings":";;;;;;;;;;;AAsBA,MAAMA,WAAqB;CACzB;EACE,OAAO;EACP,OAAO;EACR;CACD;EACE,OAAO;EACP,OAAO;EACR;CACD;EACE,OAAO;EACP,OAAO;EACR;CACD;EACE,OAAO;EACP,OAAO;EACR;CACF;AAED,SAAgB,qBAAqB;CACnC,MAAM,CAAC,MAAM,WAAWC,QAAM,SAAS,MAAM;CAC7C,MAAM,YAAY,cAAc,qBAAqB;CACrD,MAAM,CAAC,gBAAgB,qBAAqBA,QAAM,SAChD,KACD;AAED,KAAI,UACF,QACE,qBAAC;EAAc;EAAM,cAAc;aACjC,oBAAC;GAAe;aACd,oBAAC;IAAO,SAAQ;IAAU,WAAU;cACjC,iBAAiB,0CAAG,eAAe,QAAS,GAAG,0CAAE,iBAAe;KAC1D;IACM,EACjB,oBAAC;GAAe,WAAU;GAAgB,OAAM;aAC9C,oBAAC;IAAoB;IAA4B;KAAqB;IACvD;GACT;AAId,QACE,qBAAC;EAAa;EAAM,cAAc;aAChC,oBAAC;GAAc;aACb,oBAAC;IAAO,SAAQ;IAAU,WAAU;cACjC,iBAAiB,0CAAG,eAAe,QAAS,GAAG,0CAAE,iBAAe;KAC1D;IACK,EAChB,oBAAC,2BACC,oBAAC;GAAI,WAAU;aACb,oBAAC;IAAoB;IAA4B;KAAqB;IAClE,GACQ;GACT;;AAIb,SAAS,WAAW,EAClB,SACA,qBAIC;AACD,QACE,qBAAC,sBACC,oBAAC,gBAAa,aAAY,qBAAqB,EAC/C,qBAAC,0BACC,oBAAC,0BAAa,sBAAgC,EAC9C,oBAAC,0BACE,SAAS,KAAK,WACb,oBAAC;EAEC,OAAO,OAAO;EACd,WAAW,UAAU;AACnB,qBACE,SAAS,MAAM,aAAa,SAAS,UAAU,MAAM,IAAI,KAC1D;AACD,WAAQ,MAAM;;YAGf,OAAO;IATH,OAAO,MAUA,CACd,GACW,IACH,IACN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchAndFilter.d.ts","names":[],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":[],"mappings":";;;;cAYa,iBAAiB,KAAA,CAAM,GAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SearchAndFilter.js","names":["SearchAndFilter: React.FC<SearchAndFilterProps>"],"sources":["../../../../ui/molecules/SearchAndFilter/SearchAndFilter.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { ChevronDown, ChevronUp, Filter } from 'lucide-react';\nimport { Button } from '../../button';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '../../collapsible';\nimport { SearchInput } from '../../atoms/SearchInput';\nimport { FilterSelect } from '../../atoms/FilterSelect';\nimport type { SearchAndFilterProps } from './types';\n\nexport const SearchAndFilter: React.FC<SearchAndFilterProps> = ({\n searchValue,\n onSearchChange,\n searchPlaceholder,\n filters = [],\n isLoading = false,\n disabled = false,\n className = '',\n collapsible = true,\n defaultCollapsed = false,\n}) => {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n\n const hasFilters = filters.length > 0;\n const activeFiltersCount = filters.filter((f) => f.value).length;\n\n // On mobile, show collapsible by default; on desktop, always show filters\n const shouldUseCollapsible = collapsible && hasFilters;\n\n console.log('SearchAndFilter', { filters });\n\n const FilterComponents = () => (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4\">\n {filters.map((filter) => (\n <FilterSelect\n key={filter.key}\n value={filter.value}\n options={filter.options}\n onChange={filter.onChange}\n label={filter.label}\n disabled={disabled || isLoading}\n showCounts={filter.showCounts}\n className=\"min-w-0\"\n />\n ))}\n </div>\n );\n\n return (\n <div className={`space-y-4 ${className}`}>\n {/* Search - Always visible */}\n <div className=\"flex flex-col gap-4 sm:flex-row\">\n <div className=\"flex-1\">\n <SearchInput\n value={searchValue}\n onChange={onSearchChange}\n placeholder={searchPlaceholder}\n disabled={disabled || isLoading}\n className=\"w-full\"\n />\n </div>\n\n {/* Filter toggle for mobile */}\n {shouldUseCollapsible && (\n <Collapsible\n open={!isCollapsed}\n onOpenChange={setIsCollapsed}\n className=\"sm:hidden\"\n >\n <CollapsibleTrigger asChild>\n <Button\n variant=\"outline\"\n className=\"sm:hidden\"\n disabled={disabled || isLoading}\n >\n <Filter className=\"mr-2 h-4 w-4\" />\n Filtres\n {activeFiltersCount > 0 && (\n <span className=\"bg-primary text-primary-foreground ml-2 flex h-5 w-5 items-center justify-center rounded-full text-sm\">\n {activeFiltersCount}\n </span>\n )}\n {isCollapsed ? (\n <ChevronDown className=\"ml-2 h-4 w-4\" />\n ) : (\n <ChevronUp className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </CollapsibleTrigger>\n <CollapsibleContent className=\"mt-4 space-y-4\">\n <FilterComponents />\n </CollapsibleContent>\n </Collapsible>\n )}\n </div>\n\n {/* Filters - Always visible on desktop, collapsible on mobile */}\n {hasFilters && (\n <div className=\"hidden sm:block\">\n <FilterComponents />\n </div>\n )}\n\n {/* Active filters summary */}\n {activeFiltersCount > 0 && (\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className=\"text-muted-foreground text-base\">\n Filtres actifs:\n </span>\n {filters\n .filter((f) => f.value)\n .map((filter) => {\n const selectedOption = filter.options.find(\n (opt) => opt.value === filter.value\n );\n return (\n <Button\n key={filter.key}\n variant=\"secondary\"\n size=\"sm\"\n onClick={() => filter.onChange('')}\n disabled={disabled || isLoading}\n className=\"h-7 px-2 text-sm\"\n >\n {filter.label}: {selectedOption?.label}\n <span className=\"ml-1\">×</span>\n </Button>\n );\n })}\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;;;AAYA,MAAaA,mBAAmD,EAC9D,aACA,gBACA,mBACA,UAAU,EAAE,EACZ,YAAY,OACZ,WAAW,OACX,YAAY,IACZ,cAAc,MACd,mBAAmB,YACf;CACJ,MAAM,CAAC,aAAa,kBAAkB,SAAS,iBAAiB;CAEhE,MAAM,aAAa,QAAQ,SAAS;CACpC,MAAM,qBAAqB,QAAQ,QAAQ,MAAM,EAAE,MAAM,CAAC;CAG1D,MAAM,uBAAuB,eAAe;AAE5C,SAAQ,IAAI,mBAAmB,EAAE,SAAS,CAAC;CAE3C,MAAM,yBACJ,oBAAC;EAAI,WAAU;YACZ,QAAQ,KAAK,WACZ,oBAAC;GAEC,OAAO,OAAO;GACd,SAAS,OAAO;GAChB,UAAU,OAAO;GACjB,OAAO,OAAO;GACd,UAAU,YAAY;GACtB,YAAY,OAAO;GACnB,WAAU;KAPL,OAAO,IAQZ,CACF;GACE;AAGR,QACE,qBAAC;EAAI,WAAW,aAAa;;GAE3B,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAI,WAAU;eACb,oBAAC;MACC,OAAO;MACP,UAAU;MACV,aAAa;MACb,UAAU,YAAY;MACtB,WAAU;OACV;MACE,EAGL,wBACC,qBAAC;KACC,MAAM,CAAC;KACP,cAAc;KACd,WAAU;gBAEV,oBAAC;MAAmB;gBAClB,qBAAC;OACC,SAAQ;OACR,WAAU;OACV,UAAU,YAAY;;QAEtB,oBAAC,UAAO,WAAU,iBAAiB;;QAElC,qBAAqB,KACpB,oBAAC;SAAK,WAAU;mBACb;UACI;QAER,cACC,oBAAC,eAAY,WAAU,iBAAiB,GAExC,oBAAC,aAAU,WAAU,iBAAiB;;QAEjC;OACU,EACrB,oBAAC;MAAmB,WAAU;gBAC5B,oBAAC,qBAAmB;OACD;MACT;KAEZ;GAGL,cACC,oBAAC;IAAI,WAAU;cACb,oBAAC,qBAAmB;KAChB;GAIP,qBAAqB,KACpB,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eAAkC;MAE3C,EACN,QACE,QAAQ,MAAM,EAAE,MAAM,CACtB,KAAK,WAAW;KACf,MAAM,iBAAiB,OAAO,QAAQ,MACnC,QAAQ,IAAI,UAAU,OAAO,MAC/B;AACD,YACE,qBAAC;MAEC,SAAQ;MACR,MAAK;MACL,eAAe,OAAO,SAAS,GAAG;MAClC,UAAU,YAAY;MACtB,WAAU;;OAET,OAAO;OAAM;OAAG,gBAAgB;OACjC,oBAAC;QAAK,WAAU;kBAAO;SAAQ;;QAR1B,OAAO,IASL;MAEX;KACA;;GAEJ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/molecules/SearchAndFilter/types.ts"],"sourcesContent":[],"mappings":";;;UAEiB,oBAAA;;EAAA,cAAA,EAAA,CAAA,KAAA,EAAoB,MAAA,EAAA,GAAA,IAWxB;;;;;;aAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkeletonList.d.ts","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":[],"mappings":";;;UAGU,KAAA;;;EAAA,aAAK,CAAA,EAAA,MAAA;AAMf;AACE,iBADc,YAAA,CACd;EAAA,KAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAGC,KAHD,CAAA,EAGM,oBAAA,CAAA,GAAA,CAAA,OAHN"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SkeletonList.js","names":[],"sources":["../../../ui/molecules/SkeletonList.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Skeleton } from '../skeleton';\n\ninterface Props {\n count?: number;\n className?: string;\n itemClassName?: string;\n}\n\nexport function SkeletonList({\n count = 6,\n className = '',\n itemClassName = '',\n}: Props) {\n return (\n <div className={`space-y-3 ${className}`}>\n {Array.from({ length: count }).map((_, i) => (\n <Skeleton key={i} className={`h-20 rounded-md ${itemClassName}`} />\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;AASA,SAAgB,aAAa,EAC3B,QAAQ,GACR,YAAY,IACZ,gBAAgB,MACR;AACR,QACE,oBAAC;EAAI,WAAW,aAAa;YAC1B,MAAM,KAAK,EAAE,QAAQ,OAAO,CAAC,CAAC,KAAK,GAAG,MACrC,oBAAC,YAAiB,WAAW,mBAAmB,mBAAjC,EAAoD,CACnE;GACE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav-layout.d.ts","names":[],"sources":["../../ui/nav-layout.tsx"],"sourcesContent":[],"mappings":";;;;;;cAYa;;;IAkBX,+BAAA,CAAA;AAlBW,UAoBI,aAAA,SAAsB,OAAA,CAAM,wBAF3C,CAAA,KAAA,CAAA,CAAA;EAEe,KAAA,CAAA,EAAA,IAAA,GAAA,IAAc,GAAA,IAAA,GAAQ,MAAA;EAKvB,OAAA,CAAA,EAAA,MAAQ,GAAA,IAAA,GAAA,IAAA;;AAEtB,iBAFc,QAAA,CAEd;EAAA,KAAA;EAAA,OAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAGC,aAHD,CAAA,EAGc,mBAAA,CAAA,GAAA,CAAA,OAHd;AACA,iBAYc,aAAA,CAZd;EAAA,KAAA;EAAA;CAAA,EAAA;EAEC,KAAA,CAAA,EAcO,OAAA,CAAM,SAdb;EAAa,KAAA,EAAA;IAAA,IAAA,EAAA,MAAA;IAUA,KAAA,EAAA,MAAa;IAC3B,WAAA,CAAA,EAAA,MAAA;EACA,CAAA,EAAA;CAEQ,CAAA,EAET,mBAAA,CAAA,GAAA,CAAA,OAFe;AAEf,iBA4Be,UAAA,CA5Bf;EAAA;CAAA,EAAA;EAAA,OAAA,EAAA;IA4Be,KAAA,CAAA,EAAA,MAAU;IA2CV,KAAA,EAAA;MACd,IAAA,EAAA,MAAA;MACA,KAAA,EAAA,MAAA;MACA,WAAA,CAAA,EAAA,MAAA;IACA,CAAA,EAAA;EACA,CAAA,EAAA;CACA,CAAA,EA1CD,mBAAA,CAAA,GAAA,CAAA,OA0CC;AACA,iBAPc,yBAAA,CAOd;EAAA,UAAA;EAAA,OAAA;EAAA,cAAA;EAAA,iBAAA;EAAA,SAAA;EAAA,YAAA;EAAA;CAAA,EAAA;EAaS,UAAM,EAAA;IAChB,GAAA,EAAA,MAAA;IAAA,KAAA,EAAA,MAAA;;;;;;;;;;;;WADU,OAAA,CAAM;IAChB,mBAAA,CAAA,GAAA,CAAA"}
@@ -1 +0,0 @@
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 './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,\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,WACA,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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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 './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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ListPage.d.ts","names":[],"sources":["../../../../ui/organisms/ListPage/ListPage.tsx"],"sourcesContent":[],"mappings":";;;;iBAWgB;;;;;;;;;;;;;;;;;;;;;GAqBb,cAAc,KAAE,oBAAA,CAAA,GAAA,CAAA"}