tembro 2.0.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/dist/components/calendar/calendar.cjs +1 -1
  2. package/dist/components/calendar/calendar.d.ts +2 -1
  3. package/dist/components/calendar/calendar.js +126 -122
  4. package/dist/components/calendar/date-range-picker.cjs +1 -1
  5. package/dist/components/calendar/date-range-picker.d.ts +2 -1
  6. package/dist/components/calendar/date-range-picker.js +39 -39
  7. package/dist/components/charts/charts.cjs +1 -1
  8. package/dist/components/charts/charts.d.ts +13 -4
  9. package/dist/components/charts/charts.js +76 -46
  10. package/dist/components/charts/progress-ring.cjs +1 -1
  11. package/dist/components/charts/progress-ring.d.ts +3 -1
  12. package/dist/components/charts/progress-ring.js +11 -10
  13. package/dist/components/data-table/data-table-column-visibility-menu.cjs +1 -1
  14. package/dist/components/data-table/data-table-column-visibility-menu.d.ts +4 -1
  15. package/dist/components/data-table/data-table-column-visibility-menu.js +36 -8
  16. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  17. package/dist/components/data-table/data-table-toolbar.js +12 -13
  18. package/dist/components/display/carousel.cjs +1 -1
  19. package/dist/components/display/carousel.d.ts +9 -1
  20. package/dist/components/display/carousel.js +123 -81
  21. package/dist/components/display/code-block.cjs +2 -2
  22. package/dist/components/display/code-block.d.ts +2 -1
  23. package/dist/components/display/code-block.js +17 -12
  24. package/dist/components/display/delta-badge.cjs +1 -1
  25. package/dist/components/display/delta-badge.d.ts +2 -1
  26. package/dist/components/display/delta-badge.js +11 -7
  27. package/dist/components/display/kanban.cjs +1 -1
  28. package/dist/components/display/kanban.d.ts +4 -1
  29. package/dist/components/display/kanban.js +60 -33
  30. package/dist/components/display/metric-grid.cjs +1 -1
  31. package/dist/components/display/metric-grid.d.ts +1 -0
  32. package/dist/components/display/metric-grid.js +1 -1
  33. package/dist/components/display/qr-code.cjs +1 -1
  34. package/dist/components/display/qr-code.d.ts +2 -1
  35. package/dist/components/display/qr-code.js +19 -16
  36. package/dist/components/display/tag.cjs +1 -1
  37. package/dist/components/display/tag.d.ts +2 -1
  38. package/dist/components/display/tag.js +28 -22
  39. package/dist/components/display/tree-view.cjs +1 -1
  40. package/dist/components/display/tree-view.d.ts +9 -1
  41. package/dist/components/display/tree-view.js +104 -40
  42. package/dist/components/display/trend-card.cjs +1 -1
  43. package/dist/components/display/trend-card.js +27 -41
  44. package/dist/components/feedback/alert.cjs +1 -1
  45. package/dist/components/feedback/alert.d.ts +2 -1
  46. package/dist/components/feedback/alert.js +6 -6
  47. package/dist/components/feedback/loading-state.cjs +1 -1
  48. package/dist/components/feedback/loading-state.d.ts +3 -1
  49. package/dist/components/feedback/loading-state.js +23 -10
  50. package/dist/components/feedback/page-state.cjs +1 -1
  51. package/dist/components/feedback/page-state.d.ts +2 -1
  52. package/dist/components/feedback/page-state.js +7 -4
  53. package/dist/components/form/form-field-shell.cjs +1 -1
  54. package/dist/components/form/form-field-shell.d.ts +4 -2
  55. package/dist/components/form/form-field-shell.js +57 -41
  56. package/dist/components/form/form-input.cjs +1 -1
  57. package/dist/components/form/form-input.js +2 -0
  58. package/dist/components/form/form-select.cjs +1 -1
  59. package/dist/components/form/form-select.js +2 -0
  60. package/dist/components/form/form-switch.cjs +1 -1
  61. package/dist/components/form/form-switch.d.ts +1 -1
  62. package/dist/components/form/form-switch.js +58 -54
  63. package/dist/components/form/form-textarea.cjs +1 -1
  64. package/dist/components/form/form-textarea.d.ts +1 -1
  65. package/dist/components/form/form-textarea.js +29 -27
  66. package/dist/components/layout/app-sidebar.cjs +1 -1
  67. package/dist/components/layout/app-sidebar.d.ts +1 -0
  68. package/dist/components/layout/app-sidebar.js +36 -36
  69. package/dist/components/layout/breadcrumbs.cjs +1 -1
  70. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  71. package/dist/components/layout/breadcrumbs.js +7 -7
  72. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  73. package/dist/components/modern/calendar-scheduler.d.ts +5 -1
  74. package/dist/components/modern/calendar-scheduler.js +47 -28
  75. package/dist/components/modern/dual-list-picker.cjs +1 -1
  76. package/dist/components/modern/dual-list-picker.d.ts +5 -1
  77. package/dist/components/modern/dual-list-picker.js +81 -23
  78. package/dist/components/modern/rich-text-editor.cjs +1 -1
  79. package/dist/components/modern/rich-text-editor.d.ts +3 -1
  80. package/dist/components/modern/rich-text-editor.js +12 -9
  81. package/dist/components/modern/tour.cjs +1 -1
  82. package/dist/components/modern/tour.d.ts +5 -1
  83. package/dist/components/modern/tour.js +57 -35
  84. package/dist/components/navigation/command-bar.cjs +1 -1
  85. package/dist/components/navigation/command-bar.d.ts +3 -1
  86. package/dist/components/navigation/command-bar.js +10 -7
  87. package/dist/components/navigation/demo.cjs +1 -1
  88. package/dist/components/navigation/demo.js +0 -1
  89. package/dist/components/navigation/nav-tabs.cjs +1 -1
  90. package/dist/components/navigation/nav-tabs.js +39 -27
  91. package/dist/components/navigation/page-tabs.cjs +1 -1
  92. package/dist/components/navigation/page-tabs.js +41 -30
  93. package/dist/components/navigation/pagination.cjs +1 -1
  94. package/dist/components/navigation/pagination.d.ts +7 -1
  95. package/dist/components/navigation/pagination.js +48 -25
  96. package/dist/components/notifications/notification-center.cjs +1 -1
  97. package/dist/components/notifications/notification-center.d.ts +3 -1
  98. package/dist/components/notifications/notification-center.js +56 -38
  99. package/dist/components/notifications/toast.cjs +1 -1
  100. package/dist/components/notifications/toast.d.ts +1 -0
  101. package/dist/components/notifications/toast.js +4 -0
  102. package/dist/components/overlay/alert-dialog.cjs +1 -1
  103. package/dist/components/overlay/alert-dialog.js +1 -1
  104. package/dist/components/overlay/confirm-dialog.cjs +1 -1
  105. package/dist/components/overlay/confirm-dialog.d.ts +4 -2
  106. package/dist/components/overlay/confirm-dialog.js +31 -22
  107. package/dist/components/overlay/drawer.cjs +1 -1
  108. package/dist/components/overlay/drawer.d.ts +3 -1
  109. package/dist/components/overlay/drawer.js +24 -16
  110. package/dist/components/ui/accordion/index.d.ts +4 -0
  111. package/dist/components/ui/badge/index.cjs +1 -1
  112. package/dist/components/ui/badge/index.d.ts +1 -1
  113. package/dist/components/ui/badge/index.js +2 -1
  114. package/dist/components/ui/button/index.cjs +1 -1
  115. package/dist/components/ui/button/index.d.ts +2 -1
  116. package/dist/components/ui/button/index.js +13 -10
  117. package/dist/components/ui/dialog/index.cjs +1 -1
  118. package/dist/components/ui/dialog/index.js +2 -1
  119. package/dist/components/ui/hover-card.cjs +1 -1
  120. package/dist/components/ui/hover-card.d.ts +11 -3
  121. package/dist/components/ui/hover-card.js +29 -24
  122. package/dist/components/ui/input/index.d.ts +1 -1
  123. package/dist/components/ui/popover/index.cjs +1 -1
  124. package/dist/components/ui/popover/index.d.ts +2 -2
  125. package/dist/components/ui/popover/index.js +6 -5
  126. package/dist/components/ui/radio-group/index.cjs +1 -1
  127. package/dist/components/ui/radio-group/index.d.ts +5 -1
  128. package/dist/components/ui/radio-group/index.js +50 -16
  129. package/dist/components/ui/right-click-menu/index.cjs +1 -1
  130. package/dist/components/ui/right-click-menu/index.d.ts +5 -1
  131. package/dist/components/ui/right-click-menu/index.js +77 -23
  132. package/dist/components/ui/segmented-control/index.cjs +1 -1
  133. package/dist/components/ui/segmented-control/index.d.ts +2 -1
  134. package/dist/components/ui/segmented-control/index.js +23 -11
  135. package/dist/components/ui/select/index.cjs +1 -1
  136. package/dist/components/ui/select/index.d.ts +8 -1
  137. package/dist/components/ui/select/index.js +40 -35
  138. package/dist/components/ui/switch/index.cjs +1 -1
  139. package/dist/components/ui/switch/index.d.ts +18 -0
  140. package/dist/components/ui/switch/index.js +47 -17
  141. package/dist/components/ui/tabs/index.cjs +1 -1
  142. package/dist/components/ui/tabs/index.d.ts +14 -4
  143. package/dist/components/ui/tabs/index.js +11 -8
  144. package/dist/components/ui/textarea/index.cjs +1 -1
  145. package/dist/components/ui/textarea/index.d.ts +10 -2
  146. package/dist/components/ui/textarea/index.js +37 -8
  147. package/dist/components/ui/textarea.cjs +1 -0
  148. package/dist/components/ui/textarea.d.ts +1 -0
  149. package/dist/components/ui/textarea.js +2 -0
  150. package/dist/components/ui/tooltip/index.cjs +1 -1
  151. package/dist/components/ui/tooltip/index.d.ts +11 -3
  152. package/dist/components/ui/tooltip/index.js +41 -20
  153. package/dist/components/upload/file-upload.cjs +1 -1
  154. package/dist/components/upload/file-upload.d.ts +8 -1
  155. package/dist/components/upload/file-upload.js +132 -100
  156. package/dist/components/upload/image-upload.cjs +1 -1
  157. package/dist/components/upload/image-upload.d.ts +5 -1
  158. package/dist/components/upload/image-upload.js +34 -9
  159. package/dist/index.cjs +1 -1
  160. package/dist/index.js +31 -31
  161. package/dist/public-component-surface.cjs +1 -1
  162. package/dist/public-component-surface.js +15 -0
  163. package/dist/showcase/component-api-schema.cjs +1 -1
  164. package/dist/showcase/component-api-schema.js +187 -10
  165. package/dist/showcase/fallback.cjs +3 -3
  166. package/dist/showcase/fallback.js +221 -243
  167. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  168. package/dist/showcase/premium/alert/showcase.js +1 -0
  169. package/dist/showcase/premium/app-sidebar/showcase.cjs +1 -1
  170. package/dist/showcase/premium/app-sidebar/showcase.js +1 -0
  171. package/dist/showcase/premium/badge/showcase.cjs +1 -1
  172. package/dist/showcase/premium/badge/showcase.js +7 -0
  173. package/dist/showcase/premium/badge/types.d.ts +1 -1
  174. package/dist/showcase/premium/breadcrumbs/showcase.cjs +1 -1
  175. package/dist/showcase/premium/breadcrumbs/showcase.js +12 -1
  176. package/dist/showcase/premium/button/mock.cjs +1 -4
  177. package/dist/showcase/premium/button/mock.js +1 -1
  178. package/dist/showcase/premium/button/showcase.cjs +1 -1
  179. package/dist/showcase/premium/button/showcase.js +2 -2
  180. package/dist/showcase/premium/card/showcase.cjs +1 -1
  181. package/dist/showcase/premium/card/showcase.js +96 -47
  182. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  183. package/dist/showcase/premium/carousel/showcase.js +76 -49
  184. package/dist/showcase/premium/command-bar/showcase.cjs +1 -1
  185. package/dist/showcase/premium/command-bar/showcase.js +2 -0
  186. package/dist/showcase/premium/data-table/mock.cjs +12 -11
  187. package/dist/showcase/premium/data-table/mock.js +1 -1
  188. package/dist/showcase/premium/file-upload/showcase.cjs +1 -1
  189. package/dist/showcase/premium/file-upload/showcase.js +25 -4
  190. package/dist/showcase/premium/image-upload/showcase.cjs +1 -1
  191. package/dist/showcase/premium/image-upload/showcase.js +4 -1
  192. package/dist/showcase/premium/index.cjs +1 -1
  193. package/dist/showcase/premium/index.js +396 -402
  194. package/dist/showcase/premium/loading-state/showcase.cjs +1 -1
  195. package/dist/showcase/premium/loading-state/showcase.js +3 -1
  196. package/dist/showcase/premium/metric-grid/showcase.cjs +1 -1
  197. package/dist/showcase/premium/metric-grid/showcase.js +96 -28
  198. package/dist/showcase/premium/notification-center/showcase.cjs +1 -1
  199. package/dist/showcase/premium/notification-center/showcase.js +7 -3
  200. package/dist/showcase/premium/page-state/showcase.cjs +1 -1
  201. package/dist/showcase/premium/page-state/showcase.js +5 -1
  202. package/dist/showcase/premium/pagination/showcase.cjs +1 -1
  203. package/dist/showcase/premium/pagination/showcase.js +15 -2
  204. package/dist/showcase/premium/popover/showcase.cjs +1 -1
  205. package/dist/showcase/premium/popover/showcase.js +85 -50
  206. package/dist/showcase/premium/radio-group/showcase.cjs +1 -1
  207. package/dist/showcase/premium/radio-group/showcase.js +27 -4
  208. package/dist/showcase/premium/right-click-menu/showcase.cjs +1 -1
  209. package/dist/showcase/premium/right-click-menu/showcase.js +56 -43
  210. package/dist/showcase/premium/segmented-control/showcase.cjs +1 -1
  211. package/dist/showcase/premium/segmented-control/showcase.js +1 -0
  212. package/dist/showcase/premium/select/data.cjs +1 -1
  213. package/dist/showcase/premium/select/data.js +69 -34
  214. package/dist/showcase/premium/select/mock.cjs +19 -6
  215. package/dist/showcase/premium/select/mock.js +3 -2
  216. package/dist/showcase/premium/select/showcase.cjs +1 -1
  217. package/dist/showcase/premium/select/showcase.js +43 -18
  218. package/dist/showcase/premium/select/types.d.ts +3 -0
  219. package/dist/showcase/premium/statistic/showcase.cjs +1 -1
  220. package/dist/showcase/premium/statistic/showcase.js +57 -25
  221. package/dist/showcase/premium/switch/showcase.cjs +1 -1
  222. package/dist/showcase/premium/switch/showcase.js +25 -14
  223. package/dist/showcase/premium/tabs/showcase.cjs +1 -1
  224. package/dist/showcase/premium/tabs/showcase.js +171 -48
  225. package/dist/showcase/premium/textarea/mock.cjs +12 -4
  226. package/dist/showcase/premium/textarea/mock.js +1 -1
  227. package/dist/showcase/premium/textarea/showcase.cjs +1 -1
  228. package/dist/showcase/premium/textarea/showcase.js +8 -3
  229. package/dist/showcase/premium/toast/showcase.cjs +1 -1
  230. package/dist/showcase/premium/toast/showcase.js +32 -6
  231. package/dist/showcase/premium/types.d.ts +1 -1
  232. package/dist/showcase/registry-quality.cjs +1 -1
  233. package/dist/showcase/registry-quality.js +1 -0
  234. package/dist/showcase/render-registry-preview.cjs +1 -1
  235. package/dist/showcase/render-registry-preview.js +57 -79
  236. package/dist/showcase/site-data.cjs +1 -1
  237. package/dist/showcase/site-data.js +60 -21
  238. package/dist/showcase/tembro-registry.json.cjs +1 -1
  239. package/dist/showcase/tembro-registry.json.js +34 -20
  240. package/dist/showcase/types.d.ts +1 -1
  241. package/package.json +1 -1
  242. package/packages/cli/dist/index.cjs +31 -31
  243. package/packages/cli/vendor/src/components/calendar/calendar.tsx +59 -50
  244. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +7 -4
  245. package/packages/cli/vendor/src/components/charts/charts.tsx +109 -66
  246. package/packages/cli/vendor/src/components/charts/progress-ring.tsx +37 -26
  247. package/packages/cli/vendor/src/components/data-table/data-table-column-visibility-menu.tsx +41 -22
  248. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +8 -6
  249. package/packages/cli/vendor/src/components/display/carousel.tsx +84 -3
  250. package/packages/cli/vendor/src/components/display/code-block.tsx +22 -2
  251. package/packages/cli/vendor/src/components/display/delta-badge.tsx +11 -11
  252. package/packages/cli/vendor/src/components/display/kanban.tsx +103 -57
  253. package/packages/cli/vendor/src/components/display/metric-grid.tsx +16 -13
  254. package/packages/cli/vendor/src/components/display/qr-code.tsx +17 -15
  255. package/packages/cli/vendor/src/components/display/tag.tsx +39 -21
  256. package/packages/cli/vendor/src/components/display/tree-view.tsx +221 -84
  257. package/packages/cli/vendor/src/components/display/trend-card.tsx +6 -40
  258. package/packages/cli/vendor/src/components/feedback/alert.tsx +3 -1
  259. package/packages/cli/vendor/src/components/feedback/loading-state.tsx +33 -17
  260. package/packages/cli/vendor/src/components/feedback/page-state.tsx +8 -7
  261. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +37 -8
  262. package/packages/cli/vendor/src/components/form/form-input.tsx +2 -0
  263. package/packages/cli/vendor/src/components/form/form-select.tsx +2 -0
  264. package/packages/cli/vendor/src/components/form/form-switch.tsx +9 -3
  265. package/packages/cli/vendor/src/components/form/form-textarea.tsx +6 -2
  266. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +3 -1
  267. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +3 -1
  268. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +28 -13
  269. package/packages/cli/vendor/src/components/modern/dual-list-picker.tsx +103 -35
  270. package/packages/cli/vendor/src/components/modern/rich-text-editor.tsx +25 -22
  271. package/packages/cli/vendor/src/components/modern/tour.tsx +47 -29
  272. package/packages/cli/vendor/src/components/navigation/command-bar.tsx +6 -0
  273. package/packages/cli/vendor/src/components/navigation/demo.tsx +0 -1
  274. package/packages/cli/vendor/src/components/navigation/nav-tabs.tsx +38 -29
  275. package/packages/cli/vendor/src/components/navigation/page-tabs.tsx +35 -23
  276. package/packages/cli/vendor/src/components/navigation/pagination.tsx +65 -31
  277. package/packages/cli/vendor/src/components/notifications/notification-center.tsx +64 -39
  278. package/packages/cli/vendor/src/components/notifications/toast.tsx +23 -21
  279. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +1 -1
  280. package/packages/cli/vendor/src/components/overlay/confirm-dialog.tsx +45 -22
  281. package/packages/cli/vendor/src/components/overlay/drawer.tsx +18 -5
  282. package/packages/cli/vendor/src/components/ui/accordion/index.tsx +4 -0
  283. package/packages/cli/vendor/src/components/ui/badge/index.tsx +2 -1
  284. package/packages/cli/vendor/src/components/ui/button/index.tsx +11 -5
  285. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +2 -1
  286. package/packages/cli/vendor/src/components/ui/hover-card.tsx +54 -28
  287. package/packages/cli/vendor/src/components/ui/popover/index.tsx +10 -8
  288. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +55 -6
  289. package/packages/cli/vendor/src/components/ui/right-click-menu/index.tsx +120 -9
  290. package/packages/cli/vendor/src/components/ui/segmented-control/index.tsx +29 -3
  291. package/packages/cli/vendor/src/components/ui/select/index.tsx +64 -31
  292. package/packages/cli/vendor/src/components/ui/switch/index.tsx +71 -6
  293. package/packages/cli/vendor/src/components/ui/tabs/index.tsx +22 -6
  294. package/packages/cli/vendor/src/components/ui/textarea/index.tsx +105 -15
  295. package/packages/cli/vendor/src/components/ui/textarea.tsx +2 -0
  296. package/packages/cli/vendor/src/components/ui/tooltip/index.tsx +67 -22
  297. package/packages/cli/vendor/src/components/upload/file-upload.tsx +120 -57
  298. package/packages/cli/vendor/src/components/upload/image-upload.tsx +71 -24
  299. package/packages/cli/vendor/src/public-component-surface.ts +3 -0
  300. package/packages/cli/vendor/src/showcase/component-api-schema.ts +79 -41
  301. package/packages/cli/vendor/src/showcase/fallback.tsx +4 -19
  302. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +1 -0
  303. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -0
  304. package/packages/cli/vendor/src/showcase/premium/badge/showcase.tsx +4 -2
  305. package/packages/cli/vendor/src/showcase/premium/badge/types.ts +1 -1
  306. package/packages/cli/vendor/src/showcase/premium/breadcrumbs/showcase.tsx +3 -1
  307. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +2 -5
  308. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +2 -2
  309. package/packages/cli/vendor/src/showcase/premium/card/showcase.tsx +26 -1
  310. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +19 -3
  311. package/packages/cli/vendor/src/showcase/premium/command-bar/showcase.tsx +1 -1
  312. package/packages/cli/vendor/src/showcase/premium/data-table/mock.ts +26 -25
  313. package/packages/cli/vendor/src/showcase/premium/file-upload/showcase.tsx +21 -1
  314. package/packages/cli/vendor/src/showcase/premium/image-upload/showcase.tsx +4 -1
  315. package/packages/cli/vendor/src/showcase/premium/index.ts +0 -2
  316. package/packages/cli/vendor/src/showcase/premium/loading-state/showcase.tsx +1 -1
  317. package/packages/cli/vendor/src/showcase/premium/metric-grid/showcase.tsx +36 -4
  318. package/packages/cli/vendor/src/showcase/premium/notification-center/showcase.tsx +4 -3
  319. package/packages/cli/vendor/src/showcase/premium/page-state/showcase.tsx +1 -0
  320. package/packages/cli/vendor/src/showcase/premium/pagination/showcase.tsx +13 -1
  321. package/packages/cli/vendor/src/showcase/premium/popover/showcase.tsx +27 -11
  322. package/packages/cli/vendor/src/showcase/premium/radio-group/showcase.tsx +13 -1
  323. package/packages/cli/vendor/src/showcase/premium/right-click-menu/showcase.tsx +8 -5
  324. package/packages/cli/vendor/src/showcase/premium/segmented-control/showcase.tsx +1 -0
  325. package/packages/cli/vendor/src/showcase/premium/select/data.ts +12 -3
  326. package/packages/cli/vendor/src/showcase/premium/select/mock.ts +4 -4
  327. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +22 -1
  328. package/packages/cli/vendor/src/showcase/premium/select/types.ts +3 -0
  329. package/packages/cli/vendor/src/showcase/premium/statistic/showcase.tsx +10 -1
  330. package/packages/cli/vendor/src/showcase/premium/switch/showcase.tsx +15 -6
  331. package/packages/cli/vendor/src/showcase/premium/tabs/showcase.tsx +48 -1
  332. package/packages/cli/vendor/src/showcase/premium/textarea/mock.ts +12 -4
  333. package/packages/cli/vendor/src/showcase/premium/textarea/showcase.tsx +5 -0
  334. package/packages/cli/vendor/src/showcase/premium/toast/showcase.tsx +17 -1
  335. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  336. package/packages/cli/vendor/src/showcase/registry-quality.ts +3 -2
  337. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +0 -15
  338. package/packages/cli/vendor/src/showcase/site-data.tsx +21 -15
  339. package/packages/cli/vendor/src/showcase/tembro-registry.json +42 -20
  340. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  341. package/registry.json +18 -6
