@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,87 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import "react";
6
+ import { XIcon } from "lucide-react";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import * as SheetPrimitive from "@radix-ui/react-dialog";
9
+
10
+ //#region ui/sheet.tsx
11
+ function Sheet({ ...props }) {
12
+ return /* @__PURE__ */ jsx(SheetPrimitive.Root, {
13
+ "data-slot": "sheet",
14
+ ...props
15
+ });
16
+ }
17
+ function SheetTrigger({ ...props }) {
18
+ return /* @__PURE__ */ jsx(SheetPrimitive.Trigger, {
19
+ "data-slot": "sheet-trigger",
20
+ ...props
21
+ });
22
+ }
23
+ function SheetClose({ ...props }) {
24
+ return /* @__PURE__ */ jsx(SheetPrimitive.Close, {
25
+ "data-slot": "sheet-close",
26
+ ...props
27
+ });
28
+ }
29
+ function SheetPortal({ ...props }) {
30
+ return /* @__PURE__ */ jsx(SheetPrimitive.Portal, {
31
+ "data-slot": "sheet-portal",
32
+ ...props
33
+ });
34
+ }
35
+ function SheetOverlay({ className,...props }) {
36
+ return /* @__PURE__ */ jsx(SheetPrimitive.Overlay, {
37
+ "data-slot": "sheet-overlay",
38
+ className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className),
39
+ ...props
40
+ });
41
+ }
42
+ function SheetContent({ className, children, side = "right",...props }) {
43
+ return /* @__PURE__ */ jsxs(SheetPortal, { children: [/* @__PURE__ */ jsx(SheetOverlay, {}), /* @__PURE__ */ jsxs(SheetPrimitive.Content, {
44
+ "data-slot": "sheet-content",
45
+ className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500", side === "right" && "data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm", side === "left" && "data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm", side === "top" && "data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b", side === "bottom" && "data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t", className),
46
+ ...props,
47
+ children: [children, /* @__PURE__ */ jsxs(SheetPrimitive.Close, {
48
+ className: "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none",
49
+ children: [/* @__PURE__ */ jsx(XIcon, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
50
+ className: "sr-only",
51
+ children: "Close"
52
+ })]
53
+ })]
54
+ })] });
55
+ }
56
+ function SheetHeader({ className,...props }) {
57
+ return /* @__PURE__ */ jsx("div", {
58
+ "data-slot": "sheet-header",
59
+ className: cn("flex flex-col gap-1.5 p-4", className),
60
+ ...props
61
+ });
62
+ }
63
+ function SheetFooter({ className,...props }) {
64
+ return /* @__PURE__ */ jsx("div", {
65
+ "data-slot": "sheet-footer",
66
+ className: cn("mt-auto flex flex-col gap-2 p-4", className),
67
+ ...props
68
+ });
69
+ }
70
+ function SheetTitle({ className,...props }) {
71
+ return /* @__PURE__ */ jsx(SheetPrimitive.Title, {
72
+ "data-slot": "sheet-title",
73
+ className: cn("text-foreground font-semibold", className),
74
+ ...props
75
+ });
76
+ }
77
+ function SheetDescription({ className,...props }) {
78
+ return /* @__PURE__ */ jsx(SheetPrimitive.Description, {
79
+ "data-slot": "sheet-description",
80
+ className: cn("text-muted-foreground text-sm", className),
81
+ ...props
82
+ });
83
+ }
84
+
85
+ //#endregion
86
+ export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger };
87
+ //# sourceMappingURL=sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet.js","names":[],"sources":["../../ui/sheet.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as SheetPrimitive from '@radix-ui/react-dialog';\nimport { XIcon } from 'lucide-react';\n\nimport { cn } from './utils';\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />;\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />;\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />;\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />;\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction SheetContent({\n className,\n children,\n side = 'right',\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: 'top' | 'right' | 'bottom' | 'left';\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500',\n side === 'right' &&\n 'data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm',\n side === 'left' &&\n 'data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm',\n side === 'top' &&\n 'data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b',\n side === 'bottom' &&\n 'data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t',\n className\n )}\n {...props}\n >\n {children}\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n </SheetPrimitive.Content>\n </SheetPortal>\n );\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn('flex flex-col gap-1.5 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn('mt-auto flex flex-col gap-2 p-4', className)}\n {...props}\n />\n );\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn('text-foreground font-semibold', className)}\n {...props}\n />\n );\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n );\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n"],"mappings":";;;;;;;;;;AAQA,SAAS,MAAM,EAAE,GAAG,SAA2D;AAC7E,QAAO,oBAAC,eAAe;EAAK,aAAU;EAAQ,GAAI;GAAS;;AAG7D,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QAAO,oBAAC,eAAe;EAAQ,aAAU;EAAgB,GAAI;GAAS;;AAGxE,SAAS,WAAW,EAClB,GAAG,SACiD;AACpD,QAAO,oBAAC,eAAe;EAAM,aAAU;EAAc,GAAI;GAAS;;AAGpE,SAAS,YAAY,EACnB,GAAG,SACkD;AACrD,QAAO,oBAAC,eAAe;EAAO,aAAU;EAAe,GAAI;GAAS;;AAGtE,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;AACtD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,WACA,UACA,OAAO,QACP,GAAG,SAGF;AACD,QACE,qBAAC,0BACC,oBAAC,iBAAe,EAChB,qBAAC,eAAe;EACd,aAAU;EACV,WAAW,GACT,8MACA,SAAS,WACP,oIACF,SAAS,UACP,iIACF,SAAS,SACP,4GACF,SAAS,YACP,qHACF,UACD;EACD,GAAI;aAEH,UACD,qBAAC,eAAe;GAAM,WAAU;cAC9B,oBAAC,SAAM,WAAU,WAAW,EAC5B,oBAAC;IAAK,WAAU;cAAU;KAAY;IACjB;GACA,IACb;;AAIlB,SAAS,YAAY,EAAE,UAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,6BAA6B,UAAU;EACrD,GAAI;GACJ;;AAIN,SAAS,YAAY,EAAE,UAAW,GAAG,SAAsC;AACzE,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GAAG,mCAAmC,UAAU;EAC3D,GAAI;GACJ;;AAIN,SAAS,WAAW,EAClB,UACA,GAAG,SACiD;AACpD,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,UACA,GAAG,SACuD;AAC1D,QACE,oBAAC,eAAe;EACd,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;GACJ"}
@@ -0,0 +1,167 @@
1
+ import { Button } from "./button.js";
2
+ import { Input } from "./input.js";
3
+ import { Separator } from "./separator.js";
4
+ import { TooltipContent } from "./tooltip.js";
5
+ import * as React$1 from "react";
6
+ import * as react_jsx_runtime232 from "react/jsx-runtime";
7
+ import { VariantProps } from "class-variance-authority";
8
+ import * as class_variance_authority_types19 from "class-variance-authority/types";
9
+
10
+ //#region ui/sidebar.d.ts
11
+ type SidebarContextProps = {
12
+ state: 'expanded' | 'collapsed';
13
+ open: boolean;
14
+ setOpen: (open: boolean) => void;
15
+ openMobile: boolean;
16
+ setOpenMobile: (open: boolean) => void;
17
+ isMobile: boolean;
18
+ toggleSidebar: () => void;
19
+ };
20
+ declare function useSidebar(): SidebarContextProps;
21
+ declare function SidebarProvider({
22
+ defaultOpen,
23
+ open: openProp,
24
+ onOpenChange: setOpenProp,
25
+ className,
26
+ style,
27
+ children,
28
+ ...props
29
+ }: React$1.ComponentProps<'div'> & {
30
+ defaultOpen?: boolean;
31
+ open?: boolean;
32
+ onOpenChange?: (open: boolean) => void;
33
+ }): react_jsx_runtime232.JSX.Element;
34
+ declare function Sidebar({
35
+ side,
36
+ variant,
37
+ collapsible,
38
+ className,
39
+ children,
40
+ ...props
41
+ }: React$1.ComponentProps<'div'> & {
42
+ side?: 'left' | 'right';
43
+ variant?: 'sidebar' | 'floating' | 'inset';
44
+ collapsible?: 'offcanvas' | 'icon' | 'none';
45
+ }): react_jsx_runtime232.JSX.Element;
46
+ declare function SidebarTrigger({
47
+ className,
48
+ onClick,
49
+ ...props
50
+ }: React$1.ComponentProps<typeof Button>): react_jsx_runtime232.JSX.Element;
51
+ declare function SidebarRail({
52
+ className,
53
+ ...props
54
+ }: React$1.ComponentProps<'button'>): react_jsx_runtime232.JSX.Element;
55
+ declare function SidebarInset({
56
+ className,
57
+ ...props
58
+ }: React$1.ComponentProps<'main'>): react_jsx_runtime232.JSX.Element;
59
+ declare function SidebarInput({
60
+ className,
61
+ ...props
62
+ }: React$1.ComponentProps<typeof Input>): react_jsx_runtime232.JSX.Element;
63
+ declare function SidebarHeader({
64
+ className,
65
+ ...props
66
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
67
+ declare function SidebarFooter({
68
+ className,
69
+ ...props
70
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
71
+ declare function SidebarSeparator({
72
+ className,
73
+ ...props
74
+ }: React$1.ComponentProps<typeof Separator>): react_jsx_runtime232.JSX.Element;
75
+ declare function SidebarContent({
76
+ className,
77
+ ...props
78
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
79
+ declare function SidebarGroup({
80
+ className,
81
+ ...props
82
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
83
+ declare function SidebarGroupLabel({
84
+ className,
85
+ asChild,
86
+ ...props
87
+ }: React$1.ComponentProps<'div'> & {
88
+ asChild?: boolean;
89
+ }): react_jsx_runtime232.JSX.Element;
90
+ declare function SidebarGroupAction({
91
+ className,
92
+ asChild,
93
+ ...props
94
+ }: React$1.ComponentProps<'button'> & {
95
+ asChild?: boolean;
96
+ }): react_jsx_runtime232.JSX.Element;
97
+ declare function SidebarGroupContent({
98
+ className,
99
+ ...props
100
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
101
+ declare function SidebarMenu({
102
+ className,
103
+ ...props
104
+ }: React$1.ComponentProps<'ul'>): react_jsx_runtime232.JSX.Element;
105
+ declare function SidebarMenuItem({
106
+ className,
107
+ ...props
108
+ }: React$1.ComponentProps<'li'>): react_jsx_runtime232.JSX.Element;
109
+ declare const sidebarMenuButtonVariants: (props?: ({
110
+ variant?: "default" | "outline" | null | undefined;
111
+ size?: "default" | "sm" | "lg" | null | undefined;
112
+ } & class_variance_authority_types19.ClassProp) | undefined) => string;
113
+ declare function SidebarMenuButton({
114
+ asChild,
115
+ isActive,
116
+ variant,
117
+ size,
118
+ tooltip,
119
+ className,
120
+ ...props
121
+ }: React$1.ComponentProps<'button'> & {
122
+ asChild?: boolean;
123
+ isActive?: boolean;
124
+ tooltip?: string | React$1.ComponentProps<typeof TooltipContent>;
125
+ } & VariantProps<typeof sidebarMenuButtonVariants>): react_jsx_runtime232.JSX.Element;
126
+ declare function SidebarMenuAction({
127
+ className,
128
+ asChild,
129
+ showOnHover,
130
+ ...props
131
+ }: React$1.ComponentProps<'button'> & {
132
+ asChild?: boolean;
133
+ showOnHover?: boolean;
134
+ }): react_jsx_runtime232.JSX.Element;
135
+ declare function SidebarMenuBadge({
136
+ className,
137
+ ...props
138
+ }: React$1.ComponentProps<'div'>): react_jsx_runtime232.JSX.Element;
139
+ declare function SidebarMenuSkeleton({
140
+ className,
141
+ showIcon,
142
+ ...props
143
+ }: React$1.ComponentProps<'div'> & {
144
+ showIcon?: boolean;
145
+ }): react_jsx_runtime232.JSX.Element;
146
+ declare function SidebarMenuSub({
147
+ className,
148
+ ...props
149
+ }: React$1.ComponentProps<'ul'>): react_jsx_runtime232.JSX.Element;
150
+ declare function SidebarMenuSubItem({
151
+ className,
152
+ ...props
153
+ }: React$1.ComponentProps<'li'>): react_jsx_runtime232.JSX.Element;
154
+ declare function SidebarMenuSubButton({
155
+ asChild,
156
+ size,
157
+ isActive,
158
+ className,
159
+ ...props
160
+ }: React$1.ComponentProps<'a'> & {
161
+ asChild?: boolean;
162
+ size?: 'sm' | 'md';
163
+ isActive?: boolean;
164
+ }): react_jsx_runtime232.JSX.Element;
165
+ //#endregion
166
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
167
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","names":[],"sources":["../../ui/sidebar.tsx"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,380 @@
1
+ 'use client';
2
+
3
+
4
+ import { cn } from "./utils.js";
5
+ import { Button } from "./button.js";
6
+ import { Input } from "./input.js";
7
+ import { Separator } from "./separator.js";
8
+ import { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from "./sheet.js";
9
+ import { useIsMobile } from "./use-mobile.js";
10
+ import { Skeleton } from "./skeleton.js";
11
+ import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "./tooltip.js";
12
+ import * as React$1 from "react";
13
+ import { PanelLeftIcon } from "lucide-react";
14
+ import { jsx, jsxs } from "react/jsx-runtime";
15
+ import { Slot } from "@radix-ui/react-slot";
16
+ import { cva } from "class-variance-authority";
17
+
18
+ //#region ui/sidebar.tsx
19
+ const SIDEBAR_COOKIE_NAME = "sidebar_state";
20
+ const SIDEBAR_COOKIE_MAX_AGE = 3600 * 24 * 7;
21
+ const SIDEBAR_WIDTH = "16rem";
22
+ const SIDEBAR_WIDTH_MOBILE = "18rem";
23
+ const SIDEBAR_WIDTH_ICON = "3rem";
24
+ const SIDEBAR_KEYBOARD_SHORTCUT = "b";
25
+ const SidebarContext = React$1.createContext(null);
26
+ function useSidebar() {
27
+ const context = React$1.useContext(SidebarContext);
28
+ if (!context) throw new Error("useSidebar must be used within a SidebarProvider.");
29
+ return context;
30
+ }
31
+ function SidebarProvider({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children,...props }) {
32
+ const isMobile = useIsMobile();
33
+ const [openMobile, setOpenMobile] = React$1.useState(false);
34
+ const [_open, _setOpen] = React$1.useState(defaultOpen);
35
+ const open = openProp ?? _open;
36
+ const setOpen = React$1.useCallback((value) => {
37
+ const openState = typeof value === "function" ? value(open) : value;
38
+ if (setOpenProp) setOpenProp(openState);
39
+ else _setOpen(openState);
40
+ document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;
41
+ }, [setOpenProp, open]);
42
+ const toggleSidebar = React$1.useCallback(() => {
43
+ return isMobile ? setOpenMobile((open$1) => !open$1) : setOpen((open$1) => !open$1);
44
+ }, [
45
+ isMobile,
46
+ setOpen,
47
+ setOpenMobile
48
+ ]);
49
+ React$1.useEffect(() => {
50
+ const handleKeyDown = (event) => {
51
+ if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {
52
+ event.preventDefault();
53
+ toggleSidebar();
54
+ }
55
+ };
56
+ window.addEventListener("keydown", handleKeyDown);
57
+ return () => window.removeEventListener("keydown", handleKeyDown);
58
+ }, [toggleSidebar]);
59
+ const state = open ? "expanded" : "collapsed";
60
+ const contextValue = React$1.useMemo(() => ({
61
+ state,
62
+ open,
63
+ setOpen,
64
+ isMobile,
65
+ openMobile,
66
+ setOpenMobile,
67
+ toggleSidebar
68
+ }), [
69
+ state,
70
+ open,
71
+ setOpen,
72
+ isMobile,
73
+ openMobile,
74
+ setOpenMobile,
75
+ toggleSidebar
76
+ ]);
77
+ return /* @__PURE__ */ jsx(SidebarContext.Provider, {
78
+ value: contextValue,
79
+ children: /* @__PURE__ */ jsx(TooltipProvider, {
80
+ delayDuration: 0,
81
+ children: /* @__PURE__ */ jsx("div", {
82
+ "data-slot": "sidebar-wrapper",
83
+ style: {
84
+ "--sidebar-width": SIDEBAR_WIDTH,
85
+ "--sidebar-width-icon": SIDEBAR_WIDTH_ICON,
86
+ ...style
87
+ },
88
+ className: cn("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full", className),
89
+ ...props,
90
+ children
91
+ })
92
+ })
93
+ });
94
+ }
95
+ function Sidebar({ side = "left", variant = "sidebar", collapsible = "offcanvas", className, children,...props }) {
96
+ const { isMobile, state, openMobile, setOpenMobile } = useSidebar();
97
+ if (collapsible === "none") return /* @__PURE__ */ jsx("div", {
98
+ "data-slot": "sidebar",
99
+ className: cn("bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col", className),
100
+ ...props,
101
+ children
102
+ });
103
+ if (isMobile) return /* @__PURE__ */ jsx(Sheet, {
104
+ open: openMobile,
105
+ onOpenChange: setOpenMobile,
106
+ ...props,
107
+ children: /* @__PURE__ */ jsxs(SheetContent, {
108
+ "data-sidebar": "sidebar",
109
+ "data-slot": "sidebar",
110
+ "data-mobile": "true",
111
+ className: "bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden",
112
+ style: { "--sidebar-width": SIDEBAR_WIDTH_MOBILE },
113
+ side,
114
+ children: [/* @__PURE__ */ jsxs(SheetHeader, {
115
+ className: "sr-only",
116
+ children: [/* @__PURE__ */ jsx(SheetTitle, { children: "Sidebar" }), /* @__PURE__ */ jsx(SheetDescription, { children: "Displays the mobile sidebar." })]
117
+ }), /* @__PURE__ */ jsx("div", {
118
+ className: "flex h-full w-full flex-col",
119
+ children
120
+ })]
121
+ })
122
+ });
123
+ return /* @__PURE__ */ jsxs("div", {
124
+ className: "group peer text-sidebar-foreground hidden md:block",
125
+ "data-state": state,
126
+ "data-collapsible": state === "collapsed" ? collapsible : "",
127
+ "data-variant": variant,
128
+ "data-side": side,
129
+ "data-slot": "sidebar",
130
+ children: [/* @__PURE__ */ jsx("div", {
131
+ "data-slot": "sidebar-gap",
132
+ className: cn("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear", "group-data-[collapsible=offcanvas]:w-0", "group-data-[side=right]:rotate-180", variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)")
133
+ }), /* @__PURE__ */ jsx("div", {
134
+ "data-slot": "sidebar-container",
135
+ className: cn("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex", side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]", variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l", className),
136
+ ...props,
137
+ children: /* @__PURE__ */ jsx("div", {
138
+ "data-sidebar": "sidebar",
139
+ "data-slot": "sidebar-inner",
140
+ 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",
141
+ children
142
+ })
143
+ })]
144
+ });
145
+ }
146
+ function SidebarTrigger({ className, onClick,...props }) {
147
+ const { toggleSidebar } = useSidebar();
148
+ return /* @__PURE__ */ jsxs(Button, {
149
+ "data-sidebar": "trigger",
150
+ "data-slot": "sidebar-trigger",
151
+ variant: "ghost",
152
+ size: "icon",
153
+ className: cn("size-7", className),
154
+ onClick: (event) => {
155
+ onClick?.(event);
156
+ toggleSidebar();
157
+ },
158
+ ...props,
159
+ children: [/* @__PURE__ */ jsx(PanelLeftIcon, {}), /* @__PURE__ */ jsx("span", {
160
+ className: "sr-only",
161
+ children: "Toggle Sidebar"
162
+ })]
163
+ });
164
+ }
165
+ function SidebarRail({ className,...props }) {
166
+ const { toggleSidebar } = useSidebar();
167
+ return /* @__PURE__ */ jsx("button", {
168
+ "data-sidebar": "rail",
169
+ "data-slot": "sidebar-rail",
170
+ "aria-label": "Toggle Sidebar",
171
+ tabIndex: -1,
172
+ onClick: toggleSidebar,
173
+ title: "Toggle Sidebar",
174
+ className: cn("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", "in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize", "[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize", "hover:group-data-[collapsible=offcanvas]:bg-sidebar group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full", "[[data-side=left][data-collapsible=offcanvas]_&]:-right-2", "[[data-side=right][data-collapsible=offcanvas]_&]:-left-2", className),
175
+ ...props
176
+ });
177
+ }
178
+ function SidebarInset({ className,...props }) {
179
+ return /* @__PURE__ */ jsx("main", {
180
+ "data-slot": "sidebar-inset",
181
+ className: cn("bg-background relative flex w-full flex-1 flex-col", "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", className),
182
+ ...props
183
+ });
184
+ }
185
+ function SidebarInput({ className,...props }) {
186
+ return /* @__PURE__ */ jsx(Input, {
187
+ "data-slot": "sidebar-input",
188
+ "data-sidebar": "input",
189
+ className: cn("bg-background h-8 w-full shadow-none", className),
190
+ ...props
191
+ });
192
+ }
193
+ function SidebarHeader({ className,...props }) {
194
+ return /* @__PURE__ */ jsx("div", {
195
+ "data-slot": "sidebar-header",
196
+ "data-sidebar": "header",
197
+ className: cn("flex flex-col gap-2 p-2", className),
198
+ ...props
199
+ });
200
+ }
201
+ function SidebarFooter({ className,...props }) {
202
+ return /* @__PURE__ */ jsx("div", {
203
+ "data-slot": "sidebar-footer",
204
+ "data-sidebar": "footer",
205
+ className: cn("flex flex-col gap-2 p-2", className),
206
+ ...props
207
+ });
208
+ }
209
+ function SidebarSeparator({ className,...props }) {
210
+ return /* @__PURE__ */ jsx(Separator, {
211
+ "data-slot": "sidebar-separator",
212
+ "data-sidebar": "separator",
213
+ className: cn("bg-sidebar-border mx-2 w-auto", className),
214
+ ...props
215
+ });
216
+ }
217
+ function SidebarContent({ className,...props }) {
218
+ return /* @__PURE__ */ jsx("div", {
219
+ "data-slot": "sidebar-content",
220
+ "data-sidebar": "content",
221
+ className: cn("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", className),
222
+ ...props
223
+ });
224
+ }
225
+ function SidebarGroup({ className,...props }) {
226
+ return /* @__PURE__ */ jsx("div", {
227
+ "data-slot": "sidebar-group",
228
+ "data-sidebar": "group",
229
+ className: cn("relative flex w-full min-w-0 flex-col p-2", className),
230
+ ...props
231
+ });
232
+ }
233
+ function SidebarGroupLabel({ className, asChild = false,...props }) {
234
+ return /* @__PURE__ */ jsx(asChild ? Slot : "div", {
235
+ "data-slot": "sidebar-group-label",
236
+ "data-sidebar": "group-label",
237
+ className: cn("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", "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0", className),
238
+ ...props
239
+ });
240
+ }
241
+ function SidebarGroupAction({ className, asChild = false,...props }) {
242
+ return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
243
+ "data-slot": "sidebar-group-action",
244
+ "data-sidebar": "group-action",
245
+ className: cn("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", "after:absolute after:-inset-2 md:after:hidden", "group-data-[collapsible=icon]:hidden", className),
246
+ ...props
247
+ });
248
+ }
249
+ function SidebarGroupContent({ className,...props }) {
250
+ return /* @__PURE__ */ jsx("div", {
251
+ "data-slot": "sidebar-group-content",
252
+ "data-sidebar": "group-content",
253
+ className: cn("w-full text-sm", className),
254
+ ...props
255
+ });
256
+ }
257
+ function SidebarMenu({ className,...props }) {
258
+ return /* @__PURE__ */ jsx("ul", {
259
+ "data-slot": "sidebar-menu",
260
+ "data-sidebar": "menu",
261
+ className: cn("flex w-full min-w-0 flex-col gap-1", className),
262
+ ...props
263
+ });
264
+ }
265
+ function SidebarMenuItem({ className,...props }) {
266
+ return /* @__PURE__ */ jsx("li", {
267
+ "data-slot": "sidebar-menu-item",
268
+ "data-sidebar": "menu-item",
269
+ className: cn("group/menu-item relative", className),
270
+ ...props
271
+ });
272
+ }
273
+ const sidebarMenuButtonVariants = cva("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", {
274
+ variants: {
275
+ variant: {
276
+ default: "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
277
+ outline: "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))]"
278
+ },
279
+ size: {
280
+ default: "h-8 text-sm",
281
+ sm: "h-7 text-xs",
282
+ lg: "h-12 text-sm group-data-[collapsible=icon]:p-0!"
283
+ }
284
+ },
285
+ defaultVariants: {
286
+ variant: "default",
287
+ size: "default"
288
+ }
289
+ });
290
+ function SidebarMenuButton({ asChild = false, isActive = false, variant = "default", size = "default", tooltip, className,...props }) {
291
+ const Comp = asChild ? Slot : "button";
292
+ const { isMobile, state } = useSidebar();
293
+ const button = /* @__PURE__ */ jsx(Comp, {
294
+ "data-slot": "sidebar-menu-button",
295
+ "data-sidebar": "menu-button",
296
+ "data-size": size,
297
+ "data-active": isActive,
298
+ className: cn(sidebarMenuButtonVariants({
299
+ variant,
300
+ size
301
+ }), className),
302
+ ...props
303
+ });
304
+ if (!tooltip) return button;
305
+ if (typeof tooltip === "string") tooltip = { children: tooltip };
306
+ return /* @__PURE__ */ jsxs(Tooltip, { children: [/* @__PURE__ */ jsx(TooltipTrigger, {
307
+ asChild: true,
308
+ children: button
309
+ }), /* @__PURE__ */ jsx(TooltipContent, {
310
+ side: "right",
311
+ align: "center",
312
+ hidden: state !== "collapsed" || isMobile,
313
+ ...tooltip
314
+ })] });
315
+ }
316
+ function SidebarMenuAction({ className, asChild = false, showOnHover = false,...props }) {
317
+ return /* @__PURE__ */ jsx(asChild ? Slot : "button", {
318
+ "data-slot": "sidebar-menu-action",
319
+ "data-sidebar": "menu-action",
320
+ className: cn("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", "after:absolute after:-inset-2 md:after:hidden", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", showOnHover && "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", className),
321
+ ...props
322
+ });
323
+ }
324
+ function SidebarMenuBadge({ className,...props }) {
325
+ return /* @__PURE__ */ jsx("div", {
326
+ "data-slot": "sidebar-menu-badge",
327
+ "data-sidebar": "menu-badge",
328
+ className: cn("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", "peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground", "peer-data-[size=sm]/menu-button:top-1", "peer-data-[size=default]/menu-button:top-1.5", "peer-data-[size=lg]/menu-button:top-2.5", "group-data-[collapsible=icon]:hidden", className),
329
+ ...props
330
+ });
331
+ }
332
+ function SidebarMenuSkeleton({ className, showIcon = false,...props }) {
333
+ const width = React$1.useMemo(() => {
334
+ return `${Math.floor(Math.random() * 40) + 50}%`;
335
+ }, []);
336
+ return /* @__PURE__ */ jsxs("div", {
337
+ "data-slot": "sidebar-menu-skeleton",
338
+ "data-sidebar": "menu-skeleton",
339
+ className: cn("flex h-8 items-center gap-2 rounded-md px-2", className),
340
+ ...props,
341
+ children: [showIcon && /* @__PURE__ */ jsx(Skeleton, {
342
+ className: "size-4 rounded-md",
343
+ "data-sidebar": "menu-skeleton-icon"
344
+ }), /* @__PURE__ */ jsx(Skeleton, {
345
+ className: "h-4 max-w-(--skeleton-width) flex-1",
346
+ "data-sidebar": "menu-skeleton-text",
347
+ style: { "--skeleton-width": width }
348
+ })]
349
+ });
350
+ }
351
+ function SidebarMenuSub({ className,...props }) {
352
+ return /* @__PURE__ */ jsx("ul", {
353
+ "data-slot": "sidebar-menu-sub",
354
+ "data-sidebar": "menu-sub",
355
+ className: cn("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", "group-data-[collapsible=icon]:hidden", className),
356
+ ...props
357
+ });
358
+ }
359
+ function SidebarMenuSubItem({ className,...props }) {
360
+ return /* @__PURE__ */ jsx("li", {
361
+ "data-slot": "sidebar-menu-sub-item",
362
+ "data-sidebar": "menu-sub-item",
363
+ className: cn("group/menu-sub-item relative", className),
364
+ ...props
365
+ });
366
+ }
367
+ function SidebarMenuSubButton({ asChild = false, size = "md", isActive = false, className,...props }) {
368
+ return /* @__PURE__ */ jsx(asChild ? Slot : "a", {
369
+ "data-slot": "sidebar-menu-sub-button",
370
+ "data-sidebar": "menu-sub-button",
371
+ "data-size": size,
372
+ "data-active": isActive,
373
+ className: cn("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", "data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground", size === "sm" && "text-xs", size === "md" && "text-sm", "group-data-[collapsible=icon]:hidden", className),
374
+ ...props
375
+ });
376
+ }
377
+
378
+ //#endregion
379
+ export { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, useSidebar };
380
+ //# sourceMappingURL=sidebar.js.map