@contractspec/lib.ui-kit-web 1.44.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 (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 +47 -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 +38 -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 +51 -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 +40 -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 +105 -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 +200 -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 +338 -0
@@ -0,0 +1,78 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime174 from "react/jsx-runtime";
3
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
4
+
5
+ //#region ui/dropdown-menu.d.ts
6
+ declare function DropdownMenu({
7
+ ...props
8
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Root>): react_jsx_runtime174.JSX.Element;
9
+ declare function DropdownMenuPortal({
10
+ ...props
11
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Portal>): react_jsx_runtime174.JSX.Element;
12
+ declare function DropdownMenuTrigger({
13
+ ...props
14
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): react_jsx_runtime174.JSX.Element;
15
+ declare function DropdownMenuContent({
16
+ className,
17
+ sideOffset,
18
+ ...props
19
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Content>): react_jsx_runtime174.JSX.Element;
20
+ declare function DropdownMenuGroup({
21
+ ...props
22
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Group>): react_jsx_runtime174.JSX.Element;
23
+ declare function DropdownMenuItem({
24
+ className,
25
+ inset,
26
+ variant,
27
+ ...props
28
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
29
+ inset?: boolean;
30
+ variant?: 'default' | 'destructive';
31
+ }): react_jsx_runtime174.JSX.Element;
32
+ declare function DropdownMenuCheckboxItem({
33
+ className,
34
+ children,
35
+ checked,
36
+ ...props
37
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): react_jsx_runtime174.JSX.Element;
38
+ declare function DropdownMenuRadioGroup({
39
+ ...props
40
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): react_jsx_runtime174.JSX.Element;
41
+ declare function DropdownMenuRadioItem({
42
+ className,
43
+ children,
44
+ ...props
45
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): react_jsx_runtime174.JSX.Element;
46
+ declare function DropdownMenuLabel({
47
+ className,
48
+ inset,
49
+ ...props
50
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
51
+ inset?: boolean;
52
+ }): react_jsx_runtime174.JSX.Element;
53
+ declare function DropdownMenuSeparator({
54
+ className,
55
+ ...props
56
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Separator>): react_jsx_runtime174.JSX.Element;
57
+ declare function DropdownMenuShortcut({
58
+ className,
59
+ ...props
60
+ }: React$1.ComponentPropsWithoutRef<'span'>): react_jsx_runtime174.JSX.Element;
61
+ declare function DropdownMenuSub({
62
+ ...props
63
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.Sub>): react_jsx_runtime174.JSX.Element;
64
+ declare function DropdownMenuSubTrigger({
65
+ className,
66
+ inset,
67
+ children,
68
+ ...props
69
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
70
+ inset?: boolean;
71
+ }): react_jsx_runtime174.JSX.Element;
72
+ declare function DropdownMenuSubContent({
73
+ className,
74
+ ...props
75
+ }: React$1.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): react_jsx_runtime174.JSX.Element;
76
+ //#endregion
77
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
78
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","names":[],"sources":["../../ui/dropdown-menu.tsx"],"sourcesContent":[],"mappings":";;;;;iBAQS,YAAA;;GAEN,OAAA,CAAM,sBAAsB,qBAAA,CAAsB,QAAK,oBAAA,CAAA,GAAA,CAAA;iBAIjD,kBAAA;;GAEN,OAAA,CAAM,sBAAsB,qBAAA,CAAsB,UAAO,oBAAA,CAAA,GAAA,CAAA;iBAMnD,mBAAA;;GAEN,OAAA,CAAM,sBAAsB,qBAAA,CAAsB,WAAQ,oBAAA,CAAA,GAAA,CAAA;AArBU,iBA8B9D,mBAAA,CAzBY;EAAA,SAAA;EAAA,UAAA;EAAA,GAAA;AAAA,CAAA,EA6BlB,OAAA,CAAM,cA7BY,CAAA,OA6BU,qBAAA,CAAsB,OA7BhC,CAAA,CAAA,EA6BwC,oBAAA,CAAA,GAAA,CAAA,OA7BxC;iBA6CZ,iBAAA,CA3C4C;EAAA,GAAA;AAAA,CAAA,EA6ClD,OAAA,CAAM,cA7C4C,CAAA,OA6CtB,qBAAA,CAAsB,KA7CA,CAAA,CAAA,EA6CM,oBAAA,CAAA,GAAA,CAAA,OA7CN;iBAmD5C,gBAAA,CAnDA;EAAA,SAAA;EAAA,KAAA;EAAA,OAAA;EAAA,GAAA;AAAiD,CAAjD,EAwDN,OAAA,CAAM,cAxDA,CAAA,OAwDsB,qBAAA,CAAsB,IAxD5C,CAAA,GAAA;EAAiD,KAAA,CAAA,EAAA,OAAA;EAAA,OAAA,CAAA,EAAA,SAAA,GAAA,aAAA;AAAA,CAAA,CAAA,EA2DzD,oBAAA,CAAA,GAAA,CAAA,OAvD0B;iBAsElB,wBAAA,CApE4C;EAAA,SAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAyElD,OAAA,CAAM,cAzE4C,CAAA,OAyEtB,qBAAA,CAAsB,YAzEA,CAAA,CAAA,EAyEa,oBAAA,CAAA,GAAA,CAAA,OAzEb;iBA8F5C,sBAAA,CA9FA;EAAA,GAAA;AAAA,CAAA,EAgGN,OAAA,CAAM,cAhGA,CAAA,OAgGsB,qBAAA,CAAsB,UAhG5C,CAAA,CAAA,EAgGuD,oBAAA,CAAA,GAAA,CAAA,OAhGvD;iBAyGA,qBAAA,CAzGmD;EAAA,SAAA;EAAA,QAAA;EAAA,GAAA;AAAA,CAAA,EA6GzD,OAAA,CAAM,cA7GmD,CAAA,OA6G7B,qBAAA,CAAsB,SA7GO,CAAA,CAAA,EA6GG,oBAAA,CAAA,GAAA,CAAA,OA7GH;iBAiInD,iBAAA,CAjImD;EAAA,SAAA;EAAA,KAAA;EAAA,GAAA;CAAA,EAqIzD,OAAA,CAAM,cArImD,CAAA,OAqI7B,qBAAA,CAAsB,KArIO,CAAA,GAAA;EAMnD,KAAA,CAAA,EAAA,OAAA;CAEsB,CAAA,EA+H9B,oBAAA,CAAA,GAAA,CAAA,OA/HoD;iBA6I5C,qBAAA,CA7IA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgJN,OAAA,CAAM,cAhJA,CAAA,OAgJsB,qBAAA,CAAsB,SAhJ5C,CAAA,CAAA,EAgJsD,oBAAA,CAAA,GAAA,CAAA,OAhJtD;iBA0JA,oBAAA,CA1JoD;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6J1D,OAAA,CAAM,wBA7JoD,CAAA,MAAA,CAAA,CAAA,EA6JpB,oBAAA,CAAA,GAAA,CAAA,OA7JoB;iBA0KpD,eAAA,CA1KoD;EAAA,GAAA;AAAA,CAAA,EA4K1D,OAAA,CAAM,cA5KoD,CAAA,OA4K9B,qBAAA,CAAsB,GA5KQ,CAAA,CAAA,EA4KJ,oBAAA,CAAA,GAAA,CAAA,OA5KI;AAAA,iBAgLpD,sBAAA,CAvKmB;EAAA,SAAA;EAAA,KAAA;EAAA,QAAA;EAAA,GAAA;CAAA,EA4KzB,OAAA,CAAM,cA5KmB,CAAA,OA4KG,qBAAA,CAAsB,UA5KzB,CAAA,GAAA;EAC1B,KAAA,CAAA,EAAA,OAAA;CACA,CAAA,EA4KD,oBAAA,CAAA,GAAA,CAAA,OA5KC;iBA6LO,sBAAA,CA3L4C;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8LlD,OAAA,CAAM,cA9L4C,CAAA,OA8LtB,qBAAA,CAAsB,UA9LA,CAAA,CAAA,EA8LW,oBAAA,CAAA,GAAA,CAAA,OA9LX"}
@@ -0,0 +1,127 @@
1
+ 'use client';
2
+
3
+ import "react";
4
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
5
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
8
+
9
+ //#region ui/dropdown-menu.tsx
10
+ function DropdownMenu({ ...props }) {
11
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Root, {
12
+ "data-slot": "dropdown-menu",
13
+ ...props
14
+ });
15
+ }
16
+ function DropdownMenuPortal({ ...props }) {
17
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, {
18
+ "data-slot": "dropdown-menu-portal",
19
+ ...props
20
+ });
21
+ }
22
+ function DropdownMenuTrigger({ ...props }) {
23
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Trigger, {
24
+ "data-slot": "dropdown-menu-trigger",
25
+ ...props
26
+ });
27
+ }
28
+ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
29
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.Content, {
30
+ "data-slot": "dropdown-menu-content",
31
+ sideOffset,
32
+ 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 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md", className),
33
+ ...props
34
+ }) });
35
+ }
36
+ function DropdownMenuGroup({ ...props }) {
37
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Group, {
38
+ "data-slot": "dropdown-menu-group",
39
+ ...props
40
+ });
41
+ }
42
+ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
43
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Item, {
44
+ "data-slot": "dropdown-menu-item",
45
+ "data-inset": inset,
46
+ "data-variant": variant,
47
+ className: cn("data-[variant=destructive]:*:[svg]:text-destructive! focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
48
+ ...props
49
+ });
50
+ }
51
+ function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
52
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.CheckboxItem, {
53
+ "data-slot": "dropdown-menu-checkbox-item",
54
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
55
+ checked,
56
+ ...props,
57
+ children: [/* @__PURE__ */ jsx("span", {
58
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
59
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-4" }) })
60
+ }), children]
61
+ });
62
+ }
63
+ function DropdownMenuRadioGroup({ ...props }) {
64
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.RadioGroup, {
65
+ "data-slot": "dropdown-menu-radio-group",
66
+ ...props
67
+ });
68
+ }
69
+ function DropdownMenuRadioItem({ className, children, ...props }) {
70
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.RadioItem, {
71
+ "data-slot": "dropdown-menu-radio-item",
72
+ className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
73
+ ...props,
74
+ children: [/* @__PURE__ */ jsx("span", {
75
+ className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",
76
+ children: /* @__PURE__ */ jsx(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(CircleIcon, { className: "size-2 fill-current" }) })
77
+ }), children]
78
+ });
79
+ }
80
+ function DropdownMenuLabel({ className, inset, ...props }) {
81
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Label, {
82
+ "data-slot": "dropdown-menu-label",
83
+ "data-inset": inset,
84
+ className: cn("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className),
85
+ ...props
86
+ });
87
+ }
88
+ function DropdownMenuSeparator({ className, ...props }) {
89
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Separator, {
90
+ "data-slot": "dropdown-menu-separator",
91
+ className: cn("bg-border -mx-1 my-1 h-px", className),
92
+ ...props
93
+ });
94
+ }
95
+ function DropdownMenuShortcut({ className, ...props }) {
96
+ return /* @__PURE__ */ jsx("span", {
97
+ "data-slot": "dropdown-menu-shortcut",
98
+ className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
99
+ ...props
100
+ });
101
+ }
102
+ function DropdownMenuSub({ ...props }) {
103
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.Sub, {
104
+ "data-slot": "dropdown-menu-sub",
105
+ ...props
106
+ });
107
+ }
108
+ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
109
+ return /* @__PURE__ */ jsxs(DropdownMenuPrimitive.SubTrigger, {
110
+ "data-slot": "dropdown-menu-sub-trigger",
111
+ "data-inset": inset,
112
+ 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-sm outline-hidden select-none data-inset:pl-8", className),
113
+ ...props,
114
+ children: [children, /* @__PURE__ */ jsx(ChevronRightIcon, { className: "ml-auto size-4" })]
115
+ });
116
+ }
117
+ function DropdownMenuSubContent({ className, ...props }) {
118
+ return /* @__PURE__ */ jsx(DropdownMenuPrimitive.SubContent, {
119
+ "data-slot": "dropdown-menu-sub-content",
120
+ 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 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className),
121
+ ...props
122
+ });
123
+ }
124
+
125
+ //#endregion
126
+ export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger };
127
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../ui/dropdown-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\n\nimport { cn } from '@contractspec/lib.ui-kit-core/utils';\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = 'default',\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: 'default' | 'destructive';\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"data-[variant=destructive]:*:[svg]:text-destructive! focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n 'px-2 py-1.5 text-sm font-medium data-inset:pl-8',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'span'>) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"mappings":";;;;;;;;;AAQA,SAAS,aAAa,EACpB,GAAG,SACuD;AAC1D,QAAO,oBAAC,sBAAsB;EAAK,aAAU;EAAgB,GAAI;GAAS;;AAG5E,SAAS,mBAAmB,EAC1B,GAAG,SACyD;AAC5D,QACE,oBAAC,sBAAsB;EAAO,aAAU;EAAuB,GAAI;GAAS;;AAIhF,SAAS,oBAAoB,EAC3B,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,oBAAoB,EAC3B,WACA,aAAa,GACb,GAAG,SAC0D;AAC7D,QACE,oBAAC,sBAAsB,oBACrB,oBAAC,sBAAsB;EACrB,aAAU;EACE;EACZ,WAAW,GACT,sjBACA,UACD;EACD,GAAI;GACJ,GAC2B;;AAInC,SAAS,kBAAkB,EACzB,GAAG,SACwD;AAC3D,QACE,oBAAC,sBAAsB;EAAM,aAAU;EAAsB,GAAI;GAAS;;AAI9E,SAAS,iBAAiB,EACxB,WACA,OACA,UAAU,WACV,GAAG,SAIF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,gBAAc;EACd,WAAW,GACT,ymBACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,yBAAyB,EAChC,WACA,UACA,SACA,GAAG,SAC+D;AAClE,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,4SACA,UACD;EACQ;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,aAAU,WAAU,WAAW,GACI;IACjC,EACN;GACkC;;AAIzC,SAAS,uBAAuB,EAC9B,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;AAC/D,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,4SACA,UACD;EACD,GAAI;aAEJ,oBAAC;GAAK,WAAU;aACd,oBAAC,sBAAsB,2BACrB,oBAAC,cAAW,WAAU,wBAAwB,GACV;IACjC,EACN;GAC+B;;AAItC,SAAS,kBAAkB,EACzB,WACA,OACA,GAAG,SAGF;AACD,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,mDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,qBAAqB,EAC5B,WACA,GAAG,SACsC;AACzC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,GAAG,SACsD;AACzD,QAAO,oBAAC,sBAAsB;EAAI,aAAU;EAAoB,GAAI;GAAS;;AAG/E,SAAS,uBAAuB,EAC9B,WACA,OACA,UACA,GAAG,SAGF;AACD,QACE,qBAAC,sBAAsB;EACrB,aAAU;EACV,cAAY;EACZ,WAAW,GACT,gOACA,UACD;EACD,GAAI;aAEH,UACD,oBAAC,oBAAiB,WAAU,mBAAmB;GACd;;AAIvC,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,sBAAsB;EACrB,aAAU;EACV,WAAW,GACT,6eACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,29 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime189 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as class_variance_authority_types15 from "class-variance-authority/types";
5
+
6
+ //#region ui/empty-state.d.ts
7
+ declare const containerVariants: (props?: ({
8
+ density?: "default" | "compact" | null | undefined;
9
+ } & class_variance_authority_types15.ClassProp) | undefined) => string;
10
+ interface EmptyStateProps extends VariantProps<typeof containerVariants> {
11
+ icon?: React$1.ReactNode;
12
+ title: React$1.ReactNode;
13
+ description?: React$1.ReactNode;
14
+ primaryAction?: React$1.ReactNode;
15
+ secondaryAction?: React$1.ReactNode;
16
+ className?: string;
17
+ }
18
+ declare function EmptyState({
19
+ icon,
20
+ title,
21
+ description,
22
+ primaryAction,
23
+ secondaryAction,
24
+ className,
25
+ density
26
+ }: EmptyStateProps): react_jsx_runtime189.JSX.Element;
27
+ //#endregion
28
+ export { EmptyState, EmptyStateProps };
29
+ //# sourceMappingURL=empty-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state.d.ts","names":[],"sources":["../../ui/empty-state.tsx"],"sourcesContent":[],"mappings":";;;;;;cAKM;;IAUJ,gCAAA,CAAA;UAEe,eAAA,SAAwB,oBAChC;EAbH,IAAA,CAAA,EAeG,OAAA,CAAM,SALb;EAEe,KAAA,EAIR,OAAA,CAAM,SAJkB;EACxB,WAAA,CAAA,EAIO,OAAA,CAAM,SAJb;EAEA,aAAM,CAAA,EAGG,OAAA,CAAM,SAHT;EACN,eAAM,CAAA,EAGK,OAAA,CAAM,SAHX;EACC,SAAM,CAAA,EAAA,MAAA;;AAEF,iBAIJ,UAAA,CAJU;EAAA,IAAA;EAAA,KAAA;EAAA,WAAA;EAAA,aAAA;EAAA,eAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAYvB,eAZuB,CAAA,EAYR,oBAAA,CAAA,GAAA,CAAA,OAZQ"}
@@ -0,0 +1,43 @@
1
+ import { VStack } from "./stack.js";
2
+ import "react";
3
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { cva } from "class-variance-authority";
6
+
7
+ //#region ui/empty-state.tsx
8
+ const containerVariants = cva("items-center text-center", {
9
+ variants: { density: {
10
+ compact: "gap-3 p-6",
11
+ default: "gap-4 p-8"
12
+ } },
13
+ defaultVariants: { density: "default" }
14
+ });
15
+ function EmptyState({ icon, title, description, primaryAction, secondaryAction, className, density }) {
16
+ return /* @__PURE__ */ jsxs(VStack, {
17
+ className: cn(containerVariants({ density }), className),
18
+ children: [
19
+ icon ? /* @__PURE__ */ jsx("div", {
20
+ className: "bg-muted flex h-12 w-12 items-center justify-center rounded-full",
21
+ children: /* @__PURE__ */ jsx("div", {
22
+ className: "text-muted-foreground flex items-center justify-center",
23
+ children: icon
24
+ })
25
+ }) : null,
26
+ /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
27
+ className: "font-medium",
28
+ children: title
29
+ }), description ? /* @__PURE__ */ jsx("p", {
30
+ className: "text-muted-foreground text-base",
31
+ children: description
32
+ }) : null] }),
33
+ (primaryAction || secondaryAction) && /* @__PURE__ */ jsxs("div", {
34
+ className: "flex items-center justify-center gap-2",
35
+ children: [primaryAction, secondaryAction]
36
+ })
37
+ ]
38
+ });
39
+ }
40
+
41
+ //#endregion
42
+ export { EmptyState };
43
+ //# sourceMappingURL=empty-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-state.js","names":[],"sources":["../../ui/empty-state.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '@contractspec/lib.ui-kit-core/utils';\nimport { VStack } from './stack';\n\nconst containerVariants = cva('items-center text-center', {\n variants: {\n density: {\n compact: 'gap-3 p-6',\n default: 'gap-4 p-8',\n },\n },\n defaultVariants: {\n density: 'default',\n },\n});\n\nexport interface EmptyStateProps extends VariantProps<\n typeof containerVariants\n> {\n icon?: React.ReactNode;\n title: React.ReactNode;\n description?: React.ReactNode;\n primaryAction?: React.ReactNode;\n secondaryAction?: React.ReactNode;\n className?: string;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n primaryAction,\n secondaryAction,\n className,\n density,\n}: EmptyStateProps) {\n return (\n <VStack className={cn(containerVariants({ density }), className)}>\n {icon ? (\n <div className=\"bg-muted flex h-12 w-12 items-center justify-center rounded-full\">\n {/* Consumers pass their own icon; keep neutral backdrop */}\n <div className=\"text-muted-foreground flex items-center justify-center\">\n {icon}\n </div>\n </div>\n ) : null}\n\n <div>\n <h3 className=\"font-medium\">{title}</h3>\n {description ? (\n <p className=\"text-muted-foreground text-base\">{description}</p>\n ) : null}\n </div>\n\n {(primaryAction || secondaryAction) && (\n <div className=\"flex items-center justify-center gap-2\">\n {primaryAction}\n {secondaryAction}\n </div>\n )}\n </VStack>\n );\n}\n"],"mappings":";;;;;;;AAKA,MAAM,oBAAoB,IAAI,4BAA4B;CACxD,UAAU,EACR,SAAS;EACP,SAAS;EACT,SAAS;EACV,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CAAC;AAaF,SAAgB,WAAW,EACzB,MACA,OACA,aACA,eACA,iBACA,WACA,WACkB;AAClB,QACE,qBAAC;EAAO,WAAW,GAAG,kBAAkB,EAAE,SAAS,CAAC,EAAE,UAAU;;GAC7D,OACC,oBAAC;IAAI,WAAU;cAEb,oBAAC;KAAI,WAAU;eACZ;MACG;KACF,GACJ;GAEJ,qBAAC,oBACC,oBAAC;IAAG,WAAU;cAAe;KAAW,EACvC,cACC,oBAAC;IAAE,WAAU;cAAmC;KAAgB,GAC9D,QACA;IAEJ,iBAAiB,oBACjB,qBAAC;IAAI,WAAU;eACZ,eACA;KACG;;GAED"}
@@ -0,0 +1,37 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime211 from "react/jsx-runtime";
3
+ import { VariantProps } from "class-variance-authority";
4
+ import * as class_variance_authority_types17 from "class-variance-authority/types";
5
+
6
+ //#region ui/empty.d.ts
7
+ declare function Empty({
8
+ className,
9
+ ...props
10
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime211.JSX.Element;
11
+ declare function EmptyHeader({
12
+ className,
13
+ ...props
14
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime211.JSX.Element;
15
+ declare const emptyMediaVariants: (props?: ({
16
+ variant?: "default" | "icon" | null | undefined;
17
+ } & class_variance_authority_types17.ClassProp) | undefined) => string;
18
+ declare function EmptyMedia({
19
+ className,
20
+ variant,
21
+ ...props
22
+ }: React$1.ComponentPropsWithoutRef<'div'> & VariantProps<typeof emptyMediaVariants>): react_jsx_runtime211.JSX.Element;
23
+ declare function EmptyTitle({
24
+ className,
25
+ ...props
26
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime211.JSX.Element;
27
+ declare function EmptyDescription({
28
+ className,
29
+ ...props
30
+ }: React$1.ComponentPropsWithoutRef<'p'>): react_jsx_runtime211.JSX.Element;
31
+ declare function EmptyContent({
32
+ className,
33
+ ...props
34
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime211.JSX.Element;
35
+ //#endregion
36
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
37
+ //# sourceMappingURL=empty.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.d.ts","names":[],"sources":["../../ui/empty.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAKS,KAAA;;;GAA+B,OAAA,CAAM,kCAA+B,oBAAA,CAAA,GAAA,CAAA;iBAapE,WAAA;;;GAGN,OAAA,CAAM,kCAA+B,oBAAA,CAAA,GAAA,CAAA;cAalC,0BA7BQ;;AAJoD,CAAA,GA8CjE,gCAAA,CAAA,SA1Ca,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA4CL,UAAA,CA5CQ;EAAA,SAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAgDd,OAAA,CAAM,wBAhDQ,CAAA,KAAA,CAAA,GAiDf,YAjDe,CAAA,OAiDK,kBAjDL,CAAA,CAAA,EAiDwB,oBAAA,CAAA,GAAA,CAAA,OAjDxB;iBA4DR,UAAA,CA5DqC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+D3C,OAAA,CAAM,wBA/DqC,CAAA,KAAA,CAAA,CAAA,EA+DN,oBAAA,CAAA,GAAA,CAAA,OA/DM;iBAyErC,gBAAA,CAzEoE;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4E1E,OAAA,CAAM,wBA5EoE,CAAA,GAAA,CAAA,CAAA,EA4EvC,oBAAA,CAAA,GAAA,CAAA,OA5EuC;iBAyFpE,YAAA,CAzFoE;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA4F1E,OAAA,CAAM,wBA5FoE,CAAA,KAAA,CAAA,CAAA,EA4FrC,oBAAA,CAAA,GAAA,CAAA,OA5FqC"}
@@ -0,0 +1,62 @@
1
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { cva } from "class-variance-authority";
4
+
5
+ //#region ui/empty.tsx
6
+ function Empty({ className, ...props }) {
7
+ return /* @__PURE__ */ jsx("div", {
8
+ "data-slot": "empty",
9
+ className: cn("flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12", className),
10
+ ...props
11
+ });
12
+ }
13
+ function EmptyHeader({ className, ...props }) {
14
+ return /* @__PURE__ */ jsx("div", {
15
+ "data-slot": "empty-header",
16
+ className: cn("flex max-w-sm flex-col items-center gap-2 text-center", className),
17
+ ...props
18
+ });
19
+ }
20
+ const emptyMediaVariants = cva("flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
21
+ variants: { variant: {
22
+ default: "bg-transparent",
23
+ icon: "bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6"
24
+ } },
25
+ defaultVariants: { variant: "default" }
26
+ });
27
+ function EmptyMedia({ className, variant = "default", ...props }) {
28
+ return /* @__PURE__ */ jsx("div", {
29
+ "data-slot": "empty-icon",
30
+ "data-variant": variant,
31
+ className: cn(emptyMediaVariants({
32
+ variant,
33
+ className
34
+ })),
35
+ ...props
36
+ });
37
+ }
38
+ function EmptyTitle({ className, ...props }) {
39
+ return /* @__PURE__ */ jsx("div", {
40
+ "data-slot": "empty-title",
41
+ className: cn("text-lg font-medium tracking-tight", className),
42
+ ...props
43
+ });
44
+ }
45
+ function EmptyDescription({ className, ...props }) {
46
+ return /* @__PURE__ */ jsx("p", {
47
+ "data-slot": "empty-description",
48
+ className: cn("text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4", className),
49
+ ...props
50
+ });
51
+ }
52
+ function EmptyContent({ className, ...props }) {
53
+ return /* @__PURE__ */ jsx("div", {
54
+ "data-slot": "empty-content",
55
+ className: cn("flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance", className),
56
+ ...props
57
+ });
58
+ }
59
+
60
+ //#endregion
61
+ export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle };
62
+ //# sourceMappingURL=empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty.js","names":[],"sources":["../../ui/empty.tsx"],"sourcesContent":["import type * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@contractspec/lib.ui-kit-core/utils';\n\nfunction Empty({ className, ...props }: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n data-slot=\"empty\"\n className={cn(\n 'flex min-w-0 flex-1 flex-col items-center justify-center gap-6 rounded-lg border-dashed p-6 text-center text-balance md:p-12',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyHeader({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n data-slot=\"empty-header\"\n className={cn(\n 'flex max-w-sm flex-col items-center gap-2 text-center',\n className\n )}\n {...props}\n />\n );\n}\n\nconst emptyMediaVariants = cva(\n 'flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'bg-transparent',\n icon: \"bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6\",\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nfunction EmptyMedia({\n className,\n variant = 'default',\n ...props\n}: React.ComponentPropsWithoutRef<'div'> &\n VariantProps<typeof emptyMediaVariants>) {\n return (\n <div\n data-slot=\"empty-icon\"\n data-variant={variant}\n className={cn(emptyMediaVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nfunction EmptyTitle({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n data-slot=\"empty-title\"\n className={cn('text-lg font-medium tracking-tight', className)}\n {...props}\n />\n );\n}\n\nfunction EmptyDescription({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'p'>) {\n return (\n <p\n data-slot=\"empty-description\"\n className={cn(\n 'text-muted-foreground [&>a:hover]:text-primary text-sm/relaxed [&>a]:underline [&>a]:underline-offset-4',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction EmptyContent({\n className,\n ...props\n}: React.ComponentPropsWithoutRef<'div'>) {\n return (\n <div\n data-slot=\"empty-content\"\n className={cn(\n 'flex w-full max-w-sm min-w-0 flex-col items-center gap-4 text-sm text-balance',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Empty,\n EmptyHeader,\n EmptyTitle,\n EmptyDescription,\n EmptyContent,\n EmptyMedia,\n};\n"],"mappings":";;;;;AAKA,SAAS,MAAM,EAAE,WAAW,GAAG,SAAgD;AAC7E,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,gIACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SACqC;AACxC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAIN,MAAM,qBAAqB,IACzB,+FACA;CACE,UAAU,EACR,SAAS;EACP,SAAS;EACT,MAAM;EACP,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,WAAW,EAClB,WACA,UAAU,WACV,GAAG,SAEsC;AACzC,QACE,oBAAC;EACC,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,mBAAmB;GAAE;GAAS;GAAW,CAAC,CAAC;EACzD,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,WACA,GAAG,SACqC;AACxC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,WACA,GAAG,SACmC;AACtC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,2GACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,GAAG,SACqC;AACxC,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,iFACA,UACD;EACD,GAAI;GACJ"}
@@ -0,0 +1,66 @@
1
+ import { Label } from "./label.js";
2
+ import * as React$1 from "react";
3
+ import * as react_jsx_runtime200 from "react/jsx-runtime";
4
+ import { VariantProps } from "class-variance-authority";
5
+ import * as class_variance_authority_types16 from "class-variance-authority/types";
6
+
7
+ //#region ui/field.d.ts
8
+ declare function FieldSet({
9
+ className,
10
+ ...props
11
+ }: React$1.ComponentPropsWithoutRef<'fieldset'>): react_jsx_runtime200.JSX.Element;
12
+ declare function FieldLegend({
13
+ className,
14
+ variant,
15
+ ...props
16
+ }: React$1.ComponentPropsWithoutRef<'legend'> & {
17
+ variant?: 'legend' | 'label';
18
+ }): react_jsx_runtime200.JSX.Element;
19
+ declare function FieldGroup({
20
+ className,
21
+ ...props
22
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime200.JSX.Element;
23
+ declare const fieldVariants: (props?: ({
24
+ orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
25
+ } & class_variance_authority_types16.ClassProp) | undefined) => string;
26
+ declare function Field({
27
+ className,
28
+ orientation,
29
+ ...props
30
+ }: React$1.ComponentPropsWithoutRef<'div'> & VariantProps<typeof fieldVariants>): react_jsx_runtime200.JSX.Element;
31
+ declare function FieldContent({
32
+ className,
33
+ ...props
34
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime200.JSX.Element;
35
+ declare function FieldLabel({
36
+ className,
37
+ ...props
38
+ }: React$1.ComponentPropsWithoutRef<typeof Label>): react_jsx_runtime200.JSX.Element;
39
+ declare function FieldTitle({
40
+ className,
41
+ ...props
42
+ }: React$1.ComponentPropsWithoutRef<'div'>): react_jsx_runtime200.JSX.Element;
43
+ declare function FieldDescription({
44
+ className,
45
+ ...props
46
+ }: React$1.ComponentPropsWithoutRef<'p'>): react_jsx_runtime200.JSX.Element;
47
+ declare function FieldSeparator({
48
+ children,
49
+ className,
50
+ ...props
51
+ }: React$1.ComponentPropsWithoutRef<'div'> & {
52
+ children?: React$1.ReactNode;
53
+ }): react_jsx_runtime200.JSX.Element;
54
+ declare function FieldError({
55
+ className,
56
+ children,
57
+ errors,
58
+ ...props
59
+ }: React$1.ComponentPropsWithoutRef<'div'> & {
60
+ errors?: ({
61
+ message?: string;
62
+ } | undefined)[];
63
+ }): react_jsx_runtime200.JSX.Element | null;
64
+ //#endregion
65
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
66
+ //# sourceMappingURL=field.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field.d.ts","names":[],"sources":["../../ui/field.tsx"],"sourcesContent":[],"mappings":";;;;;;;iBASS,QAAA;;;GAGN,OAAA,CAAM,uCAAoC,oBAAA,CAAA,GAAA,CAAA;iBAcpC,WAAA;;;;GAIN,OAAA,CAAM;;IAER,oBAAA,CAAA,GAAA,CAAA;AA1B+B,iBA0CvB,UAAA,CAvCQ;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA0Cd,OAAA,CAAM,wBA1CQ,CAAA,KAAA,CAAA,CAAA,EA0CuB,oBAAA,CAAA,GAAA,CAAA,OA1CvB;cAuDX,aAtDJ,EAAA,CAAA,KAE2C,CAF3C,EAAA,CAAA;EAEC,WAAM,CAAA,EAAA,YAAA,GAAA,UAAA,GAAA,YAAA,GAAA,IAAA,GAAA,SAAA;CAAoC,GA0E5C,gCAAA,CAAA,SA1E4C,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;iBA4EpC,KAAA,CA5EoC;EAAA,SAAA;EAAA,WAAA;EAAA,GAAA;AAAA,CAAA,EAgF1C,OAAA,CAAM,wBAhFoC,CAAA,KAAA,CAAA,GAgFF,YAhFE,CAAA,OAgFkB,aAhFlB,CAAA,CAAA,EAgFgC,oBAAA,CAAA,GAAA,CAAA,OAhFhC;AAAA,iBA4FpC,YAAA,CA9EW;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiFjB,OAAA,CAAM,wBAjFW,CAAA,KAAA,CAAA,CAAA,EAiFoB,oBAAA,CAAA,GAAA,CAAA,OAjFpB;iBA8FX,UAAA,CA7FP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgGC,OAAA,CAAM,wBAhGP,CAAA,OAgGuC,KAhGvC,CAAA,CAAA,EAgG6C,oBAAA,CAAA,GAAA,CAAA,OAhG7C;iBA+GO,UAAA,CA9GP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiHC,OAAA,CAAM,wBAjHP,CAAA,KAAA,CAAA,CAAA,EAiHsC,oBAAA,CAAA,GAAA,CAAA,OAjHtC;iBA8HO,gBAAA,CA5HA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+HN,OAAA,CAAM,wBA/HA,CAAA,GAAA,CAAA,CAAA,EA+H6B,oBAAA,CAAA,GAAA,CAAA,OA/H7B;iBA8IA,cAAA,CA5IR;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgJE,OAAA,CAAM,wBAhJR,CAAA,KAAA,CAAA,GAAA;EAAA,QAAA,CAAA,EAiJY,OAAA,CAAM,SAjJlB;AAAA,CAAA,CAAA,EAkJA,oBAAA,CAAA,GAAA,CAAA,OAlIkB;iBA0JV,UAAA,CAzJP;EAAA,SAAA;EAAA,QAAA;EAAA,MAAA;EAAA,GAAA;AAEsC,CAFtC,EA8JC,OAAA,CAAM,wBA9JP,CAAA,KAAA,CAAA,GAAA;EAEC,MAAM,CAAA,EAAA,CAAA;IAA+B,OAAA,CAAA,EAAA,MAAA;EAAA,CAAA,GAAA,SAAA,CAAA,EAAA;AAAA,CAAA,CAAA,EA8JvC,oBAAA,CAAA,GAAA,CAAA,OAAA,GA3HA,IAAA"}
@@ -0,0 +1,121 @@
1
+ 'use client';
2
+
3
+ import { Label } from "./label.js";
4
+ import { Separator } from "./separator.js";
5
+ import * as React$1 from "react";
6
+ import { cn } from "@contractspec/lib.ui-kit-core/utils";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { cva } from "class-variance-authority";
9
+
10
+ //#region ui/field.tsx
11
+ function FieldSet({ className, ...props }) {
12
+ return /* @__PURE__ */ jsx("fieldset", {
13
+ "data-slot": "field-set",
14
+ className: cn("flex flex-col gap-6", "has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3", className),
15
+ ...props
16
+ });
17
+ }
18
+ function FieldLegend({ className, variant = "legend", ...props }) {
19
+ return /* @__PURE__ */ jsx("legend", {
20
+ "data-slot": "field-legend",
21
+ "data-variant": variant,
22
+ className: cn("mb-3 font-medium", "data-[variant=legend]:text-base", "data-[variant=label]:text-sm", className),
23
+ ...props
24
+ });
25
+ }
26
+ function FieldGroup({ className, ...props }) {
27
+ return /* @__PURE__ */ jsx("div", {
28
+ "data-slot": "field-group",
29
+ className: cn("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),
30
+ ...props
31
+ });
32
+ }
33
+ const fieldVariants = cva("group/field flex w-full gap-3 data-[invalid=true]:text-destructive", {
34
+ variants: { orientation: {
35
+ vertical: ["flex-col *:w-full [&>.sr-only]:w-auto"],
36
+ horizontal: [
37
+ "flex-row items-center",
38
+ "data-[slot=field-label]:*:flex-auto",
39
+ "has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
40
+ ],
41
+ responsive: [
42
+ "flex-col *:w-full [&>.sr-only]:w-auto @md/field-group:flex-row @md/field-group:items-center @md/field-group:*:w-auto",
43
+ "@md/field-group:data-[slot=field-label]:*:flex-auto",
44
+ "@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"
45
+ ]
46
+ } },
47
+ defaultVariants: { orientation: "vertical" }
48
+ });
49
+ function Field({ className, orientation = "vertical", ...props }) {
50
+ return /* @__PURE__ */ jsx("div", {
51
+ role: "group",
52
+ "data-slot": "field",
53
+ "data-orientation": orientation,
54
+ className: cn(fieldVariants({ orientation }), className),
55
+ ...props
56
+ });
57
+ }
58
+ function FieldContent({ className, ...props }) {
59
+ return /* @__PURE__ */ jsx("div", {
60
+ "data-slot": "field-content",
61
+ className: cn("group/field-content flex flex-1 flex-col gap-1.5 leading-snug", className),
62
+ ...props
63
+ });
64
+ }
65
+ function FieldLabel({ className, ...props }) {
66
+ return /* @__PURE__ */ jsx(Label, {
67
+ "data-slot": "field-label",
68
+ className: cn("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),
69
+ ...props
70
+ });
71
+ }
72
+ function FieldTitle({ className, ...props }) {
73
+ return /* @__PURE__ */ jsx("div", {
74
+ "data-slot": "field-label",
75
+ className: cn("flex w-fit items-center gap-2 text-sm leading-snug font-medium group-data-[disabled=true]/field:opacity-50", className),
76
+ ...props
77
+ });
78
+ }
79
+ function FieldDescription({ className, ...props }) {
80
+ return /* @__PURE__ */ jsx("p", {
81
+ "data-slot": "field-description",
82
+ className: cn("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),
83
+ ...props
84
+ });
85
+ }
86
+ function FieldSeparator({ children, className, ...props }) {
87
+ return /* @__PURE__ */ jsxs("div", {
88
+ "data-slot": "field-separator",
89
+ "data-content": !!children,
90
+ className: cn("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2", className),
91
+ ...props,
92
+ children: [/* @__PURE__ */ jsx(Separator, { className: "absolute inset-0 top-1/2" }), children && /* @__PURE__ */ jsx("span", {
93
+ className: "bg-background text-muted-foreground relative mx-auto block w-fit px-2",
94
+ "data-slot": "field-separator-content",
95
+ children
96
+ })]
97
+ });
98
+ }
99
+ function FieldError({ className, children, errors, ...props }) {
100
+ const content = React$1.useMemo(() => {
101
+ if (children) return children;
102
+ if (!errors?.length) return null;
103
+ if (errors?.length == 1) return errors[0]?.message;
104
+ return /* @__PURE__ */ jsx("ul", {
105
+ className: "ml-4 flex list-disc flex-col gap-1",
106
+ children: errors.map((error, index) => error?.message && /* @__PURE__ */ jsx("li", { children: error.message }, index))
107
+ });
108
+ }, [children, errors]);
109
+ if (!content) return null;
110
+ return /* @__PURE__ */ jsx("div", {
111
+ role: "alert",
112
+ "data-slot": "field-error",
113
+ className: cn("text-destructive text-sm font-normal", className),
114
+ ...props,
115
+ children: content
116
+ });
117
+ }
118
+
119
+ //#endregion
120
+ export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle };
121
+ //# sourceMappingURL=field.js.map