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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/README.md +73 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.js +0 -0
  4. package/dist/node_modules/sonner/dist/index.js +912 -0
  5. package/dist/node_modules/sonner/dist/index.js.map +1 -0
  6. package/dist/tsconfig.tsbuildinfo +1 -0
  7. package/dist/ui/accordion.d.ts +25 -0
  8. package/dist/ui/accordion.d.ts.map +1 -0
  9. package/dist/ui/accordion.js +49 -0
  10. package/dist/ui/accordion.js.map +1 -0
  11. package/dist/ui/alert-dialog.d.ts +49 -0
  12. package/dist/ui/alert-dialog.d.ts.map +1 -0
  13. package/dist/ui/alert-dialog.js +86 -0
  14. package/dist/ui/alert-dialog.js.map +1 -0
  15. package/dist/ui/alert.d.ts +25 -0
  16. package/dist/ui/alert.d.ts.map +1 -0
  17. package/dist/ui/alert.js +39 -0
  18. package/dist/ui/alert.js.map +1 -0
  19. package/dist/ui/aspect-ratio.d.ts +8 -0
  20. package/dist/ui/aspect-ratio.d.ts.map +1 -0
  21. package/dist/ui/aspect-ratio.js +11 -0
  22. package/dist/ui/aspect-ratio.js.map +1 -0
  23. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
  24. package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
  25. package/dist/ui/atoms/FilterSelect/FilterSelect.js +53 -0
  26. package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
  27. package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
  28. package/dist/ui/atoms/FilterSelect/index.js +3 -0
  29. package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
  30. package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
  31. package/dist/ui/atoms/FilterSelect/types.js +0 -0
  32. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
  33. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
  34. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +46 -0
  35. package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
  36. package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
  37. package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
  38. package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
  39. package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
  40. package/dist/ui/atoms/Pagination/Pagination.js +157 -0
  41. package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
  42. package/dist/ui/atoms/Pagination/index.d.ts +3 -0
  43. package/dist/ui/atoms/Pagination/index.js +3 -0
  44. package/dist/ui/atoms/Pagination/types.d.ts +16 -0
  45. package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
  46. package/dist/ui/atoms/Pagination/types.js +0 -0
  47. package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
  48. package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
  49. package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
  50. package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
  51. package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
  52. package/dist/ui/atoms/SearchInput/index.js +3 -0
  53. package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
  54. package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
  55. package/dist/ui/atoms/SearchInput/types.js +0 -0
  56. package/dist/ui/avatar.d.ts +20 -0
  57. package/dist/ui/avatar.d.ts.map +1 -0
  58. package/dist/ui/avatar.js +34 -0
  59. package/dist/ui/avatar.js.map +1 -0
  60. package/dist/ui/badge.d.ts +20 -0
  61. package/dist/ui/badge.d.ts.map +1 -0
  62. package/dist/ui/badge.js +27 -0
  63. package/dist/ui/badge.js.map +1 -0
  64. package/dist/ui/breadcrumb.d.ts +38 -0
  65. package/dist/ui/breadcrumb.d.ts.map +1 -0
  66. package/dist/ui/breadcrumb.js +72 -0
  67. package/dist/ui/breadcrumb.js.map +1 -0
  68. package/dist/ui/button.d.ts +23 -0
  69. package/dist/ui/button.d.ts.map +1 -0
  70. package/dist/ui/button.js +44 -0
  71. package/dist/ui/button.js.map +1 -0
  72. package/dist/ui/calendar.d.ts +27 -0
  73. package/dist/ui/calendar.d.ts.map +1 -0
  74. package/dist/ui/calendar.js +110 -0
  75. package/dist/ui/calendar.js.map +1 -0
  76. package/dist/ui/card.d.ts +35 -0
  77. package/dist/ui/card.d.ts.map +1 -0
  78. package/dist/ui/card.js +58 -0
  79. package/dist/ui/card.js.map +1 -0
  80. package/dist/ui/carousel.d.ts +48 -0
  81. package/dist/ui/carousel.d.ts.map +1 -0
  82. package/dist/ui/carousel.js +137 -0
  83. package/dist/ui/carousel.js.map +1 -0
  84. package/dist/ui/checkbox.d.ts +12 -0
  85. package/dist/ui/checkbox.d.ts.map +1 -0
  86. package/dist/ui/checkbox.js +26 -0
  87. package/dist/ui/checkbox.js.map +1 -0
  88. package/dist/ui/collapsible.d.ts +16 -0
  89. package/dist/ui/collapsible.d.ts.map +1 -0
  90. package/dist/ui/collapsible.js +29 -0
  91. package/dist/ui/collapsible.js.map +1 -0
  92. package/dist/ui/command.d.ts +53 -0
  93. package/dist/ui/command.d.ts.map +1 -0
  94. package/dist/ui/command.js +91 -0
  95. package/dist/ui/command.js.map +1 -0
  96. package/dist/ui/confirm-dialog.d.ts +31 -0
  97. package/dist/ui/confirm-dialog.d.ts.map +1 -0
  98. package/dist/ui/confirm-dialog.js +34 -0
  99. package/dist/ui/confirm-dialog.js.map +1 -0
  100. package/dist/ui/context-menu.d.ts +35 -0
  101. package/dist/ui/context-menu.d.ts.map +1 -0
  102. package/dist/ui/context-menu.js +85 -0
  103. package/dist/ui/context-menu.js.map +1 -0
  104. package/dist/ui/cta.d.ts +15 -0
  105. package/dist/ui/cta.d.ts.map +1 -0
  106. package/dist/ui/cta.js +39 -0
  107. package/dist/ui/cta.js.map +1 -0
  108. package/dist/ui/date-picker.d.ts +26 -0
  109. package/dist/ui/date-picker.d.ts.map +1 -0
  110. package/dist/ui/date-picker.js +102 -0
  111. package/dist/ui/date-picker.js.map +1 -0
  112. package/dist/ui/date-range-picker.d.ts +26 -0
  113. package/dist/ui/date-range-picker.d.ts.map +1 -0
  114. package/dist/ui/date-range-picker.js +55 -0
  115. package/dist/ui/date-range-picker.js.map +1 -0
  116. package/dist/ui/datetime-picker.d.ts +28 -0
  117. package/dist/ui/datetime-picker.d.ts.map +1 -0
  118. package/dist/ui/datetime-picker.js +45 -0
  119. package/dist/ui/datetime-picker.js.map +1 -0
  120. package/dist/ui/dialog.d.ts +48 -0
  121. package/dist/ui/dialog.d.ts.map +1 -0
  122. package/dist/ui/dialog.js +91 -0
  123. package/dist/ui/dialog.js.map +1 -0
  124. package/dist/ui/drawer.d.ts +45 -0
  125. package/dist/ui/drawer.d.ts.map +1 -0
  126. package/dist/ui/drawer.js +83 -0
  127. package/dist/ui/drawer.js.map +1 -0
  128. package/dist/ui/dropdown-menu.d.ts +78 -0
  129. package/dist/ui/dropdown-menu.d.ts.map +1 -0
  130. package/dist/ui/dropdown-menu.js +128 -0
  131. package/dist/ui/dropdown-menu.js.map +1 -0
  132. package/dist/ui/empty-state.d.ts +29 -0
  133. package/dist/ui/empty-state.d.ts.map +1 -0
  134. package/dist/ui/empty-state.js +43 -0
  135. package/dist/ui/empty-state.js.map +1 -0
  136. package/dist/ui/empty.d.ts +36 -0
  137. package/dist/ui/empty.d.ts.map +1 -0
  138. package/dist/ui/empty.js +62 -0
  139. package/dist/ui/empty.js.map +1 -0
  140. package/dist/ui/field.d.ts +65 -0
  141. package/dist/ui/field.d.ts.map +1 -0
  142. package/dist/ui/field.js +122 -0
  143. package/dist/ui/field.js.map +1 -0
  144. package/dist/ui/focus-on-route-change.d.ts +9 -0
  145. package/dist/ui/focus-on-route-change.d.ts.map +1 -0
  146. package/dist/ui/focus-on-route-change.js +17 -0
  147. package/dist/ui/focus-on-route-change.js.map +1 -0
  148. package/dist/ui/form.d.ts +47 -0
  149. package/dist/ui/form.d.ts.map +1 -0
  150. package/dist/ui/form.js +95 -0
  151. package/dist/ui/form.js.map +1 -0
  152. package/dist/ui/hover-card.d.ts +20 -0
  153. package/dist/ui/hover-card.d.ts.map +1 -0
  154. package/dist/ui/hover-card.js +37 -0
  155. package/dist/ui/hover-card.js.map +1 -0
  156. package/dist/ui/input-group.d.ts +44 -0
  157. package/dist/ui/input-group.d.ts.map +1 -0
  158. package/dist/ui/input-group.js +84 -0
  159. package/dist/ui/input-group.js.map +1 -0
  160. package/dist/ui/input-otp.d.ts +39 -0
  161. package/dist/ui/input-otp.d.ts.map +1 -0
  162. package/dist/ui/input-otp.js +47 -0
  163. package/dist/ui/input-otp.js.map +1 -0
  164. package/dist/ui/input.d.ts +13 -0
  165. package/dist/ui/input.d.ts.map +1 -0
  166. package/dist/ui/input.js +17 -0
  167. package/dist/ui/input.js.map +1 -0
  168. package/dist/ui/label.d.ts +12 -0
  169. package/dist/ui/label.d.ts.map +1 -0
  170. package/dist/ui/label.js +20 -0
  171. package/dist/ui/label.js.map +1 -0
  172. package/dist/ui/link.d.ts +9 -0
  173. package/dist/ui/link.d.ts.map +1 -0
  174. package/dist/ui/link.js +18 -0
  175. package/dist/ui/link.js.map +1 -0
  176. package/dist/ui/live-region.d.ts +17 -0
  177. package/dist/ui/live-region.d.ts.map +1 -0
  178. package/dist/ui/live-region.js +48 -0
  179. package/dist/ui/live-region.js.map +1 -0
  180. package/dist/ui/loading-button.d.ts +20 -0
  181. package/dist/ui/loading-button.d.ts.map +1 -0
  182. package/dist/ui/loading-button.js +21 -0
  183. package/dist/ui/loading-button.js.map +1 -0
  184. package/dist/ui/map/MapBase.d.ts +29 -0
  185. package/dist/ui/map/MapBase.d.ts.map +1 -0
  186. package/dist/ui/map/MapBase.js +48 -0
  187. package/dist/ui/map/MapBase.js.map +1 -0
  188. package/dist/ui/map/MapGeoJsonOverlay.d.ts +16 -0
  189. package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -0
  190. package/dist/ui/map/MapGeoJsonOverlay.js +39 -0
  191. package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -0
  192. package/dist/ui/map/MapHeatmapH3.d.ts +18 -0
  193. package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -0
  194. package/dist/ui/map/MapHeatmapH3.js +52 -0
  195. package/dist/ui/map/MapHeatmapH3.js.map +1 -0
  196. package/dist/ui/map/MapMarkers.d.ts +20 -0
  197. package/dist/ui/map/MapMarkers.d.ts.map +1 -0
  198. package/dist/ui/map/MapMarkers.js +35 -0
  199. package/dist/ui/map/MapMarkers.js.map +1 -0
  200. package/dist/ui/map/index.d.ts +5 -0
  201. package/dist/ui/map/index.js +6 -0
  202. package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
  203. package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
  204. package/dist/ui/marketing/FeatureGrid.js +35 -0
  205. package/dist/ui/marketing/FeatureGrid.js.map +1 -0
  206. package/dist/ui/marketing/Hero.d.ts +28 -0
  207. package/dist/ui/marketing/Hero.d.ts.map +1 -0
  208. package/dist/ui/marketing/Hero.js +53 -0
  209. package/dist/ui/marketing/Hero.js.map +1 -0
  210. package/dist/ui/marketing/PricingTable.d.ts +25 -0
  211. package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
  212. package/dist/ui/marketing/PricingTable.js +60 -0
  213. package/dist/ui/marketing/PricingTable.js.map +1 -0
  214. package/dist/ui/marketing/index.d.ts +4 -0
  215. package/dist/ui/marketing/index.js +5 -0
  216. package/dist/ui/menubar.d.ts +85 -0
  217. package/dist/ui/menubar.d.ts.map +1 -0
  218. package/dist/ui/menubar.js +138 -0
  219. package/dist/ui/menubar.js.map +1 -0
  220. package/dist/ui/molecules/Autocomplete/index.d.ts +7 -0
  221. package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
  222. package/dist/ui/molecules/Autocomplete/index.js +86 -0
  223. package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
  224. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
  225. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
  226. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +103 -0
  227. package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
  228. package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
  229. package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
  230. package/dist/ui/molecules/SearchAndFilter/types.d.ts +24 -0
  231. package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
  232. package/dist/ui/molecules/SearchAndFilter/types.js +0 -0
  233. package/dist/ui/molecules/SkeletonList.d.ts +16 -0
  234. package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
  235. package/dist/ui/molecules/SkeletonList.js +15 -0
  236. package/dist/ui/molecules/SkeletonList.js.map +1 -0
  237. package/dist/ui/nav-layout.d.ts +71 -0
  238. package/dist/ui/nav-layout.d.ts.map +1 -0
  239. package/dist/ui/nav-layout.js +133 -0
  240. package/dist/ui/nav-layout.js.map +1 -0
  241. package/dist/ui/navigation-menu.d.ts +47 -0
  242. package/dist/ui/navigation-menu.d.ts.map +1 -0
  243. package/dist/ui/navigation-menu.js +83 -0
  244. package/dist/ui/navigation-menu.js.map +1 -0
  245. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
  246. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
  247. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +108 -0
  248. package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
  249. package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
  250. package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
  251. package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
  252. package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
  253. package/dist/ui/organisms/ListPage/ListPage.js +198 -0
  254. package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
  255. package/dist/ui/organisms/ListPage/index.d.ts +3 -0
  256. package/dist/ui/organisms/ListPage/index.js +3 -0
  257. package/dist/ui/organisms/ListPage/types.d.ts +41 -0
  258. package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
  259. package/dist/ui/organisms/ListPage/types.js +0 -0
  260. package/dist/ui/page-header.d.ts +27 -0
  261. package/dist/ui/page-header.d.ts.map +1 -0
  262. package/dist/ui/page-header.js +40 -0
  263. package/dist/ui/page-header.js.map +1 -0
  264. package/dist/ui/pagination.d.ts +50 -0
  265. package/dist/ui/pagination.d.ts.map +1 -0
  266. package/dist/ui/pagination.js +65 -0
  267. package/dist/ui/pagination.js.map +1 -0
  268. package/dist/ui/popover.d.ts +23 -0
  269. package/dist/ui/popover.d.ts.map +1 -0
  270. package/dist/ui/popover.js +40 -0
  271. package/dist/ui/popover.js.map +1 -0
  272. package/dist/ui/progress.d.ts +13 -0
  273. package/dist/ui/progress.d.ts.map +1 -0
  274. package/dist/ui/progress.js +25 -0
  275. package/dist/ui/progress.js.map +1 -0
  276. package/dist/ui/radio-group.d.ts +16 -0
  277. package/dist/ui/radio-group.d.ts.map +1 -0
  278. package/dist/ui/radio-group.js +33 -0
  279. package/dist/ui/radio-group.js.map +1 -0
  280. package/dist/ui/resizable.d.ts +36 -0
  281. package/dist/ui/resizable.d.ts.map +1 -0
  282. package/dist/ui/resizable.js +26 -0
  283. package/dist/ui/resizable.js.map +1 -0
  284. package/dist/ui/route-announcer.d.ts +11 -0
  285. package/dist/ui/route-announcer.d.ts.map +1 -0
  286. package/dist/ui/route-announcer.js +23 -0
  287. package/dist/ui/route-announcer.js.map +1 -0
  288. package/dist/ui/scroll-area.d.ts +18 -0
  289. package/dist/ui/scroll-area.d.ts.map +1 -0
  290. package/dist/ui/scroll-area.js +41 -0
  291. package/dist/ui/scroll-area.js.map +1 -0
  292. package/dist/ui/section.d.ts +27 -0
  293. package/dist/ui/section.d.ts.map +1 -0
  294. package/dist/ui/section.js +63 -0
  295. package/dist/ui/section.js.map +1 -0
  296. package/dist/ui/select.d.ts +52 -0
  297. package/dist/ui/select.d.ts.map +1 -0
  298. package/dist/ui/select.js +101 -0
  299. package/dist/ui/select.js.map +1 -0
  300. package/dist/ui/separator.d.ts +14 -0
  301. package/dist/ui/separator.d.ts.map +1 -0
  302. package/dist/ui/separator.js +22 -0
  303. package/dist/ui/separator.js.map +1 -0
  304. package/dist/ui/sheet.d.ts +41 -0
  305. package/dist/ui/sheet.d.ts.map +1 -0
  306. package/dist/ui/sheet.js +87 -0
  307. package/dist/ui/sheet.js.map +1 -0
  308. package/dist/ui/sidebar.d.ts +167 -0
  309. package/dist/ui/sidebar.d.ts.map +1 -0
  310. package/dist/ui/sidebar.js +380 -0
  311. package/dist/ui/sidebar.js.map +1 -0
  312. package/dist/ui/skeleton.d.ts +10 -0
  313. package/dist/ui/skeleton.d.ts.map +1 -0
  314. package/dist/ui/skeleton.js +15 -0
  315. package/dist/ui/skeleton.js.map +1 -0
  316. package/dist/ui/skip-link.d.ts +17 -0
  317. package/dist/ui/skip-link.d.ts.map +1 -0
  318. package/dist/ui/skip-link.js +17 -0
  319. package/dist/ui/skip-link.js.map +1 -0
  320. package/dist/ui/slider.d.ts +16 -0
  321. package/dist/ui/slider.d.ts.map +1 -0
  322. package/dist/ui/slider.js +41 -0
  323. package/dist/ui/slider.js.map +1 -0
  324. package/dist/ui/sonner.d.ts +10 -0
  325. package/dist/ui/sonner.d.ts.map +1 -0
  326. package/dist/ui/sonner.js +25 -0
  327. package/dist/ui/sonner.js.map +1 -0
  328. package/dist/ui/stack.d.ts +48 -0
  329. package/dist/ui/stack.d.ts.map +1 -0
  330. package/dist/ui/stack.js +158 -0
  331. package/dist/ui/stack.js.map +1 -0
  332. package/dist/ui/stat-card-group.d.ts +19 -0
  333. package/dist/ui/stat-card-group.d.ts.map +1 -0
  334. package/dist/ui/stat-card-group.js +39 -0
  335. package/dist/ui/stat-card-group.js.map +1 -0
  336. package/dist/ui/stepper.d.ts +23 -0
  337. package/dist/ui/stepper.d.ts.map +1 -0
  338. package/dist/ui/stepper.js +37 -0
  339. package/dist/ui/stepper.js.map +1 -0
  340. package/dist/ui/switch.d.ts +12 -0
  341. package/dist/ui/switch.d.ts.map +1 -0
  342. package/dist/ui/switch.js +24 -0
  343. package/dist/ui/switch.js.map +1 -0
  344. package/dist/ui/table.d.ts +39 -0
  345. package/dist/ui/table.d.ts.map +1 -0
  346. package/dist/ui/table.js +72 -0
  347. package/dist/ui/table.js.map +1 -0
  348. package/dist/ui/tabs.d.ts +24 -0
  349. package/dist/ui/tabs.d.ts.map +1 -0
  350. package/dist/ui/tabs.js +41 -0
  351. package/dist/ui/tabs.js.map +1 -0
  352. package/dist/ui/text.d.ts +16 -0
  353. package/dist/ui/text.d.ts.map +1 -0
  354. package/dist/ui/text.js +16 -0
  355. package/dist/ui/text.js.map +1 -0
  356. package/dist/ui/textarea.d.ts +12 -0
  357. package/dist/ui/textarea.d.ts.map +1 -0
  358. package/dist/ui/textarea.js +16 -0
  359. package/dist/ui/textarea.js.map +1 -0
  360. package/dist/ui/time-picker.d.ts +22 -0
  361. package/dist/ui/time-picker.d.ts.map +1 -0
  362. package/dist/ui/time-picker.js +82 -0
  363. package/dist/ui/time-picker.js.map +1 -0
  364. package/dist/ui/toast.d.ts +20 -0
  365. package/dist/ui/toast.d.ts.map +1 -0
  366. package/dist/ui/toast.js +63 -0
  367. package/dist/ui/toast.js.map +1 -0
  368. package/dist/ui/toaster.d.ts +7 -0
  369. package/dist/ui/toaster.d.ts.map +1 -0
  370. package/dist/ui/toaster.js +28 -0
  371. package/dist/ui/toaster.js.map +1 -0
  372. package/dist/ui/toggle-group.d.ts +24 -0
  373. package/dist/ui/toggle-group.d.ts.map +1 -0
  374. package/dist/ui/toggle-group.js +49 -0
  375. package/dist/ui/toggle-group.js.map +1 -0
  376. package/dist/ui/toggle.d.ts +20 -0
  377. package/dist/ui/toggle.d.ts.map +1 -0
  378. package/dist/ui/toggle.js +42 -0
  379. package/dist/ui/toggle.js.map +1 -0
  380. package/dist/ui/tooltip.d.ts +24 -0
  381. package/dist/ui/tooltip.d.ts.map +1 -0
  382. package/dist/ui/tooltip.js +41 -0
  383. package/dist/ui/tooltip.js.map +1 -0
  384. package/dist/ui/typography.d.ts +65 -0
  385. package/dist/ui/typography.d.ts.map +1 -0
  386. package/dist/ui/typography.js +87 -0
  387. package/dist/ui/typography.js.map +1 -0
  388. package/dist/ui/use-media-query.d.ts +5 -0
  389. package/dist/ui/use-media-query.d.ts.map +1 -0
  390. package/dist/ui/use-media-query.js +20 -0
  391. package/dist/ui/use-media-query.js.map +1 -0
  392. package/dist/ui/use-mobile.d.ts +5 -0
  393. package/dist/ui/use-mobile.d.ts.map +1 -0
  394. package/dist/ui/use-mobile.js +21 -0
  395. package/dist/ui/use-mobile.js.map +1 -0
  396. package/dist/ui/use-reduced-motion.d.ts +5 -0
  397. package/dist/ui/use-reduced-motion.d.ts.map +1 -0
  398. package/dist/ui/use-reduced-motion.js +18 -0
  399. package/dist/ui/use-reduced-motion.js.map +1 -0
  400. package/dist/ui/use-toast.d.ts +50 -0
  401. package/dist/ui/use-toast.d.ts.map +1 -0
  402. package/dist/ui/use-toast.js +123 -0
  403. package/dist/ui/use-toast.js.map +1 -0
  404. package/dist/ui/useListState.d.ts +34 -0
  405. package/dist/ui/useListState.d.ts.map +1 -0
  406. package/dist/ui/useListState.js +75 -0
  407. package/dist/ui/useListState.js.map +1 -0
  408. package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
  409. package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
  410. package/dist/ui/usecases/UseCaseCard.js +35 -0
  411. package/dist/ui/usecases/UseCaseCard.js.map +1 -0
  412. package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
  413. package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
  414. package/dist/ui/usecases/UserStoryCard.js +36 -0
  415. package/dist/ui/usecases/UserStoryCard.js.map +1 -0
  416. package/dist/ui/usecases/index.d.ts +3 -0
  417. package/dist/ui/usecases/index.js +4 -0
  418. package/dist/ui/utils.d.ts +7 -0
  419. package/dist/ui/utils.d.ts.map +1 -0
  420. package/dist/ui/utils.js +11 -0
  421. package/dist/ui/utils.js.map +1 -0
  422. package/dist/ui/visually-hidden.d.ts +10 -0
  423. package/dist/ui/visually-hidden.d.ts.map +1 -0
  424. package/dist/ui/visually-hidden.js +31 -0
  425. package/dist/ui/visually-hidden.js.map +1 -0
  426. package/package.json +222 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","names":["React","open"],"sources":["../../ui/sidebar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { PanelLeftIcon } from 'lucide-react';\n\nimport { useIsMobile } from './use-mobile';\nimport { cn } from './utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from './sheet';\nimport { Skeleton } from './skeleton';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from './tooltip';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContextProps = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}) {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n return () => window.removeEventListener('keydown', handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = React.useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full',\n className\n )}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n}) {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n data-slot=\"sidebar\"\n className={cn(\n 'bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col',\n className\n )}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n data-mobile=\"true\"\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className=\"group peer text-sidebar-foreground hidden md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n data-slot=\"sidebar\"\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n data-slot=\"sidebar-gap\"\n className={cn(\n 'relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)'\n )}\n />\n <div\n data-slot=\"sidebar-container\"\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nfunction SidebarTrigger({\n className,\n onClick,\n ...props\n}: React.ComponentProps<typeof Button>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn('size-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\nfunction SidebarRail({ className, ...props }: React.ComponentProps<'button'>) {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n 'hover:after:bg-sidebar-border absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] sm:flex',\n 'in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInset({ className, ...props }: React.ComponentProps<'main'>) {\n return (\n <main\n data-slot=\"sidebar-inset\"\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col',\n 'md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarInput({\n className,\n ...props\n}: React.ComponentProps<typeof Input>) {\n return (\n <Input\n data-slot=\"sidebar-input\"\n data-sidebar=\"input\"\n className={cn('bg-background h-8 w-full shadow-none', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-header\"\n data-sidebar=\"header\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-footer\"\n data-sidebar=\"footer\"\n className={cn('flex flex-col gap-2 p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"sidebar-separator\"\n data-sidebar=\"separator\"\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarContent({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-content\"\n data-sidebar=\"content\"\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroup({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group\"\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'div'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n data-slot=\"sidebar-group-label\"\n data-sidebar=\"group-label\"\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-hidden transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-group-action\"\n data-sidebar=\"group-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground absolute top-3.5 right-3 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarGroupContent({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-group-content\"\n data-sidebar=\"group-content\"\n className={cn('w-full text-sm', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenu({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu\"\n data-sidebar=\"menu\"\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuItem({ className, ...props }: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-item\"\n data-sidebar=\"menu-item\"\n className={cn('group/menu-item relative', className)}\n {...props}\n />\n );\n}\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:p-0!',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n }\n);\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'default',\n tooltip,\n className,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n} & VariantProps<typeof sidebarMenuButtonVariants>) {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n data-slot=\"sidebar-menu-button\"\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== 'collapsed' || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n}\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}) {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-action\"\n data-sidebar=\"menu-action\"\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground absolute top-1.5 right-1 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-hidden transition-transform focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 md:after:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuBadge({\n className,\n ...props\n}: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sidebar-menu-badge\"\n data-sidebar=\"menu-badge\"\n className={cn(\n 'text-sidebar-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: React.ComponentProps<'div'> & {\n showIcon?: boolean;\n}) {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n data-slot=\"sidebar-menu-skeleton\"\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 max-w-(--skeleton-width) flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n}\n\nfunction SidebarMenuSub({ className, ...props }: React.ComponentProps<'ul'>) {\n return (\n <ul\n data-slot=\"sidebar-menu-sub\"\n data-sidebar=\"menu-sub\"\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubItem({\n className,\n ...props\n}: React.ComponentProps<'li'>) {\n return (\n <li\n data-slot=\"sidebar-menu-sub-item\"\n data-sidebar=\"menu-sub-item\"\n className={cn('group/menu-sub-item relative', className)}\n {...props}\n />\n );\n}\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n}) {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n data-slot=\"sidebar-menu-sub-button\"\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 outline-hidden focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime255 from "react/jsx-runtime";
2
+
3
+ //#region ui/skeleton.d.ts
4
+ declare function Skeleton({
5
+ className,
6
+ ...props
7
+ }: React.ComponentProps<'div'>): react_jsx_runtime255.JSX.Element;
8
+ //#endregion
9
+ export { Skeleton };
10
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","names":[],"sources":["../../ui/skeleton.tsx"],"sourcesContent":[],"mappings":";;;iBAES,QAAA;;;GAAkC,KAAA,CAAM,wBAAqB,oBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,15 @@
1
+ import { cn } from "./utils.js";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region ui/skeleton.tsx
5
+ function Skeleton({ className,...props }) {
6
+ return /* @__PURE__ */ jsx("div", {
7
+ "data-slot": "skeleton",
8
+ className: cn("bg-accent animate-pulse rounded-md", className),
9
+ ...props
10
+ });
11
+ }
12
+
13
+ //#endregion
14
+ export { Skeleton };
15
+ //# sourceMappingURL=skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.js","names":[],"sources":["../../ui/skeleton.tsx"],"sourcesContent":["import { cn } from './utils';\n\nfunction Skeleton({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"skeleton\"\n className={cn('bg-accent animate-pulse rounded-md', className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\n"],"mappings":";;;;AAEA,SAAS,SAAS,EAAE,UAAW,GAAG,SAAsC;AACtE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;GACJ"}
@@ -0,0 +1,17 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime189 from "react/jsx-runtime";
3
+
4
+ //#region ui/skip-link.d.ts
5
+ interface SkipLinkProps extends React$1.AnchorHTMLAttributes<HTMLAnchorElement> {
6
+ targetId?: string;
7
+ children?: React$1.ReactNode;
8
+ }
9
+ declare function SkipLink({
10
+ targetId,
11
+ children,
12
+ className,
13
+ ...props
14
+ }: SkipLinkProps): react_jsx_runtime189.JSX.Element;
15
+ //#endregion
16
+ export { SkipLink };
17
+ //# sourceMappingURL=skip-link.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-link.d.ts","names":[],"sources":["../../ui/skip-link.tsx"],"sourcesContent":[],"mappings":";;;;UAEU,aAAA,SAAsB,OAAA,CAAM,qBAAqB;;aAE9C,OAAA,CAAM;AAJY;AAE4B,iBAQ3C,QAAA,CAR2C;EAAA,QAAA;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAaxD,aAbwD,CAAA,EAa3C,oBAAA,CAAA,GAAA,CAAA,OAb2C"}
@@ -0,0 +1,17 @@
1
+ import "react";
2
+ import { jsx } from "react/jsx-runtime";
3
+
4
+ //#region ui/skip-link.tsx
5
+ const defaultClasses = "sr-only focus:not-sr-only focus-visible:outline-solid focus-visible:ring-4 focus-visible:ring-offset-2 fixed top-2 left-2 z-100 rounded-xs bg-background px-3 py-2 text-sm shadow-2xs";
6
+ function SkipLink({ targetId = "main", children, className,...props }) {
7
+ return /* @__PURE__ */ jsx("a", {
8
+ className: [defaultClasses, className].filter(Boolean).join(" "),
9
+ href: `#${targetId}`,
10
+ ...props,
11
+ children: children ?? "Skip to main content"
12
+ });
13
+ }
14
+
15
+ //#endregion
16
+ export { SkipLink };
17
+ //# sourceMappingURL=skip-link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skip-link.js","names":[],"sources":["../../ui/skip-link.tsx"],"sourcesContent":["import * as React from 'react';\n\ninterface SkipLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n targetId?: string;\n children?: React.ReactNode;\n}\n\nconst defaultClasses =\n 'sr-only focus:not-sr-only focus-visible:outline-solid focus-visible:ring-4 focus-visible:ring-offset-2 fixed top-2 left-2 z-100 rounded-xs bg-background px-3 py-2 text-sm shadow-2xs';\n\nexport function SkipLink({\n targetId = 'main',\n children,\n className,\n ...props\n}: SkipLinkProps) {\n return (\n <a\n className={[defaultClasses, className].filter(Boolean).join(' ')}\n href={`#${targetId}`}\n {...props}\n >\n {children ?? 'Skip to main content'}\n </a>\n );\n}\n"],"mappings":";;;;AAOA,MAAM,iBACJ;AAEF,SAAgB,SAAS,EACvB,WAAW,QACX,UACA,UACA,GAAG,SACa;AAChB,QACE,oBAAC;EACC,WAAW,CAAC,gBAAgB,UAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAChE,MAAM,IAAI;EACV,GAAI;YAEH,YAAY;GACX"}
@@ -0,0 +1,16 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime196 from "react/jsx-runtime";
3
+ import * as SliderPrimitive from "@radix-ui/react-slider";
4
+
5
+ //#region ui/slider.d.ts
6
+ declare function Slider({
7
+ className,
8
+ defaultValue,
9
+ value,
10
+ min,
11
+ max,
12
+ ...props
13
+ }: React$1.ComponentProps<typeof SliderPrimitive.Root>): react_jsx_runtime196.JSX.Element;
14
+ //#endregion
15
+ export { Slider };
16
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.d.ts","names":[],"sources":["../../ui/slider.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,MAAA;;;;;;;GAON,OAAA,CAAM,sBAAsB,eAAA,CAAgB,QAAK,oBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,41 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import * as React$1 from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import * as SliderPrimitive from "@radix-ui/react-slider";
8
+
9
+ //#region ui/slider.tsx
10
+ function Slider({ className, defaultValue, value, min = 0, max = 100,...props }) {
11
+ const _values = React$1.useMemo(() => Array.isArray(value) ? value : Array.isArray(defaultValue) ? defaultValue : [min, max], [
12
+ value,
13
+ defaultValue,
14
+ min,
15
+ max
16
+ ]);
17
+ return /* @__PURE__ */ jsxs(SliderPrimitive.Root, {
18
+ "data-slot": "slider",
19
+ defaultValue,
20
+ value,
21
+ min,
22
+ max,
23
+ className: cn("relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col", className),
24
+ ...props,
25
+ children: [/* @__PURE__ */ jsx(SliderPrimitive.Track, {
26
+ "data-slot": "slider-track",
27
+ className: cn("bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5"),
28
+ children: /* @__PURE__ */ jsx(SliderPrimitive.Range, {
29
+ "data-slot": "slider-range",
30
+ className: cn("bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full")
31
+ })
32
+ }), Array.from({ length: _values.length }, (_, index) => /* @__PURE__ */ jsx(SliderPrimitive.Thumb, {
33
+ "data-slot": "slider-thumb",
34
+ className: "border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-2xs transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50"
35
+ }, index))]
36
+ });
37
+ }
38
+
39
+ //#endregion
40
+ export { Slider };
41
+ //# sourceMappingURL=slider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.js","names":["React"],"sources":["../../ui/slider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SliderPrimitive from '@radix-ui/react-slider';\n\nimport { cn } from './utils';\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n );\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n 'relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col',\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n 'bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5'\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n 'bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full'\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary bg-background ring-ring/50 block size-4 shrink-0 rounded-full border shadow-2xs transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n );\n}\n\nexport { Slider };\n"],"mappings":";;;;;;;;;AAOA,SAAS,OAAO,EACd,WACA,cACA,OACA,MAAM,GACN,MAAM,IACN,GAAG,SACiD;CACpD,MAAM,UAAUA,QAAM,cAElB,MAAM,QAAQ,MAAM,GAChB,QACA,MAAM,QAAQ,aAAa,GACzB,eACA,CAAC,KAAK,IAAI,EAClB;EAAC;EAAO;EAAc;EAAK;EAAI,CAChC;AAED,QACE,qBAAC,gBAAgB;EACf,aAAU;EACI;EACP;EACF;EACA;EACL,WAAW,GACT,qOACA,UACD;EACD,GAAI;aAEJ,oBAAC,gBAAgB;GACf,aAAU;GACV,WAAW,GACT,oMACD;aAED,oBAAC,gBAAgB;IACf,aAAU;IACV,WAAW,GACT,8FACD;KACD;IACoB,EACvB,MAAM,KAAK,EAAE,QAAQ,QAAQ,QAAQ,GAAG,GAAG,UAC1C,oBAAC,gBAAgB;GACf,aAAU;GAEV,WAAU;KADL,MAEL,CACF;GACmB"}
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime202 from "react/jsx-runtime";
2
+ import { ToasterProps } from "sonner";
3
+
4
+ //#region ui/sonner.d.ts
5
+ declare const Toaster: ({
6
+ ...props
7
+ }: ToasterProps) => react_jsx_runtime202.JSX.Element;
8
+ //#endregion
9
+ export { Toaster };
10
+ //# sourceMappingURL=sonner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.d.ts","names":[],"sources":["../../ui/sonner.tsx"],"sourcesContent":[],"mappings":";;;;cAKM;;GAAyB,iBAAY,oBAAA,CAAA,GAAA,CAAA"}
@@ -0,0 +1,25 @@
1
+ 'use client';
2
+
3
+
4
+ import { Toaster as Toaster$1 } from "../node_modules/sonner/dist/index.js";
5
+ import { jsx } from "react/jsx-runtime";
6
+ import { useTheme } from "next-themes";
7
+
8
+ //#region ui/sonner.tsx
9
+ const Toaster = ({ ...props }) => {
10
+ const { theme = "system" } = useTheme();
11
+ return /* @__PURE__ */ jsx(Toaster$1, {
12
+ theme,
13
+ className: "toaster group",
14
+ style: {
15
+ "--normal-bg": "var(--popover)",
16
+ "--normal-text": "var(--popover-foreground)",
17
+ "--normal-border": "var(--border)"
18
+ },
19
+ ...props
20
+ });
21
+ };
22
+
23
+ //#endregion
24
+ export { Toaster };
25
+ //# sourceMappingURL=sonner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonner.js","names":["Sonner"],"sources":["../../ui/sonner.tsx"],"sourcesContent":["'use client';\n\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner, type ToasterProps } from 'sonner';\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n theme={theme as ToasterProps['theme']}\n className=\"toaster group\"\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as React.CSSProperties\n }\n {...props}\n />\n );\n};\n\nexport { Toaster };\n"],"mappings":";;;;;;;;AAKA,MAAM,WAAW,EAAE,GAAG,YAA0B;CAC9C,MAAM,EAAE,QAAQ,aAAa,UAAU;AAEvC,QACE,oBAACA;EACQ;EACP,WAAU;EACV,OACE;GACE,eAAe;GACf,iBAAiB;GACjB,mBAAmB;GACpB;EAEH,GAAI;GACJ"}
@@ -0,0 +1,48 @@
1
+ import * as React$1 from "react";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as class_variance_authority_types10 from "class-variance-authority/types";
4
+
5
+ //#region ui/stack.d.ts
6
+ declare const vStackVariants: (props?: ({
7
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
8
+ align?: "center" | "start" | "end" | "stretch" | null | undefined;
9
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
10
+ } & class_variance_authority_types10.ClassProp) | undefined) => string;
11
+ declare const VStack: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
12
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
13
+ align?: "center" | "start" | "end" | "stretch" | null | undefined;
14
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
15
+ } & class_variance_authority_types10.ClassProp) | undefined) => string> & {
16
+ as?: "div" | "section" | "nav" | "main" | "header" | "footer" | "article" | "aside";
17
+ } & React$1.RefAttributes<HTMLDivElement>>;
18
+ declare const hStackVariants: (props?: ({
19
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
20
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
21
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
22
+ wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
23
+ } & class_variance_authority_types10.ClassProp) | undefined) => string;
24
+ declare const HStack: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
25
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
26
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
27
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
28
+ wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
29
+ } & class_variance_authority_types10.ClassProp) | undefined) => string> & {
30
+ as?: "div" | "section" | "nav" | "header" | "footer" | "article" | "aside";
31
+ } & React$1.RefAttributes<HTMLDivElement>>;
32
+ declare const boxVariants: (props?: ({
33
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
34
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
35
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
36
+ wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
37
+ } & class_variance_authority_types10.ClassProp) | undefined) => string;
38
+ declare const Box: React$1.ForwardRefExoticComponent<React$1.HTMLAttributes<HTMLDivElement> & VariantProps<(props?: ({
39
+ gap?: "none" | "sm" | "lg" | "md" | "xs" | "xl" | "2xl" | null | undefined;
40
+ align?: "center" | "start" | "end" | "stretch" | "baseline" | null | undefined;
41
+ justify?: "center" | "start" | "end" | "between" | "around" | "evenly" | null | undefined;
42
+ wrap?: "wrap" | "nowrap" | "wrapReverse" | null | undefined;
43
+ } & class_variance_authority_types10.ClassProp) | undefined) => string> & {
44
+ as?: "div" | "section" | "nav" | "header" | "footer" | "article" | "aside";
45
+ } & React$1.RefAttributes<HTMLDivElement>>;
46
+ //#endregion
47
+ export { Box, HStack, VStack, boxVariants, hStackVariants, vStackVariants };
48
+ //# sourceMappingURL=stack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.d.ts","names":[],"sources":["../../ui/stack.tsx"],"sourcesContent":[],"mappings":";;;;;cAIM,sBAyDL;;;EAzDK,OAAA,CAAA,EAAA,QA+BJ,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,QAAA,GAAA,QAAA,GAAA,IAAA,GAAA,SAAA;IAAA,gCAAA,CAAA,SA0BD,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;cAXK,MAAM,EAAA,OAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,YAAA,CAAA,CAAA,MAAA,EAAA,CAAA;EAAA,GAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,SAAA;EAAA,KAAA,CAAA,EAAA,QAAA,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,IAAA,GAAA,SAAA;EAAA,OAAA,CAAA,EAAA,QAAA,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,QAAA,GAAA,QAAA,GAAA,IAAA,GAAA,SAAA;IAAA,gCAAA,CAAA;;CAAA,wBAAA,eAAA,CAAA,CAAA;cAcN,cAdM,EAAA,CAAA,KA2DA,CA3DA,EAAA,CAAA;EAcN,GAAA,CAAA,EAAA,MAAA,GAAA,IAsCJ,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,SAAA;EAOI,KAAA,CAAA,EAAA,QAWL,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;EAXW,OAAA,CAAA,EAAA,QAAA,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,QAAA,GAAA,QAAA,GAAA,IAAA,GAAA,SAAA;EAAA,IAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,aAAA,GAAA,IAAA,GAAA,SAAA;CAAA,GAPV,gCAAA,CAAA,SAOU,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;cAAN,MAAM,EAAA,OAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,YAAA,CAAA,CAAA,KAoDV,CApDU,EAAA,CAAA;;;EAAA,OAAA,CAAA,EAAA,QAAA,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,QAAA,GAAA,QAAA,GAAA,IAAA,GAAA,SAAA;EAAA,IAAA,CAAA,EAAA,MAAA,GAAA,QAAA,GAAA,aAAA,GAAA,IAAA,GAAA,SAAA;AAAA,CAAA,GAAA,gCAAA,CAAA,SAoDV,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA,CAAA,GAAA;EAOI,EAAA,CAAA,EAAA,KAWL,GAAA,SAAA,GAAA,KAAA,GAAA,QAAA,GAAA,QAAA,GAAA,SAAA,GAAA,OAAA;CAXQ,wBAAA,eAAA,CAAA,CAAA;cA7CH,WA6CG,EAAA,CAAA,KAAA,CAAA,EAAA,CAAA;EAAA,GAAA,CAAA,EAAA,MAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,IAAA,GAAA,KAAA,GAAA,IAAA,GAAA,SAAA;EAAA,KAAA,CAAA,EAAA,QAAA,GAAA,OAAA,GAAA,KAAA,GAAA,SAAA,GAAA,UAAA,GAAA,IAAA,GAAA,SAAA;;;CAAA,GAPP,gCAAA,CAAA,SAOO,CAAA,GAAA,SAAA,EAAA,GAAA,MAAA;cAAH,GAAG,EAAA,OAAA,CAAA,yBAAA,CAAA,OAAA,CAAA,cAAA,CAAA,cAAA,CAAA,GAAA,YAAA,CAAA,CAAA,MAAA,EAAA,CAAA;;;;;IAAA,gCAAA,CAAA"}
@@ -0,0 +1,158 @@
1
+ import { cn } from "./utils.js";
2
+ import * as React$1 from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { cva } from "class-variance-authority";
5
+
6
+ //#region ui/stack.tsx
7
+ const vStackVariants = cva("flex flex-col", {
8
+ variants: {
9
+ gap: {
10
+ none: "gap-0",
11
+ xs: "gap-1",
12
+ sm: "gap-2",
13
+ md: "gap-3",
14
+ lg: "gap-4",
15
+ xl: "gap-6",
16
+ "2xl": "gap-8"
17
+ },
18
+ align: {
19
+ start: "items-start",
20
+ center: "items-center",
21
+ end: "items-end",
22
+ stretch: "items-stretch"
23
+ },
24
+ justify: {
25
+ start: "justify-start",
26
+ center: "justify-center",
27
+ end: "justify-end",
28
+ between: "justify-between",
29
+ around: "justify-around",
30
+ evenly: "justify-evenly"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ gap: "md",
35
+ align: "stretch",
36
+ justify: "start"
37
+ }
38
+ });
39
+ const VStack = React$1.forwardRef(({ className, gap, align, justify, as = "div",...props }, ref) => {
40
+ return /* @__PURE__ */ jsx(as, {
41
+ ref,
42
+ className: cn(vStackVariants({
43
+ gap,
44
+ align,
45
+ justify
46
+ }), className),
47
+ ...props
48
+ });
49
+ });
50
+ VStack.displayName = "VStack";
51
+ const hStackVariants = cva("flex flex-row", {
52
+ variants: {
53
+ gap: {
54
+ none: "gap-0",
55
+ xs: "gap-1",
56
+ sm: "gap-2",
57
+ md: "gap-3",
58
+ lg: "gap-4",
59
+ xl: "gap-6",
60
+ "2xl": "gap-8"
61
+ },
62
+ align: {
63
+ start: "items-start",
64
+ center: "items-center",
65
+ end: "items-end",
66
+ stretch: "items-stretch",
67
+ baseline: "items-baseline"
68
+ },
69
+ justify: {
70
+ start: "justify-start",
71
+ center: "justify-center",
72
+ end: "justify-end",
73
+ between: "justify-between",
74
+ around: "justify-around",
75
+ evenly: "justify-evenly"
76
+ },
77
+ wrap: {
78
+ nowrap: "flex-nowrap",
79
+ wrap: "flex-wrap",
80
+ wrapReverse: "flex-wrap-reverse"
81
+ }
82
+ },
83
+ defaultVariants: {
84
+ gap: "md",
85
+ align: "center",
86
+ justify: "start",
87
+ wrap: "wrap"
88
+ }
89
+ });
90
+ const HStack = React$1.forwardRef(({ className, gap, align, justify, wrap, as = "div",...props }, ref) => {
91
+ return /* @__PURE__ */ jsx(as, {
92
+ ref,
93
+ className: cn(hStackVariants({
94
+ gap,
95
+ align,
96
+ justify,
97
+ wrap
98
+ }), className),
99
+ ...props
100
+ });
101
+ });
102
+ HStack.displayName = "HStack";
103
+ const boxVariants = cva("flex flex-row", {
104
+ variants: {
105
+ gap: {
106
+ none: "gap-0",
107
+ xs: "gap-1",
108
+ sm: "gap-2",
109
+ md: "gap-3",
110
+ lg: "gap-4",
111
+ xl: "gap-6",
112
+ "2xl": "gap-8"
113
+ },
114
+ align: {
115
+ start: "items-start",
116
+ center: "items-center",
117
+ end: "items-end",
118
+ stretch: "items-stretch",
119
+ baseline: "items-baseline"
120
+ },
121
+ justify: {
122
+ start: "justify-start",
123
+ center: "justify-center",
124
+ end: "justify-end",
125
+ between: "justify-between",
126
+ around: "justify-around",
127
+ evenly: "justify-evenly"
128
+ },
129
+ wrap: {
130
+ nowrap: "flex-nowrap",
131
+ wrap: "flex-wrap",
132
+ wrapReverse: "flex-wrap-reverse"
133
+ }
134
+ },
135
+ defaultVariants: {
136
+ gap: "md",
137
+ align: "center",
138
+ justify: "center",
139
+ wrap: "nowrap"
140
+ }
141
+ });
142
+ const Box = React$1.forwardRef(({ className, gap, align, justify, wrap, as = "div",...props }, ref) => {
143
+ return /* @__PURE__ */ jsx(as, {
144
+ ref,
145
+ className: cn(boxVariants({
146
+ gap,
147
+ align,
148
+ justify,
149
+ wrap
150
+ }), className),
151
+ ...props
152
+ });
153
+ });
154
+ Box.displayName = "Box";
155
+
156
+ //#endregion
157
+ export { Box, HStack, VStack, boxVariants, hStackVariants, vStackVariants };
158
+ //# sourceMappingURL=stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stack.js","names":["React"],"sources":["../../ui/stack.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from './utils';\n\nconst vStackVariants = cva('flex flex-col', {\n variants: {\n gap: {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4',\n xl: 'gap-6',\n '2xl': 'gap-8',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n },\n defaultVariants: {\n gap: 'md',\n align: 'stretch',\n justify: 'start',\n },\n});\n\ntype VStackProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof vStackVariants> & {\n as?:\n | 'div'\n | 'section'\n | 'nav'\n | 'main'\n | 'header'\n | 'footer'\n | 'article'\n | 'aside';\n };\n\nconst VStack = React.forwardRef<HTMLDivElement, VStackProps>(\n ({ className, gap, align, justify, as = 'div', ...props }, ref) => {\n const Comp: any = as;\n return (\n <Comp\n ref={ref}\n className={cn(vStackVariants({ gap, align, justify }), className)}\n {...props}\n />\n );\n }\n);\nVStack.displayName = 'VStack';\n\nconst hStackVariants = cva('flex flex-row', {\n variants: {\n gap: {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4',\n xl: 'gap-6',\n '2xl': 'gap-8',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n wrapReverse: 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n gap: 'md',\n align: 'center',\n justify: 'start',\n wrap: 'wrap',\n },\n});\n\ntype HStackProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof hStackVariants> & {\n as?: 'div' | 'section' | 'nav' | 'header' | 'footer' | 'article' | 'aside';\n };\n\nconst HStack = React.forwardRef<HTMLDivElement, HStackProps>(\n ({ className, gap, align, justify, wrap, as = 'div', ...props }, ref) => {\n const Comp: any = as;\n return (\n <Comp\n ref={ref}\n className={cn(hStackVariants({ gap, align, justify, wrap }), className)}\n {...props}\n />\n );\n }\n);\nHStack.displayName = 'HStack';\n\nconst boxVariants = cva('flex flex-row', {\n variants: {\n gap: {\n none: 'gap-0',\n xs: 'gap-1',\n sm: 'gap-2',\n md: 'gap-3',\n lg: 'gap-4',\n xl: 'gap-6',\n '2xl': 'gap-8',\n },\n align: {\n start: 'items-start',\n center: 'items-center',\n end: 'items-end',\n stretch: 'items-stretch',\n baseline: 'items-baseline',\n },\n justify: {\n start: 'justify-start',\n center: 'justify-center',\n end: 'justify-end',\n between: 'justify-between',\n around: 'justify-around',\n evenly: 'justify-evenly',\n },\n wrap: {\n nowrap: 'flex-nowrap',\n wrap: 'flex-wrap',\n wrapReverse: 'flex-wrap-reverse',\n },\n },\n defaultVariants: {\n gap: 'md',\n align: 'center',\n justify: 'center',\n wrap: 'nowrap',\n },\n});\n\ntype BoxProps = React.HTMLAttributes<HTMLDivElement> &\n VariantProps<typeof boxVariants> & {\n as?: 'div' | 'section' | 'nav' | 'header' | 'footer' | 'article' | 'aside';\n };\n\nconst Box = React.forwardRef<HTMLDivElement, BoxProps>(\n ({ className, gap, align, justify, wrap, as = 'div', ...props }, ref) => {\n const Comp: any = as;\n return (\n <Comp\n ref={ref}\n className={cn(boxVariants({ gap, align, justify, wrap }), className)}\n {...props}\n />\n );\n }\n);\nBox.displayName = 'Box';\n\nexport { VStack, HStack, vStackVariants, hStackVariants, boxVariants, Box };\n"],"mappings":";;;;;;AAIA,MAAM,iBAAiB,IAAI,iBAAiB;CAC1C,UAAU;EACR,KAAK;GACH,MAAM;GACN,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,OAAO;GACR;EACD,OAAO;GACL,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACV;EACD,SAAS;GACP,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACT,QAAQ;GACR,QAAQ;GACT;EACF;CACD,iBAAiB;EACf,KAAK;EACL,OAAO;EACP,SAAS;EACV;CACF,CAAC;AAeF,MAAM,SAASA,QAAM,YAClB,EAAE,WAAW,KAAK,OAAO,SAAS,KAAK,MAAO,GAAG,SAAS,QAAQ;AAEjE,QACE,oBAFgB;EAGT;EACL,WAAW,GAAG,eAAe;GAAE;GAAK;GAAO;GAAS,CAAC,EAAE,UAAU;EACjE,GAAI;GACJ;EAGP;AACD,OAAO,cAAc;AAErB,MAAM,iBAAiB,IAAI,iBAAiB;CAC1C,UAAU;EACR,KAAK;GACH,MAAM;GACN,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,OAAO;GACR;EACD,OAAO;GACL,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACT,UAAU;GACX;EACD,SAAS;GACP,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACT,QAAQ;GACR,QAAQ;GACT;EACD,MAAM;GACJ,QAAQ;GACR,MAAM;GACN,aAAa;GACd;EACF;CACD,iBAAiB;EACf,KAAK;EACL,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACF,CAAC;AAOF,MAAM,SAASA,QAAM,YAClB,EAAE,WAAW,KAAK,OAAO,SAAS,MAAM,KAAK,MAAO,GAAG,SAAS,QAAQ;AAEvE,QACE,oBAFgB;EAGT;EACL,WAAW,GAAG,eAAe;GAAE;GAAK;GAAO;GAAS;GAAM,CAAC,EAAE,UAAU;EACvE,GAAI;GACJ;EAGP;AACD,OAAO,cAAc;AAErB,MAAM,cAAc,IAAI,iBAAiB;CACvC,UAAU;EACR,KAAK;GACH,MAAM;GACN,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,OAAO;GACR;EACD,OAAO;GACL,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACT,UAAU;GACX;EACD,SAAS;GACP,OAAO;GACP,QAAQ;GACR,KAAK;GACL,SAAS;GACT,QAAQ;GACR,QAAQ;GACT;EACD,MAAM;GACJ,QAAQ;GACR,MAAM;GACN,aAAa;GACd;EACF;CACD,iBAAiB;EACf,KAAK;EACL,OAAO;EACP,SAAS;EACT,MAAM;EACP;CACF,CAAC;AAOF,MAAM,MAAMA,QAAM,YACf,EAAE,WAAW,KAAK,OAAO,SAAS,MAAM,KAAK,MAAO,GAAG,SAAS,QAAQ;AAEvE,QACE,oBAFgB;EAGT;EACL,WAAW,GAAG,YAAY;GAAE;GAAK;GAAO;GAAS;GAAM,CAAC,EAAE,UAAU;EACpE,GAAI;GACJ;EAGP;AACD,IAAI,cAAc"}
@@ -0,0 +1,19 @@
1
+ import * as React$1 from "react";
2
+ import * as react_jsx_runtime210 from "react/jsx-runtime";
3
+
4
+ //#region ui/stat-card-group.d.ts
5
+ interface StatItem {
6
+ label: React$1.ReactNode;
7
+ value: React$1.ReactNode;
8
+ tone?: 'blue' | 'green' | 'amber';
9
+ }
10
+ declare function StatCardGroup({
11
+ items,
12
+ className
13
+ }: {
14
+ items: StatItem[];
15
+ className?: string;
16
+ }): react_jsx_runtime210.JSX.Element;
17
+ //#endregion
18
+ export { StatCardGroup, StatItem };
19
+ //# sourceMappingURL=stat-card-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat-card-group.d.ts","names":[],"sources":["../../ui/stat-card-group.tsx"],"sourcesContent":[],"mappings":";;;;UAIiB,QAAA;SACR,OAAA,CAAM;SACN,OAAA,CAAM;EAFE,IAAA,CAAA,EAAA,MAAQ,GAAA,OAAA,GAChB,OAAM;AAiBf;AACE,iBADc,aAAA,CACd;EAAA,KAAA;EAAA;CAAA,EAAA;EACA,KAAA,EAEO,QAFP,EAAA;EAEO,SAAA,CAAA,EAAA,MAAA;CAER,CAAA,EAAA,oBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -0,0 +1,39 @@
1
+ import { Card, CardContent } from "./card.js";
2
+ import { HStack, VStack } from "./stack.js";
3
+ import "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+
6
+ //#region ui/stat-card-group.tsx
7
+ function toneClasses(tone) {
8
+ switch (tone) {
9
+ case "green": return "bg-green-50 text-green-800";
10
+ case "amber": return "bg-amber-50 text-amber-800";
11
+ case "blue":
12
+ default: return "bg-blue-50 text-blue-800";
13
+ }
14
+ }
15
+ function StatCardGroup({ items, className }) {
16
+ return /* @__PURE__ */ jsx(HStack, {
17
+ className: className + " w-full flex-wrap gap-3",
18
+ children: items.map((it, idx) => /* @__PURE__ */ jsx(Card, {
19
+ className: "border-none shadow-2xs",
20
+ children: /* @__PURE__ */ jsx(CardContent, {
21
+ className: "px-4 py-3",
22
+ children: /* @__PURE__ */ jsxs(VStack, {
23
+ className: "gap-1",
24
+ children: [/* @__PURE__ */ jsx("div", {
25
+ className: `w-fit rounded-xs px-2 py-0.5 text-sm ${toneClasses(it.tone)}`,
26
+ children: it.label
27
+ }), /* @__PURE__ */ jsx("div", {
28
+ className: "text-xl font-semibold",
29
+ children: it.value
30
+ })]
31
+ })
32
+ })
33
+ }, idx))
34
+ });
35
+ }
36
+
37
+ //#endregion
38
+ export { StatCardGroup };
39
+ //# sourceMappingURL=stat-card-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stat-card-group.js","names":[],"sources":["../../ui/stat-card-group.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Card, CardContent } from './card';\nimport { HStack, VStack } from './stack';\n\nexport interface StatItem {\n label: React.ReactNode;\n value: React.ReactNode;\n tone?: 'blue' | 'green' | 'amber';\n}\n\nfunction toneClasses(tone?: StatItem['tone']) {\n switch (tone) {\n case 'green':\n return 'bg-green-50 text-green-800';\n case 'amber':\n return 'bg-amber-50 text-amber-800';\n case 'blue':\n default:\n return 'bg-blue-50 text-blue-800';\n }\n}\n\nexport function StatCardGroup({\n items,\n className,\n}: {\n items: StatItem[];\n className?: string;\n}) {\n return (\n <HStack className={className + ' w-full flex-wrap gap-3'}>\n {items.map((it, idx) => (\n <Card key={idx} className=\"border-none shadow-2xs\">\n <CardContent className=\"px-4 py-3\">\n <VStack className=\"gap-1\">\n <div\n className={`w-fit rounded-xs px-2 py-0.5 text-sm ${toneClasses(it.tone)}`}\n >\n {it.label}\n </div>\n <div className=\"text-xl font-semibold\">{it.value}</div>\n </VStack>\n </CardContent>\n </Card>\n ))}\n </HStack>\n );\n}\n"],"mappings":";;;;;;AAUA,SAAS,YAAY,MAAyB;AAC5C,SAAQ,MAAR;EACE,KAAK,QACH,QAAO;EACT,KAAK,QACH,QAAO;EACT,KAAK;EACL,QACE,QAAO;;;AAIb,SAAgB,cAAc,EAC5B,OACA,aAIC;AACD,QACE,oBAAC;EAAO,WAAW,YAAY;YAC5B,MAAM,KAAK,IAAI,QACd,oBAAC;GAAe,WAAU;aACxB,oBAAC;IAAY,WAAU;cACrB,qBAAC;KAAO,WAAU;gBAChB,oBAAC;MACC,WAAW,wCAAwC,YAAY,GAAG,KAAK;gBAEtE,GAAG;OACA,EACN,oBAAC;MAAI,WAAU;gBAAyB,GAAG;OAAY;MAChD;KACG;KAVL,IAWJ,CACP;GACK"}
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime221 from "react/jsx-runtime";
2
+ import { VariantProps } from "class-variance-authority";
3
+ import * as class_variance_authority_types18 from "class-variance-authority/types";
4
+
5
+ //#region ui/stepper.d.ts
6
+ declare const dotVariants: (props?: ({
7
+ state?: "active" | "inactive" | null | undefined;
8
+ size?: "sm" | "md" | null | undefined;
9
+ } & class_variance_authority_types18.ClassProp) | undefined) => string;
10
+ interface StepperProps extends VariantProps<typeof dotVariants> {
11
+ current: number;
12
+ total: number;
13
+ className?: string;
14
+ }
15
+ declare function Stepper({
16
+ current,
17
+ total,
18
+ size,
19
+ className
20
+ }: StepperProps): react_jsx_runtime221.JSX.Element;
21
+ //#endregion
22
+ export { Stepper, StepperProps };
23
+ //# sourceMappingURL=stepper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stepper.d.ts","names":[],"sources":["../../ui/stepper.tsx"],"sourcesContent":[],"mappings":";;;;;cAKM;;;IAeJ,gCAAA,CAAA;AAfI,UAiBW,YAAA,SAAqB,YAFpC,CAAA,OAEwD,WAFxD,CAAA,CAAA;EAEe,OAAA,EAAA,MAAa;EAMd,KAAA,EAAA,MAAO;EAAG,SAAA,CAAA,EAAA,MAAA;;AAAgB,iBAA1B,OAAA,CAA0B;EAAA,OAAA;EAAA,KAAA;EAAA,IAAA;EAAA;AAAA,CAAA,EAAmB,YAAnB,CAAA,EAA+B,oBAAA,CAAA,GAAA,CAAA,OAA/B"}