tembro 2.0.5 → 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 (381) 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-pagination.cjs +1 -1
  17. package/dist/components/data-table/data-table-pagination.js +4 -4
  18. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  19. package/dist/components/data-table/data-table-toolbar.js +12 -13
  20. package/dist/components/data-table/data-table.cjs +1 -1
  21. package/dist/components/data-table/data-table.d.ts +2 -2
  22. package/dist/components/data-table/data-table.js +2 -1
  23. package/dist/components/display/carousel.cjs +1 -1
  24. package/dist/components/display/carousel.d.ts +15 -1
  25. package/dist/components/display/carousel.js +128 -86
  26. package/dist/components/display/code-block.cjs +2 -2
  27. package/dist/components/display/code-block.d.ts +2 -1
  28. package/dist/components/display/code-block.js +17 -12
  29. package/dist/components/display/delta-badge.cjs +1 -1
  30. package/dist/components/display/delta-badge.d.ts +2 -1
  31. package/dist/components/display/delta-badge.js +11 -7
  32. package/dist/components/display/kanban.cjs +1 -1
  33. package/dist/components/display/kanban.d.ts +4 -1
  34. package/dist/components/display/kanban.js +60 -33
  35. package/dist/components/display/metric-grid.cjs +1 -1
  36. package/dist/components/display/metric-grid.d.ts +1 -0
  37. package/dist/components/display/metric-grid.js +1 -1
  38. package/dist/components/display/qr-code.cjs +1 -1
  39. package/dist/components/display/qr-code.d.ts +2 -1
  40. package/dist/components/display/qr-code.js +19 -16
  41. package/dist/components/display/smart-card.d.ts +1 -1
  42. package/dist/components/display/status-legend.d.ts +1 -1
  43. package/dist/components/display/tag.cjs +1 -1
  44. package/dist/components/display/tag.d.ts +2 -1
  45. package/dist/components/display/tag.js +28 -22
  46. package/dist/components/display/tree-view.cjs +1 -1
  47. package/dist/components/display/tree-view.d.ts +9 -1
  48. package/dist/components/display/tree-view.js +104 -40
  49. package/dist/components/display/trend-card.cjs +1 -1
  50. package/dist/components/display/trend-card.js +27 -41
  51. package/dist/components/feedback/alert.cjs +1 -1
  52. package/dist/components/feedback/alert.d.ts +2 -1
  53. package/dist/components/feedback/alert.js +6 -6
  54. package/dist/components/feedback/loading-state.cjs +1 -1
  55. package/dist/components/feedback/loading-state.d.ts +3 -1
  56. package/dist/components/feedback/loading-state.js +23 -10
  57. package/dist/components/feedback/page-state.cjs +1 -1
  58. package/dist/components/feedback/page-state.d.ts +2 -1
  59. package/dist/components/feedback/page-state.js +7 -4
  60. package/dist/components/form/form-field-shell.cjs +1 -1
  61. package/dist/components/form/form-field-shell.d.ts +4 -2
  62. package/dist/components/form/form-field-shell.js +57 -41
  63. package/dist/components/form/form-input.cjs +1 -1
  64. package/dist/components/form/form-input.d.ts +3 -4
  65. package/dist/components/form/form-input.js +259 -257
  66. package/dist/components/form/form-select.cjs +1 -1
  67. package/dist/components/form/form-select.d.ts +2 -2
  68. package/dist/components/form/form-select.js +8 -6
  69. package/dist/components/form/form-switch.cjs +1 -1
  70. package/dist/components/form/form-switch.d.ts +1 -1
  71. package/dist/components/form/form-switch.js +58 -54
  72. package/dist/components/form/form-textarea.cjs +1 -1
  73. package/dist/components/form/form-textarea.d.ts +1 -1
  74. package/dist/components/form/form-textarea.js +29 -27
  75. package/dist/components/inputs/async-select.d.ts +3 -0
  76. package/dist/components/inputs/search-input.d.ts +3 -0
  77. package/dist/components/inputs/simple-select.cjs +1 -1
  78. package/dist/components/inputs/simple-select.d.ts +10 -32
  79. package/dist/components/inputs/simple-select.js +5 -101
  80. package/dist/components/layout/app-sidebar.cjs +1 -1
  81. package/dist/components/layout/app-sidebar.d.ts +1 -0
  82. package/dist/components/layout/app-sidebar.js +36 -36
  83. package/dist/components/layout/breadcrumbs.cjs +1 -1
  84. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  85. package/dist/components/layout/breadcrumbs.js +7 -7
  86. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  87. package/dist/components/modern/calendar-scheduler.d.ts +5 -1
  88. package/dist/components/modern/calendar-scheduler.js +47 -28
  89. package/dist/components/modern/dual-list-picker.cjs +1 -1
  90. package/dist/components/modern/dual-list-picker.d.ts +5 -1
  91. package/dist/components/modern/dual-list-picker.js +81 -23
  92. package/dist/components/modern/rich-text-editor.cjs +1 -1
  93. package/dist/components/modern/rich-text-editor.d.ts +3 -1
  94. package/dist/components/modern/rich-text-editor.js +12 -9
  95. package/dist/components/modern/tour.cjs +1 -1
  96. package/dist/components/modern/tour.d.ts +5 -1
  97. package/dist/components/modern/tour.js +57 -35
  98. package/dist/components/navigation/command-bar.cjs +1 -1
  99. package/dist/components/navigation/command-bar.d.ts +3 -1
  100. package/dist/components/navigation/command-bar.js +10 -7
  101. package/dist/components/navigation/demo.cjs +1 -1
  102. package/dist/components/navigation/demo.js +0 -1
  103. package/dist/components/navigation/nav-tabs.cjs +1 -1
  104. package/dist/components/navigation/nav-tabs.js +39 -27
  105. package/dist/components/navigation/page-tabs.cjs +1 -1
  106. package/dist/components/navigation/page-tabs.js +41 -30
  107. package/dist/components/navigation/pagination.cjs +1 -1
  108. package/dist/components/navigation/pagination.d.ts +7 -1
  109. package/dist/components/navigation/pagination.js +48 -25
  110. package/dist/components/notifications/notification-center.cjs +1 -1
  111. package/dist/components/notifications/notification-center.d.ts +3 -1
  112. package/dist/components/notifications/notification-center.js +56 -38
  113. package/dist/components/notifications/toast.cjs +1 -1
  114. package/dist/components/notifications/toast.d.ts +1 -0
  115. package/dist/components/notifications/toast.js +4 -0
  116. package/dist/components/overlay/alert-dialog.cjs +1 -1
  117. package/dist/components/overlay/alert-dialog.js +1 -1
  118. package/dist/components/overlay/confirm-dialog.cjs +1 -1
  119. package/dist/components/overlay/confirm-dialog.d.ts +4 -2
  120. package/dist/components/overlay/confirm-dialog.js +31 -22
  121. package/dist/components/overlay/drawer.cjs +1 -1
  122. package/dist/components/overlay/drawer.d.ts +3 -1
  123. package/dist/components/overlay/drawer.js +24 -16
  124. package/dist/components/ui/accordion/index.d.ts +4 -0
  125. package/dist/components/ui/badge/index.cjs +1 -1
  126. package/dist/components/ui/badge/index.d.ts +1 -1
  127. package/dist/components/ui/badge/index.js +2 -1
  128. package/dist/components/ui/button/index.cjs +1 -1
  129. package/dist/components/ui/button/index.d.ts +2 -1
  130. package/dist/components/ui/button/index.js +13 -10
  131. package/dist/components/ui/card/index.cjs +1 -1
  132. package/dist/components/ui/card/index.d.ts +13 -2
  133. package/dist/components/ui/card/index.js +74 -49
  134. package/dist/components/ui/dialog/index.cjs +1 -1
  135. package/dist/components/ui/dialog/index.js +2 -1
  136. package/dist/components/ui/hover-card.cjs +1 -1
  137. package/dist/components/ui/hover-card.d.ts +11 -3
  138. package/dist/components/ui/hover-card.js +29 -24
  139. package/dist/components/ui/input/index.cjs +1 -1
  140. package/dist/components/ui/input/index.d.ts +9 -1
  141. package/dist/components/ui/input/index.js +63 -30
  142. package/dist/components/ui/popover/index.cjs +1 -1
  143. package/dist/components/ui/popover/index.d.ts +2 -2
  144. package/dist/components/ui/popover/index.js +6 -5
  145. package/dist/components/ui/radio-group/index.cjs +1 -1
  146. package/dist/components/ui/radio-group/index.d.ts +5 -1
  147. package/dist/components/ui/radio-group/index.js +50 -16
  148. package/dist/components/ui/right-click-menu/index.cjs +1 -1
  149. package/dist/components/ui/right-click-menu/index.d.ts +5 -1
  150. package/dist/components/ui/right-click-menu/index.js +77 -23
  151. package/dist/components/ui/segmented-control/index.cjs +1 -1
  152. package/dist/components/ui/segmented-control/index.d.ts +2 -1
  153. package/dist/components/ui/segmented-control/index.js +23 -11
  154. package/dist/components/ui/select/index.cjs +1 -1
  155. package/dist/components/ui/select/index.d.ts +40 -1
  156. package/dist/components/ui/select/index.js +159 -48
  157. package/dist/components/ui/switch/index.cjs +1 -1
  158. package/dist/components/ui/switch/index.d.ts +18 -0
  159. package/dist/components/ui/switch/index.js +47 -17
  160. package/dist/components/ui/tabs/index.cjs +1 -1
  161. package/dist/components/ui/tabs/index.d.ts +14 -4
  162. package/dist/components/ui/tabs/index.js +11 -8
  163. package/dist/components/ui/textarea/index.cjs +1 -1
  164. package/dist/components/ui/textarea/index.d.ts +10 -2
  165. package/dist/components/ui/textarea/index.js +37 -8
  166. package/dist/components/ui/textarea.cjs +1 -0
  167. package/dist/components/ui/textarea.d.ts +1 -0
  168. package/dist/components/ui/textarea.js +2 -0
  169. package/dist/components/ui/tooltip/index.cjs +1 -1
  170. package/dist/components/ui/tooltip/index.d.ts +11 -3
  171. package/dist/components/ui/tooltip/index.js +41 -20
  172. package/dist/components/upload/file-upload.cjs +1 -1
  173. package/dist/components/upload/file-upload.d.ts +8 -1
  174. package/dist/components/upload/file-upload.js +132 -100
  175. package/dist/components/upload/image-upload.cjs +1 -1
  176. package/dist/components/upload/image-upload.d.ts +5 -1
  177. package/dist/components/upload/image-upload.js +34 -9
  178. package/dist/index.cjs +1 -1
  179. package/dist/index.js +31 -31
  180. package/dist/public-component-surface.cjs +1 -1
  181. package/dist/public-component-surface.js +15 -0
  182. package/dist/showcase/component-api-schema.cjs +1 -1
  183. package/dist/showcase/component-api-schema.js +187 -10
  184. package/dist/showcase/create-demo.cjs +5 -4
  185. package/dist/showcase/create-demo.js +2 -2
  186. package/dist/showcase/fallback.cjs +3 -3
  187. package/dist/showcase/fallback.js +221 -243
  188. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  189. package/dist/showcase/premium/alert/showcase.js +1 -0
  190. package/dist/showcase/premium/app-sidebar/showcase.cjs +1 -1
  191. package/dist/showcase/premium/app-sidebar/showcase.js +1 -0
  192. package/dist/showcase/premium/badge/showcase.cjs +1 -1
  193. package/dist/showcase/premium/badge/showcase.js +7 -0
  194. package/dist/showcase/premium/badge/types.d.ts +1 -1
  195. package/dist/showcase/premium/breadcrumbs/showcase.cjs +1 -1
  196. package/dist/showcase/premium/breadcrumbs/showcase.js +12 -1
  197. package/dist/showcase/premium/button/mock.cjs +1 -4
  198. package/dist/showcase/premium/button/mock.js +1 -1
  199. package/dist/showcase/premium/button/showcase.cjs +1 -1
  200. package/dist/showcase/premium/button/showcase.js +2 -2
  201. package/dist/showcase/premium/card/showcase.cjs +1 -1
  202. package/dist/showcase/premium/card/showcase.js +96 -47
  203. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  204. package/dist/showcase/premium/carousel/showcase.js +76 -49
  205. package/dist/showcase/premium/command-bar/showcase.cjs +1 -1
  206. package/dist/showcase/premium/command-bar/showcase.js +2 -0
  207. package/dist/showcase/premium/data-table/mock.cjs +12 -11
  208. package/dist/showcase/premium/data-table/mock.js +1 -1
  209. package/dist/showcase/premium/data-table/showcase.cjs +1 -1
  210. package/dist/showcase/premium/data-table/showcase.js +1 -1
  211. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  212. package/dist/showcase/premium/data-table-parts/showcase.js +3 -1
  213. package/dist/showcase/premium/file-upload/showcase.cjs +1 -1
  214. package/dist/showcase/premium/file-upload/showcase.js +25 -4
  215. package/dist/showcase/premium/image-upload/showcase.cjs +1 -1
  216. package/dist/showcase/premium/image-upload/showcase.js +4 -1
  217. package/dist/showcase/premium/index.cjs +1 -1
  218. package/dist/showcase/premium/index.js +396 -402
  219. package/dist/showcase/premium/loading-state/showcase.cjs +1 -1
  220. package/dist/showcase/premium/loading-state/showcase.js +3 -1
  221. package/dist/showcase/premium/metric-grid/showcase.cjs +1 -1
  222. package/dist/showcase/premium/metric-grid/showcase.js +96 -28
  223. package/dist/showcase/premium/notification-center/showcase.cjs +1 -1
  224. package/dist/showcase/premium/notification-center/showcase.js +7 -3
  225. package/dist/showcase/premium/page-state/showcase.cjs +1 -1
  226. package/dist/showcase/premium/page-state/showcase.js +5 -1
  227. package/dist/showcase/premium/pagination/showcase.cjs +1 -1
  228. package/dist/showcase/premium/pagination/showcase.js +15 -2
  229. package/dist/showcase/premium/popover/showcase.cjs +1 -1
  230. package/dist/showcase/premium/popover/showcase.js +85 -50
  231. package/dist/showcase/premium/radio-group/showcase.cjs +1 -1
  232. package/dist/showcase/premium/radio-group/showcase.js +27 -4
  233. package/dist/showcase/premium/right-click-menu/showcase.cjs +1 -1
  234. package/dist/showcase/premium/right-click-menu/showcase.js +56 -43
  235. package/dist/showcase/premium/segmented-control/showcase.cjs +1 -1
  236. package/dist/showcase/premium/segmented-control/showcase.js +1 -0
  237. package/dist/showcase/premium/select/data.cjs +1 -1
  238. package/dist/showcase/premium/select/data.js +69 -34
  239. package/dist/showcase/premium/select/mock.cjs +20 -8
  240. package/dist/showcase/premium/select/mock.js +3 -2
  241. package/dist/showcase/premium/select/showcase.cjs +1 -1
  242. package/dist/showcase/premium/select/showcase.js +101 -86
  243. package/dist/showcase/premium/select/types.d.ts +3 -0
  244. package/dist/showcase/premium/statistic/showcase.cjs +1 -1
  245. package/dist/showcase/premium/statistic/showcase.js +57 -25
  246. package/dist/showcase/premium/switch/showcase.cjs +1 -1
  247. package/dist/showcase/premium/switch/showcase.js +25 -14
  248. package/dist/showcase/premium/tabs/showcase.cjs +1 -1
  249. package/dist/showcase/premium/tabs/showcase.js +171 -48
  250. package/dist/showcase/premium/textarea/mock.cjs +12 -4
  251. package/dist/showcase/premium/textarea/mock.js +1 -1
  252. package/dist/showcase/premium/textarea/showcase.cjs +1 -1
  253. package/dist/showcase/premium/textarea/showcase.js +8 -3
  254. package/dist/showcase/premium/toast/showcase.cjs +1 -1
  255. package/dist/showcase/premium/toast/showcase.js +32 -6
  256. package/dist/showcase/premium/types.d.ts +1 -1
  257. package/dist/showcase/registry-quality.cjs +1 -1
  258. package/dist/showcase/registry-quality.js +1 -0
  259. package/dist/showcase/registry-specific.cjs +1 -1
  260. package/dist/showcase/registry-specific.js +78 -74
  261. package/dist/showcase/render-registry-preview.cjs +1 -1
  262. package/dist/showcase/render-registry-preview.js +90 -108
  263. package/dist/showcase/site-data.cjs +1 -1
  264. package/dist/showcase/site-data.js +60 -21
  265. package/dist/showcase/tembro-registry.json.cjs +1 -1
  266. package/dist/showcase/tembro-registry.json.js +34 -20
  267. package/dist/showcase/types.d.ts +1 -1
  268. package/package.json +1 -1
  269. package/packages/cli/dist/index.cjs +31 -31
  270. package/packages/cli/vendor/src/components/calendar/calendar.tsx +59 -50
  271. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +7 -4
  272. package/packages/cli/vendor/src/components/charts/charts.tsx +109 -66
  273. package/packages/cli/vendor/src/components/charts/progress-ring.tsx +37 -26
  274. package/packages/cli/vendor/src/components/data-table/data-table-column-visibility-menu.tsx +41 -22
  275. package/packages/cli/vendor/src/components/data-table/data-table-pagination.tsx +7 -7
  276. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +8 -6
  277. package/packages/cli/vendor/src/components/data-table/data-table.tsx +21 -20
  278. package/packages/cli/vendor/src/components/display/carousel.tsx +102 -9
  279. package/packages/cli/vendor/src/components/display/code-block.tsx +22 -2
  280. package/packages/cli/vendor/src/components/display/delta-badge.tsx +11 -11
  281. package/packages/cli/vendor/src/components/display/kanban.tsx +103 -57
  282. package/packages/cli/vendor/src/components/display/metric-grid.tsx +16 -13
  283. package/packages/cli/vendor/src/components/display/qr-code.tsx +17 -15
  284. package/packages/cli/vendor/src/components/display/smart-card.tsx +1 -1
  285. package/packages/cli/vendor/src/components/display/status-legend.tsx +1 -1
  286. package/packages/cli/vendor/src/components/display/tag.tsx +39 -21
  287. package/packages/cli/vendor/src/components/display/tree-view.tsx +221 -84
  288. package/packages/cli/vendor/src/components/display/trend-card.tsx +6 -40
  289. package/packages/cli/vendor/src/components/feedback/alert.tsx +3 -1
  290. package/packages/cli/vendor/src/components/feedback/loading-state.tsx +33 -17
  291. package/packages/cli/vendor/src/components/feedback/page-state.tsx +8 -7
  292. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +37 -8
  293. package/packages/cli/vendor/src/components/form/form-input.tsx +11 -12
  294. package/packages/cli/vendor/src/components/form/form-select.tsx +6 -4
  295. package/packages/cli/vendor/src/components/form/form-switch.tsx +9 -3
  296. package/packages/cli/vendor/src/components/form/form-textarea.tsx +6 -2
  297. package/packages/cli/vendor/src/components/inputs/async-select.tsx +11 -8
  298. package/packages/cli/vendor/src/components/inputs/search-input.tsx +5 -2
  299. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +20 -190
  300. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +3 -1
  301. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +3 -1
  302. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +28 -13
  303. package/packages/cli/vendor/src/components/modern/dual-list-picker.tsx +103 -35
  304. package/packages/cli/vendor/src/components/modern/rich-text-editor.tsx +25 -22
  305. package/packages/cli/vendor/src/components/modern/tour.tsx +47 -29
  306. package/packages/cli/vendor/src/components/navigation/command-bar.tsx +6 -0
  307. package/packages/cli/vendor/src/components/navigation/demo.tsx +0 -1
  308. package/packages/cli/vendor/src/components/navigation/nav-tabs.tsx +38 -29
  309. package/packages/cli/vendor/src/components/navigation/page-tabs.tsx +35 -23
  310. package/packages/cli/vendor/src/components/navigation/pagination.tsx +65 -31
  311. package/packages/cli/vendor/src/components/notifications/notification-center.tsx +64 -39
  312. package/packages/cli/vendor/src/components/notifications/toast.tsx +23 -21
  313. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +1 -1
  314. package/packages/cli/vendor/src/components/overlay/confirm-dialog.tsx +45 -22
  315. package/packages/cli/vendor/src/components/overlay/drawer.tsx +18 -5
  316. package/packages/cli/vendor/src/components/ui/accordion/index.tsx +4 -0
  317. package/packages/cli/vendor/src/components/ui/badge/index.tsx +2 -1
  318. package/packages/cli/vendor/src/components/ui/button/index.tsx +11 -5
  319. package/packages/cli/vendor/src/components/ui/card/index.tsx +95 -25
  320. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +2 -1
  321. package/packages/cli/vendor/src/components/ui/hover-card.tsx +54 -28
  322. package/packages/cli/vendor/src/components/ui/input/index.tsx +98 -0
  323. package/packages/cli/vendor/src/components/ui/popover/index.tsx +10 -8
  324. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +55 -6
  325. package/packages/cli/vendor/src/components/ui/right-click-menu/index.tsx +120 -9
  326. package/packages/cli/vendor/src/components/ui/segmented-control/index.tsx +29 -3
  327. package/packages/cli/vendor/src/components/ui/select/index.tsx +260 -34
  328. package/packages/cli/vendor/src/components/ui/switch/index.tsx +71 -6
  329. package/packages/cli/vendor/src/components/ui/tabs/index.tsx +22 -6
  330. package/packages/cli/vendor/src/components/ui/textarea/index.tsx +105 -15
  331. package/packages/cli/vendor/src/components/ui/textarea.tsx +2 -0
  332. package/packages/cli/vendor/src/components/ui/tooltip/index.tsx +67 -22
  333. package/packages/cli/vendor/src/components/upload/file-upload.tsx +120 -57
  334. package/packages/cli/vendor/src/components/upload/image-upload.tsx +71 -24
  335. package/packages/cli/vendor/src/public-component-surface.ts +3 -0
  336. package/packages/cli/vendor/src/showcase/component-api-schema.ts +79 -41
  337. package/packages/cli/vendor/src/showcase/create-demo.tsx +16 -15
  338. package/packages/cli/vendor/src/showcase/fallback.tsx +4 -19
  339. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +1 -0
  340. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -0
  341. package/packages/cli/vendor/src/showcase/premium/badge/showcase.tsx +4 -2
  342. package/packages/cli/vendor/src/showcase/premium/badge/types.ts +1 -1
  343. package/packages/cli/vendor/src/showcase/premium/breadcrumbs/showcase.tsx +3 -1
  344. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +2 -5
  345. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +2 -2
  346. package/packages/cli/vendor/src/showcase/premium/card/showcase.tsx +26 -1
  347. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +19 -3
  348. package/packages/cli/vendor/src/showcase/premium/command-bar/showcase.tsx +1 -1
  349. package/packages/cli/vendor/src/showcase/premium/data-table/mock.ts +26 -25
  350. package/packages/cli/vendor/src/showcase/premium/data-table/showcase.tsx +3 -3
  351. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +3 -3
  352. package/packages/cli/vendor/src/showcase/premium/file-upload/showcase.tsx +21 -1
  353. package/packages/cli/vendor/src/showcase/premium/image-upload/showcase.tsx +4 -1
  354. package/packages/cli/vendor/src/showcase/premium/index.ts +0 -2
  355. package/packages/cli/vendor/src/showcase/premium/loading-state/showcase.tsx +1 -1
  356. package/packages/cli/vendor/src/showcase/premium/metric-grid/showcase.tsx +36 -4
  357. package/packages/cli/vendor/src/showcase/premium/notification-center/showcase.tsx +4 -3
  358. package/packages/cli/vendor/src/showcase/premium/page-state/showcase.tsx +1 -0
  359. package/packages/cli/vendor/src/showcase/premium/pagination/showcase.tsx +13 -1
  360. package/packages/cli/vendor/src/showcase/premium/popover/showcase.tsx +27 -11
  361. package/packages/cli/vendor/src/showcase/premium/radio-group/showcase.tsx +13 -1
  362. package/packages/cli/vendor/src/showcase/premium/right-click-menu/showcase.tsx +8 -5
  363. package/packages/cli/vendor/src/showcase/premium/segmented-control/showcase.tsx +1 -0
  364. package/packages/cli/vendor/src/showcase/premium/select/data.ts +12 -3
  365. package/packages/cli/vendor/src/showcase/premium/select/mock.ts +4 -4
  366. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +35 -22
  367. package/packages/cli/vendor/src/showcase/premium/select/types.ts +3 -0
  368. package/packages/cli/vendor/src/showcase/premium/statistic/showcase.tsx +10 -1
  369. package/packages/cli/vendor/src/showcase/premium/switch/showcase.tsx +15 -6
  370. package/packages/cli/vendor/src/showcase/premium/tabs/showcase.tsx +48 -1
  371. package/packages/cli/vendor/src/showcase/premium/textarea/mock.ts +12 -4
  372. package/packages/cli/vendor/src/showcase/premium/textarea/showcase.tsx +5 -0
  373. package/packages/cli/vendor/src/showcase/premium/toast/showcase.tsx +17 -1
  374. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  375. package/packages/cli/vendor/src/showcase/registry-quality.ts +3 -2
  376. package/packages/cli/vendor/src/showcase/registry-specific.tsx +7 -8
  377. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +5 -21
  378. package/packages/cli/vendor/src/showcase/site-data.tsx +21 -15
  379. package/packages/cli/vendor/src/showcase/tembro-registry.json +42 -20
  380. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  381. package/registry.json +18 -6
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../inputs/async-select.cjs"),t=require("../inputs/simple-select.cjs"),n=require("./form-field-shell.cjs");let r=require("react/jsx-runtime"),i=require("react-hook-form");function a(e){return{label:e.label,description:e.description,required:e.required,className:e.className,htmlFor:e.name,layout:e.layout,descriptionPosition:e.descriptionPosition,labelAction:e.labelAction,requiredIndicator:e.requiredIndicator,errorIcon:e.errorIcon,showErrorIcon:e.showErrorIcon,disabled:e.disabled,readOnly:e.readOnly,labelClassName:e.labelClassName,labelRowClassName:e.labelRowClassName,descriptionClassName:e.descriptionClassName,errorClassName:e.errorClassName,contentClassName:e.contentClassName}}function o(o){let s=a(o),c=o.kind??`simple`,l=o.fieldClassName??`w-full`;return(0,r.jsx)(i.Controller,{control:o.control,name:o.name,render:({field:i,fieldState:a})=>{let u=a.error?.message,d=n.resolveFormFieldIds(`${o.name}`,{description:o.description,error:u});if(c===`async`){let{control:t,name:a,label:c,description: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,emptyValue:k,kind:A,onValueChange:j,...M}=o;return(0,r.jsx)(n.FormFieldShell,{...s,labelId:d.labelId,descriptionId:d.descriptionId,errorId:d.errorId,error:u,children:(0,r.jsx)(e.AsyncSelect,{...M,value:i.value==null||i.value===``?void 0:String(i.value),disabled:x||S,"aria-describedby":d.describedBy,"aria-errormessage":u?d.errorId:void 0,onValueChange:(e,t)=>{i.onChange(e??k),j?.(e,t)},triggerClassName:O??l})})}let{control:f,name:p,label:m,description:h,required:g,className:_,layout:v,descriptionPosition:y,labelAction:b,requiredIndicator:x,errorIcon:S,showErrorIcon:C,disabled:w,readOnly:T,labelClassName:E,labelRowClassName:D,descriptionClassName:O,errorClassName:k,contentClassName:A,fieldClassName:j,emptyValue:M,kind:N,onValueChange:P,...F}=o;return(0,r.jsx)(n.FormFieldShell,{...s,labelId:d.labelId,descriptionId:d.descriptionId,errorId:d.errorId,error:u,children:(0,r.jsx)(t.SimpleSelect,{...F,value:i.value==null?``:String(i.value),disabled:w||T,"aria-describedby":d.describedBy,"aria-errormessage":u?d.errorId:void 0,onValueChange:e=>{i.onChange(e||M),P?.(e)},triggerClassName:j??l})})}})}exports.FormSelect=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ui/select/index.cjs"),t=require("../inputs/async-select.cjs"),n=require("./form-field-shell.cjs");let r=require("react/jsx-runtime"),i=require("react-hook-form");function a(e){return{label:e.label,description:e.description,success:e.success,loading:e.loading,required:e.required,className:e.className,htmlFor:e.name,layout:e.layout,descriptionPosition:e.descriptionPosition,labelAction:e.labelAction,requiredIndicator:e.requiredIndicator,errorIcon:e.errorIcon,showErrorIcon:e.showErrorIcon,disabled:e.disabled,readOnly:e.readOnly,labelClassName:e.labelClassName,labelRowClassName:e.labelRowClassName,descriptionClassName:e.descriptionClassName,errorClassName:e.errorClassName,contentClassName:e.contentClassName}}function o(o){let s=a(o),c=o.kind??`simple`,l=o.fieldClassName??`w-full`;return(0,r.jsx)(i.Controller,{control:o.control,name:o.name,render:({field:i,fieldState:a})=>{let u=a.error?.message,d=n.resolveFormFieldIds(`${o.name}`,{description:o.description,error:u});if(c===`async`){let{control:e,name:a,label:c,description: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,emptyValue:k,kind:A,onValueChange:j,...M}=o;return(0,r.jsx)(n.FormFieldShell,{...s,labelId:d.labelId,descriptionId:d.descriptionId,errorId:d.errorId,error:u,children:(0,r.jsx)(t.AsyncSelect,{...M,value:i.value==null||i.value===``?void 0:String(i.value),disabled:x||S,"aria-describedby":d.describedBy,"aria-errormessage":u?d.errorId:void 0,onValueChange:(e,t)=>{i.onChange(e??k),j?.(e,t)},triggerClassName:O??l})})}let{control:f,name:p,label:m,description:h,required:g,className:_,layout:v,descriptionPosition:y,labelAction:b,requiredIndicator:x,errorIcon:S,showErrorIcon:C,disabled:w,readOnly:T,labelClassName:E,labelRowClassName:D,descriptionClassName:O,errorClassName:k,contentClassName:A,fieldClassName:j,emptyValue:M,kind:N,onValueChange:P,...F}=o;return(0,r.jsx)(n.FormFieldShell,{...s,labelId:d.labelId,descriptionId:d.descriptionId,errorId:d.errorId,error:u,children:(0,r.jsx)(e.Select,{...F,value:i.value==null?void 0:String(i.value),disabled:w||T,"aria-describedby":d.describedBy,"aria-errormessage":u?d.errorId:void 0,onValueChange:e=>{i.onChange(e||M),P?.(e)},triggerClassName:j??l})})}})}exports.FormSelect=o;
@@ -1,6 +1,6 @@
1
1
  import { type Control, type FieldPath, type FieldValues } from "react-hook-form";
