@lssm/lib.ui-kit-web 0.0.0-canary-20251120170226

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 (426) hide show
  1. package/README.md +73 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +0 -0
  4. package/dist/node_modules/sonner/dist/index.js +912 -0
  5. package/dist/node_modules/sonner/dist/index.js.map +1 -0
  6. package/dist/tsconfig.tsbuildinfo +1 -0
  7. package/dist/ui/accordion.d.ts +25 -0
  8. package/dist/ui/accordion.d.ts.map +1 -0
  9. package/dist/ui/accordion.js +49 -0
  10. package/dist/ui/accordion.js.map +1 -0
  11. package/dist/ui/alert-dialog.d.ts +49 -0
  12. package/dist/ui/alert-dialog.d.ts.map +1 -0
  13. package/dist/ui/alert-dialog.js +86 -0
  14. package/dist/ui/alert-dialog.js.map +1 -0
  15. package/dist/ui/alert.d.ts +25 -0
  16. package/dist/ui/alert.d.ts.map +1 -0
  17. package/dist/ui/alert.js +39 -0
  18. package/dist/ui/alert.js.map +1 -0
  19. package/dist/ui/aspect-ratio.d.ts +8 -0
  20. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  21. package/dist/ui/aspect-ratio.js +11 -0
  22. package/dist/ui/aspect-ratio.js.map +1 -0
  23. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  24. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  25. package/dist/ui/atoms/FilterSelect/FilterSelect.js +53 -0
  26. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  27. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  28. package/dist/ui/atoms/FilterSelect/index.js +3 -0
  29. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  30. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  31. package/dist/ui/atoms/FilterSelect/types.js +0 -0
  32. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  33. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  34. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +46 -0
  35. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  36. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  37. package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
  38. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  39. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  40. package/dist/ui/atoms/Pagination/Pagination.js +157 -0
  41. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  42. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  43. package/dist/ui/atoms/Pagination/index.js +3 -0
  44. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  45. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  46. package/dist/ui/atoms/Pagination/types.js +0 -0
  47. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  48. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  49. package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
  50. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  51. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  52. package/dist/ui/atoms/SearchInput/index.js +3 -0
  53. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  54. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  55. package/dist/ui/atoms/SearchInput/types.js +0 -0
  56. package/dist/ui/avatar.d.ts +20 -0
  57. package/dist/ui/avatar.d.ts.map +1 -0
  58. package/dist/ui/avatar.js +34 -0
  59. package/dist/ui/avatar.js.map +1 -0
  60. package/dist/ui/badge.d.ts +20 -0
  61. package/dist/ui/badge.d.ts.map +1 -0
  62. package/dist/ui/badge.js +27 -0
  63. package/dist/ui/badge.js.map +1 -0
  64. package/dist/ui/breadcrumb.d.ts +38 -0
  65. package/dist/ui/breadcrumb.d.ts.map +1 -0
  66. package/dist/ui/breadcrumb.js +72 -0
  67. package/dist/ui/breadcrumb.js.map +1 -0
  68. package/dist/ui/button.d.ts +23 -0
  69. package/dist/ui/button.d.ts.map +1 -0
  70. package/dist/ui/button.js +44 -0
  71. package/dist/ui/button.js.map +1 -0
  72. package/dist/ui/calendar.d.ts +27 -0
  73. package/dist/ui/calendar.d.ts.map +1 -0
  74. package/dist/ui/calendar.js +110 -0
  75. package/dist/ui/calendar.js.map +1 -0
  76. package/dist/ui/card.d.ts +35 -0
  77. package/dist/ui/card.d.ts.map +1 -0
  78. package/dist/ui/card.js +58 -0
  79. package/dist/ui/card.js.map +1 -0
  80. package/dist/ui/carousel.d.ts +48 -0
  81. package/dist/ui/carousel.d.ts.map +1 -0
  82. package/dist/ui/carousel.js +137 -0
  83. package/dist/ui/carousel.js.map +1 -0
  84. package/dist/ui/checkbox.d.ts +12 -0
  85. package/dist/ui/checkbox.d.ts.map +1 -0
  86. package/dist/ui/checkbox.js +26 -0
  87. package/dist/ui/checkbox.js.map +1 -0
  88. package/dist/ui/collapsible.d.ts +16 -0
  89. package/dist/ui/collapsible.d.ts.map +1 -0
  90. package/dist/ui/collapsible.js +29 -0
  91. package/dist/ui/collapsible.js.map +1 -0
  92. package/dist/ui/command.d.ts +53 -0
  93. package/dist/ui/command.d.ts.map +1 -0
  94. package/dist/ui/command.js +91 -0
  95. package/dist/ui/command.js.map +1 -0
  96. package/dist/ui/confirm-dialog.d.ts +31 -0
  97. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  98. package/dist/ui/confirm-dialog.js +34 -0
  99. package/dist/ui/confirm-dialog.js.map +1 -0
  100. package/dist/ui/context-menu.d.ts +35 -0
  101. package/dist/ui/context-menu.d.ts.map +1 -0
  102. package/dist/ui/context-menu.js +85 -0
  103. package/dist/ui/context-menu.js.map +1 -0
  104. package/dist/ui/cta.d.ts +15 -0
  105. package/dist/ui/cta.d.ts.map +1 -0
  106. package/dist/ui/cta.js +39 -0
  107. package/dist/ui/cta.js.map +1 -0
  108. package/dist/ui/date-picker.d.ts +26 -0
  109. package/dist/ui/date-picker.d.ts.map +1 -0
  110. package/dist/ui/date-picker.js +102 -0
  111. package/dist/ui/date-picker.js.map +1 -0
  112. package/dist/ui/date-range-picker.d.ts +26 -0
  113. package/dist/ui/date-range-picker.d.ts.map +1 -0
  114. package/dist/ui/date-range-picker.js +55 -0
  115. package/dist/ui/date-range-picker.js.map +1 -0
  116. package/dist/ui/datetime-picker.d.ts +28 -0
  117. package/dist/ui/datetime-picker.d.ts.map +1 -0
  118. package/dist/ui/datetime-picker.js +45 -0
  119. package/dist/ui/datetime-picker.js.map +1 -0
  120. package/dist/ui/dialog.d.ts +48 -0
  121. package/dist/ui/dialog.d.ts.map +1 -0
  122. package/dist/ui/dialog.js +91 -0
  123. package/dist/ui/dialog.js.map +1 -0
  124. package/dist/ui/drawer.d.ts +45 -0
  125. package/dist/ui/drawer.d.ts.map +1 -0
  126. package/dist/ui/drawer.js +83 -0
  127. package/dist/ui/drawer.js.map +1 -0
  128. package/dist/ui/dropdown-menu.d.ts +78 -0
  129. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  130. package/dist/ui/dropdown-menu.js +128 -0
  131. package/dist/ui/dropdown-menu.js.map +1 -0
  132. package/dist/ui/empty-state.d.ts +29 -0
  133. package/dist/ui/empty-state.d.ts.map +1 -0
  134. package/dist/ui/empty-state.js +43 -0
  135. package/dist/ui/empty-state.js.map +1 -0
  136. package/dist/ui/empty.d.ts +36 -0
  137. package/dist/ui/empty.d.ts.map +1 -0
  138. package/dist/ui/empty.js +62 -0
  139. package/dist/ui/empty.js.map +1 -0
  140. package/dist/ui/field.d.ts +65 -0
  141. package/dist/ui/field.d.ts.map +1 -0
  142. package/dist/ui/field.js +122 -0
  143. package/dist/ui/field.js.map +1 -0
  144. package/dist/ui/focus-on-route-change.d.ts +9 -0
  145. package/dist/ui/focus-on-route-change.d.ts.map +1 -0
  146. package/dist/ui/focus-on-route-change.js +17 -0
  147. package/dist/ui/focus-on-route-change.js.map +1 -0
  148. package/dist/ui/form.d.ts +47 -0
  149. package/dist/ui/form.d.ts.map +1 -0
  150. package/dist/ui/form.js +95 -0
  151. package/dist/ui/form.js.map +1 -0
  152. package/dist/ui/hover-card.d.ts +20 -0
  153. package/dist/ui/hover-card.d.ts.map +1 -0
  154. package/dist/ui/hover-card.js +37 -0
  155. package/dist/ui/hover-card.js.map +1 -0
  156. package/dist/ui/input-group.d.ts +44 -0
  157. package/dist/ui/input-group.d.ts.map +1 -0
  158. package/dist/ui/input-group.js +84 -0
  159. package/dist/ui/input-group.js.map +1 -0
  160. package/dist/ui/input-otp.d.ts +39 -0
  161. package/dist/ui/input-otp.d.ts.map +1 -0
  162. package/dist/ui/input-otp.js +47 -0
  163. package/dist/ui/input-otp.js.map +1 -0
  164. package/dist/ui/input.d.ts +13 -0
  165. package/dist/ui/input.d.ts.map +1 -0
  166. package/dist/ui/input.js +17 -0
  167. package/dist/ui/input.js.map +1 -0
  168. package/dist/ui/label.d.ts +12 -0
  169. package/dist/ui/label.d.ts.map +1 -0
  170. package/dist/ui/label.js +20 -0
  171. package/dist/ui/label.js.map +1 -0
  172. package/dist/ui/link.d.ts +9 -0
  173. package/dist/ui/link.d.ts.map +1 -0
  174. package/dist/ui/link.js +18 -0
  175. package/dist/ui/link.js.map +1 -0
  176. package/dist/ui/live-region.d.ts +17 -0
  177. package/dist/ui/live-region.d.ts.map +1 -0
  178. package/dist/ui/live-region.js +48 -0
  179. package/dist/ui/live-region.js.map +1 -0
  180. package/dist/ui/loading-button.d.ts +20 -0
  181. package/dist/ui/loading-button.d.ts.map +1 -0
  182. package/dist/ui/loading-button.js +21 -0
  183. package/dist/ui/loading-button.js.map +1 -0
  184. package/dist/ui/map/MapBase.d.ts +29 -0
  185. package/dist/ui/map/MapBase.d.ts.map +1 -0
  186. package/dist/ui/map/MapBase.js +48 -0
  187. package/dist/ui/map/MapBase.js.map +1 -0
  188. package/dist/ui/map/MapGeoJsonOverlay.d.ts +16 -0
  189. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -0
  190. package/dist/ui/map/MapGeoJsonOverlay.js +39 -0
  191. package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -0
  192. package/dist/ui/map/MapHeatmapH3.d.ts +18 -0
  193. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -0
  194. package/dist/ui/map/MapHeatmapH3.js +52 -0
  195. package/dist/ui/map/MapHeatmapH3.js.map +1 -0
  196. package/dist/ui/map/MapMarkers.d.ts +20 -0
  197. package/dist/ui/map/MapMarkers.d.ts.map +1 -0
  198. package/dist/ui/map/MapMarkers.js +35 -0
  199. package/dist/ui/map/MapMarkers.js.map +1 -0
  200. package/dist/ui/map/index.d.ts +5 -0
  201. package/dist/ui/map/index.js +6 -0
  202. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  203. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  204. package/dist/ui/marketing/FeatureGrid.js +35 -0
  205. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  206. package/dist/ui/marketing/Hero.d.ts +28 -0
  207. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  208. package/dist/ui/marketing/Hero.js +53 -0
  209. package/dist/ui/marketing/Hero.js.map +1 -0
  210. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  211. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  212. package/dist/ui/marketing/PricingTable.js +60 -0
  213. package/dist/ui/marketing/PricingTable.js.map +1 -0
  214. package/dist/ui/marketing/index.d.ts +4 -0
  215. package/dist/ui/marketing/index.js +5 -0
  216. package/dist/ui/menubar.d.ts +85 -0
  217. package/dist/ui/menubar.d.ts.map +1 -0
  218. package/dist/ui/menubar.js +138 -0
  219. package/dist/ui/menubar.js.map +1 -0
  220. package/dist/ui/molecules/Autocomplete/index.d.ts +7 -0
  221. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  222. package/dist/ui/molecules/Autocomplete/index.js +86 -0
  223. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  224. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  225. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  226. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +103 -0
  227. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  228. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  229. package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
  230. package/dist/ui/molecules/SearchAndFilter/types.d.ts +24 -0
  231. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  232. package/dist/ui/molecules/SearchAndFilter/types.js +0 -0
  233. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  234. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  235. package/dist/ui/molecules/SkeletonList.js +15 -0
  236. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  237. package/dist/ui/nav-layout.d.ts +71 -0
  238. package/dist/ui/nav-layout.d.ts.map +1 -0
  239. package/dist/ui/nav-layout.js +133 -0
  240. package/dist/ui/nav-layout.js.map +1 -0
  241. package/dist/ui/navigation-menu.d.ts +47 -0
  242. package/dist/ui/navigation-menu.d.ts.map +1 -0
  243. package/dist/ui/navigation-menu.js +83 -0
  244. package/dist/ui/navigation-menu.js.map +1 -0
  245. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  246. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  247. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +108 -0
  248. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  249. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  250. package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
  251. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  252. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  253. package/dist/ui/organisms/ListPage/ListPage.js +198 -0
  254. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  255. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  256. package/dist/ui/organisms/ListPage/index.js +3 -0
  257. package/dist/ui/organisms/ListPage/types.d.ts +41 -0
  258. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  259. package/dist/ui/organisms/ListPage/types.js +0 -0
  260. package/dist/ui/page-header.d.ts +27 -0
  261. package/dist/ui/page-header.d.ts.map +1 -0
  262. package/dist/ui/page-header.js +40 -0
  263. package/dist/ui/page-header.js.map +1 -0
  264. package/dist/ui/pagination.d.ts +50 -0
  265. package/dist/ui/pagination.d.ts.map +1 -0
  266. package/dist/ui/pagination.js +65 -0
  267. package/dist/ui/pagination.js.map +1 -0
  268. package/dist/ui/popover.d.ts +23 -0
  269. package/dist/ui/popover.d.ts.map +1 -0
  270. package/dist/ui/popover.js +40 -0
  271. package/dist/ui/popover.js.map +1 -0
  272. package/dist/ui/progress.d.ts +13 -0
  273. package/dist/ui/progress.d.ts.map +1 -0
  274. package/dist/ui/progress.js +25 -0
  275. package/dist/ui/progress.js.map +1 -0
  276. package/dist/ui/radio-group.d.ts +16 -0
  277. package/dist/ui/radio-group.d.ts.map +1 -0
  278. package/dist/ui/radio-group.js +33 -0
  279. package/dist/ui/radio-group.js.map +1 -0
  280. package/dist/ui/resizable.d.ts +36 -0
  281. package/dist/ui/resizable.d.ts.map +1 -0
  282. package/dist/ui/resizable.js +26 -0
  283. package/dist/ui/resizable.js.map +1 -0
  284. package/dist/ui/route-announcer.d.ts +11 -0
  285. package/dist/ui/route-announcer.d.ts.map +1 -0
  286. package/dist/ui/route-announcer.js +23 -0
  287. package/dist/ui/route-announcer.js.map +1 -0
  288. package/dist/ui/scroll-area.d.ts +18 -0
  289. package/dist/ui/scroll-area.d.ts.map +1 -0
  290. package/dist/ui/scroll-area.js +41 -0
  291. package/dist/ui/scroll-area.js.map +1 -0
  292. package/dist/ui/section.d.ts +27 -0
  293. package/dist/ui/section.d.ts.map +1 -0
  294. package/dist/ui/section.js +63 -0
  295. package/dist/ui/section.js.map +1 -0
  296. package/dist/ui/select.d.ts +52 -0
  297. package/dist/ui/select.d.ts.map +1 -0
  298. package/dist/ui/select.js +101 -0
  299. package/dist/ui/select.js.map +1 -0
  300. package/dist/ui/separator.d.ts +14 -0
  301. package/dist/ui/separator.d.ts.map +1 -0
  302. package/dist/ui/separator.js +22 -0
  303. package/dist/ui/separator.js.map +1 -0
  304. package/dist/ui/sheet.d.ts +41 -0
  305. package/dist/ui/sheet.d.ts.map +1 -0
  306. package/dist/ui/sheet.js +87 -0
  307. package/dist/ui/sheet.js.map +1 -0
  308. package/dist/ui/sidebar.d.ts +167 -0
  309. package/dist/ui/sidebar.d.ts.map +1 -0
  310. package/dist/ui/sidebar.js +380 -0
  311. package/dist/ui/sidebar.js.map +1 -0
  312. package/dist/ui/skeleton.d.ts +10 -0
  313. package/dist/ui/skeleton.d.ts.map +1 -0
  314. package/dist/ui/skeleton.js +15 -0
  315. package/dist/ui/skeleton.js.map +1 -0
  316. package/dist/ui/skip-link.d.ts +17 -0
  317. package/dist/ui/skip-link.d.ts.map +1 -0
  318. package/dist/ui/skip-link.js +17 -0
  319. package/dist/ui/skip-link.js.map +1 -0
  320. package/dist/ui/slider.d.ts +16 -0
  321. package/dist/ui/slider.d.ts.map +1 -0
  322. package/dist/ui/slider.js +41 -0
  323. package/dist/ui/slider.js.map +1 -0
  324. package/dist/ui/sonner.d.ts +10 -0
  325. package/dist/ui/sonner.d.ts.map +1 -0
  326. package/dist/ui/sonner.js +25 -0
  327. package/dist/ui/sonner.js.map +1 -0
  328. package/dist/ui/stack.d.ts +48 -0
  329. package/dist/ui/stack.d.ts.map +1 -0
  330. package/dist/ui/stack.js +158 -0
  331. package/dist/ui/stack.js.map +1 -0
  332. package/dist/ui/stat-card-group.d.ts +19 -0
  333. package/dist/ui/stat-card-group.d.ts.map +1 -0
  334. package/dist/ui/stat-card-group.js +39 -0
  335. package/dist/ui/stat-card-group.js.map +1 -0
  336. package/dist/ui/stepper.d.ts +23 -0
  337. package/dist/ui/stepper.d.ts.map +1 -0
  338. package/dist/ui/stepper.js +37 -0
  339. package/dist/ui/stepper.js.map +1 -0
  340. package/dist/ui/switch.d.ts +12 -0
  341. package/dist/ui/switch.d.ts.map +1 -0
  342. package/dist/ui/switch.js +24 -0
  343. package/dist/ui/switch.js.map +1 -0
  344. package/dist/ui/table.d.ts +39 -0
  345. package/dist/ui/table.d.ts.map +1 -0
  346. package/dist/ui/table.js +72 -0
  347. package/dist/ui/table.js.map +1 -0
  348. package/dist/ui/tabs.d.ts +24 -0
  349. package/dist/ui/tabs.d.ts.map +1 -0
  350. package/dist/ui/tabs.js +41 -0
  351. package/dist/ui/tabs.js.map +1 -0
  352. package/dist/ui/text.d.ts +16 -0
  353. package/dist/ui/text.d.ts.map +1 -0
  354. package/dist/ui/text.js +16 -0
  355. package/dist/ui/text.js.map +1 -0
  356. package/dist/ui/textarea.d.ts +12 -0
  357. package/dist/ui/textarea.d.ts.map +1 -0
  358. package/dist/ui/textarea.js +16 -0
  359. package/dist/ui/textarea.js.map +1 -0
  360. package/dist/ui/time-picker.d.ts +22 -0
  361. package/dist/ui/time-picker.d.ts.map +1 -0
  362. package/dist/ui/time-picker.js +82 -0
  363. package/dist/ui/time-picker.js.map +1 -0
  364. package/dist/ui/toast.d.ts +20 -0
  365. package/dist/ui/toast.d.ts.map +1 -0
  366. package/dist/ui/toast.js +63 -0
  367. package/dist/ui/toast.js.map +1 -0
  368. package/dist/ui/toaster.d.ts +7 -0
  369. package/dist/ui/toaster.d.ts.map +1 -0
  370. package/dist/ui/toaster.js +28 -0
  371. package/dist/ui/toaster.js.map +1 -0
  372. package/dist/ui/toggle-group.d.ts +24 -0
  373. package/dist/ui/toggle-group.d.ts.map +1 -0
  374. package/dist/ui/toggle-group.js +49 -0
  375. package/dist/ui/toggle-group.js.map +1 -0
  376. package/dist/ui/toggle.d.ts +20 -0
  377. package/dist/ui/toggle.d.ts.map +1 -0
  378. package/dist/ui/toggle.js +42 -0
  379. package/dist/ui/toggle.js.map +1 -0
  380. package/dist/ui/tooltip.d.ts +24 -0
  381. package/dist/ui/tooltip.d.ts.map +1 -0
  382. package/dist/ui/tooltip.js +41 -0
  383. package/dist/ui/tooltip.js.map +1 -0
  384. package/dist/ui/typography.d.ts +65 -0
  385. package/dist/ui/typography.d.ts.map +1 -0
  386. package/dist/ui/typography.js +87 -0
  387. package/dist/ui/typography.js.map +1 -0
  388. package/dist/ui/use-media-query.d.ts +5 -0
  389. package/dist/ui/use-media-query.d.ts.map +1 -0
  390. package/dist/ui/use-media-query.js +20 -0
  391. package/dist/ui/use-media-query.js.map +1 -0
  392. package/dist/ui/use-mobile.d.ts +5 -0
  393. package/dist/ui/use-mobile.d.ts.map +1 -0
  394. package/dist/ui/use-mobile.js +21 -0
  395. package/dist/ui/use-mobile.js.map +1 -0
  396. package/dist/ui/use-reduced-motion.d.ts +5 -0
  397. package/dist/ui/use-reduced-motion.d.ts.map +1 -0
  398. package/dist/ui/use-reduced-motion.js +18 -0
  399. package/dist/ui/use-reduced-motion.js.map +1 -0
  400. package/dist/ui/use-toast.d.ts +50 -0
  401. package/dist/ui/use-toast.d.ts.map +1 -0
  402. package/dist/ui/use-toast.js +123 -0
  403. package/dist/ui/use-toast.js.map +1 -0
  404. package/dist/ui/useListState.d.ts +34 -0
  405. package/dist/ui/useListState.d.ts.map +1 -0
  406. package/dist/ui/useListState.js +75 -0
  407. package/dist/ui/useListState.js.map +1 -0
  408. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  409. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  410. package/dist/ui/usecases/UseCaseCard.js +35 -0
  411. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  412. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  413. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  414. package/dist/ui/usecases/UserStoryCard.js +36 -0
  415. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  416. package/dist/ui/usecases/index.d.ts +3 -0
  417. package/dist/ui/usecases/index.js +4 -0
  418. package/dist/ui/utils.d.ts +7 -0
  419. package/dist/ui/utils.d.ts.map +1 -0
  420. package/dist/ui/utils.js +11 -0
  421. package/dist/ui/utils.js.map +1 -0
  422. package/dist/ui/visually-hidden.d.ts +10 -0
  423. package/dist/ui/visually-hidden.d.ts.map +1 -0
  424. package/dist/ui/visually-hidden.js +31 -0
  425. package/dist/ui/visually-hidden.js.map +1 -0
  426. package/package.json +222 -0