@@ -5,87 +5,91 @@ import "react";
5
5
  import { jsx as i, jsxs as a } from "react/jsx-runtime";
6
6
  import { Controller as o } from "react-hook-form";
7
7
  //#region src/components/form/form-switch.tsx
8
- function s({ control: s, name: c, label: l, description: u, required: d, className: f, layout: p, descriptionPosition: m, labelAction: h, requiredIndicator: g, errorIcon: _, showErrorIcon: v, disabled: y, readOnly: b, labelClassName: x, labelRowClassName: S, descriptionClassName: C, errorClassName: w, contentClassName: T, fieldClassName: E, labelPlacement: D = "end", id: O, onCheckedChange: k, ...A }) {
9
- let j = O ?? c;
8
+ function s({ control: s, name: c, label: l, description: u, success: d, loading: f, required: p, className: m, layout: h, descriptionPosition: g, labelAction: _, requiredIndicator: v, errorIcon: y, showErrorIcon: b, disabled: x, readOnly: S, labelClassName: C, labelRowClassName: w, descriptionClassName: T, errorClassName: E, contentClassName: D, fieldClassName: O, labelPlacement: k = "end", id: A, onCheckedChange: j, ...M }) {
9
+ let N = A ?? c;
10
10
  return /* @__PURE__ */ i(o, {
11
11
  control: s,
12
12
  name: c,
13
13
  render: ({ field: o, fieldState: s }) => {
14
- let c = s.error?.message, O = r(j, {
14
+ let c = s.error?.message, A = r(N, {
15
15
  description: u,
16
16
  error: c
17
- }), M = l ? /* @__PURE__ */ a("label", {
18
- id: O.labelId,
19
- htmlFor: j,
20
- className: e("text-sm font-medium leading-none", y && "opacity-60", x),
21
- children: [l, d && (g ?? /* @__PURE__ */ i("span", {
17
+ }), P = l ? /* @__PURE__ */ a("label", {
18
+ id: A.labelId,
19
+ htmlFor: N,
20
+ className: e("text-sm font-medium leading-none", x && "opacity-60", C),
21
+ children: [l, p && (v ?? /* @__PURE__ */ i("span", {
22
22
  className: "ml-1 text-destructive",
23
23
  children: "*"
24
24
  }))]
25
- }) : null, N = /* @__PURE__ */ i(t, {
26
- id: j,
25
+ }) : null, F = /* @__PURE__ */ i(t, {
26
+ id: N,
27
27
  ref: o.ref,
28
28
  checked: !!o.value,
29
- disabled: y || b,
29
+ disabled: x || S,
30
30
  "aria-invalid": s.invalid || void 0,
31
- "aria-labelledby": l ? O.labelId : void 0,
32
- "aria-describedby": O.describedBy,
33
- "aria-errormessage": c ? O.errorId : void 0,
34
- className: E,
31
+ "aria-labelledby": l ? A.labelId : void 0,
32
+ "aria-describedby": A.describedBy,
33
+ "aria-errormessage": c ? A.errorId : void 0,
34
+ className: O,
35
35
  onBlur: o.onBlur,
36
36
  onCheckedChange: (e) => {
37
- o.onChange(e), k?.(e);
37
+ o.onChange(e), j?.(e);
38
38
  },
39
- ...A
39
+ ...M
40
40
  });
41
- return D === "start" ? /* @__PURE__ */ i(n, {
41
+ return k === "start" ? /* @__PURE__ */ i(n, {
42
42
  label: l,
43
43
  description: u,
44
- required: d,
44
+ success: d,
45
+ loading: f,
46
+ required: p,
45
47
  error: c,
46
- htmlFor: j,
47
- labelId: O.labelId,
48
- descriptionId: O.descriptionId,
49
- errorId: O.errorId,
50
- className: f,
51
- layout: p,
52
- descriptionPosition: m,
53
- labelAction: h,
54
- requiredIndicator: g,
55
- errorIcon: _,
56
- showErrorIcon: v,
57
- disabled: y,
58
- readOnly: b,
59
- labelClassName: x,
60
- labelRowClassName: S,
61
- descriptionClassName: C,
62
- errorClassName: w,
63
- contentClassName: T,
64
- children: N
48
+ htmlFor: N,
49
+ labelId: A.labelId,
50
+ descriptionId: A.descriptionId,
51
+ errorId: A.errorId,
52
+ className: m,
53
+ layout: h,
54
+ descriptionPosition: g,
55
+ labelAction: _,
56
+ requiredIndicator: v,
57
+ errorIcon: y,
58
+ showErrorIcon: b,
59
+ disabled: x,
60
+ readOnly: S,
61
+ labelClassName: C,
62
+ labelRowClassName: w,
63
+ descriptionClassName: T,
64
+ errorClassName: E,
65
+ contentClassName: D,
66
+ children: F
65
67
  }) : /* @__PURE__ */ i(n, {
66
68
  error: c,
67
- className: f,
68
- descriptionId: O.descriptionId,
69
- errorId: O.errorId,
70
- errorIcon: _,
71
- showErrorIcon: v,
72
- disabled: y,
73
- readOnly: b,
74
- errorClassName: w,
75
- contentClassName: T,
69
+ success: d,
70
+ loading: f,
71
+ className: m,
72
+ descriptionId: A.descriptionId,
73
+ errorId: A.errorId,
74
+ errorIcon: y,
75
+ showErrorIcon: b,
76
+ disabled: x,
77
+ readOnly: S,
78
+ errorClassName: E,
79
+ contentClassName: D,
76
80
  children: /* @__PURE__ */ a("div", {
77
81
  className: "flex items-start gap-3",
78
- children: [N, (l || u || h) && /* @__PURE__ */ a("div", {
82
+ children: [F, (l || u || _) && /* @__PURE__ */ a("div", {
79
83
  className: "grid min-w-0 gap-1",
80
- children: [(l || h) && /* @__PURE__ */ a("div", {
81
- className: e("flex items-center justify-between gap-2", S),
82
- children: [M, h && /* @__PURE__ */ i("div", {
84
+ children: [(l || _) && /* @__PURE__ */ a("div", {
85
+ className: e("flex items-center justify-between gap-2", w),
86
+ children: [P, _ && /* @__PURE__ */ i("div", {
83
87
  className: "shrink-0 text-sm",
84
- children: h
88
+ children: _
85
89
  })]
86
90
  }), u && /* @__PURE__ */ i("p", {
87
- id: O.descriptionId,
88
- className: e("text-xs text-muted-foreground", C),
91
+ id: A.descriptionId,
92
+ className: e("text-xs text-muted-foreground", T),
89
93
  children: u
90
94
  })]
91
95
  })]
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../ui/textarea/index.cjs"),n=require("./form-field-shell.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("react-hook-form");function o({control:e,name:r,rules:o,label:s,description:c,required:l,className:u,layout:d,descriptionPosition:f,labelAction:p,requiredIndicator:m,errorIcon:h,showErrorIcon:g,disabled:_,readOnly:v,labelClassName:y,labelRowClassName:b,descriptionClassName:x,errorClassName:S,contentClassName:C,fieldClassName:w,transformIn:T,transformOut:E,id:D,onChange:O,onBlur:k,...A}){let j=D??r;return(0,i.jsx)(a.Controller,{control:e,name:r,rules:o,render:({field:e,fieldState:r})=>{let a=r.error?.message,o=n.resolveFormFieldIds(j,{description:c,error:a});return(0,i.jsx)(n.FormFieldShell,{label:s,description:c,required:l,error:a,htmlFor:j,labelId:o.labelId,descriptionId:o.descriptionId,errorId:o.errorId,className:u,layout:d,descriptionPosition:f,labelAction:p,requiredIndicator:m,errorIcon:h,showErrorIcon:g,disabled:_,readOnly:v,labelClassName:y,labelRowClassName:b,descriptionClassName:x,errorClassName:S,contentClassName:C,children:(0,i.jsx)(t.Textarea,{id:j,ref:e.ref,name:e.name,value:T?T(e.value):e.value??``,disabled:_,readOnly:v,onBlur:t=>{e.onBlur(),k?.(t)},onChange:t=>{e.onChange(E?E(t):t),O?.(t)},"aria-invalid":r.invalid||void 0,"aria-describedby":o.describedBy,"aria-errormessage":a?o.errorId:void 0,className:w,...A})})}})}exports.FormTextarea=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../ui/textarea/index.cjs"),n=require("./form-field-shell.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime"),a=require("react-hook-form");function o({control:e,name:r,rules:o,label:s,description:c,success:l,loading:u,required:d,className:f,layout:p,descriptionPosition:m,labelAction:h,requiredIndicator:g,errorIcon:_,showErrorIcon:v,disabled:y,readOnly:b,labelClassName:x,labelRowClassName:S,descriptionClassName:C,errorClassName:w,contentClassName:T,fieldClassName:E,transformIn:D,transformOut:O,id:k,onChange:A,onBlur:j,...M}){let N=k??r;return(0,i.jsx)(a.Controller,{control:e,name:r,rules:o,render:({field:e,fieldState:r})=>{let a=r.error?.message,o=n.resolveFormFieldIds(N,{description:c,error:a});return(0,i.jsx)(n.FormFieldShell,{label:s,description:c,success:l,loading:u,required:d,error:a,htmlFor:N,labelId:o.labelId,descriptionId:o.descriptionId,errorId:o.errorId,className:f,layout:p,descriptionPosition:m,labelAction:h,requiredIndicator:g,errorIcon:_,showErrorIcon:v,disabled:y,readOnly:b,labelClassName:x,labelRowClassName:S,descriptionClassName:C,errorClassName:w,contentClassName:T,children:(0,i.jsx)(t.Textarea,{id:N,ref:e.ref,name:e.name,value:D?D(e.value):e.value??``,disabled:y,readOnly:b,onBlur:t=>{e.onBlur(),j?.(t)},onChange:t=>{e.onChange(O?O(t):t),A?.(t)},"aria-invalid":r.invalid||void 0,"aria-describedby":o.describedBy,"aria-errormessage":a?o.errorId:void 0,className:E,...M})})}})}exports.FormTextarea=o;
@@ -10,5 +10,5 @@ export type FormTextareaProps<TFieldValues extends FieldValues = FieldValues, TN
10
10
  transformIn?: (value: unknown) => string | number | readonly string[] | undefined;
11
11
  transformOut?: (event: React.ChangeEvent<HTMLTextAreaElement>) => unknown;
12
12
  };
13
- declare function FormTextarea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, name, rules, label, description, required, className, layout, descriptionPosition, labelAction, requiredIndicator, errorIcon, showErrorIcon, disabled, readOnly, labelClassName, labelRowClassName, descriptionClassName, errorClassName, contentClassName, fieldClassName, transformIn, transformOut, id, onChange, onBlur, ...props }: FormTextareaProps<TFieldValues, TName>): React.JSX.Element;
13
+ declare function FormTextarea<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, name, rules, label, description, success, loading, required, className, layout, descriptionPosition, labelAction, requiredIndicator, errorIcon, showErrorIcon, disabled, readOnly, labelClassName, labelRowClassName, descriptionClassName, errorClassName, contentClassName, fieldClassName, transformIn, transformOut, id, onChange, onBlur, ...props }: FormTextareaProps<TFieldValues, TName>): React.JSX.Element;
14
14
  export { FormTextarea };
@@ -4,58 +4,60 @@ import "react";
4
4
  import { jsx as r } from "react/jsx-runtime";
5
5
  import { Controller as i } from "react-hook-form";
6
6
  //#region src/components/form/form-textarea.tsx
7
- function a({ control: a, name: o, rules: s, label: c, description: l, required: u, className: d, layout: f, descriptionPosition: p, labelAction: m, requiredIndicator: h, errorIcon: g, showErrorIcon: _, disabled: v, readOnly: y, labelClassName: b, labelRowClassName: x, descriptionClassName: S, errorClassName: C, contentClassName: w, fieldClassName: T, transformIn: E, transformOut: D, id: O, onChange: k, onBlur: A, ...j }) {
8
- let M = O ?? o;
7
+ function a({ control: a, name: o, rules: s, label: c, description: l, success: u, loading: d, required: f, className: p, layout: m, descriptionPosition: h, labelAction: g, requiredIndicator: _, errorIcon: v, showErrorIcon: y, disabled: b, readOnly: x, labelClassName: S, labelRowClassName: C, descriptionClassName: w, errorClassName: T, contentClassName: E, fieldClassName: D, transformIn: O, transformOut: k, id: A, onChange: j, onBlur: M, ...N }) {
8
+ let P = A ?? o;
9
9
  return /* @__PURE__ */ r(i, {
10
10
  control: a,
11
11
  name: o,
12
12
  rules: s,
13
13
  render: ({ field: i, fieldState: a }) => {
14
- let o = a.error?.message, s = n(M, {
14
+ let o = a.error?.message, s = n(P, {
15
15
  description: l,
16
16
  error: o
17
17
  });
18
18
  return /* @__PURE__ */ r(t, {
19
19
  label: c,
20
20
  description: l,
21
- required: u,
21
+ success: u,
22
+ loading: d,
23
+ required: f,
22
24
  error: o,
23
- htmlFor: M,
25
+ htmlFor: P,
24
26
  labelId: s.labelId,
25
27
  descriptionId: s.descriptionId,
26
28
  errorId: s.errorId,
27
- className: d,
28
- layout: f,
29
- descriptionPosition: p,
30
- labelAction: m,
31
- requiredIndicator: h,
32
- errorIcon: g,
33
- showErrorIcon: _,
34
- disabled: v,
35
- readOnly: y,
36
- labelClassName: b,
37
- labelRowClassName: x,
38
- descriptionClassName: S,
39
- errorClassName: C,
40
- contentClassName: w,
29
+ className: p,
30
+ layout: m,
31
+ descriptionPosition: h,
32
+ labelAction: g,
33
+ requiredIndicator: _,
34
+ errorIcon: v,
35
+ showErrorIcon: y,
36
+ disabled: b,
37
+ readOnly: x,
38
+ labelClassName: S,
39
+ labelRowClassName: C,
40
+ descriptionClassName: w,
41
+ errorClassName: T,
42
+ contentClassName: E,
41
43
  children: /* @__PURE__ */ r(e, {
42
- id: M,
44
+ id: P,
43
45
  ref: i.ref,
44
46
  name: i.name,
45
- value: E ? E(i.value) : i.value ?? "",
46
- disabled: v,
47
- readOnly: y,
47
+ value: O ? O(i.value) : i.value ?? "",
48
+ disabled: b,
49
+ readOnly: x,
48
50
  onBlur: (e) => {
49
- i.onBlur(), A?.(e);
51
+ i.onBlur(), M?.(e);
50
52
  },
51
53
  onChange: (e) => {
52
- i.onChange(D ? D(e) : e), k?.(e);
54
+ i.onChange(k ? k(e) : e), j?.(e);
53
55
  },
54
56
  "aria-invalid": a.invalid || void 0,
55
57
  "aria-describedby": s.describedBy,
56
58
  "aria-errormessage": o ? s.errorId : void 0,
57
- className: T,
58
- ...j
59
+ className: D,
60
+ ...N
59
61
  })
60
62
  });
61
63
  }
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/tooltip/index.cjs"),r=require("../../hooks/use-is-mobile.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");var s=1024,c=`18rem`,l=`4.75rem`,u=`min(88vw, 22rem)`;function d({active:e,disabled:n}){return t.cn(`border-[color:transparent] text-foreground/80 hover:border-[color:var(--aui-divider)] hover:bg-[color:color-mix(in_oklch,var(--card),var(--primary)_4%)] hover:text-foreground focus-visible:border-[color:var(--aui-control-border-strong,var(--border))] focus-visible:bg-[color:color-mix(in_oklch,var(--card),var(--primary)_6%)] focus-visible:text-foreground focus-visible:shadow-[0_0_0_3px_color-mix(in_oklch,var(--primary),transparent_86%)]`,e&&`border-[color:color-mix(in_oklch,var(--primary),transparent_76%)] bg-[color:color-mix(in_oklch,var(--primary),transparent_91%)] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.08)]`,n&&`hover:border-transparent hover:bg-transparent hover:text-foreground/80`)}function f(e){return e.items?.some(e=>!e.hidden)??!1}function p(e){return e.active?!0:e.items?.some(e=>p(e))??!1}function m(e,t){e.onSelect?.(),t?.(e)}function h({item:e,collapsed:r,depth:i,onItemSelect:a,renderLink:s}){let c={"aria-current":e.current??(e.active?`page`:void 0),"aria-disabled":e.disabled||void 0,"data-slot":`app-sidebar-item`,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-depth":String(i),className:t.cn(`flex min-h-9 items-center gap-2 rounded-lg border border-transparent px-2.5 text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,d({active:e.active,disabled:e.disabled}),r&&`justify-center px-2`)},l=(0,o.jsxs)(o.Fragment,{children:[e.icon&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}),!r&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge})]}),u=t=>r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:t})}):t;return e.href?.startsWith(`/`)?u(s?(0,o.jsx)(o.Fragment,{children:s({item:e,href:e.href,...c,onClick:t=>{if(e.disabled){t.preventDefault();return}m(e,a)},children:l})}):(0,o.jsx)(`a`,{href:e.href,...c,onClick:t=>{if(e.disabled){t.preventDefault();return}m(e,a)},children:l})):e.href?u((0,o.jsx)(`button`,{type:`button`,...c,className:t.cn(c.className,`w-full`),onClick:()=>{if(e.disabled)return;let t=e.href;if(t){if(m(e,a),t.startsWith(`http`)){window.open(t,`_blank`,`noopener,noreferrer`);return}window.location.assign(t)}},children:l})):u((0,o.jsx)(`button`,{type:`button`,disabled:e.disabled,...c,onClick:()=>{e.disabled||m(e,a)},children:l}))}function g({items:e,collapsed:r,depth:a,onItemSelect:s,renderLink:c}){return e.map(e=>{if(e.hidden)return null;let l=f(e),u=p(e),m=!r&&a===0&&e.sectionLabel;if(!l)return(0,o.jsxs)(i.Fragment,{children:[m?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-label`,className:`px-2.5 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}):null,(0,o.jsx)(h,{item:e,collapsed:r,depth:a,onItemSelect:s,renderLink:c})]},e.key);let _=e.defaultExpanded??u;return(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-group`,"data-depth":a,children:[m&&(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-label`,className:`px-2.5 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}),(0,o.jsxs)(`details`,{"data-slot":`app-sidebar-group-details`,open:_,className:`group/app-sidebar-details`,children:[(0,o.jsxs)(`summary`,{"data-slot":`app-sidebar-group-trigger`,className:t.cn(`flex min-h-9 list-none items-center gap-2 rounded-lg border border-transparent text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow]`,d({active:u}),r?`justify-center px-2`:`px-2.5`),children:[e.icon?r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon})}):(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,!r&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge}),!r&&(0,o.jsx)(`span`,{"data-slot":`app-sidebar-group-chevron`,className:`ml-auto text-xs text-muted-foreground transition-transform group-open/app-sidebar-details:rotate-90`,children:`›`})]}),(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-content`,className:t.cn(`mt-1 space-y-1`,!r&&`pl-3`),children:(0,o.jsx)(g,{items:e.items??[],collapsed:r,depth:a+1,onItemSelect:s,renderLink:c})})]})]},e.key)})}function _({item:e,collapsed:r,onItemSelect:i}){let a=(0,o.jsxs)(`button`,{type:`button`,"data-slot":`app-sidebar-action`,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,className:t.cn(`flex min-h-9 items-center gap-2 rounded-lg border border-transparent px-2.5 text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,d({active:e.active,disabled:e.disabled}),r&&`justify-center px-2`),disabled:e.disabled,onClick:()=>{e.disabled||m(e,i)},children:[e.icon?(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,r?null:(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge?(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge}):null]});return r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:a})}):a}function v({account:e,collapsed:r,onAfterSelect:i}){let a=(0,o.jsxs)(`button`,{type:`button`,"data-slot":`app-sidebar-account`,className:t.cn(`flex w-full items-center gap-3 rounded-[min(var(--radius-xl),16px)] border border-transparent text-left transition-[background-color,border-color,color,box-shadow]`,d({}),r?`justify-center px-2 py-2.5`:`px-3 py-2.5`),onClick:()=>{if(e.onSelect?.(),i?.(),e.href){if(e.href.startsWith(`http`)){window.open(e.href,`_blank`,`noopener,noreferrer`);return}window.location.assign(e.href)}},children:[e.avatar?(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-avatar`,className:`inline-flex size-9 shrink-0 items-center justify-center overflow-hidden rounded-full border border-border/65 bg-muted/45 text-sm font-semibold`,children:e.avatar}):null,r?null:(0,o.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-label`,className:`block truncate text-sm font-semibold text-foreground`,children:e.label}),e.description?(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-description`,className:`block truncate text-xs text-muted-foreground`,children:e.description}):null]})]});return r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:a})}):a}function y({className:e,style:r,header:s,footer:u,items:d=[],collapsed:f=!1,width:p=c,collapsedWidth:m=l,collapsedRail:h,railItems:y=[],footerAccount:b,secondaryActions:x=[],footerSecondary:S,tooltipOnCollapsed:C,onItemSelect:w,renderItem:T,renderLink:E,children:D,mobile:O,mobileTitle:k,mobileDescription:A,onRequestClose:j,closeOnSelect:M=!0,...N}){let P=d.filter(e=>!e.hidden),F=y.filter(e=>!e.hidden),I=x.filter(e=>!e.hidden),L=i.useCallback(e=>{w?.(e),O&&M&&j?.()},[M,O,w,j]),R=O&&(k||A||j);return(0,o.jsxs)(`aside`,{"data-slot":`app-sidebar`,"data-collapsed":f||void 0,"data-mobile":O||void 0,className:t.cn(`flex h-full min-h-0 flex-col overflow-hidden`,e),style:{width:f?m:p,minWidth:f?m:p,...r},...N,children:[(s||R)&&(0,o.jsx)(`div`,{"data-slot":`app-sidebar-header`,className:`shrink-0 border-b p-3`,children:(0,o.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,o.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s??null,R?(0,o.jsxs)(`div`,{className:t.cn(s&&`mt-3`),children:[k?(0,o.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:k}):null,A?(0,o.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:A}):null]}):null]}),O&&j?(0,o.jsx)(`button`,{type:`button`,"aria-label":`Close navigation`,"data-slot":`app-sidebar-mobile-close`,className:`inline-flex size-9 shrink-0 items-center justify-center rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] text-[color:var(--aui-page-foreground)] transition hover:bg-[color:var(--aui-control-bg)]`,onClick:j,children:(0,o.jsx)(a.XIcon,{className:`size-4`})}):null]})}),(0,o.jsxs)(`nav`,{"data-slot":`app-sidebar-nav`,className:`min-h-0 flex-1 space-y-1 overflow-y-auto overscroll-contain p-2`,children:[D??P.map(e=>{if(!T)return null;let t=T(e,{collapsed:f});return!f||!C?(0,o.jsx)(i.Fragment,{children:t},e.key):(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:t})},e.key)}),!D&&!T&&(0,o.jsx)(g,{items:P,collapsed:f,depth:0,onItemSelect:L,renderLink:E})]}),(b||S||u||I.length>0||f&&(h||F.length>0))&&(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-footer`,className:`shrink-0 border-t p-3`,children:[f?(0,o.jsxs)(o.Fragment,{children:[F.length>0?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-rail-actions`,className:`grid gap-2`,children:F.map(e=>(0,o.jsx)(_,{item:e,collapsed:!0,onItemSelect:L},e.key))}):null,h?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-rail`,children:h}):null]}):null,!f&&b?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-account-wrap`,className:`mb-3`,children:(0,o.jsx)(v,{account:b,collapsed:!1,onAfterSelect:()=>{O&&M&&j?.()}})}):null,!f&&I.length>0?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-secondary-actions`,className:`mb-3 grid gap-2`,children:I.map(e=>(0,o.jsx)(_,{item:e,collapsed:!1,onItemSelect:L},e.key))}):null,!f&&S?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-footer-secondary`,className:`mb-3`,children:S}):null,f&&b?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-account-wrap`,children:(0,o.jsx)(v,{account:b,collapsed:!0,onAfterSelect:()=>{O&&M&&j?.()}})}):null,!f&&u]})]})}function b({className:e,header:n,footer:d,items:f=[],collapsed:p=!1,width:m=c,collapsedWidth:h=l,mobileWidth:g=u,collapsedRail:_,railItems:v=[],footerAccount:b,secondaryActions:x=[],footerSecondary:S,tooltipOnCollapsed:C=!0,responsive:w=!0,mobileBreakpoint:T=s,mobileOpen:E,defaultMobileOpen:D=!1,onMobileOpenChange:O,mobileTitle:k,mobileDescription:A,mobileToggleLabel:j=`Open navigation`,mobileToggleIcon:M,showMobileToggle:N=!0,closeOnSelect:P=!0,mobileToggleClassName:F,mobilePanelClassName:I,mobileOverlayClassName:L,renderMobileToggle:R,onItemSelect:z,renderItem:B,renderLink:V,children:H,...U}){let W=w?r.useIsMobile(T):!1,[G,K]=i.useState(D),q=E??G,J=i.useCallback(e=>{E??K(e),O?.(e)},[E,O]);i.useEffect(()=>{!W&&q&&J(!1)},[W,q,J]),i.useEffect(()=>{if(!W||!q)return;let e=document.body.style.overflow;document.body.style.overflow=`hidden`;let t=e=>{e.key===`Escape`&&J(!1)};return window.addEventListener(`keydown`,t),()=>{document.body.style.overflow=e,window.removeEventListener(`keydown`,t)}},[W,q,J]);let Y={className:e,header:n,footer:d,items:f,collapsed:p,width:m,collapsedWidth:h,collapsedRail:_,railItems:v,footerAccount:b,secondaryActions:x,footerSecondary:S,tooltipOnCollapsed:C,closeOnSelect:P,onItemSelect:z,renderItem:B,renderLink:V,children:H,...U};if(!w||!W)return(0,o.jsx)(y,{...Y});let X=(0,o.jsxs)(`button`,{type:`button`,"aria-label":q?`Close navigation`:j,"data-slot":`app-sidebar-mobile-trigger`,"data-state":q?`open`:`closed`,className:t.cn(`inline-flex min-h-10 items-center gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] px-3 text-sm font-medium text-[color:var(--aui-page-foreground)] shadow-sm transition hover:bg-[color:var(--aui-page-bg-alt)]`,F),onClick:()=>J(!q),children:[(0,o.jsx)(`span`,{className:`inline-flex size-8 items-center justify-center rounded-lg bg-[color:var(--aui-page-bg-alt)]`,children:M??(0,o.jsx)(a.MenuIcon,{className:`size-4`})}),(0,o.jsx)(`span`,{children:q?`Close navigation`:j})]});return(0,o.jsxs)(o.Fragment,{children:[N?R?R({open:q,setOpen:J}):X:null,(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-mobile-root`,className:`relative z-40`,children:[(0,o.jsx)(`button`,{type:`button`,"aria-label":`Dismiss navigation`,"data-slot":`app-sidebar-mobile-overlay`,"data-state":q?`open`:`closed`,className:t.cn(`fixed inset-0 z-40 bg-black/45 transition-opacity duration-200`,q?`opacity-100`:`pointer-events-none opacity-0`,L),onClick:()=>J(!1)}),(0,o.jsx)(y,{...Y,mobile:!0,collapsed:!1,mobileTitle:k,mobileDescription:A,onRequestClose:()=>J(!1),"data-state":q?`open`:`closed`,role:`dialog`,"aria-modal":`true`,"aria-label":typeof k==`string`?k:`Navigation`,className:t.cn(`fixed inset-y-0 left-0 z-50 max-w-[22rem] border-r border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] shadow-2xl transition-transform duration-200 ease-out`,q?`translate-x-0`:`-translate-x-full`,I,e),style:{width:g,minWidth:g}})]})]})}var x=b;exports.AppSidebar=b,exports.Sidebar=x;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/tooltip/index.cjs"),r=require("../../hooks/use-is-mobile.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("lucide-react"),o=require("react/jsx-runtime");var s=1024,c=`18rem`,l=`4.75rem`,u=`min(88vw, 22rem)`;function d({active:e,disabled:n}){return t.cn(`border-[color:transparent] text-foreground/80 hover:border-[color:var(--aui-divider)] hover:bg-[color:color-mix(in_oklch,var(--card),var(--primary)_4%)] hover:text-foreground focus-visible:border-[color:var(--aui-control-border-strong,var(--border))] focus-visible:bg-[color:color-mix(in_oklch,var(--card),var(--primary)_6%)] focus-visible:text-foreground focus-visible:shadow-[0_0_0_3px_color-mix(in_oklch,var(--primary),transparent_86%)]`,e&&`border-[color:color-mix(in_oklch,var(--primary),transparent_76%)] bg-[color:color-mix(in_oklch,var(--primary),transparent_91%)] text-foreground shadow-[inset_0_1px_0_rgba(255,255,255,0.08)]`,n&&`hover:border-transparent hover:bg-transparent hover:text-foreground/80`)}function f(e){return e.items?.some(e=>!e.hidden)??!1}function p(e){return e.active?!0:e.items?.some(e=>p(e))??!1}function m(e,t){e.onSelect?.(),t?.(e)}function h({item:e,collapsed:r,depth:i,onItemSelect:a,renderLink:s}){let c={"aria-current":e.current??(e.active?`page`:void 0),"aria-disabled":e.disabled||void 0,"data-slot":`app-sidebar-item`,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,"data-depth":String(i),className:t.cn(`flex min-h-9 items-center gap-2 rounded-lg border border-transparent px-2.5 text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,d({active:e.active,disabled:e.disabled}),r&&`justify-center px-2`)},l=(0,o.jsxs)(o.Fragment,{children:[e.icon&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}),!r&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge})]}),u=t=>r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:t})}):t;return e.href?.startsWith(`/`)?u(s?(0,o.jsx)(o.Fragment,{children:s({item:e,href:e.href,...c,onClick:t=>{if(e.disabled){t.preventDefault();return}m(e,a)},children:l})}):(0,o.jsx)(`a`,{href:e.href,...c,onClick:t=>{if(e.disabled){t.preventDefault();return}m(e,a)},children:l})):e.href?u((0,o.jsx)(`button`,{type:`button`,...c,className:t.cn(c.className,`w-full`),onClick:()=>{if(e.disabled)return;let t=e.href;if(t){if(m(e,a),t.startsWith(`http`)){window.open(t,`_blank`,`noopener,noreferrer`);return}window.location.assign(t)}},children:l})):u((0,o.jsx)(`button`,{type:`button`,disabled:e.disabled,...c,onClick:()=>{e.disabled||m(e,a)},children:l}))}function g({items:e,collapsed:r,depth:a,onItemSelect:s,renderLink:c}){return e.map(e=>{if(e.hidden)return null;let l=f(e),u=p(e),m=!r&&a===0&&e.sectionLabel;if(!l)return(0,o.jsxs)(i.Fragment,{children:[m?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-label`,className:`px-2.5 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}):null,(0,o.jsx)(h,{item:e,collapsed:r,depth:a,onItemSelect:s,renderLink:c})]},e.key);let _=e.defaultExpanded??u;return(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-group`,"data-depth":a,children:[m&&(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-label`,className:`px-2.5 pb-1 pt-3 text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground first:pt-0`,children:e.sectionLabel}),(0,o.jsxs)(`details`,{"data-slot":`app-sidebar-group-details`,open:_,className:`group/app-sidebar-details`,children:[(0,o.jsxs)(`summary`,{"data-slot":`app-sidebar-group-trigger`,className:t.cn(`flex min-h-9 list-none items-center gap-2 rounded-lg border border-transparent text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow]`,d({active:u}),r?`justify-center px-2`:`px-2.5`),children:[e.icon?r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon})}):(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,!r&&(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge&&(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge}),!r&&(0,o.jsx)(`span`,{"data-slot":`app-sidebar-group-chevron`,className:`ml-auto text-xs text-muted-foreground transition-transform group-open/app-sidebar-details:rotate-90`,children:`›`})]}),(0,o.jsx)(`div`,{"data-slot":`app-sidebar-group-content`,className:t.cn(`mt-1 space-y-1`,!r&&`pl-3`),children:(0,o.jsx)(g,{items:e.items??[],collapsed:r,depth:a+1,onItemSelect:s,renderLink:c})})]})]},e.key)})}function _({item:e,collapsed:r,onItemSelect:i}){let a=(0,o.jsxs)(`button`,{type:`button`,"data-slot":`app-sidebar-action`,"data-active":e.active||void 0,"data-disabled":e.disabled||void 0,className:t.cn(`flex min-h-9 items-center gap-2 rounded-lg border border-transparent px-2.5 text-sm font-medium outline-none transition-[background-color,border-color,color,box-shadow] data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50`,d({active:e.active,disabled:e.disabled}),r&&`justify-center px-2`),disabled:e.disabled,onClick:()=>{e.disabled||m(e,i)},children:[e.icon?(0,o.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,r?null:(0,o.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.label}),!r&&e.badge?(0,o.jsx)(`span`,{className:`shrink-0`,children:e.badge}):null]});return r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:a})}):a}function v({account:e,collapsed:r,onAfterSelect:i}){let a=(0,o.jsxs)(`button`,{type:`button`,"data-slot":`app-sidebar-account`,className:t.cn(`flex w-full items-center gap-3 rounded-[min(var(--radius-xl),16px)] border border-transparent text-left transition-[background-color,border-color,color,box-shadow]`,d({}),r?`justify-center px-2 py-2.5`:`px-3 py-2.5`),onClick:()=>{if(e.onSelect?.(),i?.(),e.href){if(e.href.startsWith(`http`)){window.open(e.href,`_blank`,`noopener,noreferrer`);return}window.location.assign(e.href)}},children:[e.avatar?(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-avatar`,className:`inline-flex size-9 shrink-0 items-center justify-center overflow-hidden rounded-full border border-border/65 bg-muted/45 text-sm font-semibold`,children:e.avatar}):null,r?null:(0,o.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-label`,className:`block truncate text-sm font-semibold text-foreground`,children:e.label}),e.description?(0,o.jsx)(`span`,{"data-slot":`app-sidebar-account-description`,className:`block truncate text-xs text-muted-foreground`,children:e.description}):null]})]});return r?(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:a})}):a}function y({className:e,style:r,header:s,footer:u,items:d=[],collapsed:f=!1,width:p=c,collapsedWidth:m=l,collapsedRail:h,railItems:y=[],footerAccount:b,secondaryActions:x=[],footerSecondary:S,footerClassName:C,tooltipOnCollapsed:w,onItemSelect:T,renderItem:E,renderLink:D,children:O,mobile:k,mobileTitle:A,mobileDescription:j,onRequestClose:M,closeOnSelect:N=!0,...P}){let F=d.filter(e=>!e.hidden),I=y.filter(e=>!e.hidden),L=x.filter(e=>!e.hidden),R=i.useCallback(e=>{T?.(e),k&&N&&M?.()},[N,k,T,M]),z=k&&(A||j||M);return(0,o.jsxs)(`aside`,{"data-slot":`app-sidebar`,"data-collapsed":f||void 0,"data-mobile":k||void 0,className:t.cn(`flex h-full min-h-0 flex-col overflow-hidden`,e),style:{width:f?m:p,minWidth:f?m:p,...r},...P,children:[(s||z)&&(0,o.jsx)(`div`,{"data-slot":`app-sidebar-header`,className:`shrink-0 border-b p-3`,children:(0,o.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,o.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[s??null,z?(0,o.jsxs)(`div`,{className:t.cn(s&&`mt-3`),children:[A?(0,o.jsx)(`p`,{className:`text-sm font-semibold text-foreground`,children:A}):null,j?(0,o.jsx)(`p`,{className:`mt-1 text-xs leading-5 text-muted-foreground`,children:j}):null]}):null]}),k&&M?(0,o.jsx)(`button`,{type:`button`,"aria-label":`Close navigation`,"data-slot":`app-sidebar-mobile-close`,className:`inline-flex size-9 shrink-0 items-center justify-center rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] text-[color:var(--aui-page-foreground)] transition hover:bg-[color:var(--aui-control-bg)]`,onClick:M,children:(0,o.jsx)(a.XIcon,{className:`size-4`})}):null]})}),(0,o.jsxs)(`nav`,{"data-slot":`app-sidebar-nav`,className:`min-h-0 flex-1 space-y-1 overflow-y-auto overscroll-contain p-2`,children:[O??F.map(e=>{if(!E)return null;let t=E(e,{collapsed:f});return!f||!w?(0,o.jsx)(i.Fragment,{children:t},e.key):(0,o.jsx)(n.Tooltip,{content:e.tooltip??e.label,side:`right`,children:(0,o.jsx)(`span`,{className:`block`,children:t})},e.key)}),!O&&!E&&(0,o.jsx)(g,{items:F,collapsed:f,depth:0,onItemSelect:R,renderLink:D})]}),(b||S||u||L.length>0||f&&(h||I.length>0))&&(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-footer`,className:t.cn(`shrink-0 border-t p-3`,C),children:[f?(0,o.jsxs)(o.Fragment,{children:[I.length>0?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-rail-actions`,className:`grid gap-2`,children:I.map(e=>(0,o.jsx)(_,{item:e,collapsed:!0,onItemSelect:R},e.key))}):null,h?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-rail`,children:h}):null]}):null,!f&&b?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-account-wrap`,className:`mb-3`,children:(0,o.jsx)(v,{account:b,collapsed:!1,onAfterSelect:()=>{k&&N&&M?.()}})}):null,!f&&L.length>0?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-secondary-actions`,className:`mb-3 grid gap-2`,children:L.map(e=>(0,o.jsx)(_,{item:e,collapsed:!1,onItemSelect:R},e.key))}):null,!f&&S?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-footer-secondary`,className:`mb-3`,children:S}):null,f&&b?(0,o.jsx)(`div`,{"data-slot":`app-sidebar-account-wrap`,children:(0,o.jsx)(v,{account:b,collapsed:!0,onAfterSelect:()=>{k&&N&&M?.()}})}):null,!f&&u]})]})}function b({className:e,header:n,footer:d,items:f=[],collapsed:p=!1,width:m=c,collapsedWidth:h=l,mobileWidth:g=u,collapsedRail:_,railItems:v=[],footerAccount:b,secondaryActions:x=[],footerSecondary:S,tooltipOnCollapsed:C=!0,responsive:w=!0,mobileBreakpoint:T=s,mobileOpen:E,defaultMobileOpen:D=!1,onMobileOpenChange:O,mobileTitle:k,mobileDescription:A,mobileToggleLabel:j=`Open navigation`,mobileToggleIcon:M,showMobileToggle:N=!0,closeOnSelect:P=!0,mobileToggleClassName:F,mobilePanelClassName:I,mobileOverlayClassName:L,renderMobileToggle:R,onItemSelect:z,renderItem:B,renderLink:V,children:H,...U}){let W=w?r.useIsMobile(T):!1,[G,K]=i.useState(D),q=E??G,J=i.useCallback(e=>{E??K(e),O?.(e)},[E,O]);i.useEffect(()=>{!W&&q&&J(!1)},[W,q,J]),i.useEffect(()=>{if(!W||!q)return;let e=document.body.style.overflow;document.body.style.overflow=`hidden`;let t=e=>{e.key===`Escape`&&J(!1)};return window.addEventListener(`keydown`,t),()=>{document.body.style.overflow=e,window.removeEventListener(`keydown`,t)}},[W,q,J]);let Y={className:e,header:n,footer:d,items:f,collapsed:p,width:m,collapsedWidth:h,collapsedRail:_,railItems:v,footerAccount:b,secondaryActions:x,footerSecondary:S,tooltipOnCollapsed:C,closeOnSelect:P,onItemSelect:z,renderItem:B,renderLink:V,children:H,...U};if(!w||!W)return(0,o.jsx)(y,{...Y});let X=(0,o.jsxs)(`button`,{type:`button`,"aria-label":q?`Close navigation`:j,"data-slot":`app-sidebar-mobile-trigger`,"data-state":q?`open`:`closed`,className:t.cn(`inline-flex min-h-10 items-center gap-2 rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] px-3 text-sm font-medium text-[color:var(--aui-page-foreground)] shadow-sm transition hover:bg-[color:var(--aui-page-bg-alt)]`,F),onClick:()=>J(!q),children:[(0,o.jsx)(`span`,{className:`inline-flex size-8 items-center justify-center rounded-lg bg-[color:var(--aui-page-bg-alt)]`,children:M??(0,o.jsx)(a.MenuIcon,{className:`size-4`})}),(0,o.jsx)(`span`,{children:q?`Close navigation`:j})]});return(0,o.jsxs)(o.Fragment,{children:[N?R?R({open:q,setOpen:J}):X:null,(0,o.jsxs)(`div`,{"data-slot":`app-sidebar-mobile-root`,className:`relative z-40`,children:[(0,o.jsx)(`button`,{type:`button`,"aria-label":`Dismiss navigation`,"data-slot":`app-sidebar-mobile-overlay`,"data-state":q?`open`:`closed`,className:t.cn(`fixed inset-0 z-40 bg-black/45 transition-opacity duration-200`,q?`opacity-100`:`pointer-events-none opacity-0`,L),onClick:()=>J(!1)}),(0,o.jsx)(y,{...Y,mobile:!0,collapsed:!1,mobileTitle:k,mobileDescription:A,onRequestClose:()=>J(!1),"data-state":q?`open`:`closed`,role:`dialog`,"aria-modal":`true`,"aria-label":typeof k==`string`?k:`Navigation`,className:t.cn(`fixed inset-y-0 left-0 z-50 max-w-[22rem] border-r border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg)] shadow-2xl transition-transform duration-200 ease-out`,q?`translate-x-0`:`-translate-x-full`,I,e),style:{width:g,minWidth:g}})]})]})}var x=b;exports.AppSidebar=b,exports.Sidebar=x;
@@ -51,6 +51,7 @@ export type AppSidebarProps = React.ComponentProps<"aside"> & {
51
51
  mobileToggleClassName?: string;
52
52
  mobilePanelClassName?: string;
53
53
  mobileOverlayClassName?: string;
54
+ footerClassName?: string;
54
55
  renderMobileToggle?: (state: {
55
56
  open: boolean;
56
57
  setOpen: (open: boolean) => void;
@@ -249,50 +249,50 @@ function b({ account: n, collapsed: r, onAfterSelect: i }) {
249
249
  })
250
250
  }) : a;