2
2
  import { type AsyncSelectOption, type AsyncSelectProps } from "@/components/inputs/async-select";
3
- import { type SimpleSelectProps } from "@/components/inputs/simple-select";
3
+ import { type SelectProps } from "@/components/ui/select";
4
4
  import { type FormFieldShellControlProps } from "@/components/form/form-field-shell";
5
5
  export type FormSelectKind = "simple" | "async";
6
6
  type FormSelectBaseProps<TFieldValues extends FieldValues, TName extends FieldPath<TFieldValues>> = FormFieldShellControlProps & {
@@ -8,7 +8,7 @@ type FormSelectBaseProps<TFieldValues extends FieldValues, TName extends FieldPa
8
8
  name: TName;
9
9
  fieldClassName?: string;
10
10
  };
11
- export type FormSimpleSelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Omit<SimpleSelectProps, "value" | "onValueChange" | "disabled"> & FormSelectBaseProps<TFieldValues, TName> & {
11
+ export type FormSimpleSelectProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = Omit<SelectProps, "children" | "value" | "onValueChange" | "disabled"> & FormSelectBaseProps<TFieldValues, TName> & {
12
12
  kind?: "simple";
13
13
  emptyValue?: unknown;
14
14
  onValueChange?: (value: string) => void;
@@ -1,5 +1,5 @@
1
- import { AsyncSelect as e } from "../inputs/async-select.js";
2
- import { SimpleSelect as t } from "../inputs/simple-select.js";
1
+ import { Select as e } from "../ui/select/index.js";
2
+ import { AsyncSelect as t } from "../inputs/async-select.js";
3
3
  import { FormFieldShell as n, resolveFormFieldIds as r } from "./form-field-shell.js";
4
4
  import { jsx as i } from "react/jsx-runtime";
5
5
  import { Controller as a } from "react-hook-form";
@@ -8,6 +8,8 @@ function o(e) {
8
8
  return {
9
9
  label: e.label,
10
10
  description: e.description,
11
+ success: e.success,
12
+ loading: e.loading,
11
13
  required: e.required,
12
14
  className: e.className,
13
15
  htmlFor: e.name,
@@ -37,14 +39,14 @@ function s(s) {
37
39
  error: d
38
40
  });
39
41
  if (l === "async") {
40
- let { control: t, name: r, label: o, description: l, 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, emptyValue: k, kind: A, onValueChange: j, ...M } = s;
42
+ let { control: e, name: r, label: o, description: l, 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, emptyValue: k, kind: A, onValueChange: j, ...M } = s;
41
43
  return /* @__PURE__ */ i(n, {
42
44
  ...c,
43
45
  labelId: f.labelId,
44
46
  descriptionId: f.descriptionId,
45
47
  errorId: f.errorId,
46
48
  error: d,
47
- children: /* @__PURE__ */ i(e, {
49
+ children: /* @__PURE__ */ i(t, {
48
50
  ...M,
49
51
  value: a.value == null || a.value === "" ? void 0 : String(a.value),
50
52
  disabled: x || S,
@@ -64,9 +66,9 @@ function s(s) {
64
66
  descriptionId: f.descriptionId,
65
67
  errorId: f.errorId,
66
68
  error: d,
67
- children: /* @__PURE__ */ i(t, {
69
+ children: /* @__PURE__ */ i(e, {
68
70
  ...I,
69
- value: a.value == null ? "" : String(a.value),
71
+ value: a.value == null ? void 0 : String(a.value),
70
72
  disabled: T || E,
71
73
  "aria-describedby": f.describedBy,
72
74
  "aria-errormessage": d ? f.errorId : void 0,
@@ -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/switch/index.cjs"),r=require("./form-field-shell.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("react/jsx-runtime"),o=require("react-hook-form");function s({control:e,name:i,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,labelPlacement:T=`end`,id:E,onCheckedChange:D,...O}){let k=E??i;return(0,a.jsx)(o.Controller,{control:e,name:i,render:({field:e,fieldState:i})=>{let o=i.error?.message,E=r.resolveFormFieldIds(k,{description:c,error:o}),A=s?(0,a.jsxs)(`label`,{id:E.labelId,htmlFor:k,className:t.cn(`text-sm font-medium leading-none`,_&&`opacity-60`,y),children:[s,l&&(m??(0,a.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`}))]}):null,j=(0,a.jsx)(n.Switch,{id:k,ref:e.ref,checked:!!e.value,disabled:_||v,"aria-invalid":i.invalid||void 0,"aria-labelledby":s?E.labelId:void 0,"aria-describedby":E.describedBy,"aria-errormessage":o?E.errorId:void 0,className:w,onBlur:e.onBlur,onCheckedChange:t=>{e.onChange(t),D?.(t)},...O});return T===`start`?(0,a.jsx)(r.FormFieldShell,{label:s,description:c,required:l,error:o,htmlFor:k,labelId:E.labelId,descriptionId:E.descriptionId,errorId:E.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:j}):(0,a.jsx)(r.FormFieldShell,{error:o,className:u,descriptionId:E.descriptionId,errorId:E.errorId,errorIcon:h,showErrorIcon:g,disabled:_,readOnly:v,errorClassName:S,contentClassName:C,children:(0,a.jsxs)(`div`,{className:`flex items-start gap-3`,children:[j,(s||c||p)&&(0,a.jsxs)(`div`,{className:`grid min-w-0 gap-1`,children:[(s||p)&&(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-between gap-2`,b),children:[A,p&&(0,a.jsx)(`div`,{className:`shrink-0 text-sm`,children:p})]}),c&&(0,a.jsx)(`p`,{id:E.descriptionId,className:t.cn(`text-xs text-muted-foreground`,x),children:c})]})]})})}})}exports.FormSwitch=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../_virtual/_rolldown/runtime.cjs"),t=require("../../lib/utils.cjs"),n=require("../ui/switch/index.cjs"),r=require("./form-field-shell.cjs");let i=require("react");i=e.__toESM(i,1);let a=require("react/jsx-runtime"),o=require("react-hook-form");function s({control:e,name:i,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,labelPlacement:D=`end`,id:O,onCheckedChange:k,...A}){let j=O??i;return(0,a.jsx)(o.Controller,{control:e,name:i,render:({field:e,fieldState:i})=>{let o=i.error?.message,O=r.resolveFormFieldIds(j,{description:c,error:o}),M=s?(0,a.jsxs)(`label`,{id:O.labelId,htmlFor:j,className:t.cn(`text-sm font-medium leading-none`,y&&`opacity-60`,x),children:[s,d&&(g??(0,a.jsx)(`span`,{className:`ml-1 text-destructive`,children:`*`}))]}):null,N=(0,a.jsx)(n.Switch,{id:j,ref:e.ref,checked:!!e.value,disabled:y||b,"aria-invalid":i.invalid||void 0,"aria-labelledby":s?O.labelId:void 0,"aria-describedby":O.describedBy,"aria-errormessage":o?O.errorId:void 0,className:E,onBlur:e.onBlur,onCheckedChange:t=>{e.onChange(t),k?.(t)},...A});return D===`start`?(0,a.jsx)(r.FormFieldShell,{label:s,description:c,success:l,loading:u,required:d,error:o,htmlFor:j,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:N}):(0,a.jsx)(r.FormFieldShell,{error:o,success:l,loading:u,className:f,descriptionId:O.descriptionId,errorId:O.errorId,errorIcon:_,showErrorIcon:v,disabled:y,readOnly:b,errorClassName:w,contentClassName:T,children:(0,a.jsxs)(`div`,{className:`flex items-start gap-3`,children:[N,(s||c||h)&&(0,a.jsxs)(`div`,{className:`grid min-w-0 gap-1`,children:[(s||h)&&(0,a.jsxs)(`div`,{className:t.cn(`flex items-center justify-between gap-2`,S),children:[M,h&&(0,a.jsx)(`div`,{className:`shrink-0 text-sm`,children:h})]}),c&&(0,a.jsx)(`p`,{id:O.descriptionId,className:t.cn(`text-xs text-muted-foreground`,C),children:c})]})]})})}})}exports.FormSwitch=s;
@@ -10,5 +10,5 @@ export type FormSwitchProps<TFieldValues extends FieldValues = FieldValues, TNam
10
10
  labelPlacement?: FormSwitchLabelPlacement;
11
11
  onCheckedChange?: (checked: boolean) => void;
12
12
  };
13
- declare function FormSwitch<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, name, label, description, required, className, layout, descriptionPosition, labelAction, requiredIndicator, errorIcon, showErrorIcon, disabled, readOnly, labelClassName, labelRowClassName, descriptionClassName, errorClassName, contentClassName, fieldClassName, labelPlacement, id, onCheckedChange, ...props }: FormSwitchProps<TFieldValues, TName>): React.JSX.Element;
13
+ declare function FormSwitch<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ control, name, label, description, success, loading, required, className, layout, descriptionPosition, labelAction, requiredIndicator, errorIcon, showErrorIcon, disabled, readOnly, labelClassName, labelRowClassName, descriptionClassName, errorClassName, contentClassName, fieldClassName, labelPlacement, id, onCheckedChange, ...props }: FormSwitchProps<TFieldValues, TName>): React.JSX.Element;
14
14
  export { FormSwitch };
@@ -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
  }
@@ -114,5 +114,8 @@ export type AsyncMultiSelectProps<TValue extends string = string, TData = unknow
114
114
  invalid?: boolean;
115
115
  };
116
116
  declare function AsyncSelect<TValue extends string = string, TData = unknown, TOption extends AsyncSelectOption<TValue, TData> = AsyncSelectOption<TValue, TData>>(props: AsyncSelectProps<TValue, TData, TOption> | AsyncSelectMultiModeProps<TValue, TData, TOption>): React.JSX.Element;
117
+ /**
118
+ * @deprecated Prefer `AsyncSelect` with `isMulti` for new usage.
119
+ */
117
120
  declare function AsyncMultiSelect<TValue extends string = string, TData = unknown, TOption extends AsyncSelectOption<TValue, TData> = AsyncSelectOption<TValue, TData>>({ className, value, selectedOptions, onValueChange, loadOptions, loadSelectedOptions, defaultOptions, disabled, clearable, cacheOptions, cacheTtl, closeOnSelect, debounceMs, minSearchLength, maxSelected, maxVisibleTags, showSelectAll, labels, renderOption, renderValue, renderTag, renderLoading, renderEmpty, renderError, renderMinSearch, renderMaxSelected, onCreateOption, createOptionLabel, showCreateOption, showSelectedDescription, triggerClassName, contentClassName, searchClassName, optionClassName, tagClassName, invalid, ...props }: AsyncMultiSelectProps<TValue, TData, TOption>): React.JSX.Element;
118
121
  export { AsyncSelect, AsyncMultiSelect };
@@ -11,5 +11,8 @@ export type SearchInputProps = Omit<ClearableInputProps, "leadingIcon" | "type"
11
11
  onValueChange?: (value: string) => void;
12
12
  onDebouncedValueChange?: (value: string) => void;
13
13
  };
14
+ /**
15
+ * @deprecated Prefer `Input` with `type="search"` and search-related props for new usage.
16
+ */
14
17
  declare const SearchInput: React.ForwardRefExoticComponent<Omit<SearchInputProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
15
18
  export { SearchInput };
@@ -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/select/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("lucide-react"),a=require("react/jsx-runtime");function o(e,t){let n=t.trim().toLowerCase();return n?[typeof e.label==`string`||typeof e.label==`number`?String(e.label):e.value,e.value,...e.keywords??[]].join(` `).toLowerCase().includes(n):!0}function s({value:e,onValueChange:s,options:c,placeholder:l=`Select`,searchPlaceholder:u=`Search options...`,emptyLabel:d=`No options found`,clearLabel:f=`Clear selection`,size:p=`default`,clearable:m=!1,searchable:h=!1,loading:g=!1,loadingLabel:_=`Loading options...`,disabled:v=!1,showSelectedDescription:y=!0,triggerClassName:b,contentClassName:x,itemClassName:S,searchClassName:C,renderOption:w,invalid:T,onOpenChange:E,...D}){let[O,k]=r.useState(``),A=c.find(t=>t.value===e),j=c.filter(e=>o(e,O));return(0,a.jsxs)(n.Select,{value:e,onValueChange:e=>s?.(e),disabled:v||g,onOpenChange:(e,t)=>{e||k(``),E?.(e,t)},...D,children:[(0,a.jsxs)(n.SelectTrigger,{size:p,"aria-invalid":T||void 0,className:t.cn(`w-full`,b),children:[(0,a.jsx)(n.SelectValue,{placeholder:l,children:A?(0,a.jsxs)(`span`,{className:`flex min-w-0 flex-col items-start`,children:[(0,a.jsx)(`span`,{className:`truncate`,children:A.label}),y&&A.description?(0,a.jsx)(`span`,{className:`truncate text-[11px] font-medium text-muted-foreground`,children:A.description}):null]}):null}),g?(0,a.jsx)(i.LoaderCircleIcon,{className:`size-4 animate-spin text-muted-foreground`}):null,m&&e&&!v&&!g?(0,a.jsx)(`span`,{role:`button`,tabIndex:0,"aria-label":f,className:`ml-1 rounded-[var(--radius-sm)] border border-border/65 p-1 text-muted-foreground transition-colors hover:border-border hover:bg-muted/55 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,onClick:e=>{e.preventDefault(),t.stopInteractivePropagation(e),s?.(void 0)},onMouseDown:t.stopInteractivePropagation,onDoubleClick:t.stopInteractivePropagation,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),s?.(void 0))},children:(0,a.jsx)(i.XIcon,{className:`size-3.5`})}):null]}),(0,a.jsxs)(n.SelectContent,{className:t.cn(`w-(--anchor-width)`,x),children:[h?(0,a.jsxs)(`div`,{"data-slot":`select-search`,className:`sticky top-0 z-10 mb-1 flex items-center gap-2 rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-popover px-2.5 py-2 text-sm`,children:[(0,a.jsx)(i.SearchIcon,{className:`size-4 text-muted-foreground`}),(0,a.jsx)(`input`,{value:O,onChange:e=>k(e.target.value),placeholder:u,className:t.cn(`min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground`,C)})]}):null,g?(0,a.jsxs)(`div`,{"data-slot":`select-state`,className:`flex items-center gap-2 rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_55%)] px-3 py-2.5 text-sm text-muted-foreground`,children:[(0,a.jsx)(i.LoaderCircleIcon,{className:`size-4 animate-spin`}),_]}):j.length===0?(0,a.jsx)(`div`,{"data-slot":`select-state`,className:`rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_55%)] px-3 py-2.5 text-sm text-muted-foreground`,children:d}):j.map(r=>{let o=r.value===e;return(0,a.jsx)(n.SelectItem,{value:r.value,disabled:r.disabled,className:t.cn(`rounded-[var(--radius-md)]`,S),children:w?w(r,{selected:o}):(0,a.jsxs)(`span`,{className:`flex min-w-0 flex-1 flex-col`,children:[(0,a.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,a.jsx)(`span`,{className:`truncate`,children:r.label}),o?(0,a.jsx)(i.CheckIcon,{className:`ml-auto size-3.5 text-primary`}):null]}),r.description&&(0,a.jsx)(`span`,{className:`truncate text-xs text-muted-foreground`,children:r.description})]})},r.value)})]})]})}exports.SimpleSelect=s;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ui/select/index.cjs");let t=require("react/jsx-runtime");function n(n){return(0,t.jsx)(e.Select,{...n})}exports.SimpleSelect=n;
@@ -1,35 +1,13 @@
1
- import * as React from "react";
2
- import { Select } from "@/components/ui/select";
3
- export type SimpleSelectOption = {
4
- label: React.ReactNode;
5
- value: string;
6
- disabled?: boolean;
7
- description?: React.ReactNode;
8
- keywords?: string[];
9
- };
10
- export type SimpleSelectProps = Omit<React.ComponentProps<typeof Select>, "value" | "onValueChange"> & {
11
- value?: string;
12
- onValueChange?: (value: string | undefined) => void;
1
+ import { type SelectOption, type SelectProps } from "@/components/ui/select";
2
+ export type SimpleSelectOption = SelectOption;
3
+ /**
4
+ * @deprecated Prefer `Select` with `options` for new usage.
5
+ */
6
+ export type SimpleSelectProps = Omit<SelectProps, "children"> & {
13
7
  options: SimpleSelectOption[];
14
- placeholder?: string;
15
- searchPlaceholder?: string;
16
- emptyLabel?: React.ReactNode;
17
- clearLabel?: string;
18
- size?: "sm" | "default" | "lg";
19
- clearable?: boolean;
20
- searchable?: boolean;
21
- loading?: boolean;
22
- loadingLabel?: React.ReactNode;
23
- disabled?: boolean;
24
- showSelectedDescription?: boolean;
25
- triggerClassName?: string;
26
- contentClassName?: string;
27
- itemClassName?: string;
28
- searchClassName?: string;
29
- renderOption?: (option: SimpleSelectOption, state: {
30
- selected: boolean;
31
- }) => React.ReactNode;
32
- invalid?: boolean;
33
8
  };
34
- declare function SimpleSelect({ value, onValueChange, options, placeholder, searchPlaceholder, emptyLabel, clearLabel, size, clearable, searchable, loading, loadingLabel, disabled, showSelectedDescription, triggerClassName, contentClassName, itemClassName, searchClassName, renderOption, invalid, onOpenChange, ...props }: SimpleSelectProps): React.JSX.Element;
9
+ /**
10
+ * @deprecated Prefer `Select` with `options` for new usage.
11
+ */
12
+ declare function SimpleSelect(props: SimpleSelectProps): import("react").JSX.Element;
35
13
  export { SimpleSelect };
@@ -1,104 +1,8 @@
1
- import { cn as e, stopInteractivePropagation as t } from "../../lib/utils.js";
2
- import { Select as n, SelectContent as r, SelectItem as i, SelectTrigger as a, SelectValue as o } from "../ui/select/index.js";
3
- import * as s from "react";
4
- import { CheckIcon as c, LoaderCircleIcon as l, SearchIcon as u, XIcon as d } from "lucide-react";
5
- import { jsx as f, jsxs as p } from "react/jsx-runtime";
1
+ import { Select as e } from "../ui/select/index.js";
2
+ import { jsx as t } from "react/jsx-runtime";
6
3
  //#region src/components/inputs/simple-select.tsx
7
- function m(e, t) {
8
- let n = t.trim().toLowerCase();
9
- return n ? [
10
- typeof e.label == "string" || typeof e.label == "number" ? String(e.label) : e.value,
11
- e.value,
12
- ...e.keywords ?? []
13
- ].join(" ").toLowerCase().includes(n) : !0;
14
- }
15
- function h({ value: h, onValueChange: g, options: _, placeholder: v = "Select", searchPlaceholder: y = "Search options...", emptyLabel: b = "No options found", clearLabel: x = "Clear selection", size: S = "default", clearable: C = !1, searchable: w = !1, loading: T = !1, loadingLabel: E = "Loading options...", disabled: D = !1, showSelectedDescription: O = !0, triggerClassName: k, contentClassName: A, itemClassName: j, searchClassName: M, renderOption: N, invalid: P, onOpenChange: F, ...I }) {
16
- let [L, R] = s.useState(""), z = _.find((e) => e.value === h), B = _.filter((e) => m(e, L));
17
- return /* @__PURE__ */ p(n, {
18
- value: h,
19
- onValueChange: (e) => g?.(e),
20
- disabled: D || T,
21
- onOpenChange: (e, t) => {
22
- e || R(""), F?.(e, t);
23
- },
24
- ...I,
25
- children: [/* @__PURE__ */ p(a, {
26
- size: S,
27
- "aria-invalid": P || void 0,
28
- className: e("w-full", k),
29
- children: [
30
- /* @__PURE__ */ f(o, {
31
- placeholder: v,
32
- children: z ? /* @__PURE__ */ p("span", {
33
- className: "flex min-w-0 flex-col items-start",
34
- children: [/* @__PURE__ */ f("span", {
35
- className: "truncate",
36
- children: z.label
37
- }), O && z.description ? /* @__PURE__ */ f("span", {
38
- className: "truncate text-[11px] font-medium text-muted-foreground",
39
- children: z.description
40
- }) : null]
41
- }) : null
42
- }),
43
- T ? /* @__PURE__ */ f(l, { className: "size-4 animate-spin text-muted-foreground" }) : null,
44
- C && h && !D && !T ? /* @__PURE__ */ f("span", {
45
- role: "button",
46
- tabIndex: 0,
47
- "aria-label": x,
48
- className: "ml-1 rounded-[var(--radius-sm)] border border-border/65 p-1 text-muted-foreground transition-colors hover:border-border hover:bg-muted/55 hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
49
- onClick: (e) => {
50
- e.preventDefault(), t(e), g?.(void 0);
51
- },
52
- onMouseDown: t,
53
- onDoubleClick: t,
54
- onKeyDown: (e) => {
55
- (e.key === "Enter" || e.key === " ") && (e.preventDefault(), g?.(void 0));
56
- },
57
- children: /* @__PURE__ */ f(d, { className: "size-3.5" })
58
- }) : null
59
- ]
60
- }), /* @__PURE__ */ p(r, {
61
- className: e("w-(--anchor-width)", A),
62
- children: [w ? /* @__PURE__ */ p("div", {
63
- "data-slot": "select-search",
64
- className: "sticky top-0 z-10 mb-1 flex items-center gap-2 rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-popover px-2.5 py-2 text-sm",
65
- children: [/* @__PURE__ */ f(u, { className: "size-4 text-muted-foreground" }), /* @__PURE__ */ f("input", {
66
- value: L,
67
- onChange: (e) => R(e.target.value),
68
- placeholder: y,
69
- className: e("min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground", M)
70
- })]
71
- }) : null, T ? /* @__PURE__ */ p("div", {
72
- "data-slot": "select-state",
73
- className: "flex items-center gap-2 rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_55%)] px-3 py-2.5 text-sm text-muted-foreground",
74
- children: [/* @__PURE__ */ f(l, { className: "size-4 animate-spin" }), E]
75
- }) : B.length === 0 ? /* @__PURE__ */ f("div", {
76
- "data-slot": "select-state",
77
- className: "rounded-[var(--radius-md)] border border-[color:var(--aui-card-border,var(--border))] bg-[color:color-mix(in_oklch,var(--muted),transparent_55%)] px-3 py-2.5 text-sm text-muted-foreground",
78
- children: b
79
- }) : B.map((t) => {
80
- let n = t.value === h;
81
- return /* @__PURE__ */ f(i, {
82
- value: t.value,
83
- disabled: t.disabled,
84
- className: e("rounded-[var(--radius-md)]", j),
85
- children: N ? N(t, { selected: n }) : /* @__PURE__ */ p("span", {
86
- className: "flex min-w-0 flex-1 flex-col",
87
- children: [/* @__PURE__ */ p("span", {
88
- className: "flex min-w-0 items-center gap-2",
89
- children: [/* @__PURE__ */ f("span", {
90
- className: "truncate",
91
- children: t.label
92
- }), n ? /* @__PURE__ */ f(c, { className: "ml-auto size-3.5 text-primary" }) : null]
93
- }), t.description && /* @__PURE__ */ f("span", {
94
- className: "truncate text-xs text-muted-foreground",
95
- children: t.description
96
- })]
97
- })
98
- }, t.value);
99
- })]
100
- })]
101
- });
4
+ function n(n) {
5
+ return /* @__PURE__ */ t(e, { ...n });
102
6
  }
103
7
  //#endregion
104
- export { h as SimpleSelect };
8
+ export { n as SimpleSelect };
@@ -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;