@@ -0,0 +1,53 @@
1
+ import { Dialog } from "./dialog.js";
2
+ import * as React$1 from "react";
3
+ import * as react_jsx_runtime92 from "react/jsx-runtime";
4
+ import { Command as Command$1 } from "cmdk";
5
+
6
+ //#region ui/command.d.ts
7
+ declare function Command({
8
+ className,
9
+ ...props
10
+ }: React$1.ComponentProps<typeof Command$1>): react_jsx_runtime92.JSX.Element;
11
+ declare function CommandDialog({
12
+ title,
13
+ description,
14
+ children,
15
+ className,
16
+ showCloseButton,
17
+ ...props
18
+ }: React$1.ComponentProps<typeof Dialog> & {
19
+ title?: string;
20
+ description?: string;
21
+ className?: string;
22
+ showCloseButton?: boolean;
23
+ }): react_jsx_runtime92.JSX.Element;
24
+ declare function CommandInput({
25
+ className,
26
+ ...props
27
+ }: React$1.ComponentProps<typeof Command$1.Input>): react_jsx_runtime92.JSX.Element;
28
+ declare function CommandList({
29
+ className,
30
+ ...props
31
+ }: React$1.ComponentProps<typeof Command$1.List>): react_jsx_runtime92.JSX.Element;
32
+ declare function CommandEmpty({
33
+ ...props
34
+ }: React$1.ComponentProps<typeof Command$1.Empty>): react_jsx_runtime92.JSX.Element;
35
+ declare function CommandGroup({
36
+ className,
37
+ ...props
38
+ }: React$1.ComponentProps<typeof Command$1.Group>): react_jsx_runtime92.JSX.Element;
39
+ declare function CommandSeparator({
40
+ className,
41
+ ...props
42
+ }: React$1.ComponentProps<typeof Command$1.Separator>): react_jsx_runtime92.JSX.Element;
43
+ declare function CommandItem({
44
+ className,
45
+ ...props
46
+ }: React$1.ComponentProps<typeof Command$1.Item>): react_jsx_runtime92.JSX.Element;
47
+ declare function CommandShortcut({
48
+ className,
49
+ ...props
50
+ }: React$1.ComponentProps<'span'>): react_jsx_runtime92.JSX.Element;
51
+ //#endregion
52
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
53
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","names":[],"sources":["../../ui/command.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAeS,OAAA;;;GAGN,OAAA,CAAM,sBAAsB,aAAiB,mBAAA,CAAA,GAAA,CAAA;iBAavC,aAAA;;;;;;;GAON,OAAA,CAAM,sBAAsB;;EAvBtB,WAAO,CAAA,EAAA,MAAA;EACd,SAAA,CAAA,EAAA,MAAA;EAE6B,eAAA,CAAA,EAAA,OAAA;CAA5B,CAAA,EAyBF,mBAAA,CAAA,GAAA,CAAA,OAzBQ;iBA4CA,YAAA,CA5CuC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+C7C,OAAA,CAAM,cA/CuC,CAAA,OA+CjB,SAAA,CAAiB,KA/CA,CAAA,CAAA,EA+CM,mBAAA,CAAA,GAAA,CAAA,OA/CN;iBAkEvC,WAAA,CAlEuC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqE7C,OAAA,CAAM,cArEuC,CAAA,OAqEjB,SAAA,CAAiB,IArEA,CAAA,CAAA,EAqEK,mBAAA,CAAA,GAAA,CAAA,OArEL;AAAA,iBAkFvC,YAAA,CArEa;EAAA,GAAA;AAAA,CAAA,EAuEnB,OAAA,CAAM,cAvEa,CAAA,OAuES,SAAA,CAAiB,KAvE1B,CAAA,CAAA,EAuEgC,mBAAA,CAAA,GAAA,CAAA,OAvEhC;iBAiFb,YAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmFC,OAAA,CAAM,cAnFP,CAAA,OAmF6B,SAAA,CAAiB,KAnF9C,CAAA,CAAA,EAmFoD,mBAAA,CAAA,GAAA,CAAA,OAnFpD;iBAgGO,gBAAA,CA/FP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkGC,OAAA,CAAM,cAlGP,CAAA,OAkG6B,SAAA,CAAiB,SAlG9C,CAAA,CAAA,EAkGwD,mBAAA,CAAA,GAAA,CAAA,OAlGxD;iBA4GO,WAAA,CA3GP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8GC,OAAA,CAAM,cA9GP,CAAA,OA8G6B,SAAA,CAAiB,IA9G9C,CAAA,CAAA,EA8GmD,mBAAA,CAAA,GAAA,CAAA,OA9GnD;iBA2HO,eAAA,CA1HP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6HC,OAAA,CAAM,cA7HP,CAAA,MAAA,CAAA,CAAA,EA6H6B,mBAAA,CAAA,GAAA,CAAA,OA7H7B"}
@@ -0,0 +1,91 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.js";
6
+ import "react";
7
+ import { SearchIcon } from "lucide-react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { Command as Command$1 } from "cmdk";
10
+
11
+ //#region ui/command.tsx
12
+ function Command({ className,...props }) {
13
+ return /* @__PURE__ */ jsx(Command$1, {
14
+ "data-slot": "command",
15
+ className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
16
+ ...props
17
+ });
18
+ }
19
+ function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true,...props }) {
20
+ return /* @__PURE__ */ jsxs(Dialog, {
21
+ ...props,
22
+ children: [/* @__PURE__ */ jsxs(DialogHeader, {
23
+ className: "sr-only",
24
+ children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
25
+ }), /* @__PURE__ */ jsx(DialogContent, {
26
+ className: cn("overflow-hidden p-0", className),
27
+ showCloseButton,
28
+ children: /* @__PURE__ */ jsx(Command, {
29
+ className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",
30
+ children
31
+ })
32
+ })]
33
+ });
34
+ }
35
+ function CommandInput({ className,...props }) {
36
+ return /* @__PURE__ */ jsxs("div", {
37
+ "data-slot": "command-input-wrapper",
38
+ className: "flex h-9 items-center gap-2 border-b px-3",
39
+ children: [/* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), /* @__PURE__ */ jsx(Command$1.Input, {
40
+ "data-slot": "command-input",
41
+ className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
42
+ ...props
43
+ })]
44
+ });
45
+ }
46
+ function CommandList({ className,...props }) {
47
+ return /* @__PURE__ */ jsx(Command$1.List, {
48
+ "data-slot": "command-list",
49
+ className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
50
+ ...props
51
+ });
52
+ }
53
+ function CommandEmpty({ ...props }) {
54
+ return /* @__PURE__ */ jsx(Command$1.Empty, {
55
+ "data-slot": "command-empty",
56
+ className: "py-6 text-center text-sm",
57
+ ...props
58
+ });
59
+ }
60
+ function CommandGroup({ className,...props }) {
61
+ return /* @__PURE__ */ jsx(Command$1.Group, {
62
+ "data-slot": "command-group",
63
+ className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
64
+ ...props
65
+ });
66
+ }
67
+ function CommandSeparator({ className,...props }) {
68
+ return /* @__PURE__ */ jsx(Command$1.Separator, {
69
+ "data-slot": "command-separator",
70
+ className: cn("bg-border -mx-1 h-px", className),
71
+ ...props
72
+ });
73
+ }
74
+ function CommandItem({ className,...props }) {
75
+ return /* @__PURE__ */ jsx(Command$1.Item, {
76
+ "data-slot": "command-item",
77
+ className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_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=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
78
+ ...props
79
+ });
80
+ }
81
+ function CommandShortcut({ className,...props }) {
82
+ return /* @__PURE__ */ jsx("span", {
83
+ "data-slot": "command-shortcut",
84
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
85
+ ...props
86
+ });
87
+ }
88
+
89
+ //#endregion
90
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
91
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","names":["CommandPrimitive"],"sources":["../../ui/command.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from './utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from './dialog';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn('overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_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=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":";;;;;;;;;;;AAeA,SAAS,QAAQ,EACf,UACA,GAAG,SAC6C;AAChD,QACE,oBAACA;EACC,aAAU;EACV,WAAW,GACT,6FACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,QAAQ,mBACR,cAAc,kCACd,UACA,WACA,kBAAkB,KAClB,GAAG,SAMF;AACD,QACE,qBAAC;EAAO,GAAI;aACV,qBAAC;GAAa,WAAU;cACtB,oBAAC,yBAAa,QAAoB,EAClC,oBAAC,+BAAmB,cAAgC;IACvC,EACf,oBAAC;GACC,WAAW,GAAG,uBAAuB,UAAU;GAC9B;aAEjB,oBAAC;IAAQ,WAAU;IAChB;KACO;IACI;GACT;;AAIb,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;AACtD,QACE,qBAAC;EACC,aAAU;EACV,WAAU;aAEV,oBAAC,cAAW,WAAU,+BAA+B,EACrD,oBAACA,UAAiB;GAChB,aAAU;GACV,WAAW,GACT,4JACA,UACD;GACD,GAAI;IACJ;GACE;;AAIV,SAAS,YAAY,EACnB,UACA,GAAG,SACkD;AACrD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,+DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAU;EACV,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;AACtD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,0NACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,UACA,GAAG,SACuD;AAC1D,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GAAG,wBAAwB,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,UACA,GAAG,SACkD;AACrD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,uYACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,UACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,31 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime102 from "react/jsx-runtime";
3
+
4
+ //#region ui/confirm-dialog.d.ts
5
+ interface ConfirmDialogProps {
6
+ open?: boolean;
7
+ onOpenChange?: (open: boolean) => void;
8
+ title: React$1.ReactNode;
9
+ description?: React$1.ReactNode;
10
+ confirmLabel?: string;
11
+ cancelLabel?: string;
12
+ variant?: 'default' | 'destructive';
13
+ isLoading?: boolean;
14
+ onConfirm: () => Promise<void> | void;
15
+ trigger?: React$1.ReactNode;
16
+ }
17
+ declare function ConfirmDialog({
18
+ open,
19
+ onOpenChange,
20
+ title,
21
+ description,
22
+ confirmLabel,
23
+ cancelLabel,
24
+ variant,
25
+ isLoading,
26
+ onConfirm,
27
+ trigger
28
+ }: ConfirmDialogProps): react_jsx_runtime102.JSX.Element;
29
+ //#endregion
30
+ export { ConfirmDialog, ConfirmDialogProps };
31
+ //# sourceMappingURL=confirm-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.d.ts","names":[],"sources":["../../ui/confirm-dialog.tsx"],"sourcesContent":[],"mappings":";;;;UAciB,kBAAA;;;EAAA,KAAA,EAGR,OAAA,CAAM,SAHoB;EAG1B,WAAM,CAAA,EACC,OAAA,CAAM,SADP;EACC,YAAM,CAAA,EAAA,MAAA;EAKH,WAAA,CAAA,EAAA,MAAA;EACP,OAAM,CAAA,EAAA,SAAA,GAAA,aAAA;EAAS,SAAA,CAAA,EAAA,OAAA;EAGX,SAAA,EAAA,GAAA,GAJG,OAIU,CAAA,IAAA,CAAA,GAAA,IAAA;EAC3B,OAAA,CAAA,EAJU,OAAA,CAAM,SAIhB;;AAEA,iBAHc,aAAA,CAGd;EAAA,IAAA;EAAA,YAAA;EAAA,KAAA;EAAA,WAAA;EAAA,YAAA;EAAA,WAAA;EAAA,OAAA;EAAA,SAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAQC,kBARD,CAAA,EAQmB,oBAAA,CAAA,GAAA,CAAA,OARnB"}
@@ -0,0 +1,34 @@
1
+ import { Button } from "./button.js";
2
+ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "./alert-dialog.js";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+
6
+ //#region ui/confirm-dialog.tsx
7
+ function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel = "Confirmer", cancelLabel = "Annuler", variant = "default", isLoading, onConfirm, trigger }) {
8
+ const handleConfirm = async () => {
9
+ await onConfirm();
10
+ };
11
+ return /* @__PURE__ */ jsxs(AlertDialog, {
12
+ open,
13
+ onOpenChange,
14
+ children: [trigger ? /* @__PURE__ */ jsx(AlertDialogTrigger, {
15
+ asChild: true,
16
+ children: trigger
17
+ }) : null, /* @__PURE__ */ jsxs(AlertDialogContent, { children: [/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: title }), description ? /* @__PURE__ */ jsx(AlertDialogDescription, { children: description }) : null] }), /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogCancel, {
18
+ disabled: isLoading,
19
+ children: cancelLabel
20
+ }), /* @__PURE__ */ jsx(AlertDialogAction, {
21
+ asChild: true,
22
+ children: /* @__PURE__ */ jsx(Button, {
23
+ onClick: handleConfirm,
24
+ disabled: isLoading,
25
+ className: variant === "destructive" ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : void 0,
26
+ children: isLoading ? "..." : confirmLabel
27
+ })
28
+ })] })] })]
29
+ });
30
+ }
31
+
32
+ //#endregion
33
+ export { ConfirmDialog };
34
+ //# sourceMappingURL=confirm-dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.js","names":[],"sources":["../../ui/confirm-dialog.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from './alert-dialog';\nimport { Button } from './button';\n\nexport interface ConfirmDialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: 'default' | 'destructive';\n isLoading?: boolean;\n onConfirm: () => Promise<void> | void;\n trigger?: React.ReactNode;\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = 'Confirmer',\n cancelLabel = 'Annuler',\n variant = 'default',\n isLoading,\n onConfirm,\n trigger,\n}: ConfirmDialogProps) {\n const handleConfirm = async () => {\n await onConfirm();\n };\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n {trigger ? (\n <AlertDialogTrigger asChild>{trigger}</AlertDialogTrigger>\n ) : null}\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description ? (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n ) : null}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isLoading}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction asChild>\n <Button\n onClick={handleConfirm}\n disabled={isLoading}\n className={\n variant === 'destructive'\n ? 'bg-destructive text-destructive-foreground hover:bg-destructive/90'\n : undefined\n }\n >\n {isLoading ? '...' : confirmLabel}\n </Button>\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":";;;;;;AA2BA,SAAgB,cAAc,EAC5B,MACA,cACA,OACA,aACA,eAAe,aACf,cAAc,WACd,UAAU,WACV,WACA,WACA,WACqB;CACrB,MAAM,gBAAgB,YAAY;AAChC,QAAM,WAAW;;AAGnB,QACE,qBAAC;EAAkB;EAAoB;aACpC,UACC,oBAAC;GAAmB;aAAS;IAA6B,GACxD,MACJ,qBAAC,iCACC,qBAAC,gCACC,oBAAC,8BAAkB,QAAyB,EAC3C,cACC,oBAAC,oCAAwB,cAAqC,GAC5D,QACc,EACpB,qBAAC,gCACC,oBAAC;GAAkB,UAAU;aAC1B;IACiB,EACpB,oBAAC;GAAkB;aACjB,oBAAC;IACC,SAAS;IACT,UAAU;IACV,WACE,YAAY,gBACR,uEACA;cAGL,YAAY,QAAQ;KACd;IACS,IACF,IACD;GACT"}
@@ -0,0 +1,35 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime104 from "react/jsx-runtime";
3
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
4
+
5
+ //#region ui/context-menu.d.ts
6
+ declare const ContextMenu: React$1.FC<ContextMenuPrimitive.ContextMenuProps>;
7
+ declare const ContextMenuTrigger: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React$1.RefAttributes<HTMLSpanElement>>;
8
+ declare const ContextMenuGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
9
+ declare const ContextMenuPortal: React$1.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
10
+ declare const ContextMenuSub: React$1.FC<ContextMenuPrimitive.ContextMenuSubProps>;
11
+ declare const ContextMenuRadioGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
12
+ declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
13
+ inset?: boolean;
14
+ } & React$1.RefAttributes<HTMLDivElement>>;
15
+ declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
16
+ declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
17
+ declare const ContextMenuItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
18
+ inset?: boolean;
19
+ } & React$1.RefAttributes<HTMLDivElement>>;
20
+ declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
21
+ declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
22
+ declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
23
+ inset?: boolean;
24
+ } & React$1.RefAttributes<HTMLDivElement>>;
25
+ declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
26
+ declare const ContextMenuShortcut: {
27
+ ({
28
+ className,
29
+ ...props
30
+ }: React$1.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime104.JSX.Element;
31
+ displayName: string;
32
+ };
33
+ //#endregion
34
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
35
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","names":[],"sources":["../../ui/context-menu.tsx"],"sourcesContent":[],"mappings":";;;;;cAQM,aAAW,OAAA,CAAA,GAAA,oBAAA,CAAA;cAEX,oBAAkB,OAAA,CAAA,0BAAA,oBAAA,CAAA,0BAAA,OAAA,CAAA,cAAA;cAElB,kBAAgB,OAAA,CAAA,0BAAA,oBAAA,CAAA,wBAAA,OAAA,CAAA,cAAA;AAT+C,cAW/D,iBANW,EAMM,OAAA,CAAA,EANN,CAMM,oBAAA,CAAA,sBANN,CAAA;AAAA,cAQX,cANiD,EAMnC,OAAA,CAAA,EANmC,CAMnC,oBAAA,CAAA,mBANmC,CAAA;cAQjD,qBARkB,EAQG,OAAA,CAAA,yBARH,CAQG,oBAAA,CAAA,0BARH,GAQG,OAAA,CAAA,aARH,CAQG,cARH,CAAA,CAAA;cAUlB,qBAVkB,EAUG,OAAA,CAAA,yBAVH,CAUG,IAVH,CAUG,oBAAA,CAAA,0BAVH,GAUG,OAAA,CAAA,aAVH,CAUG,cAVH,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;cA+BlB,qBA/BkB,EA+BG,OAAA,CAAA,yBA/BH,CA+BG,IA/BH,CA+BG,oBAAA,CAAA,0BA/BH,GA+BG,OAAA,CAAA,aA/BH,CA+BG,cA/BH,CAAA,EAAA,KAAA,CAAA,GA+BG,OAAA,CAAA,aA/BH,CA+BG,cA/BH,CAAA,CAAA;AAAA,cA8ClB,kBA5C6C,EA4C3B,OAAA,CAAA,yBA5C2B,CA4C3B,IA5C2B,CA4C3B,oBAAA,CAAA,uBA5C2B,GA4C3B,OAAA,CAAA,aA5C2B,CA4C3B,cA5C2B,CAAA,EAAA,KAAA,CAAA,GA4C3B,OAAA,CAAA,aA5C2B,CA4C3B,cA5C2B,CAAA,CAAA;cA6D7C,eA7DgB,EA6DD,OAAA,CAAA,yBA7DC,CA6DD,IA7DC,CA6DD,oBAAA,CAAA,oBA7DC,GA6DD,OAAA,CAAA,aA7DC,CA6DD,cA7DC,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;cA+EhB,uBA/EgB,EA+EO,OAAA,CAAA,yBA/EP,CA+EO,IA/EP,CA+EO,oBAAA,CAAA,4BA/EP,GA+EO,OAAA,CAAA,aA/EP,CA+EO,cA/EP,CAAA,EAAA,KAAA,CAAA,GA+EO,OAAA,CAAA,aA/EP,CA+EO,cA/EP,CAAA,CAAA;cAuGhB,oBAvGgB,EAuGI,OAAA,CAAA,yBAvGJ,CAuGI,IAvGJ,CAuGI,oBAAA,CAAA,yBAvGJ,GAuGI,OAAA,CAAA,aAvGJ,CAuGI,cAvGJ,CAAA,EAAA,KAAA,CAAA,GAuGI,OAAA,CAAA,aAvGJ,CAuGI,cAvGJ,CAAA,CAAA;AAAA,cA6HhB,gBA3H+C,EA2H/B,OAAA,CAAA,yBA3HC,CA2HD,IA3HC,CA2HD,oBAAA,CAAA,qBA3HC,GA2HD,OAAA,CAAA,aA3HC,CA2HD,cA3HC,CAAA,EAAA,KAAA,CAAA,GAAA;EAEjB,KAAA,CAAA,EAAA,OAAA;AAAc,CAAA,wBAEd,eAAuD,CAAA,CAAA;cAyIvD,oBAzIqB,EAyID,OAAA,CAAA,yBAzIC,CAyID,IAzIC,CAyID,oBAAA,CAAA,yBAzIC,GAyID,OAAA,CAAA,aAzIC,CAyID,cAzIC,CAAA,EAAA,KAAA,CAAA,GAyID,OAAA,CAAA,aAzIC,CAyID,cAzIC,CAAA,CAAA;cAqJrB,mBArJqB,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAwJxB,OAAA,CAAM,cAxJkB,CAwJH,eAxJG,CAAA,CAAA,EAwJa,oBAAA,CAAA,GAAA,CAAA,OAxJb;EAAA,WAAA,EAAA,MAAA;CAAA"}
@@ -0,0 +1,85 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import * as React$1 from "react";
6
+ import { Check, ChevronRight, Circle } from "lucide-react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
9
+
10
+ //#region ui/context-menu.tsx
11
+ const ContextMenu = ContextMenuPrimitive.Root;
12
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
13
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
14
+ const ContextMenuPortal = ContextMenuPrimitive.Portal;
15
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
16
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
17
+ const ContextMenuSubTrigger = React$1.forwardRef(({ className, inset, children,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, {
18
+ ref,
19
+ className: cn("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-base outline-hidden select-none", inset && "pl-8", className),
20
+ ...props,
21
+ children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })]
22
+ }));
23
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
24
+ const ContextMenuSubContent = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, {
25
+ ref,
26
+ className: cn("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 overflow-hidden rounded-md border p-1 shadow-md", className),
27
+ ...props
28
+ }));
29
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
30
+ const ContextMenuContent = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, {
31
+ ref,
32
+ className: cn("bg-popover text-popover-foreground animate-in fade-in-80 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 overflow-hidden rounded-md border p-1 shadow-md", className),
33
+ ...props
34
+ }) }));
35
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
36
+ const ContextMenuItem = React$1.forwardRef(({ className, inset,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, {
37
+ ref,
38
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", inset && "pl-8", className),
39
+ ...props
40
+ }));
41
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
42
+ const ContextMenuCheckboxItem = React$1.forwardRef(({ className, children, checked,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, {
43
+ ref,
44
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", className),
45
+ checked,
46
+ ...props,
47
+ children: [/* @__PURE__ */ jsx("span", {
48
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
49
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) })
50
+ }), children]
51
+ }));
52
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
53
+ const ContextMenuRadioItem = React$1.forwardRef(({ className, children,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, {
54
+ ref,
55
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", className),
56
+ ...props,
57
+ children: [/* @__PURE__ */ jsx("span", {
58
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
59
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) })
60
+ }), children]
61
+ }));
62
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
63
+ const ContextMenuLabel = React$1.forwardRef(({ className, inset,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, {
64
+ ref,
65
+ className: cn("text-foreground px-2 py-1.5 text-base font-semibold", inset && "pl-8", className),
66
+ ...props
67
+ }));
68
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
69
+ const ContextMenuSeparator = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, {
70
+ ref,
71
+ className: cn("bg-border -mx-1 my-1 h-px", className),
72
+ ...props
73
+ }));
74
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
75
+ const ContextMenuShortcut = ({ className,...props }) => {
76
+ return /* @__PURE__ */ jsx("span", {
77
+ className: cn("text-muted-foreground ml-auto text-sm tracking-widest", className),
78
+ ...props
79
+ });
80
+ };
81
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
82
+
83
+ //#endregion
84
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
85
+ //# sourceMappingURL=context-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.js","names":["React"],"sources":["../../ui/context-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\n\nimport { cn } from './utils';\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\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-base outline-hidden select-none',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\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 overflow-hidden rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground animate-in fade-in-80 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 overflow-hidden rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n 'text-foreground px-2 py-1.5 text-base font-semibold',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n 'text-muted-foreground ml-auto text-sm tracking-widest',\n className\n )}\n {...props}\n />\n );\n};\nContextMenuShortcut.displayName = 'ContextMenuShortcut';\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n"],"mappings":";;;;;;;;;;AAQA,MAAM,cAAc,qBAAqB;AAEzC,MAAM,qBAAqB,qBAAqB;AAEhD,MAAM,mBAAmB,qBAAqB;AAE9C,MAAM,oBAAoB,qBAAqB;AAE/C,MAAM,iBAAiB,qBAAqB;AAE5C,MAAM,wBAAwB,qBAAqB;AAEnD,MAAM,wBAAwBA,QAAM,YAKjC,EAAE,WAAW,OAAO,SAAU,GAAG,SAAS,QAC3C,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,kNACA,SAAS,QACT,UACD;CACD,GAAI;YAEH,UACD,oBAAC,gBAAa,WAAU,oBAAoB;EACZ,CAClC;AACF,sBAAsB,cAAc,qBAAqB,WAAW;AAEpE,MAAM,wBAAwBA,QAAM,YAGjC,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,qbACA,UACD;CACD,GAAI;EACJ,CACF;AACF,sBAAsB,cAAc,qBAAqB,WAAW;AAEpE,MAAM,qBAAqBA,QAAM,YAG9B,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB,oBACpB,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,2cACA,UACD;CACD,GAAI;EACJ,GAC0B,CAC9B;AACF,mBAAmB,cAAc,qBAAqB,QAAQ;AAE9D,MAAM,kBAAkBA,QAAM,YAK3B,EAAE,WAAW,MAAO,GAAG,SAAS,QACjC,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,iNACA,SAAS,QACT,UACD;CACD,GAAI;EACJ,CACF;AACF,gBAAgB,cAAc,qBAAqB,KAAK;AAExD,MAAM,0BAA0BA,QAAM,YAGnC,EAAE,WAAW,UAAU,QAAS,GAAG,SAAS,QAC7C,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,sNACA,UACD;CACQ;CACT,GAAI;YAEJ,oBAAC;EAAK,WAAU;YACd,oBAAC,qBAAqB,2BACpB,oBAAC,SAAM,WAAU,YAAY,GACM;GAChC,EACN;EACiC,CACpC;AACF,wBAAwB,cACtB,qBAAqB,aAAa;AAEpC,MAAM,uBAAuBA,QAAM,YAGhC,EAAE,WAAW,SAAU,GAAG,SAAS,QACpC,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,sNACA,UACD;CACD,GAAI;YAEJ,oBAAC;EAAK,WAAU;YACd,oBAAC,qBAAqB,2BACpB,oBAAC,UAAO,WAAU,yBAAyB,GACR;GAChC,EACN;EAC8B,CACjC;AACF,qBAAqB,cAAc,qBAAqB,UAAU;AAElE,MAAM,mBAAmBA,QAAM,YAK5B,EAAE,WAAW,MAAO,GAAG,SAAS,QACjC,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,uDACA,SAAS,QACT,UACD;CACD,GAAI;EACJ,CACF;AACF,iBAAiB,cAAc,qBAAqB,MAAM;AAE1D,MAAM,uBAAuBA,QAAM,YAGhC,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB;CACf;CACL,WAAW,GAAG,6BAA6B,UAAU;CACrD,GAAI;EACJ,CACF;AACF,qBAAqB,cAAc,qBAAqB,UAAU;AAElE,MAAM,uBAAuB,EAC3B,UACA,GAAG,YACwC;AAC3C,QACE,oBAAC;EACC,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAGN,oBAAoB,cAAc"}
@@ -0,0 +1,15 @@
1
+ import { ButtonProps } from "./button.js";
2
+ import * as React$1 from "react";
3
+
4
+ //#region ui/cta.d.ts
5
+ type CtaProps = ButtonProps & {
6
+ capture?: (cta: string) => void;
7
+ ctaName?: string;
8
+ as?: 'button' | 'a';
9
+ href?: string;
10
+ children?: React$1.ReactNode;
11
+ };
12
+ declare const Cta: React$1.ForwardRefExoticComponent<Omit<CtaProps, "ref"> & React$1.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
13
+ //#endregion
14
+ export { Cta, CtaProps };
15
+ //# sourceMappingURL=cta.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cta.d.ts","names":[],"sources":["../../ui/cta.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,QAAA,GAAW;;EAAX,OAAA,CAAA,EAAA,MAAQ;EAQP,EAAA,CAAA,EAAA,QAyDZ,GAAA,GAAA;EAzDe,IAAA,CAAA,EAAA,MAAA;EAAA,QAAA,CAAA,EAHH,OAAA,CAAM,SAGH;CAAA;AAAA,cAAH,GAAG,EAAA,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,QAAA,EAAA,KAAA,CAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA,GAAA,iBAAA,CAAA,CAAA"}
package/dist/ui/cta.js ADDED
@@ -0,0 +1,39 @@
1
+ import { cn } from "./utils.js";
2
+ import { Button } from "./button.js";
3
+ import * as React$1 from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
+ //#region ui/cta.tsx
7
+ const Cta = React$1.forwardRef(({ capture, ctaName, className, as = "button", href, onClick, size = "lg", children,...props }, ref) => {
8
+ const handleClick = (e) => {
9
+ if (ctaName && capture) try {
10
+ capture(ctaName);
11
+ } catch {}
12
+ onClick?.(e);
13
+ };
14
+ if (as === "a") return /* @__PURE__ */ jsx(Button, {
15
+ asChild: true,
16
+ size,
17
+ className: cn("min-h-[44px]", className),
18
+ ...props,
19
+ children: /* @__PURE__ */ jsx("a", {
20
+ href,
21
+ onClick: handleClick,
22
+ ref,
23
+ children
24
+ })
25
+ });
26
+ return /* @__PURE__ */ jsx(Button, {
27
+ size,
28
+ className: cn("min-h-[44px]", className),
29
+ onClick: handleClick,
30
+ ref,
31
+ ...props,
32
+ children
33
+ });
34
+ });
35
+ Cta.displayName = "Cta";
36
+
37
+ //#endregion
38
+ export { Cta };
39
+ //# sourceMappingURL=cta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cta.js","names":["React","handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n >"],"sources":["../../ui/cta.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { cn } from './utils';\n\nexport type CtaProps = ButtonProps & {\n capture?: (cta: string) => void;\n ctaName?: string;\n as?: 'button' | 'a';\n href?: string;\n children?: React.ReactNode;\n};\n\nexport const Cta = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n CtaProps\n>(\n (\n {\n capture,\n ctaName,\n className,\n as = 'button',\n href,\n onClick,\n size = 'lg',\n children,\n ...props\n },\n ref\n ) => {\n const handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n > = (e) => {\n if (ctaName && capture) {\n try {\n capture(ctaName);\n } catch {}\n }\n onClick?.(e as any);\n };\n\n if (as === 'a') {\n return (\n <Button\n asChild\n size={size}\n className={cn('min-h-[44px]', className)}\n {...props}\n >\n {}\n <a href={href} onClick={handleClick} ref={ref as any}>\n {children}\n </a>\n </Button>\n );\n }\n\n return (\n <Button\n size={size}\n className={cn('min-h-[44px]', className)}\n onClick={handleClick as any}\n ref={ref as any}\n {...props}\n >\n {children}\n </Button>\n );\n }\n);\nCta.displayName = 'Cta';\n"],"mappings":";;;;;;AAYA,MAAa,MAAMA,QAAM,YAKrB,EACE,SACA,SACA,WACA,KAAK,UACL,MACA,SACA,OAAO,MACP,SACA,GAAG,SAEL,QACG;CACH,MAAMC,eAED,MAAM;AACT,MAAI,WAAW,QACb,KAAI;AACF,WAAQ,QAAQ;UACV;AAEV,YAAU,EAAS;;AAGrB,KAAI,OAAO,IACT,QACE,oBAAC;EACC;EACM;EACN,WAAW,GAAG,gBAAgB,UAAU;EACxC,GAAI;YAGJ,oBAAC;GAAQ;GAAM,SAAS;GAAkB;GACvC;IACC;GACG;AAIb,QACE,oBAAC;EACO;EACN,WAAW,GAAG,gBAAgB,UAAU;EACxC,SAAS;EACJ;EACL,GAAI;EAEH;GACM;EAGd;AACD,IAAI,cAAc"}
@@ -0,0 +1,26 @@
1
+ import * as react_jsx_runtime106 from "react/jsx-runtime";
2
+
3
+ //#region ui/date-picker.d.ts
4
+ interface DatePickerProps {
5
+ value: Date | null;
6
+ onChange: (date: Date | null) => void;
7
+ disabled?: boolean;
8
+ minDate?: Date;
9
+ maxDate?: Date;
10
+ placeholder?: string;
11
+ className?: string;
12
+ language?: string;
13
+ }
14
+ declare function DatePicker({
15
+ value,
16
+ onChange,
17
+ disabled,
18
+ minDate,
19
+ maxDate,
20
+ placeholder,
21
+ className,
22
+ language
23
+ }: DatePickerProps): react_jsx_runtime106.JSX.Element;
24
+ //#endregion
25
+ export { DatePicker, DatePickerProps };
26
+ //# sourceMappingURL=date-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.d.ts","names":[],"sources":["../../ui/date-picker.tsx"],"sourcesContent":[],"mappings":";;;UAUiB,eAAA;SACR;mBACU;EAFF,QAAA,CAAA,EAAA,OAAe;EACvB,OAAA,CAAA,EAGG,IAHH;EACU,OAAA,CAAA,EAGP,IAHO;EAEP,WAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,MAAA;EAAI,QAAA,CAAA,EAAA,MAAA;AAMhB;AACE,iBADc,UAAA,CACd;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA,WAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAQC,eARD,CAAA,EAQgB,oBAAA,CAAA,GAAA,CAAA,OARhB"}
@@ -0,0 +1,102 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import { Button } from "./button.js";
6
+ import { Calendar } from "./calendar.js";
7
+ import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
8
+ import { Input } from "./input.js";
9
+ import * as React$1 from "react";
10
+ import { CalendarIcon } from "lucide-react";
11
+ import { jsx, jsxs } from "react/jsx-runtime";
12
+
13
+ //#region ui/date-picker.tsx
14
+ function DatePicker({ value, onChange, disabled, minDate, maxDate, placeholder = "Select date", className, language }) {
15
+ const [open, setOpen] = React$1.useState(false);
16
+ const [month, setMonth] = React$1.useState(value ?? /* @__PURE__ */ new Date());
17
+ const [textValue, setTextValue] = React$1.useState(formatDate(value));
18
+ React$1.useEffect(() => {
19
+ setTextValue(formatDate(value));
20
+ if (value) setMonth(value);
21
+ }, [value]);
22
+ function formatDate(date) {
23
+ if (!date) return "";
24
+ return date.toLocaleDateString(language, {
25
+ day: "2-digit",
26
+ month: "long",
27
+ year: "numeric"
28
+ });
29
+ }
30
+ function isValidDate(date) {
31
+ if (!date) return false;
32
+ return !isNaN(date.getTime());
33
+ }
34
+ function isWithinRange(date) {
35
+ if (minDate && date < minDate) return false;
36
+ if (maxDate && date > maxDate) return false;
37
+ return true;
38
+ }
39
+ return /* @__PURE__ */ jsxs(Popover, {
40
+ open,
41
+ onOpenChange: setOpen,
42
+ children: [/* @__PURE__ */ jsxs("div", {
43
+ className: cn("relative w-full", className),
44
+ children: [/* @__PURE__ */ jsx(Input, {
45
+ value: textValue,
46
+ placeholder,
47
+ onChange: (e) => {
48
+ const nextText = e.currentTarget.value;
49
+ setTextValue(nextText);
50
+ const parsed = new Date(nextText);
51
+ if (isValidDate(parsed) && isWithinRange(parsed)) {
52
+ onChange(parsed);
53
+ setMonth(parsed);
54
+ }
55
+ },
56
+ onKeyDown: (e) => {
57
+ if (e.key === "ArrowDown") {
58
+ e.preventDefault();
59
+ setOpen(true);
60
+ }
61
+ },
62
+ disabled,
63
+ className: cn("pr-10")
64
+ }), /* @__PURE__ */ jsx(PopoverTrigger, {
65
+ asChild: true,
66
+ children: /* @__PURE__ */ jsx(Button, {
67
+ type: "button",
68
+ variant: "ghost",
69
+ size: "icon",
70
+ className: "absolute top-1/2 right-1 -translate-y-1/2",
71
+ disabled,
72
+ "aria-label": "Open date picker",
73
+ children: /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4" })
74
+ })
75
+ })]
76
+ }), /* @__PURE__ */ jsx(PopoverContent, {
77
+ className: "w-auto overflow-hidden p-0",
78
+ align: "end",
79
+ sideOffset: 10,
80
+ alignOffset: -8,
81
+ children: /* @__PURE__ */ jsx(Calendar, {
82
+ mode: "single",
83
+ selected: value ?? void 0,
84
+ captionLayout: "dropdown",
85
+ month,
86
+ onMonthChange: setMonth,
87
+ onSelect: (d) => {
88
+ onChange(d ?? null);
89
+ setTextValue(formatDate(d ?? null));
90
+ if (d) setOpen(false);
91
+ },
92
+ fromDate: minDate,
93
+ toDate: maxDate,
94
+ initialFocus: true
95
+ })
96
+ })]
97
+ });
98
+ }
99
+
100
+ //#endregion
101
+ export { DatePicker };
102
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"date-picker.js","names":["React"],"sources":["../../ui/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { CalendarIcon } from 'lucide-react';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\nimport { Button } from './button';\nimport { Calendar } from './calendar';\nimport { Input } from './input';\nimport { cn } from './utils';\n\nexport interface DatePickerProps {\n value: Date | null;\n onChange: (date: Date | null) => void;\n disabled?: boolean;\n minDate?: Date;\n maxDate?: Date;\n placeholder?: string;\n className?: string;\n language?: string;\n}\n\nexport function DatePicker({\n value,\n onChange,\n disabled,\n minDate,\n maxDate,\n placeholder = 'Select date',\n className,\n language,\n}: DatePickerProps) {\n const [open, setOpen] = React.useState(false);\n const [month, setMonth] = React.useState<Date>(value ?? new Date());\n const [textValue, setTextValue] = React.useState<string>(formatDate(value));\n\n React.useEffect(() => {\n setTextValue(formatDate(value));\n if (value) setMonth(value);\n }, [value]);\n\n function formatDate(date: Date | null | undefined) {\n if (!date) return '';\n return date.toLocaleDateString(language, {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n });\n }\n\n function isValidDate(date: Date | undefined) {\n if (!date) return false;\n return !isNaN(date.getTime());\n }\n\n function isWithinRange(date: Date) {\n if (minDate && date < minDate) return false;\n if (maxDate && date > maxDate) return false;\n return true;\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <div className={cn('relative w-full', className)}>\n <Input\n value={textValue}\n placeholder={placeholder}\n onChange={(e) => {\n const nextText = e.currentTarget.value;\n setTextValue(nextText);\n const parsed = new Date(nextText);\n if (isValidDate(parsed) && isWithinRange(parsed)) {\n onChange(parsed);\n setMonth(parsed);\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setOpen(true);\n }\n }}\n disabled={disabled}\n className={cn('pr-10')}\n />\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2\"\n disabled={disabled}\n aria-label=\"Open date picker\"\n >\n <CalendarIcon className=\"size-4\" />\n </Button>\n </PopoverTrigger>\n </div>\n <PopoverContent\n className=\"w-auto overflow-hidden p-0\"\n align=\"end\"\n sideOffset={10}\n alignOffset={-8}\n >\n <Calendar\n mode=\"single\"\n selected={value ?? undefined}\n captionLayout=\"dropdown\"\n month={month}\n onMonthChange={setMonth}\n onSelect={(d) => {\n onChange(d ?? null);\n setTextValue(formatDate(d ?? null));\n if (d) setOpen(false);\n }}\n fromDate={minDate}\n toDate={maxDate}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAqBA,SAAgB,WAAW,EACzB,OACA,UACA,UACA,SACA,SACA,cAAc,eACd,WACA,YACkB;CAClB,MAAM,CAAC,MAAM,WAAWA,QAAM,SAAS,MAAM;CAC7C,MAAM,CAAC,OAAO,YAAYA,QAAM,SAAe,yBAAS,IAAI,MAAM,CAAC;CACnE,MAAM,CAAC,WAAW,gBAAgBA,QAAM,SAAiB,WAAW,MAAM,CAAC;AAE3E,SAAM,gBAAgB;AACpB,eAAa,WAAW,MAAM,CAAC;AAC/B,MAAI,MAAO,UAAS,MAAM;IACzB,CAAC,MAAM,CAAC;CAEX,SAAS,WAAW,MAA+B;AACjD,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,KAAK,mBAAmB,UAAU;GACvC,KAAK;GACL,OAAO;GACP,MAAM;GACP,CAAC;;CAGJ,SAAS,YAAY,MAAwB;AAC3C,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,CAAC,MAAM,KAAK,SAAS,CAAC;;CAG/B,SAAS,cAAc,MAAY;AACjC,MAAI,WAAW,OAAO,QAAS,QAAO;AACtC,MAAI,WAAW,OAAO,QAAS,QAAO;AACtC,SAAO;;AAGT,QACE,qBAAC;EAAc;EAAM,cAAc;aACjC,qBAAC;GAAI,WAAW,GAAG,mBAAmB,UAAU;cAC9C,oBAAC;IACC,OAAO;IACM;IACb,WAAW,MAAM;KACf,MAAM,WAAW,EAAE,cAAc;AACjC,kBAAa,SAAS;KACtB,MAAM,SAAS,IAAI,KAAK,SAAS;AACjC,SAAI,YAAY,OAAO,IAAI,cAAc,OAAO,EAAE;AAChD,eAAS,OAAO;AAChB,eAAS,OAAO;;;IAGpB,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,aAAa;AACzB,QAAE,gBAAgB;AAClB,cAAQ,KAAK;;;IAGP;IACV,WAAW,GAAG,QAAQ;KACtB,EACF,oBAAC;IAAe;cACd,oBAAC;KACC,MAAK;KACL,SAAQ;KACR,MAAK;KACL,WAAU;KACA;KACV,cAAW;eAEX,oBAAC,gBAAa,WAAU,WAAW;MAC5B;KACM;IACb,EACN,oBAAC;GACC,WAAU;GACV,OAAM;GACN,YAAY;GACZ,aAAa;aAEb,oBAAC;IACC,MAAK;IACL,UAAU,SAAS;IACnB,eAAc;IACP;IACP,eAAe;IACf,WAAW,MAAM;AACf,cAAS,KAAK,KAAK;AACnB,kBAAa,WAAW,KAAK,KAAK,CAAC;AACnC,SAAI,EAAG,SAAQ,MAAM;;IAEvB,UAAU;IACV,QAAQ;IACR;KACA;IACa;GACT"}