@contractspec/lib.ui-kit-web 1.57.0 → 1.59.0

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 (545) hide show
  1. package/dist/browser/index.js +13 -0
  2. package/dist/browser/ui/accordion.js +73 -0
  3. package/dist/browser/ui/alert-dialog.js +177 -0
  4. package/dist/browser/ui/alert.js +60 -0
  5. package/dist/browser/ui/aspect-ratio.js +15 -0
  6. package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +244 -0
  7. package/dist/browser/ui/atoms/FilterSelect/index.js +244 -0
  8. package/dist/browser/ui/atoms/FilterSelect/types.js +0 -0
  9. package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +89 -0
  10. package/dist/browser/ui/atoms/LoadingSpinner/index.js +89 -0
  11. package/dist/browser/ui/atoms/Pagination/Pagination.js +387 -0
  12. package/dist/browser/ui/atoms/Pagination/index.js +387 -0
  13. package/dist/browser/ui/atoms/Pagination/types.js +0 -0
  14. package/dist/browser/ui/atoms/SearchInput/SearchInput.js +123 -0
  15. package/dist/browser/ui/atoms/SearchInput/index.js +123 -0
  16. package/dist/browser/ui/atoms/SearchInput/types.js +0 -0
  17. package/dist/browser/ui/avatar.js +54 -0
  18. package/dist/browser/ui/badge.js +43 -0
  19. package/dist/browser/ui/breadcrumb.js +109 -0
  20. package/dist/browser/ui/button.js +56 -0
  21. package/dist/browser/ui/calendar.js +181 -0
  22. package/dist/browser/ui/card.js +87 -0
  23. package/dist/browser/ui/carousel.js +229 -0
  24. package/dist/browser/ui/checkbox.js +34 -0
  25. package/dist/browser/ui/collapsible.js +41 -0
  26. package/dist/browser/ui/command.js +266 -0
  27. package/dist/browser/ui/confirm-dialog.js +226 -0
  28. package/dist/browser/ui/context-menu.js +127 -0
  29. package/dist/browser/ui/cta.js +102 -0
  30. package/dist/browser/ui/date-picker.js +350 -0
  31. package/dist/browser/ui/date-range-picker.js +276 -0
  32. package/dist/browser/ui/datetime-picker.js +489 -0
  33. package/dist/browser/ui/dialog.js +140 -0
  34. package/dist/browser/ui/drawer.js +130 -0
  35. package/dist/browser/ui/dropdown-menu.js +214 -0
  36. package/dist/browser/ui/empty-state.js +209 -0
  37. package/dist/browser/ui/empty.js +90 -0
  38. package/dist/browser/ui/field.js +221 -0
  39. package/dist/browser/ui/focus-on-route-change.js +25 -0
  40. package/dist/browser/ui/form.js +156 -0
  41. package/dist/browser/ui/hover-card.js +51 -0
  42. package/dist/browser/ui/input-group.js +192 -0
  43. package/dist/browser/ui/input-otp.js +60 -0
  44. package/dist/browser/ui/input.js +22 -0
  45. package/dist/browser/ui/label.js +26 -0
  46. package/dist/browser/ui/link.js +24 -0
  47. package/dist/browser/ui/live-region.js +56 -0
  48. package/dist/browser/ui/loading-button.js +228 -0
  49. package/dist/browser/ui/map/MapBase.js +70 -0
  50. package/dist/browser/ui/map/MapGeoJsonOverlay.js +56 -0
  51. package/dist/browser/ui/map/MapHeatmapH3.js +66 -0
  52. package/dist/browser/ui/map/MapMarkers.js +45 -0
  53. package/dist/browser/ui/map/index.js +210 -0
  54. package/dist/browser/ui/marketing/FeatureGrid.js +50 -0
  55. package/dist/browser/ui/marketing/Hero.js +116 -0
  56. package/dist/browser/ui/marketing/PricingTable.js +127 -0
  57. package/dist/browser/ui/marketing/index.js +217 -0
  58. package/dist/browser/ui/menubar.js +231 -0
  59. package/dist/browser/ui/molecules/Autocomplete/index.js +584 -0
  60. package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +503 -0
  61. package/dist/browser/ui/molecules/SearchAndFilter/index.js +503 -0
  62. package/dist/browser/ui/molecules/SearchAndFilter/types.js +0 -0
  63. package/dist/browser/ui/molecules/SkeletonList.js +44 -0
  64. package/dist/browser/ui/nav-layout.js +298 -0
  65. package/dist/browser/ui/navigation-menu.js +128 -0
  66. package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +191 -0
  67. package/dist/browser/ui/organisms/ErrorBoundary/index.js +191 -0
  68. package/dist/browser/ui/organisms/ListPage/ListPage.js +1236 -0
  69. package/dist/browser/ui/organisms/ListPage/index.js +1236 -0
  70. package/dist/browser/ui/organisms/ListPage/types.js +0 -0
  71. package/dist/browser/ui/page-header.js +206 -0
  72. package/dist/browser/ui/pagination.js +156 -0
  73. package/dist/browser/ui/popover.js +59 -0
  74. package/dist/browser/ui/progress.js +32 -0
  75. package/dist/browser/ui/radio-group.js +45 -0
  76. package/dist/browser/ui/resizable.js +41 -0
  77. package/dist/browser/ui/route-announcer.js +28 -0
  78. package/dist/browser/ui/scroll-area.js +53 -0
  79. package/dist/browser/ui/section.js +65 -0
  80. package/dist/browser/ui/select.js +165 -0
  81. package/dist/browser/ui/separator.js +30 -0
  82. package/dist/browser/ui/sheet.js +136 -0
  83. package/dist/browser/ui/sidebar.js +806 -0
  84. package/dist/browser/ui/skeleton.js +30 -0
  85. package/dist/browser/ui/skip-link.js +27 -0
  86. package/dist/browser/ui/slider.js +50 -0
  87. package/dist/browser/ui/sonner.js +29 -0
  88. package/dist/browser/ui/stack.js +158 -0
  89. package/dist/browser/ui/stat-card-group.js +263 -0
  90. package/dist/browser/ui/stepper.js +185 -0
  91. package/dist/browser/ui/switch.js +31 -0
  92. package/dist/browser/ui/table.js +106 -0
  93. package/dist/browser/ui/tabs.js +59 -0
  94. package/dist/browser/ui/text.js +22 -0
  95. package/dist/browser/ui/textarea.js +21 -0
  96. package/dist/browser/ui/time-picker.js +186 -0
  97. package/dist/browser/ui/toast.js +79 -0
  98. package/dist/browser/ui/toaster.js +220 -0
  99. package/dist/browser/ui/toggle-group.js +96 -0
  100. package/dist/browser/ui/toggle.js +47 -0
  101. package/dist/browser/ui/tooltip.js +68 -0
  102. package/dist/browser/ui/typography.js +123 -0
  103. package/dist/browser/ui/use-media-query.js +26 -0
  104. package/dist/browser/ui/use-mobile.js +27 -0
  105. package/dist/browser/ui/use-reduced-motion.js +24 -0
  106. package/dist/browser/ui/use-toast.js +129 -0
  107. package/dist/browser/ui/useListState.js +76 -0
  108. package/dist/browser/ui/usecases/UseCaseCard.js +232 -0
  109. package/dist/browser/ui/usecases/UserStoryCard.js +186 -0
  110. package/dist/browser/ui/usecases/index.js +267 -0
  111. package/dist/browser/ui/utils.js +17 -0
  112. package/dist/browser/ui/visually-hidden.js +35 -0
  113. package/dist/index.d.ts +2 -1
  114. package/dist/index.d.ts.map +1 -0
  115. package/dist/index.js +8 -0
  116. package/dist/ui/accordion.d.ts +7 -24
  117. package/dist/ui/accordion.d.ts.map +1 -1
  118. package/dist/ui/accordion.js +60 -40
  119. package/dist/ui/alert-dialog.d.ts +14 -48
  120. package/dist/ui/alert-dialog.d.ts.map +1 -1
  121. package/dist/ui/alert-dialog.js +158 -71
  122. package/dist/ui/alert.d.ts +8 -23
  123. package/dist/ui/alert.d.ts.map +1 -1
  124. package/dist/ui/alert.js +50 -34
  125. package/dist/ui/aspect-ratio.d.ts +2 -6
  126. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  127. package/dist/ui/aspect-ratio.js +8 -8
  128. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +3 -7
  129. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -1
  130. package/dist/ui/atoms/FilterSelect/FilterSelect.js +237 -51
  131. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -3
  132. package/dist/ui/atoms/FilterSelect/index.d.ts.map +1 -0
  133. package/dist/ui/atoms/FilterSelect/index.js +238 -2
  134. package/dist/ui/atoms/FilterSelect/types.d.ts +13 -16
  135. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -1
  136. package/dist/ui/atoms/FilterSelect/types.js +1 -0
  137. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +14 -17
  138. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -1
  139. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +81 -43
  140. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -2
  141. package/dist/ui/atoms/LoadingSpinner/index.d.ts.map +1 -0
  142. package/dist/ui/atoms/LoadingSpinner/index.js +83 -2
  143. package/dist/ui/atoms/Pagination/Pagination.d.ts +3 -7
  144. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -1
  145. package/dist/ui/atoms/Pagination/Pagination.js +380 -155
  146. package/dist/ui/atoms/Pagination/index.d.ts +3 -3
  147. package/dist/ui/atoms/Pagination/index.d.ts.map +1 -0
  148. package/dist/ui/atoms/Pagination/index.js +381 -2
  149. package/dist/ui/atoms/Pagination/types.d.ts +11 -14
  150. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -1
  151. package/dist/ui/atoms/Pagination/types.js +1 -0
  152. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +3 -7
  153. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -1
  154. package/dist/ui/atoms/SearchInput/SearchInput.js +116 -48
  155. package/dist/ui/atoms/SearchInput/index.d.ts +3 -3
  156. package/dist/ui/atoms/SearchInput/index.d.ts.map +1 -0
  157. package/dist/ui/atoms/SearchInput/index.js +117 -2
  158. package/dist/ui/atoms/SearchInput/types.d.ts +8 -11
  159. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -1
  160. package/dist/ui/atoms/SearchInput/types.js +1 -0
  161. package/dist/ui/avatar.d.ts +6 -19
  162. package/dist/ui/avatar.d.ts.map +1 -1
  163. package/dist/ui/avatar.js +44 -28
  164. package/dist/ui/badge.d.ts +7 -17
  165. package/dist/ui/badge.d.ts.map +1 -1
  166. package/dist/ui/badge.js +34 -23
  167. package/dist/ui/breadcrumb.d.ts +11 -37
  168. package/dist/ui/breadcrumb.d.ts.map +1 -1
  169. package/dist/ui/breadcrumb.js +94 -62
  170. package/dist/ui/button.d.ts +14 -18
  171. package/dist/ui/button.d.ts.map +1 -1
  172. package/dist/ui/button.js +46 -50
  173. package/dist/ui/calendar.d.ts +7 -25
  174. package/dist/ui/calendar.d.ts.map +1 -1
  175. package/dist/ui/calendar.js +172 -105
  176. package/dist/ui/card.d.ts +9 -34
  177. package/dist/ui/card.d.ts.map +1 -1
  178. package/dist/ui/card.js +73 -49
  179. package/dist/ui/carousel.d.ts +13 -41
  180. package/dist/ui/carousel.d.ts.map +1 -1
  181. package/dist/ui/carousel.js +215 -127
  182. package/dist/ui/checkbox.d.ts +3 -10
  183. package/dist/ui/checkbox.d.ts.map +1 -1
  184. package/dist/ui/checkbox.js +25 -21
  185. package/dist/ui/collapsible.d.ts +5 -15
  186. package/dist/ui/collapsible.d.ts.map +1 -1
  187. package/dist/ui/collapsible.js +31 -23
  188. package/dist/ui/command.d.ts +18 -52
  189. package/dist/ui/command.d.ts.map +1 -1
  190. package/dist/ui/command.js +258 -87
  191. package/dist/ui/confirm-dialog.d.ts +13 -29
  192. package/dist/ui/confirm-dialog.d.ts.map +1 -1
  193. package/dist/ui/confirm-dialog.js +219 -32
  194. package/dist/ui/context-menu.d.ts +25 -32
  195. package/dist/ui/context-menu.d.ts.map +1 -1
  196. package/dist/ui/context-menu.js +109 -71
  197. package/dist/ui/cta.d.ts +17 -21
  198. package/dist/ui/cta.d.ts.map +1 -1
  199. package/dist/ui/cta.js +94 -36
  200. package/dist/ui/date-picker.d.ts +10 -24
  201. package/dist/ui/date-picker.d.ts.map +1 -1
  202. package/dist/ui/date-picker.js +342 -98
  203. package/dist/ui/date-range-picker.d.ts +11 -23
  204. package/dist/ui/date-range-picker.d.ts.map +1 -1
  205. package/dist/ui/date-range-picker.js +268 -51
  206. package/dist/ui/datetime-picker.d.ts +11 -26
  207. package/dist/ui/datetime-picker.d.ts.map +1 -1
  208. package/dist/ui/datetime-picker.js +479 -39
  209. package/dist/ui/dialog.d.ts +15 -47
  210. package/dist/ui/dialog.d.ts.map +1 -1
  211. package/dist/ui/dialog.js +122 -77
  212. package/dist/ui/drawer.d.ts +13 -44
  213. package/dist/ui/drawer.d.ts.map +1 -1
  214. package/dist/ui/drawer.js +113 -70
  215. package/dist/ui/dropdown-menu.d.ts +25 -77
  216. package/dist/ui/dropdown-menu.d.ts.map +1 -1
  217. package/dist/ui/dropdown-menu.js +191 -109
  218. package/dist/ui/empty-state.d.ts +13 -26
  219. package/dist/ui/empty-state.d.ts.map +1 -1
  220. package/dist/ui/empty-state.js +201 -40
  221. package/dist/ui/empty.d.ts +11 -35
  222. package/dist/ui/empty.d.ts.map +1 -1
  223. package/dist/ui/empty.js +76 -53
  224. package/dist/ui/field.d.ts +24 -64
  225. package/dist/ui/field.d.ts.map +1 -1
  226. package/dist/ui/field.js +202 -107
  227. package/dist/ui/focus-on-route-change.d.ts +2 -7
  228. package/dist/ui/focus-on-route-change.d.ts.map +1 -1
  229. package/dist/ui/focus-on-route-change.js +18 -15
  230. package/dist/ui/form.d.ts +24 -44
  231. package/dist/ui/form.d.ts.map +1 -1
  232. package/dist/ui/form.js +141 -84
  233. package/dist/ui/hover-card.d.ts +6 -19
  234. package/dist/ui/hover-card.d.ts.map +1 -1
  235. package/dist/ui/hover-card.js +41 -31
  236. package/dist/ui/input-group.d.ts +14 -41
  237. package/dist/ui/input-group.d.ts.map +1 -1
  238. package/dist/ui/input-group.js +177 -79
  239. package/dist/ui/input-otp.d.ts +32 -36
  240. package/dist/ui/input-otp.d.ts.map +1 -1
  241. package/dist/ui/input-otp.js +47 -38
  242. package/dist/ui/input.d.ts +4 -12
  243. package/dist/ui/input.d.ts.map +1 -1
  244. package/dist/ui/input.js +14 -14
  245. package/dist/ui/label.d.ts +3 -10
  246. package/dist/ui/label.d.ts.map +1 -1
  247. package/dist/ui/label.js +18 -16
  248. package/dist/ui/link.d.ts +3 -7
  249. package/dist/ui/link.d.ts.map +1 -1
  250. package/dist/ui/link.js +14 -13
  251. package/dist/ui/live-region.d.ts +8 -14
  252. package/dist/ui/live-region.d.ts.map +1 -1
  253. package/dist/ui/live-region.js +47 -43
  254. package/dist/ui/loading-button.d.ts +7 -17
  255. package/dist/ui/loading-button.d.ts.map +1 -1
  256. package/dist/ui/loading-button.js +221 -19
  257. package/dist/ui/map/MapBase.d.ts +20 -25
  258. package/dist/ui/map/MapBase.d.ts.map +1 -1
  259. package/dist/ui/map/MapBase.js +62 -43
  260. package/dist/ui/map/MapGeoJsonOverlay.d.ts +9 -14
  261. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -1
  262. package/dist/ui/map/MapGeoJsonOverlay.js +47 -33
  263. package/dist/ui/map/MapHeatmapH3.d.ts +10 -15
  264. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -1
  265. package/dist/ui/map/MapHeatmapH3.js +55 -44
  266. package/dist/ui/map/MapMarkers.d.ts +11 -18
  267. package/dist/ui/map/MapMarkers.d.ts.map +1 -1
  268. package/dist/ui/map/MapMarkers.js +36 -35
  269. package/dist/ui/map/index.d.ts +5 -5
  270. package/dist/ui/map/index.d.ts.map +1 -0
  271. package/dist/ui/map/index.js +204 -5
  272. package/dist/ui/marketing/FeatureGrid.d.ts +10 -19
  273. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -1
  274. package/dist/ui/marketing/FeatureGrid.js +42 -32
  275. package/dist/ui/marketing/Hero.d.ts +16 -27
  276. package/dist/ui/marketing/Hero.d.ts.map +1 -1
  277. package/dist/ui/marketing/Hero.js +108 -50
  278. package/dist/ui/marketing/PricingTable.d.ts +15 -23
  279. package/dist/ui/marketing/PricingTable.d.ts.map +1 -1
  280. package/dist/ui/marketing/PricingTable.js +119 -57
  281. package/dist/ui/marketing/index.d.ts +4 -4
  282. package/dist/ui/marketing/index.d.ts.map +1 -0
  283. package/dist/ui/marketing/index.js +211 -4
  284. package/dist/ui/menubar.d.ts +26 -84
  285. package/dist/ui/menubar.d.ts.map +1 -1
  286. package/dist/ui/menubar.js +223 -134
  287. package/dist/ui/molecules/Autocomplete/index.d.ts +1 -6
  288. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -1
  289. package/dist/ui/molecules/Autocomplete/index.js +574 -80
  290. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +3 -7
  291. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -1
  292. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +496 -101
  293. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -3
  294. package/dist/ui/molecules/SearchAndFilter/index.d.ts.map +1 -0
  295. package/dist/ui/molecules/SearchAndFilter/index.js +497 -2
  296. package/dist/ui/molecules/SearchAndFilter/types.d.ts +18 -22
  297. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -1
  298. package/dist/ui/molecules/SearchAndFilter/types.js +1 -0
  299. package/dist/ui/molecules/SkeletonList.d.ts +5 -13
  300. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -1
  301. package/dist/ui/molecules/SkeletonList.js +36 -12
  302. package/dist/ui/nav-layout.d.ts +44 -67
  303. package/dist/ui/nav-layout.d.ts.map +1 -1
  304. package/dist/ui/nav-layout.js +287 -127
  305. package/dist/ui/navigation-menu.d.ts +14 -46
  306. package/dist/ui/navigation-menu.d.ts.map +1 -1
  307. package/dist/ui/navigation-menu.js +113 -73
  308. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +18 -22
  309. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
  310. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +182 -103
  311. package/dist/ui/organisms/ErrorBoundary/index.d.ts +3 -2
  312. package/dist/ui/organisms/ErrorBoundary/index.d.ts.map +1 -0
  313. package/dist/ui/organisms/ErrorBoundary/index.js +185 -2
  314. package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -28
  315. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -1
  316. package/dist/ui/organisms/ListPage/ListPage.js +1229 -196
  317. package/dist/ui/organisms/ListPage/index.d.ts +3 -3
  318. package/dist/ui/organisms/ListPage/index.d.ts.map +1 -0
  319. package/dist/ui/organisms/ListPage/index.js +1230 -2
  320. package/dist/ui/organisms/ListPage/types.d.ts +34 -38
  321. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -1
  322. package/dist/ui/organisms/ListPage/types.js +1 -0
  323. package/dist/ui/page-header.d.ts +12 -24
  324. package/dist/ui/page-header.d.ts.map +1 -1
  325. package/dist/ui/page-header.js +198 -37
  326. package/dist/ui/pagination.d.ts +17 -38
  327. package/dist/ui/pagination.d.ts.map +1 -1
  328. package/dist/ui/pagination.js +142 -56
  329. package/dist/ui/popover.d.ts +7 -22
  330. package/dist/ui/popover.d.ts.map +1 -1
  331. package/dist/ui/popover.js +48 -33
  332. package/dist/ui/progress.d.ts +3 -11
  333. package/dist/ui/progress.d.ts.map +1 -1
  334. package/dist/ui/progress.js +24 -21
  335. package/dist/ui/radio-group.d.ts +4 -14
  336. package/dist/ui/radio-group.d.ts.map +1 -1
  337. package/dist/ui/radio-group.js +35 -27
  338. package/dist/ui/resizable.d.ts +22 -34
  339. package/dist/ui/resizable.d.ts.map +1 -1
  340. package/dist/ui/resizable.js +33 -22
  341. package/dist/ui/route-announcer.d.ts +3 -10
  342. package/dist/ui/route-announcer.d.ts.map +1 -1
  343. package/dist/ui/route-announcer.js +20 -19
  344. package/dist/ui/scroll-area.d.ts +4 -16
  345. package/dist/ui/scroll-area.d.ts.map +1 -1
  346. package/dist/ui/scroll-area.js +44 -36
  347. package/dist/ui/section.d.ts +20 -24
  348. package/dist/ui/section.d.ts.map +1 -1
  349. package/dist/ui/section.js +56 -59
  350. package/dist/ui/select.d.ts +15 -51
  351. package/dist/ui/select.d.ts.map +1 -1
  352. package/dist/ui/select.js +147 -87
  353. package/dist/ui/separator.d.ts +3 -12
  354. package/dist/ui/separator.d.ts.map +1 -1
  355. package/dist/ui/separator.js +22 -18
  356. package/dist/ui/sheet.d.ts +13 -40
  357. package/dist/ui/sheet.d.ts.map +1 -1
  358. package/dist/ui/sheet.js +117 -72
  359. package/dist/ui/sidebar.d.ts +65 -162
  360. package/dist/ui/sidebar.d.ts.map +1 -1
  361. package/dist/ui/sidebar.js +794 -372
  362. package/dist/ui/skeleton.d.ts +2 -9
  363. package/dist/ui/skeleton.d.ts.map +1 -1
  364. package/dist/ui/skeleton.js +22 -12
  365. package/dist/ui/skip-link.d.ts +6 -15
  366. package/dist/ui/skip-link.d.ts.map +1 -1
  367. package/dist/ui/skip-link.js +20 -15
  368. package/dist/ui/slider.d.ts +3 -14
  369. package/dist/ui/slider.d.ts.map +1 -1
  370. package/dist/ui/slider.js +42 -37
  371. package/dist/ui/sonner.d.ts +2 -8
  372. package/dist/ui/sonner.d.ts.map +1 -1
  373. package/dist/ui/sonner.js +21 -21
  374. package/dist/ui/stack.d.ts +40 -44
  375. package/dist/ui/stack.d.ts.map +1 -1
  376. package/dist/ui/stack.js +143 -148
  377. package/dist/ui/stat-card-group.d.ts +9 -17
  378. package/dist/ui/stat-card-group.d.ts.map +1 -1
  379. package/dist/ui/stat-card-group.js +255 -35
  380. package/dist/ui/stepper.d.ts +10 -20
  381. package/dist/ui/stepper.d.ts.map +1 -1
  382. package/dist/ui/stepper.js +176 -33
  383. package/dist/ui/switch.d.ts +5 -13
  384. package/dist/ui/switch.d.ts.map +1 -1
  385. package/dist/ui/switch.js +23 -20
  386. package/dist/ui/table.d.ts +10 -38
  387. package/dist/ui/table.d.ts.map +1 -1
  388. package/dist/ui/table.js +91 -61
  389. package/dist/ui/tabs.d.ts +7 -23
  390. package/dist/ui/tabs.d.ts.map +1 -1
  391. package/dist/ui/tabs.js +48 -34
  392. package/dist/ui/text.d.ts +5 -13
  393. package/dist/ui/text.d.ts.map +1 -1
  394. package/dist/ui/text.js +14 -13
  395. package/dist/ui/textarea.d.ts +4 -11
  396. package/dist/ui/textarea.d.ts.map +1 -1
  397. package/dist/ui/textarea.js +13 -13
  398. package/dist/ui/time-picker.d.ts +8 -20
  399. package/dist/ui/time-picker.d.ts.map +1 -1
  400. package/dist/ui/time-picker.js +176 -76
  401. package/dist/ui/toast.d.ts +15 -19
  402. package/dist/ui/toast.d.ts.map +1 -1
  403. package/dist/ui/toast.js +63 -51
  404. package/dist/ui/toaster.d.ts +1 -6
  405. package/dist/ui/toaster.d.ts.map +1 -1
  406. package/dist/ui/toaster.js +212 -24
  407. package/dist/ui/toggle-group.d.ts +6 -22
  408. package/dist/ui/toggle-group.d.ts.map +1 -1
  409. package/dist/ui/toggle-group.js +85 -42
  410. package/dist/ui/toggle.d.ts +7 -17
  411. package/dist/ui/toggle.d.ts.map +1 -1
  412. package/dist/ui/toggle.js +38 -37
  413. package/dist/ui/tooltip.d.ts +7 -23
  414. package/dist/ui/tooltip.d.ts.map +1 -1
  415. package/dist/ui/tooltip.js +57 -34
  416. package/dist/ui/typography.d.ts +13 -61
  417. package/dist/ui/typography.d.ts.map +1 -1
  418. package/dist/ui/typography.js +95 -64
  419. package/dist/ui/use-media-query.d.ts +1 -4
  420. package/dist/ui/use-media-query.d.ts.map +1 -1
  421. package/dist/ui/use-media-query.js +18 -17
  422. package/dist/ui/use-mobile.d.ts +1 -4
  423. package/dist/ui/use-mobile.d.ts.map +1 -1
  424. package/dist/ui/use-mobile.js +19 -18
  425. package/dist/ui/use-reduced-motion.d.ts +1 -4
  426. package/dist/ui/use-reduced-motion.d.ts.map +1 -1
  427. package/dist/ui/use-reduced-motion.js +16 -15
  428. package/dist/ui/use-toast.d.ts +28 -33
  429. package/dist/ui/use-toast.d.ts.map +1 -1
  430. package/dist/ui/use-toast.js +113 -111
  431. package/dist/ui/useListState.d.ts +23 -31
  432. package/dist/ui/useListState.d.ts.map +1 -1
  433. package/dist/ui/useListState.js +69 -73
  434. package/dist/ui/usecases/UseCaseCard.d.ts +7 -18
  435. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -1
  436. package/dist/ui/usecases/UseCaseCard.js +225 -33
  437. package/dist/ui/usecases/UserStoryCard.d.ts +5 -14
  438. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -1
  439. package/dist/ui/usecases/UserStoryCard.js +179 -34
  440. package/dist/ui/usecases/index.d.ts +3 -3
  441. package/dist/ui/usecases/index.d.ts.map +1 -0
  442. package/dist/ui/usecases/index.js +261 -3
  443. package/dist/ui/utils.d.ts +2 -6
  444. package/dist/ui/utils.d.ts.map +1 -1
  445. package/dist/ui/utils.js +8 -7
  446. package/dist/ui/visually-hidden.d.ts +5 -8
  447. package/dist/ui/visually-hidden.d.ts.map +1 -1
  448. package/dist/ui/visually-hidden.js +26 -27
  449. package/package.json +872 -236
  450. package/dist/ui/accordion.js.map +0 -1
  451. package/dist/ui/alert-dialog.js.map +0 -1
  452. package/dist/ui/alert.js.map +0 -1
  453. package/dist/ui/aspect-ratio.js.map +0 -1
  454. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +0 -1
  455. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +0 -1
  456. package/dist/ui/atoms/Pagination/Pagination.js.map +0 -1
  457. package/dist/ui/atoms/SearchInput/SearchInput.js.map +0 -1
  458. package/dist/ui/avatar.js.map +0 -1
  459. package/dist/ui/badge.js.map +0 -1
  460. package/dist/ui/breadcrumb.js.map +0 -1
  461. package/dist/ui/button.js.map +0 -1
  462. package/dist/ui/calendar.js.map +0 -1
  463. package/dist/ui/card.js.map +0 -1
  464. package/dist/ui/carousel.js.map +0 -1
  465. package/dist/ui/checkbox.js.map +0 -1
  466. package/dist/ui/collapsible.js.map +0 -1
  467. package/dist/ui/command.js.map +0 -1
  468. package/dist/ui/confirm-dialog.js.map +0 -1
  469. package/dist/ui/context-menu.js.map +0 -1
  470. package/dist/ui/cta.js.map +0 -1
  471. package/dist/ui/date-picker.js.map +0 -1
  472. package/dist/ui/date-range-picker.js.map +0 -1
  473. package/dist/ui/datetime-picker.js.map +0 -1
  474. package/dist/ui/dialog.js.map +0 -1
  475. package/dist/ui/drawer.js.map +0 -1
  476. package/dist/ui/dropdown-menu.js.map +0 -1
  477. package/dist/ui/empty-state.js.map +0 -1
  478. package/dist/ui/empty.js.map +0 -1
  479. package/dist/ui/field.js.map +0 -1
  480. package/dist/ui/focus-on-route-change.js.map +0 -1
  481. package/dist/ui/form.js.map +0 -1
  482. package/dist/ui/hover-card.js.map +0 -1
  483. package/dist/ui/input-group.js.map +0 -1
  484. package/dist/ui/input-otp.js.map +0 -1
  485. package/dist/ui/input.js.map +0 -1
  486. package/dist/ui/label.js.map +0 -1
  487. package/dist/ui/link.js.map +0 -1
  488. package/dist/ui/live-region.js.map +0 -1
  489. package/dist/ui/loading-button.js.map +0 -1
  490. package/dist/ui/map/MapBase.js.map +0 -1
  491. package/dist/ui/map/MapGeoJsonOverlay.js.map +0 -1
  492. package/dist/ui/map/MapHeatmapH3.js.map +0 -1
  493. package/dist/ui/map/MapMarkers.js.map +0 -1
  494. package/dist/ui/marketing/FeatureGrid.js.map +0 -1
  495. package/dist/ui/marketing/Hero.js.map +0 -1
  496. package/dist/ui/marketing/PricingTable.js.map +0 -1
  497. package/dist/ui/menubar.js.map +0 -1
  498. package/dist/ui/molecules/Autocomplete/index.js.map +0 -1
  499. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +0 -1
  500. package/dist/ui/molecules/SkeletonList.js.map +0 -1
  501. package/dist/ui/nav-layout.js.map +0 -1
  502. package/dist/ui/navigation-menu.js.map +0 -1
  503. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +0 -1
  504. package/dist/ui/organisms/ListPage/ListPage.js.map +0 -1
  505. package/dist/ui/page-header.js.map +0 -1
  506. package/dist/ui/pagination.js.map +0 -1
  507. package/dist/ui/popover.js.map +0 -1
  508. package/dist/ui/progress.js.map +0 -1
  509. package/dist/ui/radio-group.js.map +0 -1
  510. package/dist/ui/resizable.js.map +0 -1
  511. package/dist/ui/route-announcer.js.map +0 -1
  512. package/dist/ui/scroll-area.js.map +0 -1
  513. package/dist/ui/section.js.map +0 -1
  514. package/dist/ui/select.js.map +0 -1
  515. package/dist/ui/separator.js.map +0 -1
  516. package/dist/ui/sheet.js.map +0 -1
  517. package/dist/ui/sidebar.js.map +0 -1
  518. package/dist/ui/skeleton.js.map +0 -1
  519. package/dist/ui/skip-link.js.map +0 -1
  520. package/dist/ui/slider.js.map +0 -1
  521. package/dist/ui/sonner.js.map +0 -1
  522. package/dist/ui/stack.js.map +0 -1
  523. package/dist/ui/stat-card-group.js.map +0 -1
  524. package/dist/ui/stepper.js.map +0 -1
  525. package/dist/ui/switch.js.map +0 -1
  526. package/dist/ui/table.js.map +0 -1
  527. package/dist/ui/tabs.js.map +0 -1
  528. package/dist/ui/text.js.map +0 -1
  529. package/dist/ui/textarea.js.map +0 -1
  530. package/dist/ui/time-picker.js.map +0 -1
  531. package/dist/ui/toast.js.map +0 -1
  532. package/dist/ui/toaster.js.map +0 -1
  533. package/dist/ui/toggle-group.js.map +0 -1
  534. package/dist/ui/toggle.js.map +0 -1
  535. package/dist/ui/tooltip.js.map +0 -1
  536. package/dist/ui/typography.js.map +0 -1
  537. package/dist/ui/use-media-query.js.map +0 -1
  538. package/dist/ui/use-mobile.js.map +0 -1
  539. package/dist/ui/use-reduced-motion.js.map +0 -1
  540. package/dist/ui/use-toast.js.map +0 -1
  541. package/dist/ui/useListState.js.map +0 -1
  542. package/dist/ui/usecases/UseCaseCard.js.map +0 -1
  543. package/dist/ui/usecases/UserStoryCard.js.map +0 -1
  544. package/dist/ui/utils.js.map +0 -1
  545. package/dist/ui/visually-hidden.js.map +0 -1
