@contractspec/lib.ui-kit-web 0.0.0-canary-20260113162409

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 (424) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +109 -0
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +0 -0
  5. package/dist/ui/accordion.d.ts +25 -0
  6. package/dist/ui/accordion.d.ts.map +1 -0
  7. package/dist/ui/accordion.js +48 -0
  8. package/dist/ui/accordion.js.map +1 -0
  9. package/dist/ui/alert-dialog.d.ts +49 -0
  10. package/dist/ui/alert-dialog.d.ts.map +1 -0
  11. package/dist/ui/alert-dialog.js +85 -0
  12. package/dist/ui/alert-dialog.js.map +1 -0
  13. package/dist/ui/alert.d.ts +25 -0
  14. package/dist/ui/alert.d.ts.map +1 -0
  15. package/dist/ui/alert.js +39 -0
  16. package/dist/ui/alert.js.map +1 -0
  17. package/dist/ui/aspect-ratio.d.ts +8 -0
  18. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  19. package/dist/ui/aspect-ratio.js +10 -0
  20. package/dist/ui/aspect-ratio.js.map +1 -0
  21. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  22. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  23. package/dist/ui/atoms/FilterSelect/FilterSelect.js +53 -0
  24. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  25. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  26. package/dist/ui/atoms/FilterSelect/index.js +3 -0
  27. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  28. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  29. package/dist/ui/atoms/FilterSelect/types.js +0 -0
  30. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  31. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  32. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +46 -0
  33. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  34. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  35. package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
  36. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  37. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  38. package/dist/ui/atoms/Pagination/Pagination.js +157 -0
  39. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  40. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  41. package/dist/ui/atoms/Pagination/index.js +3 -0
  42. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  43. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  44. package/dist/ui/atoms/Pagination/types.js +0 -0
  45. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  46. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  47. package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
  48. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  49. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  50. package/dist/ui/atoms/SearchInput/index.js +3 -0
  51. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  52. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  53. package/dist/ui/atoms/SearchInput/types.js +0 -0
  54. package/dist/ui/avatar.d.ts +20 -0
  55. package/dist/ui/avatar.d.ts.map +1 -0
  56. package/dist/ui/avatar.js +33 -0
  57. package/dist/ui/avatar.js.map +1 -0
  58. package/dist/ui/badge.d.ts +20 -0
  59. package/dist/ui/badge.d.ts.map +1 -0
  60. package/dist/ui/badge.js +27 -0
  61. package/dist/ui/badge.js.map +1 -0
  62. package/dist/ui/breadcrumb.d.ts +38 -0
  63. package/dist/ui/breadcrumb.d.ts.map +1 -0
  64. package/dist/ui/breadcrumb.js +72 -0
  65. package/dist/ui/breadcrumb.js.map +1 -0
  66. package/dist/ui/button.d.ts +21 -0
  67. package/dist/ui/button.d.ts.map +1 -0
  68. package/dist/ui/button.js +55 -0
  69. package/dist/ui/button.js.map +1 -0
  70. package/dist/ui/calendar.d.ts +27 -0
  71. package/dist/ui/calendar.d.ts.map +1 -0
  72. package/dist/ui/calendar.js +109 -0
  73. package/dist/ui/calendar.js.map +1 -0
  74. package/dist/ui/card.d.ts +35 -0
  75. package/dist/ui/card.d.ts.map +1 -0
  76. package/dist/ui/card.js +58 -0
  77. package/dist/ui/card.js.map +1 -0
  78. package/dist/ui/carousel.d.ts +48 -0
  79. package/dist/ui/carousel.d.ts.map +1 -0
  80. package/dist/ui/carousel.js +136 -0
  81. package/dist/ui/carousel.js.map +1 -0
  82. package/dist/ui/checkbox.d.ts +12 -0
  83. package/dist/ui/checkbox.d.ts.map +1 -0
  84. package/dist/ui/checkbox.js +25 -0
  85. package/dist/ui/checkbox.js.map +1 -0
  86. package/dist/ui/collapsible.d.ts +16 -0
  87. package/dist/ui/collapsible.d.ts.map +1 -0
  88. package/dist/ui/collapsible.js +28 -0
  89. package/dist/ui/collapsible.js.map +1 -0
  90. package/dist/ui/command.d.ts +53 -0
  91. package/dist/ui/command.d.ts.map +1 -0
  92. package/dist/ui/command.js +90 -0
  93. package/dist/ui/command.js.map +1 -0
  94. package/dist/ui/confirm-dialog.d.ts +31 -0
  95. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  96. package/dist/ui/confirm-dialog.js +34 -0
  97. package/dist/ui/confirm-dialog.js.map +1 -0
  98. package/dist/ui/context-menu.d.ts +35 -0
  99. package/dist/ui/context-menu.d.ts.map +1 -0
  100. package/dist/ui/context-menu.js +84 -0
  101. package/dist/ui/context-menu.js.map +1 -0
  102. package/dist/ui/cta.d.ts +23 -0
  103. package/dist/ui/cta.d.ts.map +1 -0
  104. package/dist/ui/cta.js +39 -0
  105. package/dist/ui/cta.js.map +1 -0
  106. package/dist/ui/date-picker.d.ts +26 -0
  107. package/dist/ui/date-picker.d.ts.map +1 -0
  108. package/dist/ui/date-picker.js +101 -0
  109. package/dist/ui/date-picker.js.map +1 -0
  110. package/dist/ui/date-range-picker.d.ts +26 -0
  111. package/dist/ui/date-range-picker.d.ts.map +1 -0
  112. package/dist/ui/date-range-picker.js +54 -0
  113. package/dist/ui/date-range-picker.js.map +1 -0
  114. package/dist/ui/datetime-picker.d.ts +28 -0
  115. package/dist/ui/datetime-picker.d.ts.map +1 -0
  116. package/dist/ui/datetime-picker.js +44 -0
  117. package/dist/ui/datetime-picker.js.map +1 -0
  118. package/dist/ui/dialog.d.ts +48 -0
  119. package/dist/ui/dialog.d.ts.map +1 -0
  120. package/dist/ui/dialog.js +90 -0
  121. package/dist/ui/dialog.js.map +1 -0
  122. package/dist/ui/drawer.d.ts +45 -0
  123. package/dist/ui/drawer.d.ts.map +1 -0
  124. package/dist/ui/drawer.js +82 -0
  125. package/dist/ui/drawer.js.map +1 -0
  126. package/dist/ui/dropdown-menu.d.ts +78 -0
  127. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  128. package/dist/ui/dropdown-menu.js +127 -0
  129. package/dist/ui/dropdown-menu.js.map +1 -0
  130. package/dist/ui/empty-state.d.ts +29 -0
  131. package/dist/ui/empty-state.d.ts.map +1 -0
  132. package/dist/ui/empty-state.js +43 -0
  133. package/dist/ui/empty-state.js.map +1 -0
  134. package/dist/ui/empty.d.ts +37 -0
  135. package/dist/ui/empty.d.ts.map +1 -0
  136. package/dist/ui/empty.js +62 -0
  137. package/dist/ui/empty.js.map +1 -0
  138. package/dist/ui/field.d.ts +66 -0
  139. package/dist/ui/field.d.ts.map +1 -0
  140. package/dist/ui/field.js +121 -0
  141. package/dist/ui/field.js.map +1 -0
  142. package/dist/ui/focus-on-route-change.d.ts +9 -0
  143. package/dist/ui/focus-on-route-change.d.ts.map +1 -0
  144. package/dist/ui/focus-on-route-change.js +17 -0
  145. package/dist/ui/focus-on-route-change.js.map +1 -0
  146. package/dist/ui/form.d.ts +47 -0
  147. package/dist/ui/form.d.ts.map +1 -0
  148. package/dist/ui/form.js +94 -0
  149. package/dist/ui/form.js.map +1 -0
  150. package/dist/ui/hover-card.d.ts +20 -0
  151. package/dist/ui/hover-card.d.ts.map +1 -0
  152. package/dist/ui/hover-card.js +36 -0
  153. package/dist/ui/hover-card.js.map +1 -0
  154. package/dist/ui/input-group.d.ts +44 -0
  155. package/dist/ui/input-group.d.ts.map +1 -0
  156. package/dist/ui/input-group.js +89 -0
  157. package/dist/ui/input-group.js.map +1 -0
  158. package/dist/ui/input-otp.d.ts +39 -0
  159. package/dist/ui/input-otp.d.ts.map +1 -0
  160. package/dist/ui/input-otp.js +46 -0
  161. package/dist/ui/input-otp.js.map +1 -0
  162. package/dist/ui/input.d.ts +13 -0
  163. package/dist/ui/input.d.ts.map +1 -0
  164. package/dist/ui/input.js +17 -0
  165. package/dist/ui/input.js.map +1 -0
  166. package/dist/ui/label.d.ts +12 -0
  167. package/dist/ui/label.d.ts.map +1 -0
  168. package/dist/ui/label.js +19 -0
  169. package/dist/ui/label.js.map +1 -0
  170. package/dist/ui/link.d.ts +9 -0
  171. package/dist/ui/link.d.ts.map +1 -0
  172. package/dist/ui/link.js +18 -0
  173. package/dist/ui/link.js.map +1 -0
  174. package/dist/ui/live-region.d.ts +17 -0
  175. package/dist/ui/live-region.d.ts.map +1 -0
  176. package/dist/ui/live-region.js +47 -0
  177. package/dist/ui/live-region.js.map +1 -0
  178. package/dist/ui/loading-button.d.ts +20 -0
  179. package/dist/ui/loading-button.d.ts.map +1 -0
  180. package/dist/ui/loading-button.js +21 -0
  181. package/dist/ui/loading-button.js.map +1 -0
  182. package/dist/ui/map/MapBase.d.ts +28 -0
  183. package/dist/ui/map/MapBase.d.ts.map +1 -0
  184. package/dist/ui/map/MapBase.js +46 -0
  185. package/dist/ui/map/MapBase.js.map +1 -0
  186. package/dist/ui/map/MapGeoJsonOverlay.d.ts +16 -0
  187. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -0
  188. package/dist/ui/map/MapGeoJsonOverlay.js +37 -0
  189. package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -0
  190. package/dist/ui/map/MapHeatmapH3.d.ts +18 -0
  191. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -0
  192. package/dist/ui/map/MapHeatmapH3.js +50 -0
  193. package/dist/ui/map/MapHeatmapH3.js.map +1 -0
  194. package/dist/ui/map/MapMarkers.d.ts +20 -0
  195. package/dist/ui/map/MapMarkers.d.ts.map +1 -0
  196. package/dist/ui/map/MapMarkers.js +39 -0
  197. package/dist/ui/map/MapMarkers.js.map +1 -0
  198. package/dist/ui/map/index.d.ts +5 -0
  199. package/dist/ui/map/index.js +6 -0
  200. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  201. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  202. package/dist/ui/marketing/FeatureGrid.js +35 -0
  203. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  204. package/dist/ui/marketing/Hero.d.ts +28 -0
  205. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  206. package/dist/ui/marketing/Hero.js +53 -0
  207. package/dist/ui/marketing/Hero.js.map +1 -0
  208. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  209. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  210. package/dist/ui/marketing/PricingTable.js +60 -0
  211. package/dist/ui/marketing/PricingTable.js.map +1 -0
  212. package/dist/ui/marketing/index.d.ts +4 -0
  213. package/dist/ui/marketing/index.js +5 -0
  214. package/dist/ui/menubar.d.ts +85 -0
  215. package/dist/ui/menubar.d.ts.map +1 -0
  216. package/dist/ui/menubar.js +137 -0
  217. package/dist/ui/menubar.js.map +1 -0
  218. package/dist/ui/molecules/Autocomplete/index.d.ts +7 -0
  219. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  220. package/dist/ui/molecules/Autocomplete/index.js +85 -0
  221. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  222. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  223. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  224. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +103 -0
  225. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  226. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  227. package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
  228. package/dist/ui/molecules/SearchAndFilter/types.d.ts +24 -0
  229. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  230. package/dist/ui/molecules/SearchAndFilter/types.js +0 -0
  231. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  232. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  233. package/dist/ui/molecules/SkeletonList.js +15 -0
  234. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  235. package/dist/ui/nav-layout.d.ts +71 -0
  236. package/dist/ui/nav-layout.d.ts.map +1 -0
  237. package/dist/ui/nav-layout.js +133 -0
  238. package/dist/ui/nav-layout.js.map +1 -0
  239. package/dist/ui/navigation-menu.d.ts +47 -0
  240. package/dist/ui/navigation-menu.d.ts.map +1 -0
  241. package/dist/ui/navigation-menu.js +83 -0
  242. package/dist/ui/navigation-menu.js.map +1 -0
  243. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  244. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  245. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +107 -0
  246. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  247. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  248. package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
  249. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  250. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  251. package/dist/ui/organisms/ListPage/ListPage.js +198 -0
  252. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  253. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  254. package/dist/ui/organisms/ListPage/index.js +3 -0
  255. package/dist/ui/organisms/ListPage/types.d.ts +41 -0
  256. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  257. package/dist/ui/organisms/ListPage/types.js +0 -0
  258. package/dist/ui/page-header.d.ts +27 -0
  259. package/dist/ui/page-header.d.ts.map +1 -0
  260. package/dist/ui/page-header.js +40 -0
  261. package/dist/ui/page-header.js.map +1 -0
  262. package/dist/ui/pagination.d.ts +50 -0
  263. package/dist/ui/pagination.d.ts.map +1 -0
  264. package/dist/ui/pagination.js +65 -0
  265. package/dist/ui/pagination.js.map +1 -0
  266. package/dist/ui/popover.d.ts +23 -0
  267. package/dist/ui/popover.d.ts.map +1 -0
  268. package/dist/ui/popover.js +39 -0
  269. package/dist/ui/popover.js.map +1 -0
  270. package/dist/ui/progress.d.ts +13 -0
  271. package/dist/ui/progress.d.ts.map +1 -0
  272. package/dist/ui/progress.js +24 -0
  273. package/dist/ui/progress.js.map +1 -0
  274. package/dist/ui/radio-group.d.ts +16 -0
  275. package/dist/ui/radio-group.d.ts.map +1 -0
  276. package/dist/ui/radio-group.js +32 -0
  277. package/dist/ui/radio-group.js.map +1 -0
  278. package/dist/ui/resizable.d.ts +36 -0
  279. package/dist/ui/resizable.d.ts.map +1 -0
  280. package/dist/ui/resizable.js +25 -0
  281. package/dist/ui/resizable.js.map +1 -0
  282. package/dist/ui/route-announcer.d.ts +11 -0
  283. package/dist/ui/route-announcer.d.ts.map +1 -0
  284. package/dist/ui/route-announcer.js +22 -0
  285. package/dist/ui/route-announcer.js.map +1 -0
  286. package/dist/ui/scroll-area.d.ts +18 -0
  287. package/dist/ui/scroll-area.d.ts.map +1 -0
  288. package/dist/ui/scroll-area.js +40 -0
  289. package/dist/ui/scroll-area.js.map +1 -0
  290. package/dist/ui/section.d.ts +27 -0
  291. package/dist/ui/section.d.ts.map +1 -0
  292. package/dist/ui/section.js +63 -0
  293. package/dist/ui/section.js.map +1 -0
  294. package/dist/ui/select.d.ts +52 -0
  295. package/dist/ui/select.d.ts.map +1 -0
  296. package/dist/ui/select.js +100 -0
  297. package/dist/ui/select.js.map +1 -0
  298. package/dist/ui/separator.d.ts +14 -0
  299. package/dist/ui/separator.d.ts.map +1 -0
  300. package/dist/ui/separator.js +21 -0
  301. package/dist/ui/separator.js.map +1 -0
  302. package/dist/ui/sheet.d.ts +41 -0
  303. package/dist/ui/sheet.d.ts.map +1 -0
  304. package/dist/ui/sheet.js +86 -0
  305. package/dist/ui/sheet.js.map +1 -0
  306. package/dist/ui/sidebar.d.ts +167 -0
  307. package/dist/ui/sidebar.d.ts.map +1 -0
  308. package/dist/ui/sidebar.js +379 -0
  309. package/dist/ui/sidebar.js.map +1 -0
  310. package/dist/ui/skeleton.d.ts +11 -0
  311. package/dist/ui/skeleton.d.ts.map +1 -0
  312. package/dist/ui/skeleton.js +15 -0
  313. package/dist/ui/skeleton.js.map +1 -0
  314. package/dist/ui/skip-link.d.ts +17 -0
  315. package/dist/ui/skip-link.d.ts.map +1 -0
  316. package/dist/ui/skip-link.js +17 -0
  317. package/dist/ui/skip-link.js.map +1 -0
  318. package/dist/ui/slider.d.ts +16 -0
  319. package/dist/ui/slider.d.ts.map +1 -0
  320. package/dist/ui/slider.js +40 -0
  321. package/dist/ui/slider.js.map +1 -0
  322. package/dist/ui/sonner.d.ts +10 -0
  323. package/dist/ui/sonner.d.ts.map +1 -0
  324. package/dist/ui/sonner.js +24 -0
  325. package/dist/ui/sonner.js.map +1 -0
  326. package/dist/ui/stack.d.ts +48 -0
  327. package/dist/ui/stack.d.ts.map +1 -0
  328. package/dist/ui/stack.js +158 -0
  329. package/dist/ui/stack.js.map +1 -0
  330. package/dist/ui/stat-card-group.d.ts +19 -0
  331. package/dist/ui/stat-card-group.d.ts.map +1 -0
  332. package/dist/ui/stat-card-group.js +39 -0
  333. package/dist/ui/stat-card-group.js.map +1 -0
  334. package/dist/ui/stepper.d.ts +23 -0
  335. package/dist/ui/stepper.d.ts.map +1 -0
  336. package/dist/ui/stepper.js +37 -0
  337. package/dist/ui/stepper.js.map +1 -0
  338. package/dist/ui/switch.d.ts +15 -0
  339. package/dist/ui/switch.d.ts.map +1 -0
  340. package/dist/ui/switch.js +23 -0
  341. package/dist/ui/switch.js.map +1 -0
  342. package/dist/ui/table.d.ts +39 -0
  343. package/dist/ui/table.d.ts.map +1 -0
  344. package/dist/ui/table.js +71 -0
  345. package/dist/ui/table.js.map +1 -0
  346. package/dist/ui/tabs.d.ts +24 -0
  347. package/dist/ui/tabs.d.ts.map +1 -0
  348. package/dist/ui/tabs.js +40 -0
  349. package/dist/ui/tabs.js.map +1 -0
  350. package/dist/ui/text.d.ts +15 -0
  351. package/dist/ui/text.d.ts.map +1 -0
  352. package/dist/ui/text.js +16 -0
  353. package/dist/ui/text.js.map +1 -0
  354. package/dist/ui/textarea.d.ts +12 -0
  355. package/dist/ui/textarea.d.ts.map +1 -0
  356. package/dist/ui/textarea.js +16 -0
  357. package/dist/ui/textarea.js.map +1 -0
  358. package/dist/ui/time-picker.d.ts +22 -0
  359. package/dist/ui/time-picker.d.ts.map +1 -0
  360. package/dist/ui/time-picker.js +81 -0
  361. package/dist/ui/time-picker.js.map +1 -0
  362. package/dist/ui/toast.d.ts +20 -0
  363. package/dist/ui/toast.d.ts.map +1 -0
  364. package/dist/ui/toast.js +62 -0
  365. package/dist/ui/toast.js.map +1 -0
  366. package/dist/ui/toaster.d.ts +7 -0
  367. package/dist/ui/toaster.d.ts.map +1 -0
  368. package/dist/ui/toaster.js +27 -0
  369. package/dist/ui/toaster.js.map +1 -0
  370. package/dist/ui/toggle-group.d.ts +24 -0
  371. package/dist/ui/toggle-group.d.ts.map +1 -0
  372. package/dist/ui/toggle-group.js +48 -0
  373. package/dist/ui/toggle-group.js.map +1 -0
  374. package/dist/ui/toggle.d.ts +20 -0
  375. package/dist/ui/toggle.d.ts.map +1 -0
  376. package/dist/ui/toggle.js +41 -0
  377. package/dist/ui/toggle.js.map +1 -0
  378. package/dist/ui/tooltip.d.ts +24 -0
  379. package/dist/ui/tooltip.d.ts.map +1 -0
  380. package/dist/ui/tooltip.js +40 -0
  381. package/dist/ui/tooltip.js.map +1 -0
  382. package/dist/ui/typography.d.ts +65 -0
  383. package/dist/ui/typography.d.ts.map +1 -0
  384. package/dist/ui/typography.js +87 -0
  385. package/dist/ui/typography.js.map +1 -0
  386. package/dist/ui/use-media-query.d.ts +5 -0
  387. package/dist/ui/use-media-query.d.ts.map +1 -0
  388. package/dist/ui/use-media-query.js +20 -0
  389. package/dist/ui/use-media-query.js.map +1 -0
  390. package/dist/ui/use-mobile.d.ts +5 -0
  391. package/dist/ui/use-mobile.d.ts.map +1 -0
  392. package/dist/ui/use-mobile.js +21 -0
  393. package/dist/ui/use-mobile.js.map +1 -0
  394. package/dist/ui/use-reduced-motion.d.ts +5 -0
  395. package/dist/ui/use-reduced-motion.d.ts.map +1 -0
  396. package/dist/ui/use-reduced-motion.js +18 -0
  397. package/dist/ui/use-reduced-motion.js.map +1 -0
  398. package/dist/ui/use-toast.d.ts +50 -0
  399. package/dist/ui/use-toast.d.ts.map +1 -0
  400. package/dist/ui/use-toast.js +122 -0
  401. package/dist/ui/use-toast.js.map +1 -0
  402. package/dist/ui/useListState.d.ts +34 -0
  403. package/dist/ui/useListState.d.ts.map +1 -0
  404. package/dist/ui/useListState.js +75 -0
  405. package/dist/ui/useListState.js.map +1 -0
  406. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  407. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  408. package/dist/ui/usecases/UseCaseCard.js +35 -0
  409. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  410. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  411. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  412. package/dist/ui/usecases/UserStoryCard.js +36 -0
  413. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  414. package/dist/ui/usecases/index.d.ts +3 -0
  415. package/dist/ui/usecases/index.js +4 -0
  416. package/dist/ui/utils.d.ts +7 -0
  417. package/dist/ui/utils.d.ts.map +1 -0
  418. package/dist/ui/utils.js +11 -0
  419. package/dist/ui/utils.js.map +1 -0
  420. package/dist/ui/visually-hidden.d.ts +10 -0
  421. package/dist/ui/visually-hidden.d.ts.map +1 -0
  422. package/dist/ui/visually-hidden.js +31 -0
  423. package/dist/ui/visually-hidden.js.map +1 -0
  424. package/package.json +346 -0
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime53 from "react/jsx-runtime";
2
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
3
+
4
+ //#region ui/collapsible.d.ts
5
+ declare function Collapsible({
6
+ ...props
7
+ }: React.ComponentProps<typeof CollapsiblePrimitive.Root>): react_jsx_runtime53.JSX.Element;
8
+ declare function CollapsibleTrigger({
9
+ ...props
10
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>): react_jsx_runtime53.JSX.Element;
11
+ declare function CollapsibleContent({
12
+ ...props
13
+ }: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>): react_jsx_runtime53.JSX.Element;
14
+ //#endregion
15
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
16
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","names":[],"sources":["../../ui/collapsible.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,WAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAIhD,kBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,sBAAmB,mBAAA,CAAA,GAAA,CAAA;iBAS9D,kBAAA;;GAEN,KAAA,CAAM,sBAAsB,oBAAA,CAAqB,sBAAmB,mBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,28 @@
1
+ 'use client';
2
+
3
+ import { jsx } from "react/jsx-runtime";
4
+ import * as CollapsiblePrimitive from "@radix-ui/react-collapsible";
5
+
6
+ //#region ui/collapsible.tsx
7
+ function Collapsible({ ...props }) {
8
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.Root, {
9
+ "data-slot": "collapsible",
10
+ ...props
11
+ });
12
+ }
13
+ function CollapsibleTrigger({ ...props }) {
14
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleTrigger, {
15
+ "data-slot": "collapsible-trigger",
16
+ ...props
17
+ });
18
+ }
19
+ function CollapsibleContent({ ...props }) {
20
+ return /* @__PURE__ */ jsx(CollapsiblePrimitive.CollapsibleContent, {
21
+ "data-slot": "collapsible-content",
22
+ ...props
23
+ });
24
+ }
25
+
26
+ //#endregion
27
+ export { Collapsible, CollapsibleContent, CollapsibleTrigger };
28
+ //# sourceMappingURL=collapsible.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.js","names":[],"sources":["../../ui/collapsible.tsx"],"sourcesContent":["'use client';\n\nimport * as CollapsiblePrimitive from '@radix-ui/react-collapsible';\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />;\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n );\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n );\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n"],"mappings":";;;;;;AAIA,SAAS,YAAY,EACnB,GAAG,SACsD;AACzD,QAAO,oBAAC,qBAAqB;EAAK,aAAU;EAAc,GAAI;GAAS;;AAGzE,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,mBAAmB,EAC1B,GAAG,SACoE;AACvE,QACE,oBAAC,qBAAqB;EACpB,aAAU;EACV,GAAI;GACJ"}
@@ -0,0 +1,53 @@
1
+ import { Dialog } from "./dialog.js";
2
+ import * as React$1 from "react";
3
+ import * as react_jsx_runtime64 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_runtime64.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_runtime64.JSX.Element;
24
+ declare function CommandInput({
25
+ className,
26
+ ...props
27
+ }: React$1.ComponentProps<typeof Command$1.Input>): react_jsx_runtime64.JSX.Element;
28
+ declare function CommandList({
29
+ className,
30
+ ...props
31
+ }: React$1.ComponentProps<typeof Command$1.List>): react_jsx_runtime64.JSX.Element;
32
+ declare function CommandEmpty({
33
+ ...props
34
+ }: React$1.ComponentProps<typeof Command$1.Empty>): react_jsx_runtime64.JSX.Element;
35
+ declare function CommandGroup({
36
+ className,
37
+ ...props
38
+ }: React$1.ComponentProps<typeof Command$1.Group>): react_jsx_runtime64.JSX.Element;
39
+ declare function CommandSeparator({
40
+ className,
41
+ ...props
42
+ }: React$1.ComponentProps<typeof Command$1.Separator>): react_jsx_runtime64.JSX.Element;
43
+ declare function CommandItem({
44
+ className,
45
+ ...props
46
+ }: React$1.ComponentProps<typeof Command$1.Item>): react_jsx_runtime64.JSX.Element;
47
+ declare function CommandShortcut({
48
+ className,
49
+ ...props
50
+ }: React$1.ComponentPropsWithoutRef<'span'>): react_jsx_runtime64.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,wBA7HP,CAAA,MAAA,CAAA,CAAA,EA6HuC,mBAAA,CAAA,GAAA,CAAA,OA7HvC"}
@@ -0,0 +1,90 @@
1
+ 'use client';
2
+
3
+ import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.js";
4
+ import "react";
5
+ import { SearchIcon } from "lucide-react";
6
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { Command as Command$1 } from "cmdk";
9
+
10
+ //#region ui/command.tsx
11
+ function Command({ className, ...props }) {
12
+ return /* @__PURE__ */ jsx(Command$1, {
13
+ "data-slot": "command",
14
+ className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
15
+ ...props
16
+ });
17
+ }
18
+ function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true, ...props }) {
19
+ return /* @__PURE__ */ jsxs(Dialog, {
20
+ ...props,
21
+ children: [/* @__PURE__ */ jsxs(DialogHeader, {
22
+ className: "sr-only",
23
+ children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
24
+ }), /* @__PURE__ */ jsx(DialogContent, {
25
+ className: cn("overflow-hidden p-0", className),
26
+ showCloseButton,
27
+ children: /* @__PURE__ */ jsx(Command, {
28
+ 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",
29
+ children
30
+ })
31
+ })]
32
+ });
33
+ }
34
+ function CommandInput({ className, ...props }) {
35
+ return /* @__PURE__ */ jsxs("div", {
36
+ "data-slot": "command-input-wrapper",
37
+ className: "flex h-9 items-center gap-2 border-b px-3",
38
+ children: [/* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), /* @__PURE__ */ jsx(Command$1.Input, {
39
+ "data-slot": "command-input",
40
+ 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),
41
+ ...props
42
+ })]
43
+ });
44
+ }
45
+ function CommandList({ className, ...props }) {
46
+ return /* @__PURE__ */ jsx(Command$1.List, {
47
+ "data-slot": "command-list",
48
+ className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
49
+ ...props
50
+ });
51
+ }
52
+ function CommandEmpty({ ...props }) {
53
+ return /* @__PURE__ */ jsx(Command$1.Empty, {
54
+ "data-slot": "command-empty",
55
+ className: "py-6 text-center text-sm",
56
+ ...props
57
+ });
58
+ }
59
+ function CommandGroup({ className, ...props }) {
60
+ return /* @__PURE__ */ jsx(Command$1.Group, {
61
+ "data-slot": "command-group",
62
+ 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),
63
+ ...props
64
+ });
65
+ }
66
+ function CommandSeparator({ className, ...props }) {
67
+ return /* @__PURE__ */ jsx(Command$1.Separator, {
68
+ "data-slot": "command-separator",
69
+ className: cn("bg-border -mx-1 h-px", className),
70
+ ...props
71
+ });
72
+ }
73
+ function CommandItem({ className, ...props }) {
74
+ return /* @__PURE__ */ jsx(Command$1.Item, {
75
+ "data-slot": "command-item",
76
+ 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),
77
+ ...props
78
+ });
79
+ }
80
+ function CommandShortcut({ className, ...props }) {
81
+ return /* @__PURE__ */ jsx("span", {
82
+ "data-slot": "command-shortcut",
83
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
84
+ ...props
85
+ });
86
+ }
87
+
88
+ //#endregion
89
+ export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
90
+ //# 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 '@contractspec/lib.ui-kit-core/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.ComponentPropsWithoutRef<'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,WACA,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,MAClB,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,WACA,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,WACA,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,WACA,GAAG,SACmD;AACtD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,0NACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACuD;AAC1D,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GAAG,wBAAwB,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,uYACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,WACA,GAAG,SACsC;AACzC,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_runtime74 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_runtime74.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,mBAAA,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_runtime80 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_runtime80.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,mBAAA,CAAA,GAAA,CAAA,OAxJb;EAAA,WAAA,EAAA,MAAA;CAAA"}
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+
3
+ import * as React$1 from "react";
4
+ import { Check, ChevronRight, Circle } from "lucide-react";
5
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
8
+
9
+ //#region ui/context-menu.tsx
10
+ const ContextMenu = ContextMenuPrimitive.Root;
11
+ const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
12
+ const ContextMenuGroup = ContextMenuPrimitive.Group;
13
+ const ContextMenuPortal = ContextMenuPrimitive.Portal;
14
+ const ContextMenuSub = ContextMenuPrimitive.Sub;
15
+ const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
16
+ const ContextMenuSubTrigger = React$1.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, {
17
+ ref,
18
+ 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),
19
+ ...props,
20
+ children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })]
21
+ }));
22
+ ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
23
+ const ContextMenuSubContent = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, {
24
+ ref,
25
+ 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),
26
+ ...props
27
+ }));
28
+ ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
29
+ const ContextMenuContent = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, {
30
+ ref,
31
+ 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),
32
+ ...props
33
+ }) }));
34
+ ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
35
+ const ContextMenuItem = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, {
36
+ ref,
37
+ 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),
38
+ ...props
39
+ }));
40
+ ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
41
+ const ContextMenuCheckboxItem = React$1.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, {
42
+ ref,
43
+ 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),
44
+ checked,
45
+ ...props,
46
+ children: [/* @__PURE__ */ jsx("span", {
47
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
48
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) })
49
+ }), children]
50
+ }));
51
+ ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
52
+ const ContextMenuRadioItem = React$1.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, {
53
+ ref,
54
+ 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),
55
+ ...props,
56
+ children: [/* @__PURE__ */ jsx("span", {
57
+ className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
58
+ children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) })
59
+ }), children]
60
+ }));
61
+ ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
62
+ const ContextMenuLabel = React$1.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, {
63
+ ref,
64
+ className: cn("text-foreground px-2 py-1.5 text-base font-semibold", inset && "pl-8", className),
65
+ ...props
66
+ }));
67
+ ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
68
+ const ContextMenuSeparator = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, {
69
+ ref,
70
+ className: cn("bg-border -mx-1 my-1 h-px", className),
71
+ ...props
72
+ }));
73
+ ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
74
+ const ContextMenuShortcut = ({ className, ...props }) => {
75
+ return /* @__PURE__ */ jsx("span", {
76
+ className: cn("text-muted-foreground ml-auto text-sm tracking-widest", className),
77
+ ...props
78
+ });
79
+ };
80
+ ContextMenuShortcut.displayName = "ContextMenuShortcut";
81
+
82
+ //#endregion
83
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
84
+ //# 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 '@contractspec/lib.ui-kit-core/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,UAAU,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,WAAW,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,WAAW,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,OAAO,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,SAAS,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,UAAU,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,OAAO,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,WAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB;CACf;CACL,WAAW,GAAG,6BAA6B,UAAU;CACrD,GAAI;EACJ,CACF;AACF,qBAAqB,cAAc,qBAAqB,UAAU;AAElE,MAAM,uBAAuB,EAC3B,WACA,GAAG,YACwC;AAC3C,QACE,oBAAC;EACC,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAGN,oBAAoB,cAAc"}
@@ -0,0 +1,23 @@
1
+ import { ButtonProps } from "./button.js";
2
+ import * as React$1 from "react";
3
+
4
+ //#region ui/cta.d.ts
5
+ type CtaProps = Omit<ButtonProps, 'onClick'> & {
6
+ capture?: (cta: string) => void;
7
+ ctaName?: string;
8
+ as?: 'button' | 'a';
9
+ href?: string;
10
+ onClick?: React$1.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
11
+ children?: React$1.ReactNode;
12
+ };
13
+ declare const Cta: React$1.ForwardRefExoticComponent<Omit<ButtonProps, "onClick"> & {
14
+ capture?: (cta: string) => void;
15
+ ctaName?: string;
16
+ as?: "button" | "a";
17
+ href?: string;
18
+ onClick?: React$1.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;
19
+ children?: React$1.ReactNode;
20
+ } & React$1.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
21
+ //#endregion
22
+ export { Cta, CtaProps };
23
+ //# 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,KAAK;;EAAhB,OAAA,CAAA,EAAA,MAAQ;EAAQ,EAAA,CAAA,EAAA,QAAA,GAAA,GAAA;EAAL,IAAA,CAAA,EAAA,MAAA;EAKa,OAAA,CAAA,EAAxB,OAAA,CAAM,iBAAkB,CAAA,iBAAA,GAAoB,iBAApB,CAAA;EAAoB,QAAA,CAAA,EAC3C,OAAA,CAAM,SADqC;CAA5C;AACC,cAGA,GAHM,EAGH,OAAA,CAAA,yBAHG,CAGH,IAHG,CAGH,WAHG,EAAA,SAAA,CAAA,GAAA;EAAS,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,MAAA,EAAA,GAAA,IAAA;EAGf,OA8DZ,CAAA,EAAA,MAAA;EA9De,EAAA,CAAA,EAAA,QAAA,GAAA,GAAA;EAAA,IAAA,CAAA,EAAA,MAAA;EAJoB,OAAA,CAAA,EAAxB,OAAA,CAAM,iBAAkB,CAAA,iBAAA,GAAoB,iBAApB,CAAA;EAAoB,QAAA,CAAA,EAC3C,OAAA,CAAM,SADqC;CAA5C,wBAAM,kBAAA,oBAAA,CAAA,CAAA"}
package/dist/ui/cta.js ADDED
@@ -0,0 +1,39 @@
1
+ import { Button } from "./button.js";
2
+ import * as React$1 from "react";
3
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
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"],"sources":["../../ui/cta.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { cn } from '@contractspec/lib.ui-kit-core/utils';\n\nexport type CtaProps = Omit<ButtonProps, 'onClick'> & {\n capture?: (cta: string) => void;\n ctaName?: string;\n as?: 'button' | 'a';\n href?: string;\n onClick?: React.MouseEventHandler<HTMLButtonElement | HTMLAnchorElement>;\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 // ignore\n }\n }\n onClick?.(e);\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 <a\n href={href}\n onClick={handleClick}\n ref={ref as React.ForwardedRef<HTMLAnchorElement>}\n >\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 React.MouseEventHandler<HTMLButtonElement>}\n ref={ref as React.ForwardedRef<HTMLButtonElement>}\n {...props}\n >\n {children}\n </Button>\n );\n }\n);\nCta.displayName = 'Cta';\n"],"mappings":";;;;;;AAaA,MAAa,MAAMA,QAAM,YAKrB,EACE,SACA,SACA,WACA,KAAK,UACL,MACA,SACA,OAAO,MACP,UACA,GAAG,SAEL,QACG;CACH,MAAM,eAED,MAAM;AACT,MAAI,WAAW,QACb,KAAI;AACF,WAAQ,QAAQ;UACV;AAIV,YAAU,EAAE;;AAGd,KAAI,OAAO,IACT,QACE,oBAAC;EACC;EACM;EACN,WAAW,GAAG,gBAAgB,UAAU;EACxC,GAAI;YAEJ,oBAAC;GACO;GACN,SAAS;GACJ;GAEJ;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_runtime86 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_runtime86.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,mBAAA,CAAA,GAAA,CAAA,OARhB"}