251
251
  }
252
- function x({ className: n, style: i, header: l, footer: f, items: p = [], collapsed: m = !1, width: h = u, collapsedWidth: g = d, collapsedRail: _, railItems: x = [], footerAccount: S, secondaryActions: C = [], footerSecondary: w, tooltipOnCollapsed: T, onItemSelect: E, renderItem: D, renderLink: O, children: k, mobile: A, mobileTitle: j, mobileDescription: M, onRequestClose: N, closeOnSelect: P = !0, ...F }) {
253
- let I = p.filter((e) => !e.hidden), L = x.filter((e) => !e.hidden), R = C.filter((e) => !e.hidden), z = r.useCallback((e) => {
254
- E?.(e), A && P && N?.();
252
+ function x({ className: n, style: i, header: l, footer: f, items: p = [], collapsed: m = !1, width: h = u, collapsedWidth: g = d, collapsedRail: _, railItems: x = [], footerAccount: S, secondaryActions: C = [], footerSecondary: w, footerClassName: T, tooltipOnCollapsed: E, onItemSelect: D, renderItem: O, renderLink: k, children: A, mobile: j, mobileTitle: M, mobileDescription: N, onRequestClose: P, closeOnSelect: F = !0, ...I }) {
253
+ let L = p.filter((e) => !e.hidden), R = x.filter((e) => !e.hidden), z = C.filter((e) => !e.hidden), B = r.useCallback((e) => {
254
+ D?.(e), j && F && P?.();
255
255
  }, [
256
- P,
257
- A,
258
- E,
259
- N
260
- ]), B = A && (j || M || N);
256
+ F,
257
+ j,
258
+ D,
259
+ P
260
+ ]), V = j && (M || N || P);
261
261
  return /* @__PURE__ */ c("aside", {
262
262
  "data-slot": "app-sidebar",
263
263
  "data-collapsed": m || void 0,
264
- "data-mobile": A || void 0,
264
+ "data-mobile": j || void 0,
265
265
  className: e("flex h-full min-h-0 flex-col overflow-hidden", n),
266
266
  style: {
267
267
  width: m ? g : h,
268
268
  minWidth: m ? g : h,
269
269
  ...i
270
270
  },
271
- ...F,
271
+ ...I,
272
272
  children: [
273
- (l || B) && /* @__PURE__ */ s("div", {
273
+ (l || V) && /* @__PURE__ */ s("div", {
274
274
  "data-slot": "app-sidebar-header",
275
275
  className: "shrink-0 border-b p-3",
276
276
  children: /* @__PURE__ */ c("div", {
277
277
  className: "flex items-start gap-3",
278
278
  children: [/* @__PURE__ */ c("div", {
279
279
  className: "min-w-0 flex-1",
280
- children: [l ?? null, B ? /* @__PURE__ */ c("div", {
280
+ children: [l ?? null, V ? /* @__PURE__ */ c("div", {
281
281
  className: e(l && "mt-3"),
282
- children: [j ? /* @__PURE__ */ s("p", {
282
+ children: [M ? /* @__PURE__ */ s("p", {
283
283
  className: "text-sm font-semibold text-foreground",
284
- children: j
285
- }) : null, M ? /* @__PURE__ */ s("p", {
286
- className: "mt-1 text-xs leading-5 text-muted-foreground",
287
284
  children: M
285
+ }) : null, N ? /* @__PURE__ */ s("p", {
286
+ className: "mt-1 text-xs leading-5 text-muted-foreground",
287
+ children: N
288
288
  }) : null]
289
289
  }) : null]
290
- }), A && N ? /* @__PURE__ */ s("button", {
290
+ }), j && P ? /* @__PURE__ */ s("button", {
291
291
  type: "button",
292
292
  "aria-label": "Close navigation",
293
293
  "data-slot": "app-sidebar-mobile-close",
294
294
  className: "inline-flex size-9 shrink-0 items-center justify-center rounded-xl border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] text-[color:var(--aui-page-foreground)] transition hover:bg-[color:var(--aui-control-bg)]",
295
- onClick: N,
295
+ onClick: P,
296
296
  children: /* @__PURE__ */ s(a, { className: "size-4" })
297
297
  }) : null]
298
298
  })
@@ -300,10 +300,10 @@ function x({ className: n, style: i, header: l, footer: f, items: p = [], collap
300
300
  /* @__PURE__ */ c("nav", {
301
301
  "data-slot": "app-sidebar-nav",
302
302
  className: "min-h-0 flex-1 space-y-1 overflow-y-auto overscroll-contain p-2",
303
- children: [k ?? I.map((e) => {
304
- if (!D) return null;
305
- let n = D(e, { collapsed: m });
306
- return !m || !T ? /* @__PURE__ */ s(r.Fragment, { children: n }, e.key) : /* @__PURE__ */ s(t, {
303
+ children: [A ?? L.map((e) => {
304
+ if (!O) return null;
305
+ let n = O(e, { collapsed: m });
306
+ return !m || !E ? /* @__PURE__ */ s(r.Fragment, { children: n }, e.key) : /* @__PURE__ */ s(t, {
307
307
  content: e.tooltip ?? e.label,
308
308
  side: "right",
309
309
  children: /* @__PURE__ */ s("span", {
@@ -311,25 +311,25 @@ function x({ className: n, style: i, header: l, footer: f, items: p = [], collap
311
311
  children: n
312
312
  })
313
313
  }, e.key);
314
- }), !k && !D && /* @__PURE__ */ s(v, {
315
- items: I,
314
+ }), !A && !O && /* @__PURE__ */ s(v, {
315
+ items: L,
316
316
  collapsed: m,
317
317
  depth: 0,
318
- onItemSelect: z,
319
- renderLink: O
318
+ onItemSelect: B,
319
+ renderLink: k
320
320
  })]
321
321
  }),
322
- (S || w || f || R.length > 0 || m && (_ || L.length > 0)) && /* @__PURE__ */ c("div", {
322
+ (S || w || f || z.length > 0 || m && (_ || R.length > 0)) && /* @__PURE__ */ c("div", {
323
323
  "data-slot": "app-sidebar-footer",
324
- className: "shrink-0 border-t p-3",
324
+ className: e("shrink-0 border-t p-3", T),
325
325
  children: [
326
- m ? /* @__PURE__ */ c(o, { children: [L.length > 0 ? /* @__PURE__ */ s("div", {
326
+ m ? /* @__PURE__ */ c(o, { children: [R.length > 0 ? /* @__PURE__ */ s("div", {
327
327
  "data-slot": "app-sidebar-rail-actions",
328
328
  className: "grid gap-2",
329
- children: L.map((e) => /* @__PURE__ */ s(y, {
329
+ children: R.map((e) => /* @__PURE__ */ s(y, {
330
330
  item: e,
331
331
  collapsed: !0,
332
- onItemSelect: z
332
+ onItemSelect: B
333
333
  }, e.key))
334
334
  }) : null, _ ? /* @__PURE__ */ s("div", {
335
335
  "data-slot": "app-sidebar-rail",
@@ -342,17 +342,17 @@ function x({ className: n, style: i, header: l, footer: f, items: p = [], collap
342
342
  account: S,
343
343
  collapsed: !1,
344
344
  onAfterSelect: () => {
345
- A && P && N?.();
345
+ j && F && P?.();
346
346
  }
347
347
  })
348
348
  }) : null,
349
- !m && R.length > 0 ? /* @__PURE__ */ s("div", {
349
+ !m && z.length > 0 ? /* @__PURE__ */ s("div", {
350
350
  "data-slot": "app-sidebar-secondary-actions",
351
351
  className: "mb-3 grid gap-2",
352
- children: R.map((e) => /* @__PURE__ */ s(y, {
352
+ children: z.map((e) => /* @__PURE__ */ s(y, {
353
353
  item: e,
354
354
  collapsed: !1,
355
- onItemSelect: z
355
+ onItemSelect: B
356
356
  }, e.key))
357
357
  }) : null,
358
358
  !m && w ? /* @__PURE__ */ s("div", {
@@ -366,7 +366,7 @@ function x({ className: n, style: i, header: l, footer: f, items: p = [], collap
366
366
  account: S,
367
367
  collapsed: !0,
368
368
  onAfterSelect: () => {
369
- A && P && N?.();
369
+ j && F && P?.();
370
370
  }
371
371
  })
372
372
  }) : null,
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e,t,n){if(e.length<=t||t<3)return e;let r=e[0],i=Math.max(t-2,1),a=e.slice(-i);return[r,{key:`__collapsed__`,label:n},...a]}function o({className:e,items:o,maxItems:s,collapseLabel:c=`…`,separator:l=(0,i.jsx)(r.ChevronRightIcon,{className:`size-3.5`}),wrap:u=!1,renderLink:d,...f}){let p=n.useMemo(()=>typeof s==`number`?a(o,s,c):o,[c,o,s]);return(0,i.jsx)(`nav`,{"data-slot":`breadcrumbs`,"aria-label":`Breadcrumb`,className:t.cn(`flex min-w-0 items-center gap-1 overflow-x-auto text-sm text-muted-foreground`,u?`flex-wrap`:`whitespace-nowrap`,e),...f,children:p.map((e,r)=>{let a=e.key===`__collapsed__`,o=r===p.length-1,s=e.current||o;return(0,i.jsxs)(n.Fragment,{children:[r>0&&(0,i.jsx)(`span`,{className:`shrink-0 opacity-60`,children:l}),a?(0,i.jsx)(`span`,{"data-slot":`breadcrumbs-collapsed`,className:`shrink-0 rounded-full border border-border/65 px-2 py-0.5 text-xs text-muted-foreground`,children:e.label}):e.href&&!s?d?d({item:e,href:e.href,"data-slot":`breadcrumbs-link`,className:`truncate rounded-[var(--radius-sm)] px-1 py-0.5 transition-colors hover:bg-accent/55 hover:text-foreground`,onClick:()=>e.onSelect?.(),children:(0,i.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})}):(0,i.jsx)(`a`,{href:e.href,"data-slot":`breadcrumbs-link`,className:`truncate rounded-[var(--radius-sm)] px-1 py-0.5 transition-colors hover:bg-accent/55 hover:text-foreground`,onClick:()=>e.onSelect?.(),children:(0,i.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})}):(0,i.jsxs)(`span`,{"data-slot":`breadcrumbs-current`,"aria-current":s?e.currentLabel??`page`:void 0,className:t.cn(`inline-flex min-w-0 items-center gap-1.5 truncate rounded-[var(--radius-sm)] px-1 py-0.5`,s&&`bg-accent/45 font-medium text-foreground`),children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})]},e.key)})})}exports.Breadcrumbs=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("lucide-react"),i=require("react/jsx-runtime");function a(e,t,n){if(e.length<=t||t<3)return e;let r=e[0],i=Math.max(t-2,1),a=e.slice(-i);return[r,{key:`__collapsed__`,label:n},...a]}function o({className:e,items:o,maxItems:s,collapseLabel:c=`…`,separator:l=(0,i.jsx)(r.ChevronRightIcon,{className:`size-3.5`}),wrap:u=!1,currentItemLabel:d,renderLink:f,...p}){let m=n.useMemo(()=>typeof s==`number`?a(o,s,c):o,[c,o,s]);return(0,i.jsx)(`nav`,{"data-slot":`breadcrumbs`,"aria-label":`Breadcrumb`,className:t.cn(`flex min-w-0 items-center gap-1 overflow-x-auto text-sm text-muted-foreground`,u?`flex-wrap`:`whitespace-nowrap`,e),...p,children:m.map((e,r)=>{let a=e.key===`__collapsed__`,o=r===m.length-1,s=e.current||o;return(0,i.jsxs)(n.Fragment,{children:[r>0&&(0,i.jsx)(`span`,{className:`shrink-0 opacity-60`,children:l}),a?(0,i.jsx)(`span`,{"data-slot":`breadcrumbs-collapsed`,className:`shrink-0 rounded-full border border-border/65 px-2 py-0.5 text-xs text-muted-foreground`,children:e.label}):e.href&&!s?f?f({item:e,href:e.href,"data-slot":`breadcrumbs-link`,className:`truncate rounded-[var(--radius-sm)] px-1 py-0.5 transition-colors hover:bg-accent/55 hover:text-foreground`,onClick:()=>e.onSelect?.(),children:(0,i.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})}):(0,i.jsx)(`a`,{href:e.href,"data-slot":`breadcrumbs-link`,className:`truncate rounded-[var(--radius-sm)] px-1 py-0.5 transition-colors hover:bg-accent/55 hover:text-foreground`,onClick:()=>e.onSelect?.(),children:(0,i.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5`,children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})}):(0,i.jsxs)(`span`,{"data-slot":`breadcrumbs-current`,"aria-current":s?e.currentLabel??d??`page`:void 0,className:t.cn(`inline-flex min-w-0 items-center gap-1.5 truncate rounded-[var(--radius-sm)] px-1 py-0.5`,s&&`bg-accent/45 font-medium text-foreground`),children:[e.icon?(0,i.jsx)(`span`,{className:`shrink-0`,children:e.icon}):null,(0,i.jsx)(`span`,{className:`truncate`,children:e.label})]})]},e.key)})})}exports.Breadcrumbs=o;
@@ -14,10 +14,11 @@ export type BreadcrumbsProps = React.ComponentProps<"nav"> & {
14
14
  collapseLabel?: React.ReactNode;
15
15
  separator?: React.ReactNode;
16
16
  wrap?: boolean;
17
+ currentItemLabel?: React.AriaAttributes["aria-current"];
17
18
  renderLink?: (props: React.ComponentProps<"a"> & {
18
19
  item: BreadcrumbItem;
19
20
  [key: `data-${string}`]: string | boolean | undefined;
20
21
  }) => React.ReactNode;
21
22
  };
22
- declare function Breadcrumbs({ className, items, maxItems, collapseLabel, separator, wrap, renderLink, ...props }: BreadcrumbsProps): React.JSX.Element;
23
+ declare function Breadcrumbs({ className, items, maxItems, collapseLabel, separator, wrap, currentItemLabel, renderLink, ...props }: BreadcrumbsProps): React.JSX.Element;
23
24
  export { Breadcrumbs };
@@ -15,8 +15,8 @@ function a(e, t, n) {
15
15
  ...a
16
16
  ];
17
17
  }
18
- function o({ className: o, items: s, maxItems: c, collapseLabel: l = "…", separator: u = /* @__PURE__ */ r(n, { className: "size-3.5" }), wrap: d = !1, renderLink: f, ...p }) {
19
- let m = t.useMemo(() => typeof c == "number" ? a(s, c, l) : s, [
18
+ function o({ className: o, items: s, maxItems: c, collapseLabel: l = "…", separator: u = /* @__PURE__ */ r(n, { className: "size-3.5" }), wrap: d = !1, currentItemLabel: f, renderLink: p, ...m }) {
19
+ let h = t.useMemo(() => typeof c == "number" ? a(s, c, l) : s, [
20
20
  l,
21
21
  s,
22
22
  c
@@ -25,9 +25,9 @@ function o({ className: o, items: s, maxItems: c, collapseLabel: l = "…", sepa
25
25
  "data-slot": "breadcrumbs",
26
26
  "aria-label": "Breadcrumb",
27
27
  className: e("flex min-w-0 items-center gap-1 overflow-x-auto text-sm text-muted-foreground", d ? "flex-wrap" : "whitespace-nowrap", o),
28
- ...p,
29
- children: m.map((n, a) => {
30
- let o = n.key === "__collapsed__", s = a === m.length - 1, c = n.current || s;
28
+ ...m,
29
+ children: h.map((n, a) => {
30
+ let o = n.key === "__collapsed__", s = a === h.length - 1, c = n.current || s;
31
31
  return /* @__PURE__ */ i(t.Fragment, { children: [a > 0 && /* @__PURE__ */ r("span", {
32
32
  className: "shrink-0 opacity-60",
33
33
  children: u
@@ -35,7 +35,7 @@ function o({ className: o, items: s, maxItems: c, collapseLabel: l = "…", sepa
35
35
  "data-slot": "breadcrumbs-collapsed",
36
36
  className: "shrink-0 rounded-full border border-border/65 px-2 py-0.5 text-xs text-muted-foreground",
37
37
  children: n.label
38
- }) : n.href && !c ? f ? f({
38
+ }) : n.href && !c ? p ? p({
39
39
  item: n,
40
40
  href: n.href,
41
41
  "data-slot": "breadcrumbs-link",
@@ -68,7 +68,7 @@ function o({ className: o, items: s, maxItems: c, collapseLabel: l = "…", sepa
68
68
  })
69
69
  }) : /* @__PURE__ */ i("span", {
70
70
  "data-slot": "breadcrumbs-current",
71
- "aria-current": c ? n.currentLabel ?? "page" : void 0,
71
+ "aria-current": c ? n.currentLabel ?? f ?? "page" : void 0,
72
72
  className: e("inline-flex min-w-0 items-center gap-1.5 truncate rounded-[var(--radius-sm)] px-1 py-0.5", c && "bg-accent/45 font-medium text-foreground"),
73
73
  children: [n.icon ? /* @__PURE__ */ r("span", {
74
74
  className: "shrink-0",
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={default:`border-border bg-muted`,success:`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-300`,warning:`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-300`,danger:`border-red-200 bg-red-50 text-red-700 dark:border-red-900 dark:bg-red-950 dark:text-red-300`};function a({events:e,days:n,empty:a=`No events scheduled.`,className:o,...s}){let c=n??Array.from(new Set(e.map(e=>e.date)));return(0,r.jsx)(`div`,{"data-slot":`calendar-scheduler`,className:t.cn(`grid gap-3`,o),...s,children:c.map(n=>(0,r.jsxs)(`section`,{className:`rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-card p-4 shadow-[var(--aui-card-shadow,var(--aui-control-shadow,none))]`,children:[(0,r.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,r.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:n}),(0,r.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[e.filter(e=>e.date===n).length,` items`]})]}),(0,r.jsx)(`div`,{className:`grid gap-2`,children:e.filter(e=>e.date===n).length===0?(0,r.jsx)(`div`,{className:`rounded-[var(--radius-md)] border border-dashed border-[color:var(--aui-card-border,var(--border))] px-3 py-4 text-sm text-muted-foreground`,children:a}):e.filter(e=>e.date===n).map(e=>(0,r.jsxs)(`div`,{className:t.cn(`rounded-[var(--radius-md)] border px-3 py-2.5 text-sm shadow-sm`,i[e.tone??`default`]),children:[(0,r.jsx)(`div`,{className:`font-medium`,children:e.title}),e.time&&(0,r.jsx)(`div`,{className:`mt-1 text-xs opacity-70`,children:e.time})]},e.id))})]},n))})}exports.CalendarScheduler=a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("react/jsx-runtime");var i={default:`border-border bg-muted`,success:`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-900 dark:bg-emerald-950 dark:text-emerald-300`,warning:`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-900 dark:bg-amber-950 dark:text-amber-300`,danger:`border-red-200 bg-red-50 text-red-700 dark:border-red-900 dark:bg-red-950 dark:text-red-300`};function a({events:e,days:n,view:a=`week`,empty:o=`No events scheduled.`,onCreateEvent:s,onEventClick:c,className:l,...u}){let d=n??Array.from(new Set(e.map(e=>e.date)));return(0,r.jsx)(`div`,{"data-slot":`calendar-scheduler`,"data-view":a,className:t.cn(`grid gap-3`,a===`month`&&`md:grid-cols-2 xl:grid-cols-3`,l),...u,children:d.map(n=>(0,r.jsxs)(`section`,{className:`rounded-[var(--aui-card-radius,var(--radius-xl))] border border-[color:var(--aui-card-border,var(--border))] bg-card p-4 shadow-[var(--aui-card-shadow,var(--aui-control-shadow,none))]`,children:[(0,r.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,r.jsx)(`div`,{className:`text-sm font-semibold text-foreground`,children:n}),(0,r.jsxs)(`div`,{className:`text-xs text-muted-foreground`,children:[e.filter(e=>e.date===n).length,` items`]})]}),(0,r.jsx)(`div`,{className:`grid gap-2`,children:e.filter(e=>e.date===n).length===0?(0,r.jsx)(`div`,{className:`rounded-[var(--radius-md)] border border-dashed border-[color:var(--aui-card-border,var(--border))] px-3 py-4 text-sm text-muted-foreground`,children:o}):e.filter(e=>e.date===n).map(e=>(0,r.jsxs)(`button`,{type:`button`,className:t.cn(`rounded-[var(--radius-md)] border px-3 py-2.5 text-left text-sm shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40`,i[e.tone??`default`]),onClick:()=>c?.(e),children:[(0,r.jsx)(`div`,{className:`font-medium`,children:e.title}),e.time&&(0,r.jsx)(`div`,{className:`mt-1 text-xs opacity-70`,children:e.time}),e.durationMinutes&&(0,r.jsxs)(`div`,{className:`mt-1 text-xs opacity-70`,children:[e.durationMinutes,` min`]})]},e.id))}),s&&(0,r.jsx)(`button`,{type:`button`,className:`mt-3 w-full rounded-md border border-dashed px-3 py-2 text-sm text-muted-foreground hover:bg-muted/50`,onClick:()=>s(n),children:`Create event`})]},n))})}exports.CalendarScheduler=a;
@@ -5,11 +5,15 @@ export type CalendarSchedulerEvent = {
5
5
  date: string;
6
6
  time?: string;
7
7
  tone?: "default" | "success" | "warning" | "danger";
8
+ durationMinutes?: number;
8
9
  };
9
10
  export type CalendarSchedulerProps = React.ComponentProps<"div"> & {
10
11
  events: CalendarSchedulerEvent[];
11
12
  days?: string[];
13
+ view?: "day" | "week" | "month";
12
14
  empty?: React.ReactNode;
15
+ onCreateEvent?: (date: string) => void;
16
+ onEventClick?: (event: CalendarSchedulerEvent) => void;
13
17
  };
14
- declare function CalendarScheduler({ events, days, empty, className, ...props }: CalendarSchedulerProps): React.JSX.Element;
18
+ declare function CalendarScheduler({ events, days, view, empty, onCreateEvent, onEventClick, className, ...props }: CalendarSchedulerProps): React.JSX.Element;
15
19
  export { CalendarScheduler };