@@ -0,0 +1,221 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // ui/label.tsx
10
+ import * as LabelPrimitive from "@radix-ui/react-label";
11
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
12
+ import { jsxDEV } from "react/jsx-dev-runtime";
13
+ "use client";
14
+ function Label({
15
+ className,
16
+ ...props
17
+ }) {
18
+ return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
19
+ "data-slot": "label",
20
+ className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
21
+ ...props
22
+ }, undefined, false, undefined, this);
23
+ }
24
+ // ui/separator.tsx
25
+ import * as SeparatorPrimitive from "@radix-ui/react-separator";
26
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
27
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
28
+ "use client";
29
+ function Separator({
30
+ className,
31
+ orientation = "horizontal",
32
+ decorative = true,
33
+ ...props
34
+ }) {
35
+ return /* @__PURE__ */ jsxDEV2(SeparatorPrimitive.Root, {
36
+ "data-slot": "separator",
37
+ decorative,
38
+ orientation,
39
+ className: cn2("bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px", className),
40
+ ...props
41
+ }, undefined, false, undefined, this);
42
+ }
43
+ // ui/field.tsx
44
+ import * as React from "react";
45
+ import { cva } from "class-variance-authority";
46
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
47
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
48
+ "use client";
49
+ function FieldSet({
50
+ className,
51
+ ...props
52
+ }) {
53
+ return /* @__PURE__ */ jsxDEV3("fieldset", {
54
+ "data-slot": "field-set",
55
+ className: cn3("flex flex-col gap-6", "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className),
56
+ ...props
57
+ }, undefined, false, undefined, this);
58
+ }
59
+ function FieldLegend({
60
+ className,
61
+ variant = "legend",
62
+ ...props
63
+ }) {
64
+ return /* @__PURE__ */ jsxDEV3("legend", {
65
+ "data-slot": "field-legend",
66
+ "data-variant": variant,
67
+ className: cn3("mb-3 font-medium", "data-[variant=legend]:text-base", "data-[variant=label]:text-sm", className),
68
+ ...props
69
+ }, undefined, false, undefined, this);
70
+ }
71
+ function FieldGroup({
72
+ className,
73
+ ...props
74
+ }) {
75
+ return /* @__PURE__ */ jsxDEV3("div", {
76
+ "data-slot": "field-group",
77
+ className: cn3("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 data-[slot=field-group]:*:gap-4", className),
78
+ ...props
79
+ }, undefined, false, undefined, this);
80
+ }
81
+ var fieldVariants = cva("group/field flex w-full gap-3 data-[invalid=true]:text-destructive", {
82
+ variants: {
83
+ orientation: {
84
+ vertical: ["flex-col *:w-full [&>.sr-only]:w-auto"],
85
+ horizontal: [
86
+ "flex-row items-center",
87
+ "data-[slot=field-label]:*:flex-auto",
88
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
89
+ ],
90
+ responsive: [
91
+ "flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto",
92
+ "@md/field-group:data-[slot=field-label]:*:flex-auto",
93
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
94
+ ]
95
+ }
96
+ },
97
+ defaultVariants: {
98
+ orientation: "vertical"
99
+ }
100
+ });
101
+ function Field({
102
+ className,
103
+ orientation = "vertical",
104
+ ...props
105
+ }) {
106
+ return /* @__PURE__ */ jsxDEV3("div", {
107
+ role: "group",
108
+ "data-slot": "field",
109
+ "data-orientation": orientation,
110
+ className: cn3(fieldVariants({ orientation }), className),
111
+ ...props
112
+ }, undefined, false, undefined, this);
113
+ }
114
+ function FieldContent({
115
+ className,
116
+ ...props
117
+ }) {
118
+ return /* @__PURE__ */ jsxDEV3("div", {
119
+ "data-slot": "field-content",
120
+ className: cn3("group/field-content flex flex-1 flex-col gap-1.5 leading-snug", className),
121
+ ...props
122
+ }, undefined, false, undefined, this);
123
+ }
124
+ function FieldLabel({
125
+ className,
126
+ ...props
127
+ }) {
128
+ return /* @__PURE__ */ jsxDEV3(Label, {
129
+ "data-slot": "field-label",
130
+ className: cn3("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50", "has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4", "has-data-[state=checked]:bg-primary/5 has-data-[state=checked]:border-primary dark:has-data-[state=checked]:bg-primary/10", className),
131
+ ...props
132
+ }, undefined, false, undefined, this);
133
+ }
134
+ function FieldTitle({
135
+ className,
136
+ ...props
137
+ }) {
138
+ return /* @__PURE__ */ jsxDEV3("div", {
139
+ "data-slot": "field-label",
140
+ className: cn3("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50", className),
141
+ ...props
142
+ }, undefined, false, undefined, this);
143
+ }
144
+ function FieldDescription({
145
+ className,
146
+ ...props
147
+ }) {
148
+ return /* @__PURE__ */ jsxDEV3("p", {
149
+ "data-slot": "field-description",
150
+ className: cn3("text-muted-foreground text-sm leading-normal font-normal group-has-data-[orientation=horizontal]/field:text-balance", "last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5", "[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4", className),
151
+ ...props
152
+ }, undefined, false, undefined, this);
153
+ }
154
+ function FieldSeparator({
155
+ children,
156
+ className,
157
+ ...props
158
+ }) {
159
+ return /* @__PURE__ */ jsxDEV3("div", {
160
+ "data-slot": "field-separator",
161
+ "data-content": !!children,
162
+ className: cn3("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", className),
163
+ ...props,
164
+ children: [
165
+ /* @__PURE__ */ jsxDEV3(Separator, {
166
+ className: "absolute inset-0 top-1/2"
167
+ }, undefined, false, undefined, this),
168
+ children && /* @__PURE__ */ jsxDEV3("span", {
169
+ className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
170
+ "data-slot": "field-separator-content",
171
+ children
172
+ }, undefined, false, undefined, this)
173
+ ]
174
+ }, undefined, true, undefined, this);
175
+ }
176
+ function FieldError({
177
+ className,
178
+ children,
179
+ errors,
180
+ ...props
181
+ }) {
182
+ const content = React.useMemo(() => {
183
+ if (children) {
184
+ return children;
185
+ }
186
+ if (!errors?.length) {
187
+ return null;
188
+ }
189
+ if (errors?.length == 1) {
190
+ return errors[0]?.message;
191
+ }
192
+ return /* @__PURE__ */ jsxDEV3("ul", {
193
+ className: "ml-4 flex list-disc flex-col gap-1",
194
+ children: errors.map((error, index) => error?.message && /* @__PURE__ */ jsxDEV3("li", {
195
+ children: error.message
196
+ }, index, false, undefined, this))
197
+ }, undefined, false, undefined, this);
198
+ }, [children, errors]);
199
+ if (!content) {
200
+ return null;
201
+ }
202
+ return /* @__PURE__ */ jsxDEV3("div", {
203
+ role: "alert",
204
+ "data-slot": "field-error",
205
+ className: cn3("text-destructive text-sm font-normal", className),
206
+ ...props,
207
+ children: content
208
+ }, undefined, false, undefined, this);
209
+ }
210
+ export {
211
+ FieldTitle,
212
+ FieldSet,
213
+ FieldSeparator,
214
+ FieldLegend,
215
+ FieldLabel,
216
+ FieldGroup,
217
+ FieldError,
218
+ FieldDescription,
219
+ FieldContent,
220
+ Field
221
+ };
@@ -0,0 +1,25 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // ui/focus-on-route-change.tsx
10
+ import * as React from "react";
11
+ function FocusOnRouteChange({
12
+ focusSelector = "h1, [data-page-title], #main"
13
+ }) {
14
+ React.useEffect(() => {
15
+ const el = document.querySelector(focusSelector);
16
+ if (el) {
17
+ el.tabIndex = -1;
18
+ el.focus();
19
+ }
20
+ });
21
+ return null;
22
+ }
23
+ export {
24
+ FocusOnRouteChange
25
+ };
@@ -0,0 +1,156 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // ui/label.tsx
10
+ import * as LabelPrimitive from "@radix-ui/react-label";
11
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
12
+ import { jsxDEV } from "react/jsx-dev-runtime";
13
+ "use client";
14
+ function Label({
15
+ className,
16
+ ...props
17
+ }) {
18
+ return /* @__PURE__ */ jsxDEV(LabelPrimitive.Root, {
19
+ "data-slot": "label",
20
+ className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
21
+ ...props
22
+ }, undefined, false, undefined, this);
23
+ }
24
+ // ui/utils.ts
25
+ import { clsx } from "clsx";
26
+ import { twMerge } from "tailwind-merge";
27
+ function cn2(...inputs) {
28
+ return twMerge(clsx(inputs));
29
+ }
30
+
31
+ // ui/form.tsx
32
+ import * as React from "react";
33
+ import { Slot } from "@radix-ui/react-slot";
34
+ import {
35
+ Controller,
36
+ FormProvider,
37
+ useFormContext,
38
+ useFormState
39
+ } from "react-hook-form";
40
+ import { zodResolver } from "@hookform/resolvers/zod";
41
+ import { useForm, useFieldArray } from "react-hook-form";
42
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
43
+ "use client";
44
+ var Form = FormProvider;
45
+ var FormFieldContext = React.createContext({});
46
+ var FormField = ({
47
+ ...props
48
+ }) => {
49
+ return /* @__PURE__ */ jsxDEV2(FormFieldContext.Provider, {
50
+ value: { name: props.name },
51
+ children: /* @__PURE__ */ jsxDEV2(Controller, {
52
+ ...props
53
+ }, undefined, false, undefined, this)
54
+ }, undefined, false, undefined, this);
55
+ };
56
+ var useFormField = () => {
57
+ const fieldContext = React.useContext(FormFieldContext);
58
+ const itemContext = React.useContext(FormItemContext);
59
+ const { getFieldState } = useFormContext();
60
+ const formState = useFormState({ name: fieldContext.name });
61
+ const fieldState = getFieldState(fieldContext.name, formState);
62
+ if (!fieldContext) {
63
+ throw new Error("useFormField should be used within <FormField>");
64
+ }
65
+ const { id } = itemContext;
66
+ return {
67
+ id,
68
+ name: fieldContext.name,
69
+ formItemId: `${id}-form-item`,
70
+ formDescriptionId: `${id}-form-item-description`,
71
+ formMessageId: `${id}-form-item-message`,
72
+ ...fieldState
73
+ };
74
+ };
75
+ var FormItemContext = React.createContext({});
76
+ function FormItem({
77
+ className,
78
+ ...props
79
+ }) {
80
+ const id = React.useId();
81
+ return /* @__PURE__ */ jsxDEV2(FormItemContext.Provider, {
82
+ value: { id },
83
+ children: /* @__PURE__ */ jsxDEV2("div", {
84
+ "data-slot": "form-item",
85
+ className: cn2("grid gap-2", className),
86
+ ...props
87
+ }, undefined, false, undefined, this)
88
+ }, undefined, false, undefined, this);
89
+ }
90
+ function FormLabel({
91
+ className,
92
+ ...props
93
+ }) {
94
+ const { error, formItemId } = useFormField();
95
+ return /* @__PURE__ */ jsxDEV2(Label, {
96
+ "data-slot": "form-label",
97
+ "data-error": !!error,
98
+ className: cn2("data-[error=true]:text-destructive", className),
99
+ htmlFor: formItemId,
100
+ ...props
101
+ }, undefined, false, undefined, this);
102
+ }
103
+ function FormControl({
104
+ ...props
105
+ }) {
106
+ const { error, formItemId, formDescriptionId, formMessageId } = useFormField();
107
+ return /* @__PURE__ */ jsxDEV2(Slot, {
108
+ "data-slot": "form-control",
109
+ id: formItemId,
110
+ "aria-describedby": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,
111
+ "aria-invalid": !!error,
112
+ ...props
113
+ }, undefined, false, undefined, this);
114
+ }
115
+ function FormDescription({
116
+ className,
117
+ ...props
118
+ }) {
119
+ const { formDescriptionId } = useFormField();
120
+ return /* @__PURE__ */ jsxDEV2("p", {
121
+ "data-slot": "form-description",
122
+ id: formDescriptionId,
123
+ className: cn2("text-muted-foreground text-sm", className),
124
+ ...props
125
+ }, undefined, false, undefined, this);
126
+ }
127
+ function FormMessage({
128
+ className,
129
+ ...props
130
+ }) {
131
+ const { error, formMessageId } = useFormField();
132
+ const body = error ? String(error?.message ?? "") : props.children;
133
+ if (!body) {
134
+ return null;
135
+ }
136
+ return /* @__PURE__ */ jsxDEV2("p", {
137
+ "data-slot": "form-message",
138
+ id: formMessageId,
139
+ className: cn2("text-destructive text-sm", className),
140
+ ...props,
141
+ children: body
142
+ }, undefined, false, undefined, this);
143
+ }
144
+ export {
145
+ zodResolver,
146
+ useFormField,
147
+ useForm,
148
+ useFieldArray,
149
+ FormMessage,
150
+ FormLabel,
151
+ FormItem,
152
+ FormField,
153
+ FormDescription,
154
+ FormControl,
155
+ Form
156
+ };
@@ -0,0 +1,51 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // ui/hover-card.tsx
10
+ import * as HoverCardPrimitive from "@radix-ui/react-hover-card";
11
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
12
+ import { jsxDEV } from "react/jsx-dev-runtime";
13
+ "use client";
14
+ function HoverCard({
15
+ ...props
16
+ }) {
17
+ return /* @__PURE__ */ jsxDEV(HoverCardPrimitive.Root, {
18
+ "data-slot": "hover-card",
19
+ ...props
20
+ }, undefined, false, undefined, this);
21
+ }
22
+ function HoverCardTrigger({
23
+ ...props
24
+ }) {
25
+ return /* @__PURE__ */ jsxDEV(HoverCardPrimitive.Trigger, {
26
+ "data-slot": "hover-card-trigger",
27
+ ...props
28
+ }, undefined, false, undefined, this);
29
+ }
30
+ function HoverCardContent({
31
+ className,
32
+ align = "center",
33
+ sideOffset = 4,
34
+ ...props
35
+ }) {
36
+ return /* @__PURE__ */ jsxDEV(HoverCardPrimitive.Portal, {
37
+ "data-slot": "hover-card-portal",
38
+ children: /* @__PURE__ */ jsxDEV(HoverCardPrimitive.Content, {
39
+ "data-slot": "hover-card-content",
40
+ align,
41
+ sideOffset,
42
+ 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 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden", className),
43
+ ...props
44
+ }, undefined, false, undefined, this)
45
+ }, undefined, false, undefined, this);
46
+ }
47
+ export {
48
+ HoverCardTrigger,
49
+ HoverCardContent,
50
+ HoverCard
51
+ };
@@ -0,0 +1,192 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // ui/button.tsx
10
+ import * as React from "react";
11
+ import { Slot } from "@radix-ui/react-slot";
12
+ import { cva } from "class-variance-authority";
13
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
14
+ import { jsxDEV } from "react/jsx-dev-runtime";
15
+ var buttonVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", {
16
+ variants: {
17
+ variant: {
18
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
19
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
20
+ outline: "border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
21
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
22
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
23
+ link: "text-primary underline-offset-4 hover:underline"
24
+ },
25
+ size: {
26
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
27
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
28
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
29
+ icon: "size-9"
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ variant: "default",
34
+ size: "default"
35
+ }
36
+ });
37
+ var Button = React.forwardRef(({ className, variant, size, asChild = false, ...props }, ref) => {
38
+ if (asChild) {
39
+ return /* @__PURE__ */ jsxDEV(Slot, {
40
+ "data-slot": "button",
41
+ className: cn(buttonVariants({ variant, size, className })),
42
+ ...props
43
+ }, undefined, false, undefined, this);
44
+ }
45
+ return /* @__PURE__ */ jsxDEV("button", {
46
+ ref,
47
+ "data-slot": "button",
48
+ className: cn(buttonVariants({ variant, size, className })),
49
+ ...props
50
+ }, undefined, false, undefined, this);
51
+ });
52
+ Button.displayName = "Button";
53
+ // ui/input.tsx
54
+ import { cn as cn2 } from "@contractspec/lib.ui-kit-core/utils";
55
+ import { jsxDEV as jsxDEV2 } from "react/jsx-dev-runtime";
56
+ function Input({ className, type, ...props }) {
57
+ return /* @__PURE__ */ jsxDEV2("input", {
58
+ type,
59
+ "data-slot": "input",
60
+ className: cn2("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", "focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]", "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive", className),
61
+ ...props
62
+ }, undefined, false, undefined, this);
63
+ }
64
+ // ui/textarea.tsx
65
+ import { cn as cn3 } from "@contractspec/lib.ui-kit-core/utils";
66
+ import { jsxDEV as jsxDEV3 } from "react/jsx-dev-runtime";
67
+ function Textarea({ className, ...props }) {
68
+ return /* @__PURE__ */ jsxDEV3("textarea", {
69
+ "data-slot": "textarea",
70
+ className: cn3("aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-2xs outline-hidden transition-[color,box-shadow] focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", className),
71
+ ...props
72
+ }, undefined, false, undefined, this);
73
+ }
74
+ // ui/input-group.tsx
75
+ import { cva as cva2 } from "class-variance-authority";
76
+ import { cn as cn4 } from "@contractspec/lib.ui-kit-core/utils";
77
+ import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
78
+ "use client";
79
+ function InputGroup({
80
+ className,
81
+ ...props
82
+ }) {
83
+ return /* @__PURE__ */ jsxDEV4("div", {
84
+ "data-slot": "input-group",
85
+ role: "group",
86
+ className: cn4("group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none", "h-9 min-w-0 has-[>textarea]:h-auto", "has-[>[data-align=inline-start]]:[&>input]:pl-2", "has-[>[data-align=inline-end]]:[&>input]:pr-2", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3", "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]", "has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40", className),
87
+ ...props
88
+ }, undefined, false, undefined, this);
89
+ }
90
+ var inputGroupAddonVariants = cva2("text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50", {
91
+ variants: {
92
+ align: {
93
+ "inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
94
+ "inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
95
+ "block-start": "order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5",
96
+ "block-end": "order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"
97
+ }
98
+ },
99
+ defaultVariants: {
100
+ align: "inline-start"
101
+ }
102
+ });
103
+ function InputGroupAddon({
104
+ className,
105
+ align = "inline-start",
106
+ ...props
107
+ }) {
108
+ return /* @__PURE__ */ jsxDEV4("div", {
109
+ role: "group",
110
+ "data-slot": "input-group-addon",
111
+ "data-align": align,
112
+ className: cn4(inputGroupAddonVariants({ align }), className),
113
+ onClick: (e) => {
114
+ if (e.target.closest("button")) {
115
+ return;
116
+ }
117
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
118
+ },
119
+ onKeyDown: (e) => {
120
+ if (e.key === "Enter" || e.key === " ") {
121
+ e.preventDefault();
122
+ e.currentTarget.parentElement?.querySelector("input")?.focus();
123
+ }
124
+ },
125
+ ...props
126
+ }, undefined, false, undefined, this);
127
+ }
128
+ var inputGroupButtonVariants = cva2("text-sm shadow-none flex gap-2 items-center", {
129
+ variants: {
130
+ size: {
131
+ xs: "h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",
132
+ sm: "h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5",
133
+ "icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
134
+ "icon-sm": "size-8 p-0 has-[>svg]:p-0"
135
+ }
136
+ },
137
+ defaultVariants: {
138
+ size: "xs"
139
+ }
140
+ });
141
+ function InputGroupButton({
142
+ className,
143
+ type = "button",
144
+ variant = "ghost",
145
+ size = "xs",
146
+ ...props
147
+ }) {
148
+ return /* @__PURE__ */ jsxDEV4(Button, {
149
+ type,
150
+ "data-size": size,
151
+ variant,
152
+ className: cn4(inputGroupButtonVariants({ size }), className),
153
+ ...props
154
+ }, undefined, false, undefined, this);
155
+ }
156
+ function InputGroupText({
157
+ className,
158
+ ...props
159
+ }) {
160
+ return /* @__PURE__ */ jsxDEV4("span", {
161
+ className: cn4("text-muted-foreground flex items-center gap-2 text-sm [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4", className),
162
+ ...props
163
+ }, undefined, false, undefined, this);
164
+ }
165
+ function InputGroupInput({
166
+ className,
167
+ ...props
168
+ }) {
169
+ return /* @__PURE__ */ jsxDEV4(Input, {
170
+ "data-slot": "input-group-control",
171
+ className: cn4("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent", className),
172
+ ...props
173
+ }, undefined, false, undefined, this);
174
+ }
175
+ function InputGroupTextarea({
176
+ className,
177
+ ...props
178
+ }) {
179
+ return /* @__PURE__ */ jsxDEV4(Textarea, {
180
+ "data-slot": "input-group-control",
181
+ className: cn4("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent", className),
182
+ ...props
183
+ }, undefined, false, undefined, this);
184
+ }
185
+ export {
186
+ InputGroupTextarea,
187
+ InputGroupText,
188
+ InputGroupInput,
189
+ InputGroupButton,
190
+ InputGroupAddon,
191
+ InputGroup
192
+ };