tembro 2.0.6 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. package/dist/components/calendar/calendar.cjs +1 -1
  2. package/dist/components/calendar/calendar.d.ts +2 -1
  3. package/dist/components/calendar/calendar.js +126 -122
  4. package/dist/components/calendar/date-range-picker.cjs +1 -1
  5. package/dist/components/calendar/date-range-picker.d.ts +2 -1
  6. package/dist/components/calendar/date-range-picker.js +39 -39
  7. package/dist/components/charts/charts.cjs +1 -1
  8. package/dist/components/charts/charts.d.ts +13 -4
  9. package/dist/components/charts/charts.js +76 -46
  10. package/dist/components/charts/progress-ring.cjs +1 -1
  11. package/dist/components/charts/progress-ring.d.ts +3 -1
  12. package/dist/components/charts/progress-ring.js +11 -10
  13. package/dist/components/data-table/data-table-column-visibility-menu.cjs +1 -1
  14. package/dist/components/data-table/data-table-column-visibility-menu.d.ts +4 -1
  15. package/dist/components/data-table/data-table-column-visibility-menu.js +36 -8
  16. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  17. package/dist/components/data-table/data-table-toolbar.js +12 -13
  18. package/dist/components/display/carousel.cjs +1 -1
  19. package/dist/components/display/carousel.d.ts +9 -1
  20. package/dist/components/display/carousel.js +123 -81
  21. package/dist/components/display/code-block.cjs +2 -2
  22. package/dist/components/display/code-block.d.ts +2 -1
  23. package/dist/components/display/code-block.js +17 -12
  24. package/dist/components/display/delta-badge.cjs +1 -1
  25. package/dist/components/display/delta-badge.d.ts +2 -1
  26. package/dist/components/display/delta-badge.js +11 -7
  27. package/dist/components/display/kanban.cjs +1 -1
  28. package/dist/components/display/kanban.d.ts +4 -1
  29. package/dist/components/display/kanban.js +60 -33
  30. package/dist/components/display/metric-grid.cjs +1 -1
  31. package/dist/components/display/metric-grid.d.ts +1 -0
  32. package/dist/components/display/metric-grid.js +1 -1
  33. package/dist/components/display/qr-code.cjs +1 -1
  34. package/dist/components/display/qr-code.d.ts +2 -1
  35. package/dist/components/display/qr-code.js +19 -16
  36. package/dist/components/display/tag.cjs +1 -1
  37. package/dist/components/display/tag.d.ts +2 -1
  38. package/dist/components/display/tag.js +28 -22
  39. package/dist/components/display/tree-view.cjs +1 -1
  40. package/dist/components/display/tree-view.d.ts +9 -1
  41. package/dist/components/display/tree-view.js +104 -40
  42. package/dist/components/display/trend-card.cjs +1 -1
  43. package/dist/components/display/trend-card.js +27 -41
  44. package/dist/components/feedback/alert.cjs +1 -1
  45. package/dist/components/feedback/alert.d.ts +2 -1
  46. package/dist/components/feedback/alert.js +6 -6
  47. package/dist/components/feedback/loading-state.cjs +1 -1
  48. package/dist/components/feedback/loading-state.d.ts +3 -1
  49. package/dist/components/feedback/loading-state.js +23 -10
  50. package/dist/components/feedback/page-state.cjs +1 -1
  51. package/dist/components/feedback/page-state.d.ts +2 -1
  52. package/dist/components/feedback/page-state.js +7 -4
  53. package/dist/components/form/form-field-shell.cjs +1 -1
  54. package/dist/components/form/form-field-shell.d.ts +4 -2
  55. package/dist/components/form/form-field-shell.js +57 -41
  56. package/dist/components/form/form-input.cjs +1 -1
  57. package/dist/components/form/form-input.js +2 -0
  58. package/dist/components/form/form-select.cjs +1 -1
  59. package/dist/components/form/form-select.js +2 -0
  60. package/dist/components/form/form-switch.cjs +1 -1
  61. package/dist/components/form/form-switch.d.ts +1 -1
  62. package/dist/components/form/form-switch.js +58 -54
  63. package/dist/components/form/form-textarea.cjs +1 -1
  64. package/dist/components/form/form-textarea.d.ts +1 -1
  65. package/dist/components/form/form-textarea.js +29 -27
  66. package/dist/components/layout/app-sidebar.cjs +1 -1
  67. package/dist/components/layout/app-sidebar.d.ts +1 -0
  68. package/dist/components/layout/app-sidebar.js +36 -36
  69. package/dist/components/layout/breadcrumbs.cjs +1 -1
  70. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  71. package/dist/components/layout/breadcrumbs.js +7 -7
  72. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  73. package/dist/components/modern/calendar-scheduler.d.ts +5 -1
  74. package/dist/components/modern/calendar-scheduler.js +47 -28
  75. package/dist/components/modern/dual-list-picker.cjs +1 -1
  76. package/dist/components/modern/dual-list-picker.d.ts +5 -1
  77. package/dist/components/modern/dual-list-picker.js +81 -23
  78. package/dist/components/modern/rich-text-editor.cjs +1 -1
  79. package/dist/components/modern/rich-text-editor.d.ts +3 -1
  80. package/dist/components/modern/rich-text-editor.js +12 -9
  81. package/dist/components/modern/tour.cjs +1 -1
  82. package/dist/components/modern/tour.d.ts +5 -1
  83. package/dist/components/modern/tour.js +57 -35
  84. package/dist/components/navigation/command-bar.cjs +1 -1
  85. package/dist/components/navigation/command-bar.d.ts +3 -1
  86. package/dist/components/navigation/command-bar.js +10 -7
  87. package/dist/components/navigation/demo.cjs +1 -1
  88. package/dist/components/navigation/demo.js +0 -1
  89. package/dist/components/navigation/nav-tabs.cjs +1 -1
  90. package/dist/components/navigation/nav-tabs.js +39 -27
  91. package/dist/components/navigation/page-tabs.cjs +1 -1
  92. package/dist/components/navigation/page-tabs.js +41 -30
  93. package/dist/components/navigation/pagination.cjs +1 -1
  94. package/dist/components/navigation/pagination.d.ts +7 -1
  95. package/dist/components/navigation/pagination.js +48 -25
  96. package/dist/components/notifications/notification-center.cjs +1 -1
  97. package/dist/components/notifications/notification-center.d.ts +3 -1
  98. package/dist/components/notifications/notification-center.js +56 -38
  99. package/dist/components/notifications/toast.cjs +1 -1
  100. package/dist/components/notifications/toast.d.ts +1 -0
  101. package/dist/components/notifications/toast.js +4 -0
  102. package/dist/components/overlay/alert-dialog.cjs +1 -1
  103. package/dist/components/overlay/alert-dialog.js +1 -1
  104. package/dist/components/overlay/confirm-dialog.cjs +1 -1
  105. package/dist/components/overlay/confirm-dialog.d.ts +4 -2
  106. package/dist/components/overlay/confirm-dialog.js +31 -22
  107. package/dist/components/overlay/drawer.cjs +1 -1
  108. package/dist/components/overlay/drawer.d.ts +3 -1
  109. package/dist/components/overlay/drawer.js +24 -16
  110. package/dist/components/ui/accordion/index.d.ts +4 -0
  111. package/dist/components/ui/badge/index.cjs +1 -1
  112. package/dist/components/ui/badge/index.d.ts +1 -1
  113. package/dist/components/ui/badge/index.js +2 -1
  114. package/dist/components/ui/button/index.cjs +1 -1
  115. package/dist/components/ui/button/index.d.ts +2 -1
  116. package/dist/components/ui/button/index.js +13 -10
  117. package/dist/components/ui/dialog/index.cjs +1 -1
  118. package/dist/components/ui/dialog/index.js +2 -1
  119. package/dist/components/ui/hover-card.cjs +1 -1
  120. package/dist/components/ui/hover-card.d.ts +11 -3
  121. package/dist/components/ui/hover-card.js +29 -24
  122. package/dist/components/ui/input/index.d.ts +1 -1
  123. package/dist/components/ui/popover/index.cjs +1 -1
  124. package/dist/components/ui/popover/index.d.ts +2 -2
  125. package/dist/components/ui/popover/index.js +6 -5
  126. package/dist/components/ui/radio-group/index.cjs +1 -1
  127. package/dist/components/ui/radio-group/index.d.ts +5 -1
  128. package/dist/components/ui/radio-group/index.js +50 -16
  129. package/dist/components/ui/right-click-menu/index.cjs +1 -1
  130. package/dist/components/ui/right-click-menu/index.d.ts +5 -1
  131. package/dist/components/ui/right-click-menu/index.js +77 -23
  132. package/dist/components/ui/segmented-control/index.cjs +1 -1
  133. package/dist/components/ui/segmented-control/index.d.ts +2 -1
  134. package/dist/components/ui/segmented-control/index.js +23 -11
  135. package/dist/components/ui/select/index.cjs +1 -1
  136. package/dist/components/ui/select/index.d.ts +8 -1
  137. package/dist/components/ui/select/index.js +40 -35
  138. package/dist/components/ui/switch/index.cjs +1 -1
  139. package/dist/components/ui/switch/index.d.ts +18 -0
  140. package/dist/components/ui/switch/index.js +47 -17
  141. package/dist/components/ui/tabs/index.cjs +1 -1
  142. package/dist/components/ui/tabs/index.d.ts +14 -4
  143. package/dist/components/ui/tabs/index.js +11 -8
  144. package/dist/components/ui/textarea/index.cjs +1 -1
  145. package/dist/components/ui/textarea/index.d.ts +10 -2
  146. package/dist/components/ui/textarea/index.js +37 -8
  147. package/dist/components/ui/textarea.cjs +1 -0
  148. package/dist/components/ui/textarea.d.ts +1 -0
  149. package/dist/components/ui/textarea.js +2 -0
  150. package/dist/components/ui/tooltip/index.cjs +1 -1
  151. package/dist/components/ui/tooltip/index.d.ts +11 -3
  152. package/dist/components/ui/tooltip/index.js +41 -20
  153. package/dist/components/upload/file-upload.cjs +1 -1
  154. package/dist/components/upload/file-upload.d.ts +8 -1
  155. package/dist/components/upload/file-upload.js +132 -100
  156. package/dist/components/upload/image-upload.cjs +1 -1
  157. package/dist/components/upload/image-upload.d.ts +5 -1
  158. package/dist/components/upload/image-upload.js +34 -9
  159. package/dist/index.cjs +1 -1
  160. package/dist/index.js +31 -31
  161. package/dist/public-component-surface.cjs +1 -1
  162. package/dist/public-component-surface.js +15 -0
  163. package/dist/showcase/component-api-schema.cjs +1 -1
  164. package/dist/showcase/component-api-schema.js +187 -10
  165. package/dist/showcase/fallback.cjs +3 -3
  166. package/dist/showcase/fallback.js +221 -243
  167. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  168. package/dist/showcase/premium/alert/showcase.js +1 -0
  169. package/dist/showcase/premium/app-sidebar/showcase.cjs +1 -1
  170. package/dist/showcase/premium/app-sidebar/showcase.js +1 -0
  171. package/dist/showcase/premium/badge/showcase.cjs +1 -1
  172. package/dist/showcase/premium/badge/showcase.js +7 -0
  173. package/dist/showcase/premium/badge/types.d.ts +1 -1
  174. package/dist/showcase/premium/breadcrumbs/showcase.cjs +1 -1
  175. package/dist/showcase/premium/breadcrumbs/showcase.js +12 -1
  176. package/dist/showcase/premium/button/mock.cjs +1 -4
  177. package/dist/showcase/premium/button/mock.js +1 -1
  178. package/dist/showcase/premium/button/showcase.cjs +1 -1
  179. package/dist/showcase/premium/button/showcase.js +2 -2
  180. package/dist/showcase/premium/card/showcase.cjs +1 -1
  181. package/dist/showcase/premium/card/showcase.js +96 -47
  182. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  183. package/dist/showcase/premium/carousel/showcase.js +76 -49
  184. package/dist/showcase/premium/command-bar/showcase.cjs +1 -1
  185. package/dist/showcase/premium/command-bar/showcase.js +2 -0
  186. package/dist/showcase/premium/data-table/mock.cjs +12 -11
  187. package/dist/showcase/premium/data-table/mock.js +1 -1
  188. package/dist/showcase/premium/file-upload/showcase.cjs +1 -1
  189. package/dist/showcase/premium/file-upload/showcase.js +25 -4
  190. package/dist/showcase/premium/image-upload/showcase.cjs +1 -1
  191. package/dist/showcase/premium/image-upload/showcase.js +4 -1
  192. package/dist/showcase/premium/index.cjs +1 -1
  193. package/dist/showcase/premium/index.js +396 -402
  194. package/dist/showcase/premium/loading-state/showcase.cjs +1 -1
  195. package/dist/showcase/premium/loading-state/showcase.js +3 -1
  196. package/dist/showcase/premium/metric-grid/showcase.cjs +1 -1
  197. package/dist/showcase/premium/metric-grid/showcase.js +96 -28
  198. package/dist/showcase/premium/notification-center/showcase.cjs +1 -1
  199. package/dist/showcase/premium/notification-center/showcase.js +7 -3
  200. package/dist/showcase/premium/page-state/showcase.cjs +1 -1
  201. package/dist/showcase/premium/page-state/showcase.js +5 -1
  202. package/dist/showcase/premium/pagination/showcase.cjs +1 -1
  203. package/dist/showcase/premium/pagination/showcase.js +15 -2
  204. package/dist/showcase/premium/popover/showcase.cjs +1 -1
  205. package/dist/showcase/premium/popover/showcase.js +85 -50
  206. package/dist/showcase/premium/radio-group/showcase.cjs +1 -1
  207. package/dist/showcase/premium/radio-group/showcase.js +27 -4
  208. package/dist/showcase/premium/right-click-menu/showcase.cjs +1 -1
  209. package/dist/showcase/premium/right-click-menu/showcase.js +56 -43
  210. package/dist/showcase/premium/segmented-control/showcase.cjs +1 -1
  211. package/dist/showcase/premium/segmented-control/showcase.js +1 -0
  212. package/dist/showcase/premium/select/data.cjs +1 -1
  213. package/dist/showcase/premium/select/data.js +69 -34
  214. package/dist/showcase/premium/select/mock.cjs +19 -6
  215. package/dist/showcase/premium/select/mock.js +3 -2
  216. package/dist/showcase/premium/select/showcase.cjs +1 -1
  217. package/dist/showcase/premium/select/showcase.js +43 -18
  218. package/dist/showcase/premium/select/types.d.ts +3 -0
  219. package/dist/showcase/premium/statistic/showcase.cjs +1 -1
  220. package/dist/showcase/premium/statistic/showcase.js +57 -25
  221. package/dist/showcase/premium/switch/showcase.cjs +1 -1
  222. package/dist/showcase/premium/switch/showcase.js +25 -14
  223. package/dist/showcase/premium/tabs/showcase.cjs +1 -1
  224. package/dist/showcase/premium/tabs/showcase.js +171 -48
  225. package/dist/showcase/premium/textarea/mock.cjs +12 -4
  226. package/dist/showcase/premium/textarea/mock.js +1 -1
  227. package/dist/showcase/premium/textarea/showcase.cjs +1 -1
  228. package/dist/showcase/premium/textarea/showcase.js +8 -3
  229. package/dist/showcase/premium/toast/showcase.cjs +1 -1
  230. package/dist/showcase/premium/toast/showcase.js +32 -6
  231. package/dist/showcase/premium/types.d.ts +1 -1
  232. package/dist/showcase/registry-quality.cjs +1 -1
  233. package/dist/showcase/registry-quality.js +1 -0
  234. package/dist/showcase/render-registry-preview.cjs +1 -1
  235. package/dist/showcase/render-registry-preview.js +57 -79
  236. package/dist/showcase/site-data.cjs +1 -1
  237. package/dist/showcase/site-data.js +60 -21
  238. package/dist/showcase/tembro-registry.json.cjs +1 -1
  239. package/dist/showcase/tembro-registry.json.js +34 -20
  240. package/dist/showcase/types.d.ts +1 -1
  241. package/package.json +1 -1
  242. package/packages/cli/dist/index.cjs +31 -31
  243. package/packages/cli/vendor/src/components/calendar/calendar.tsx +59 -50
  244. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +7 -4
  245. package/packages/cli/vendor/src/components/charts/charts.tsx +109 -66
  246. package/packages/cli/vendor/src/components/charts/progress-ring.tsx +37 -26
  247. package/packages/cli/vendor/src/components/data-table/data-table-column-visibility-menu.tsx +41 -22
  248. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +8 -6
  249. package/packages/cli/vendor/src/components/display/carousel.tsx +84 -3
  250. package/packages/cli/vendor/src/components/display/code-block.tsx +22 -2
  251. package/packages/cli/vendor/src/components/display/delta-badge.tsx +11 -11
  252. package/packages/cli/vendor/src/components/display/kanban.tsx +103 -57
  253. package/packages/cli/vendor/src/components/display/metric-grid.tsx +16 -13
  254. package/packages/cli/vendor/src/components/display/qr-code.tsx +17 -15
  255. package/packages/cli/vendor/src/components/display/tag.tsx +39 -21
  256. package/packages/cli/vendor/src/components/display/tree-view.tsx +221 -84
  257. package/packages/cli/vendor/src/components/display/trend-card.tsx +6 -40
  258. package/packages/cli/vendor/src/components/feedback/alert.tsx +3 -1
  259. package/packages/cli/vendor/src/components/feedback/loading-state.tsx +33 -17
  260. package/packages/cli/vendor/src/components/feedback/page-state.tsx +8 -7
  261. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +37 -8
  262. package/packages/cli/vendor/src/components/form/form-input.tsx +2 -0
  263. package/packages/cli/vendor/src/components/form/form-select.tsx +2 -0
  264. package/packages/cli/vendor/src/components/form/form-switch.tsx +9 -3
  265. package/packages/cli/vendor/src/components/form/form-textarea.tsx +6 -2
  266. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +3 -1
  267. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +3 -1
  268. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +28 -13
  269. package/packages/cli/vendor/src/components/modern/dual-list-picker.tsx +103 -35
  270. package/packages/cli/vendor/src/components/modern/rich-text-editor.tsx +25 -22
  271. package/packages/cli/vendor/src/components/modern/tour.tsx +47 -29
  272. package/packages/cli/vendor/src/components/navigation/command-bar.tsx +6 -0
  273. package/packages/cli/vendor/src/components/navigation/demo.tsx +0 -1
  274. package/packages/cli/vendor/src/components/navigation/nav-tabs.tsx +38 -29
  275. package/packages/cli/vendor/src/components/navigation/page-tabs.tsx +35 -23
  276. package/packages/cli/vendor/src/components/navigation/pagination.tsx +65 -31
  277. package/packages/cli/vendor/src/components/notifications/notification-center.tsx +64 -39
  278. package/packages/cli/vendor/src/components/notifications/toast.tsx +23 -21
  279. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +1 -1
  280. package/packages/cli/vendor/src/components/overlay/confirm-dialog.tsx +45 -22
  281. package/packages/cli/vendor/src/components/overlay/drawer.tsx +18 -5
  282. package/packages/cli/vendor/src/components/ui/accordion/index.tsx +4 -0
  283. package/packages/cli/vendor/src/components/ui/badge/index.tsx +2 -1
  284. package/packages/cli/vendor/src/components/ui/button/index.tsx +11 -5
  285. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +2 -1
  286. package/packages/cli/vendor/src/components/ui/hover-card.tsx +54 -28
  287. package/packages/cli/vendor/src/components/ui/popover/index.tsx +10 -8
  288. package/packages/cli/vendor/src/components/ui/radio-group/index.tsx +55 -6
  289. package/packages/cli/vendor/src/components/ui/right-click-menu/index.tsx +120 -9
  290. package/packages/cli/vendor/src/components/ui/segmented-control/index.tsx +29 -3
  291. package/packages/cli/vendor/src/components/ui/select/index.tsx +64 -31
  292. package/packages/cli/vendor/src/components/ui/switch/index.tsx +71 -6
  293. package/packages/cli/vendor/src/components/ui/tabs/index.tsx +22 -6
  294. package/packages/cli/vendor/src/components/ui/textarea/index.tsx +105 -15
  295. package/packages/cli/vendor/src/components/ui/textarea.tsx +2 -0
  296. package/packages/cli/vendor/src/components/ui/tooltip/index.tsx +67 -22
  297. package/packages/cli/vendor/src/components/upload/file-upload.tsx +120 -57
  298. package/packages/cli/vendor/src/components/upload/image-upload.tsx +71 -24
  299. package/packages/cli/vendor/src/public-component-surface.ts +3 -0
  300. package/packages/cli/vendor/src/showcase/component-api-schema.ts +79 -41
  301. package/packages/cli/vendor/src/showcase/fallback.tsx +4 -19
  302. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +1 -0
  303. package/packages/cli/vendor/src/showcase/premium/app-sidebar/showcase.tsx +1 -0
  304. package/packages/cli/vendor/src/showcase/premium/badge/showcase.tsx +4 -2
  305. package/packages/cli/vendor/src/showcase/premium/badge/types.ts +1 -1
  306. package/packages/cli/vendor/src/showcase/premium/breadcrumbs/showcase.tsx +3 -1
  307. package/packages/cli/vendor/src/showcase/premium/button/mock.ts +2 -5
  308. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +2 -2
  309. package/packages/cli/vendor/src/showcase/premium/card/showcase.tsx +26 -1
  310. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +19 -3
  311. package/packages/cli/vendor/src/showcase/premium/command-bar/showcase.tsx +1 -1
  312. package/packages/cli/vendor/src/showcase/premium/data-table/mock.ts +26 -25
  313. package/packages/cli/vendor/src/showcase/premium/file-upload/showcase.tsx +21 -1
  314. package/packages/cli/vendor/src/showcase/premium/image-upload/showcase.tsx +4 -1
  315. package/packages/cli/vendor/src/showcase/premium/index.ts +0 -2
  316. package/packages/cli/vendor/src/showcase/premium/loading-state/showcase.tsx +1 -1
  317. package/packages/cli/vendor/src/showcase/premium/metric-grid/showcase.tsx +36 -4
  318. package/packages/cli/vendor/src/showcase/premium/notification-center/showcase.tsx +4 -3
  319. package/packages/cli/vendor/src/showcase/premium/page-state/showcase.tsx +1 -0
  320. package/packages/cli/vendor/src/showcase/premium/pagination/showcase.tsx +13 -1
  321. package/packages/cli/vendor/src/showcase/premium/popover/showcase.tsx +27 -11
  322. package/packages/cli/vendor/src/showcase/premium/radio-group/showcase.tsx +13 -1
  323. package/packages/cli/vendor/src/showcase/premium/right-click-menu/showcase.tsx +8 -5
  324. package/packages/cli/vendor/src/showcase/premium/segmented-control/showcase.tsx +1 -0
  325. package/packages/cli/vendor/src/showcase/premium/select/data.ts +12 -3
  326. package/packages/cli/vendor/src/showcase/premium/select/mock.ts +4 -4
  327. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +22 -1
  328. package/packages/cli/vendor/src/showcase/premium/select/types.ts +3 -0
  329. package/packages/cli/vendor/src/showcase/premium/statistic/showcase.tsx +10 -1
  330. package/packages/cli/vendor/src/showcase/premium/switch/showcase.tsx +15 -6
  331. package/packages/cli/vendor/src/showcase/premium/tabs/showcase.tsx +48 -1
  332. package/packages/cli/vendor/src/showcase/premium/textarea/mock.ts +12 -4
  333. package/packages/cli/vendor/src/showcase/premium/textarea/showcase.tsx +5 -0
  334. package/packages/cli/vendor/src/showcase/premium/toast/showcase.tsx +17 -1
  335. package/packages/cli/vendor/src/showcase/premium/types.ts +1 -1
  336. package/packages/cli/vendor/src/showcase/registry-quality.ts +3 -2
  337. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +0 -15
  338. package/packages/cli/vendor/src/showcase/site-data.tsx +21 -15
  339. package/packages/cli/vendor/src/showcase/tembro-registry.json +42 -20
  340. package/packages/cli/vendor/src/showcase/types.ts +1 -1
  341. package/registry.json +18 -6
package/dist/index.js CHANGED
@@ -104,37 +104,37 @@ import { Timeline as Zn } from "./components/display/timeline.js";
104
104
  import { TreeView as Qn } from "./components/display/tree-view.js";
105
105
  import { UserCard as $n } from "./components/display/user-card.js";
106
106
  import { DeltaBadge as er } from "./components/display/delta-badge.js";
107
- import { TrendCard as tr } from "./components/display/trend-card.js";
108
- import { ComparisonCard as nr } from "./components/display/comparison-card.js";
107
+ import { BarChart as tr, ChartFrame as nr, ChartLegend as rr, DonutChart as ir, LineChart as ar, MetricTrend as or, Sparkline as sr } from "./components/charts/charts.js";
108
+ import { TrendCard as cr } from "./components/display/trend-card.js";
109
+ import { ComparisonCard as lr } from "./components/display/comparison-card.js";
109
110
  import { SmartCard as $ } from "./components/display/smart-card.js";
110
- import { Carousel as rr, CarouselItem as ir } from "./components/display/carousel.js";
111
- import { QRCode as ar, QRCodeSvg as or } from "./components/display/qr-code.js";
112
- import { Chip as sr, Tag as cr, TagGroup as lr } from "./components/display/tag.js";
113
- import { Blockquote as ur, Heading as dr, Mark as fr, Spoiler as pr, SpoilerSummary as mr, Text as hr } from "./components/display/typography.js";
114
- import { CalendarScheduler as gr } from "./components/modern/calendar-scheduler.js";
115
- import { DualListPicker as _r } from "./components/modern/dual-list-picker.js";
116
- import { Menubar as vr, MenubarContent as yr, MenubarItem as br, MenubarMenu as xr, MenubarTrigger as Sr } from "./components/modern/menubar.js";
117
- import { NavigationMenu as Cr, NavigationMenuItem as wr, NavigationMenuLink as Tr, NavigationMenuList as Er } from "./components/modern/navigation-menu.js";
118
- import { ResizableHandle as Dr, ResizablePanel as Or, ResizablePanelGroup as kr } from "./components/modern/resizable-panel.js";
119
- import { RichTextEditor as Ar } from "./components/modern/rich-text-editor.js";
120
- import { Tour as jr } from "./components/modern/tour.js";
121
- import { DataTableBulkActions as Mr } from "./components/data-table/data-table-bulk-actions.js";
122
- import { DataTableColumnVisibilityMenu as Nr } from "./components/data-table/data-table-column-visibility-menu.js";
123
- import { DataTablePagination as Pr, getDataTablePageCount as Fr } from "./components/data-table/data-table-pagination.js";
124
- import { DataTable as Ir } from "./components/data-table/data-table.js";
125
- import { DataTableSortableHeader as Lr } from "./components/data-table/data-table-sortable-header.js";
126
- import { DataTableViewPresets as Rr } from "./components/data-table/data-table-view-presets.js";
127
- import { ToastProvider as zr, useToast as Br } from "./components/notifications/toast.js";
128
- import { NotificationCenter as Vr } from "./components/notifications/notification-center.js";
129
- import { CommandPalette as Hr, useCommandPaletteShortcut as Ur } from "./components/command/command-palette.js";
130
- import { addMonths as Wr, getMonthDays as Gr, getMonthLabel as Kr, getWeekdayLabels as qr, isAfterDate as Jr, isBeforeDate as Yr, isSameMonth as Xr, isWithinRange as Zr, parseDateKey as Qr, startOfMonth as $r, toDateKey as ei } from "./components/calendar/date-utils.js";
131
- import { Calendar as ti } from "./components/calendar/calendar.js";
132
- import { DatePicker as ni } from "./components/calendar/date-picker.js";
133
- import { DateRangePicker as ri } from "./components/calendar/date-range-picker.js";
134
- import { FileUpload as ii } from "./components/upload/file-upload.js";
135
- import { ImageUpload as ai } from "./components/upload/image-upload.js";
136
- import { FileDropzone as oi } from "./components/upload/file-dropzone.js";
137
- import { BarChart as si, ChartFrame as ci, ChartLegend as li, DonutChart as ui, LineChart as di, MetricTrend as fi, Sparkline as pi } from "./components/charts/charts.js";
111
+ import { Carousel as ur, CarouselItem as dr } from "./components/display/carousel.js";
112
+ import { QRCode as fr, QRCodeSvg as pr } from "./components/display/qr-code.js";
113
+ import { Chip as mr, Tag as hr, TagGroup as gr } from "./components/display/tag.js";
114
+ import { Blockquote as _r, Heading as vr, Mark as yr, Spoiler as br, SpoilerSummary as xr, Text as Sr } from "./components/display/typography.js";
115
+ import { CalendarScheduler as Cr } from "./components/modern/calendar-scheduler.js";
116
+ import { DualListPicker as wr } from "./components/modern/dual-list-picker.js";
117
+ import { Menubar as Tr, MenubarContent as Er, MenubarItem as Dr, MenubarMenu as Or, MenubarTrigger as kr } from "./components/modern/menubar.js";
118
+ import { NavigationMenu as Ar, NavigationMenuItem as jr, NavigationMenuLink as Mr, NavigationMenuList as Nr } from "./components/modern/navigation-menu.js";
119
+ import { ResizableHandle as Pr, ResizablePanel as Fr, ResizablePanelGroup as Ir } from "./components/modern/resizable-panel.js";
120
+ import { RichTextEditor as Lr } from "./components/modern/rich-text-editor.js";
121
+ import { Tour as Rr } from "./components/modern/tour.js";
122
+ import { DataTableBulkActions as zr } from "./components/data-table/data-table-bulk-actions.js";
123
+ import { DataTableColumnVisibilityMenu as Br } from "./components/data-table/data-table-column-visibility-menu.js";
124
+ import { DataTablePagination as Vr, getDataTablePageCount as Hr } from "./components/data-table/data-table-pagination.js";
125
+ import { DataTable as Ur } from "./components/data-table/data-table.js";
126
+ import { DataTableSortableHeader as Wr } from "./components/data-table/data-table-sortable-header.js";
127
+ import { DataTableViewPresets as Gr } from "./components/data-table/data-table-view-presets.js";
128
+ import { ToastProvider as Kr, useToast as qr } from "./components/notifications/toast.js";
129
+ import { NotificationCenter as Jr } from "./components/notifications/notification-center.js";
130
+ import { CommandPalette as Yr, useCommandPaletteShortcut as Xr } from "./components/command/command-palette.js";
131
+ import { addMonths as Zr, getMonthDays as Qr, getMonthLabel as $r, getWeekdayLabels as ei, isAfterDate as ti, isBeforeDate as ni, isSameMonth as ri, isWithinRange as ii, parseDateKey as ai, startOfMonth as oi, toDateKey as si } from "./components/calendar/date-utils.js";
132
+ import { Calendar as ci } from "./components/calendar/calendar.js";
133
+ import { DatePicker as li } from "./components/calendar/date-picker.js";
134
+ import { DateRangePicker as ui } from "./components/calendar/date-range-picker.js";
135
+ import { FileUpload as di } from "./components/upload/file-upload.js";
136
+ import { ImageUpload as fi } from "./components/upload/image-upload.js";
137
+ import { FileDropzone as pi } from "./components/upload/file-dropzone.js";
138
138
  import { KpiCard as mi, KpiGrid as hi } from "./components/charts/kpi.js";
139
139
  import { ProgressRing as gi } from "./components/charts/progress-ring.js";
140
140
  import { HorizontalBarChart as _i } from "./components/charts/horizontal-bar-chart.js";
@@ -145,4 +145,4 @@ import { useBeforeUnloadWhenDirty as xi } from "./hooks/use-before-unload-when-d
145
145
  import { useDisclosure as Si } from "./hooks/use-disclosure.js";
146
146
  import { useDebouncedCallback as Ci, useDebouncedValue as wi } from "./hooks/use-debounce.js";
147
147
  import { useDataTableViewState as Ti } from "./hooks/use-data-table-view-state.js";
148
- export { Xe as Accordion, Ze as AccordionContent, Qe as AccordionRoot, $e as AccordionTrigger, _ as ActionMenu, kn as ActivityFeed, Sn as Alert, Ft as AlertDialog, Et as AnchorNav, gt as AppSidebar, $t as AsyncMultiSelect, Q as AsyncSelect, An as Avatar, jn as AvatarGroup, oe as Badge, si as BarChart, ur as Blockquote, vt as Breadcrumbs, ne as Button, v as ButtonGroup, ti as Calendar, gr as CalendarScheduler, q as Card, J as CardAction, Y as CardContent, X as CardDescription, Z as CardFooter, re as CardHeader, ie as CardTitle, rr as Carousel, ir as CarouselItem, ci as ChartFrame, li as ChartLegend, G as Checkbox, sr as Chip, O as ClearableInput, Pn as CodeBlock, Ke as Collapse, qe as CollapseContent, Je as CollapseGroup, Ye as CollapseTrigger, nn as ColorInput, en as Combobox, Mt as CommandBar, Hr as CommandPalette, nr as ComparisonCard, zt as ConfirmDialog, y as CopyButton, b as CopyField, mt as DEFAULT_MOBILE_BREAKPOINT, Dn as DataList, On as DataListRow, Fn as DataState, Ir as DataTable, Mr as DataTableBulkActions, Nr as DataTableColumnVisibilityMenu, Pr as DataTablePagination, Lr as DataTableSortableHeader, Rr as DataTableViewPresets, k as DateInput, ni as DatePicker, A as DateRangeInput, ri as DateRangePicker, fn as DateTimePicker, er as DeltaBadge, En as DescriptionList, Mn as Descriptions, fe as Dialog, It as DialogActionButton, Lt as DialogActions, pe as DialogClose, me as DialogContent, he as DialogDescription, ge as DialogFooter, _e as DialogHeader, ve as DialogOverlay, ye as DialogPortal, be as DialogTitle, xe as DialogTrigger, rt as Divider, ui as DonutChart, Bt as Drawer, Vt as DrawerCloseButton, t as DropdownMenu, n as DropdownMenuCheckboxItem, r as DropdownMenuContent, i as DropdownMenuGroup, a as DropdownMenuItem, o as DropdownMenuItemDescription, s as DropdownMenuLabel, c as DropdownMenuPortal, l as DropdownMenuRadioGroup, u as DropdownMenuRadioItem, d as DropdownMenuSeparator, f as DropdownMenuShortcut, p as DropdownMenuSub, m as DropdownMenuSubContent, h as DropdownMenuSubTrigger, g as DropdownMenuTrigger, _r as DualListPicker, oi as FileDropzone, ii as FileUpload, Nt as FilterBar, xn as FormAsyncSelect, hn as FormFieldShell, _n as FormInput, vn as FormSelect, yn as FormSwitch, bn as FormTextarea, dr as Heading, _i as HorizontalBarChart, ct as HoverCard, ai as ImageUpload, $ as InfoCard, un as InlineEditable, wn as InlineState, W as Input, S as InputGroup, C as InputGroupAddon, w as InputGroupButton, T as InputGroupInput, E as InputGroupText, D as InputGroupTextarea, dn as JsonInput, Nn as KanbanBoard, lt as Kbd, mi as KpiCard, hi as KpiGrid, di as LineChart, In as List, Ln as ListRow, at as LoadingOverlay, Cn as LoadingState, fr as Mark, N as MaskedInput, vr as Menubar, yr as MenubarContent, br as MenubarItem, xr as MenubarMenu, Sr as MenubarTrigger, Rn as MetricGrid, fi as MetricTrend, Rt as ModalShell, j as MoneyInput, Dt as NavTabs, Cr as NavigationMenu, wr as NavigationMenuItem, Tr as NavigationMenuLink, Er as NavigationMenuList, Vr as NotificationCenter, P as NumberInput, rn as OtpInput, yt as PageContainer, Tn as PageState, Ot as PageTabs, kt as Pagination, L as PasswordInput, R as PhoneInput, Se as Popover, Ce as PopoverContent, we as PopoverDescription, Te as PopoverHeader, Ee as PopoverTitle, De as PopoverTrigger, zn as Progress, Bn as ProgressCard, Hn as ProgressCircle, gi as ProgressRing, Un as PropertyGrid, ar as QRCode, or as QRCodeSvg, V as QuantityInput, an as QuantityStepper, pt as QuickActionGrid, ut as RadioGroup, sn as RangeSlider, on as Rating, Dr as ResizableHandle, Or as ResizablePanel, kr as ResizablePanelGroup, Wn as Result, Gn as ResultAction, Ar as RichTextEditor, ft as RightClickMenu, Pt as SavedFilterSelect, dt as ScrollBox, U as SearchInput, bt as Section, Ct as SectionHeader, it as SegmentedControl, Oe as Select, ke as SelectContent, Ae as SelectGroup, je as SelectItem, Me as SelectLabel, Ne as SelectScrollDownButton, Pe as SelectScrollUpButton, Fe as SelectSeparator, Ie as SelectTrigger, Le as SelectValue, Ht as Sheet, Ut as SheetClose, Wt as SheetContent, Gt as SheetDescription, Kt as SheetFooter, qt as SheetHeader, Jt as SheetOverlay, Yt as SheetPortal, Xt as SheetShell, Zt as SheetTitle, Qt as SheetTrigger, _t as Sidebar, wt as SidebarNav, tn as SimpleSelect, et as Skeleton, tt as SkeletonCard, nt as SkeletonText, cn as Slider, $ as SmartCard, pi as Sparkline, ot as Spinner, xt as SplitLayout, pr as Spoiler, mr as SpoilerSummary, Kn as Statistic, qn as StatisticCard, Jn as StatisticGrid, Yn as StatusDot, Xn as StatusLegend, vi as Stepper, jt as StepperTabs, Tt as StickyFooterBar, K as Switch, Re as Table, ze as TableBody, Be as TableCaption, Ve as TableCell, He as TableFooter, Ue as TableHead, We as TableHeader, Ge as TableRow, ce as Tabs, le as TabsContent, ue as TabsList, de as TabsTrigger, cr as Tag, lr as TagGroup, ln as TagInput, hr as Text, x as Textarea, pn as TimePicker, mn as TimeRangePicker, Zn as Timeline, zr as ToastProvider, St as Toolbar, st as Tooltip, jr as Tour, Qn as TreeView, tr as TrendCard, $n as UserCard, yi as Wizard, Wr as addMonths, se as badgeVariants, e as buttonVariants, ae as cardVariants, F as clampNumber, H as clampQuantity, ee as cn, z as formatPhoneDigits, Fr as getDataTablePageCount, Gr as getMonthDays, Kr as getMonthLabel, At as getPaginationItems, Vn as getProgressPercent, qr as getWeekdayLabels, Jr as isAfterDate, Yr as isBeforeDate, Xr as isSameMonth, Zr as isWithinRange, B as onlyDigits, Qr as parseDateKey, M as parseMoneyInput, I as parseNumberInput, gn as resolveFormFieldIds, $r as startOfMonth, te as stopInteractivePropagation, ei as toDateKey, xi as useBeforeUnloadWhenDirty, Ur as useCommandPaletteShortcut, Ti as useDataTableViewState, Ci as useDebouncedCallback, wi as useDebouncedValue, Si as useDisclosure, ht as useIsMobile, bi as useSessionStorageState, Br as useToast };
148
+ export { Xe as Accordion, Ze as AccordionContent, Qe as AccordionRoot, $e as AccordionTrigger, _ as ActionMenu, kn as ActivityFeed, Sn as Alert, Ft as AlertDialog, Et as AnchorNav, gt as AppSidebar, $t as AsyncMultiSelect, Q as AsyncSelect, An as Avatar, jn as AvatarGroup, oe as Badge, tr as BarChart, _r as Blockquote, vt as Breadcrumbs, ne as Button, v as ButtonGroup, ci as Calendar, Cr as CalendarScheduler, q as Card, J as CardAction, Y as CardContent, X as CardDescription, Z as CardFooter, re as CardHeader, ie as CardTitle, ur as Carousel, dr as CarouselItem, nr as ChartFrame, rr as ChartLegend, G as Checkbox, mr as Chip, O as ClearableInput, Pn as CodeBlock, Ke as Collapse, qe as CollapseContent, Je as CollapseGroup, Ye as CollapseTrigger, nn as ColorInput, en as Combobox, Mt as CommandBar, Yr as CommandPalette, lr as ComparisonCard, zt as ConfirmDialog, y as CopyButton, b as CopyField, mt as DEFAULT_MOBILE_BREAKPOINT, Dn as DataList, On as DataListRow, Fn as DataState, Ur as DataTable, zr as DataTableBulkActions, Br as DataTableColumnVisibilityMenu, Vr as DataTablePagination, Wr as DataTableSortableHeader, Gr as DataTableViewPresets, k as DateInput, li as DatePicker, A as DateRangeInput, ui as DateRangePicker, fn as DateTimePicker, er as DeltaBadge, En as DescriptionList, Mn as Descriptions, fe as Dialog, It as DialogActionButton, Lt as DialogActions, pe as DialogClose, me as DialogContent, he as DialogDescription, ge as DialogFooter, _e as DialogHeader, ve as DialogOverlay, ye as DialogPortal, be as DialogTitle, xe as DialogTrigger, rt as Divider, ir as DonutChart, Bt as Drawer, Vt as DrawerCloseButton, t as DropdownMenu, n as DropdownMenuCheckboxItem, r as DropdownMenuContent, i as DropdownMenuGroup, a as DropdownMenuItem, o as DropdownMenuItemDescription, s as DropdownMenuLabel, c as DropdownMenuPortal, l as DropdownMenuRadioGroup, u as DropdownMenuRadioItem, d as DropdownMenuSeparator, f as DropdownMenuShortcut, p as DropdownMenuSub, m as DropdownMenuSubContent, h as DropdownMenuSubTrigger, g as DropdownMenuTrigger, wr as DualListPicker, pi as FileDropzone, di as FileUpload, Nt as FilterBar, xn as FormAsyncSelect, hn as FormFieldShell, _n as FormInput, vn as FormSelect, yn as FormSwitch, bn as FormTextarea, vr as Heading, _i as HorizontalBarChart, ct as HoverCard, fi as ImageUpload, $ as InfoCard, un as InlineEditable, wn as InlineState, W as Input, S as InputGroup, C as InputGroupAddon, w as InputGroupButton, T as InputGroupInput, E as InputGroupText, D as InputGroupTextarea, dn as JsonInput, Nn as KanbanBoard, lt as Kbd, mi as KpiCard, hi as KpiGrid, ar as LineChart, In as List, Ln as ListRow, at as LoadingOverlay, Cn as LoadingState, yr as Mark, N as MaskedInput, Tr as Menubar, Er as MenubarContent, Dr as MenubarItem, Or as MenubarMenu, kr as MenubarTrigger, Rn as MetricGrid, or as MetricTrend, Rt as ModalShell, j as MoneyInput, Dt as NavTabs, Ar as NavigationMenu, jr as NavigationMenuItem, Mr as NavigationMenuLink, Nr as NavigationMenuList, Jr as NotificationCenter, P as NumberInput, rn as OtpInput, yt as PageContainer, Tn as PageState, Ot as PageTabs, kt as Pagination, L as PasswordInput, R as PhoneInput, Se as Popover, Ce as PopoverContent, we as PopoverDescription, Te as PopoverHeader, Ee as PopoverTitle, De as PopoverTrigger, zn as Progress, Bn as ProgressCard, Hn as ProgressCircle, gi as ProgressRing, Un as PropertyGrid, fr as QRCode, pr as QRCodeSvg, V as QuantityInput, an as QuantityStepper, pt as QuickActionGrid, ut as RadioGroup, sn as RangeSlider, on as Rating, Pr as ResizableHandle, Fr as ResizablePanel, Ir as ResizablePanelGroup, Wn as Result, Gn as ResultAction, Lr as RichTextEditor, ft as RightClickMenu, Pt as SavedFilterSelect, dt as ScrollBox, U as SearchInput, bt as Section, Ct as SectionHeader, it as SegmentedControl, Oe as Select, ke as SelectContent, Ae as SelectGroup, je as SelectItem, Me as SelectLabel, Ne as SelectScrollDownButton, Pe as SelectScrollUpButton, Fe as SelectSeparator, Ie as SelectTrigger, Le as SelectValue, Ht as Sheet, Ut as SheetClose, Wt as SheetContent, Gt as SheetDescription, Kt as SheetFooter, qt as SheetHeader, Jt as SheetOverlay, Yt as SheetPortal, Xt as SheetShell, Zt as SheetTitle, Qt as SheetTrigger, _t as Sidebar, wt as SidebarNav, tn as SimpleSelect, et as Skeleton, tt as SkeletonCard, nt as SkeletonText, cn as Slider, $ as SmartCard, sr as Sparkline, ot as Spinner, xt as SplitLayout, br as Spoiler, xr as SpoilerSummary, Kn as Statistic, qn as StatisticCard, Jn as StatisticGrid, Yn as StatusDot, Xn as StatusLegend, vi as Stepper, jt as StepperTabs, Tt as StickyFooterBar, K as Switch, Re as Table, ze as TableBody, Be as TableCaption, Ve as TableCell, He as TableFooter, Ue as TableHead, We as TableHeader, Ge as TableRow, ce as Tabs, le as TabsContent, ue as TabsList, de as TabsTrigger, hr as Tag, gr as TagGroup, ln as TagInput, Sr as Text, x as Textarea, pn as TimePicker, mn as TimeRangePicker, Zn as Timeline, Kr as ToastProvider, St as Toolbar, st as Tooltip, Rr as Tour, Qn as TreeView, cr as TrendCard, $n as UserCard, yi as Wizard, Zr as addMonths, se as badgeVariants, e as buttonVariants, ae as cardVariants, F as clampNumber, H as clampQuantity, ee as cn, z as formatPhoneDigits, Hr as getDataTablePageCount, Qr as getMonthDays, $r as getMonthLabel, At as getPaginationItems, Vn as getProgressPercent, ei as getWeekdayLabels, ti as isAfterDate, ni as isBeforeDate, ri as isSameMonth, ii as isWithinRange, B as onlyDigits, ai as parseDateKey, M as parseMoneyInput, I as parseNumberInput, gn as resolveFormFieldIds, oi as startOfMonth, te as stopInteractivePropagation, si as toDateKey, xi as useBeforeUnloadWhenDirty, Xr as useCommandPaletteShortcut, Ti as useDataTableViewState, Ci as useDebouncedCallback, wi as useDebouncedValue, Si as useDisclosure, ht as useIsMobile, bi as useSessionStorageState, qr as useToast };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=[{slug:`button`,registryName:`button`,surface:`documented`},{slug:`input`,registryName:`input`,surface:`documented`},{slug:`select`,registryName:`select`,surface:`documented`},{slug:`card`,registryName:`card`,surface:`documented`},{slug:`badge`,registryName:`badge`,surface:`documented`},{slug:`checkbox`,registryName:`checkbox`,surface:`documented`},{slug:`overlay`,registryName:`dialog`,surface:`documented`},{slug:`form-field`,registryName:`form-field-shell`,surface:`documented`},{slug:`data-table`,registryName:`data-table`,surface:`documented`},{slug:`alert`,registryName:`alert`,surface:`documented`},{slug:`bar-chart`,registryName:`charts`,surface:`documented`},{slug:`sidebar`,registryName:`sidebar`,surface:`documented`},{slug:`file-upload`,registryName:`file-upload`,surface:`documented`},{slug:`progress`,registryName:`progress`,surface:`documented`}],t=[{slug:`accordion`,registryName:`accordion`,surface:`standalone`},{slug:`divider`,registryName:`divider`,surface:`standalone`},{slug:`segmented-control`,registryName:`segmented-control`,surface:`standalone`},{slug:`skeleton`,registryName:`skeleton`,surface:`standalone`},{slug:`spinner`,registryName:`spinner`,surface:`standalone`},{slug:`command-bar`,registryName:`command-bar`,surface:`standalone`},{slug:`quantity-stepper`,registryName:`quantity-stepper`,surface:`standalone`},{slug:`inline-editable`,registryName:`inline-editable`,surface:`standalone`},{slug:`avatar`,registryName:`avatar`,surface:`standalone`},{slug:`code-block`,registryName:`code-block`,surface:`standalone`},{slug:`data-state`,registryName:`data-state`,surface:`standalone`},{slug:`kanban`,registryName:`kanban`,surface:`standalone`},{slug:`list`,registryName:`list`,surface:`standalone`},{slug:`property-grid`,registryName:`property-grid`,surface:`standalone`},{slug:`statistic`,registryName:`statistic`,surface:`standalone`},{slug:`tree-view`,registryName:`tree-view`,surface:`standalone`},{slug:`copy-button`,registryName:`copy-button`,surface:`standalone`},{slug:`section`,registryName:`section`,surface:`standalone`},{slug:`sticky-footer-bar`,registryName:`sticky-footer-bar`,surface:`standalone`},{slug:`calendar-scheduler`,registryName:`calendar-scheduler`,surface:`standalone`},{slug:`dual-list-picker`,registryName:`dual-list-picker`,surface:`standalone`},{slug:`menubar`,registryName:`menubar`,surface:`standalone`},{slug:`navigation-menu`,registryName:`navigation-menu`,surface:`standalone`},{slug:`resizable-panel`,registryName:`resizable-panel`,surface:`standalone`},{slug:`rich-text-editor`,registryName:`rich-text-editor`,surface:`standalone`},{slug:`tour`,registryName:`tour`,surface:`standalone`},{slug:`qr-code`,registryName:`qr-code`,surface:`standalone`},{slug:`tag`,registryName:`tag`,surface:`standalone`},{slug:`carousel`,registryName:`carousel`,surface:`standalone`},{slug:`typography`,registryName:`typography`,surface:`standalone`},{slug:`json-input`,registryName:`json-input`,surface:`standalone`},{slug:`time-picker`,registryName:`time-picker`,surface:`standalone`}],n=[...e,...t],r=new Map(n.map((e,t)=>[e.slug,t])),i=new Map(n.map(e=>[e.slug,e.registryName])),a=n.map(e=>e.slug),o=new Set(a),s=t.map(e=>e.slug),c=e.map(e=>e.registryName),l=t.map(e=>e.registryName),u=n.map(e=>e.registryName);function d(e){return r.get(e)??2**53-1}function f(e){return o.has(e)}function p(e){return i.get(e)}function m(e,t){return d(e)-d(t)}exports.comparePublicComponentSurfaceOrder=m,exports.documentedPublicComponentSurfaces=e,exports.documentedPublicRegistrySurfaceNames=c,exports.getPublicComponentRegistryName=p,exports.getPublicComponentSurfaceOrder=d,exports.isPublicComponentSurfaceSlug=f,exports.publicComponentSurfaceEntries=n,exports.publicComponentSurfaceSlugSet=o,exports.publicComponentSurfaceSlugs=a,exports.publicRegistrySurfaceNames=u,exports.standalonePublicComponentSlugs=s,exports.standalonePublicComponentSurfaces=t,exports.standalonePublicRegistrySurfaceNames=l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=[{slug:`button`,registryName:`button`,surface:`documented`},{slug:`input`,registryName:`input`,surface:`documented`},{slug:`select`,registryName:`select`,surface:`documented`},{slug:`card`,registryName:`card`,surface:`documented`},{slug:`badge`,registryName:`badge`,surface:`documented`},{slug:`checkbox`,registryName:`checkbox`,surface:`documented`},{slug:`overlay`,registryName:`dialog`,surface:`documented`},{slug:`form-field`,registryName:`form-field-shell`,surface:`documented`},{slug:`data-table`,registryName:`data-table`,surface:`documented`},{slug:`calendar`,registryName:`calendar`,surface:`documented`},{slug:`date-picker`,registryName:`date-picker`,surface:`documented`},{slug:`date-range-picker`,registryName:`date-range-picker`,surface:`documented`},{slug:`alert`,registryName:`alert`,surface:`documented`},{slug:`bar-chart`,registryName:`charts`,surface:`documented`},{slug:`sidebar`,registryName:`sidebar`,surface:`documented`},{slug:`file-upload`,registryName:`file-upload`,surface:`documented`},{slug:`progress`,registryName:`progress`,surface:`documented`}],t=[{slug:`accordion`,registryName:`accordion`,surface:`standalone`},{slug:`divider`,registryName:`divider`,surface:`standalone`},{slug:`segmented-control`,registryName:`segmented-control`,surface:`standalone`},{slug:`skeleton`,registryName:`skeleton`,surface:`standalone`},{slug:`spinner`,registryName:`spinner`,surface:`standalone`},{slug:`command-bar`,registryName:`command-bar`,surface:`standalone`},{slug:`quantity-stepper`,registryName:`quantity-stepper`,surface:`standalone`},{slug:`inline-editable`,registryName:`inline-editable`,surface:`standalone`},{slug:`avatar`,registryName:`avatar`,surface:`standalone`},{slug:`code-block`,registryName:`code-block`,surface:`standalone`},{slug:`data-state`,registryName:`data-state`,surface:`standalone`},{slug:`kanban`,registryName:`kanban`,surface:`standalone`},{slug:`list`,registryName:`list`,surface:`standalone`},{slug:`property-grid`,registryName:`property-grid`,surface:`standalone`},{slug:`statistic`,registryName:`statistic`,surface:`standalone`},{slug:`tree-view`,registryName:`tree-view`,surface:`standalone`},{slug:`copy-button`,registryName:`copy-button`,surface:`standalone`},{slug:`section`,registryName:`section`,surface:`standalone`},{slug:`sticky-footer-bar`,registryName:`sticky-footer-bar`,surface:`standalone`},{slug:`calendar-scheduler`,registryName:`calendar-scheduler`,surface:`standalone`},{slug:`dual-list-picker`,registryName:`dual-list-picker`,surface:`standalone`},{slug:`menubar`,registryName:`menubar`,surface:`standalone`},{slug:`navigation-menu`,registryName:`navigation-menu`,surface:`standalone`},{slug:`resizable-panel`,registryName:`resizable-panel`,surface:`standalone`},{slug:`rich-text-editor`,registryName:`rich-text-editor`,surface:`standalone`},{slug:`tour`,registryName:`tour`,surface:`standalone`},{slug:`qr-code`,registryName:`qr-code`,surface:`standalone`},{slug:`tag`,registryName:`tag`,surface:`standalone`},{slug:`carousel`,registryName:`carousel`,surface:`standalone`},{slug:`typography`,registryName:`typography`,surface:`standalone`},{slug:`json-input`,registryName:`json-input`,surface:`standalone`},{slug:`time-picker`,registryName:`time-picker`,surface:`standalone`}],n=[...e,...t],r=new Map(n.map((e,t)=>[e.slug,t])),i=new Map(n.map(e=>[e.slug,e.registryName])),a=n.map(e=>e.slug),o=new Set(a),s=t.map(e=>e.slug),c=e.map(e=>e.registryName),l=t.map(e=>e.registryName),u=n.map(e=>e.registryName);function d(e){return r.get(e)??2**53-1}function f(e){return o.has(e)}function p(e){return i.get(e)}function m(e,t){return d(e)-d(t)}exports.comparePublicComponentSurfaceOrder=m,exports.documentedPublicComponentSurfaces=e,exports.documentedPublicRegistrySurfaceNames=c,exports.getPublicComponentRegistryName=p,exports.getPublicComponentSurfaceOrder=d,exports.isPublicComponentSurfaceSlug=f,exports.publicComponentSurfaceEntries=n,exports.publicComponentSurfaceSlugSet=o,exports.publicComponentSurfaceSlugs=a,exports.publicRegistrySurfaceNames=u,exports.standalonePublicComponentSlugs=s,exports.standalonePublicComponentSurfaces=t,exports.standalonePublicRegistrySurfaceNames=l;
@@ -45,6 +45,21 @@ var e = [
45
45
  registryName: "data-table",
46
46
  surface: "documented"
47
47
  },
48
+ {
49
+ slug: "calendar",
50
+ registryName: "calendar",
51
+ surface: "documented"
52
+ },
53
+ {
54
+ slug: "date-picker",
55
+ registryName: "date-picker",
56
+ surface: "documented"
57
+ },
58
+ {
59
+ slug: "date-range-picker",
60
+ registryName: "date-range-picker",
61
+ surface: "documented"
62
+ },
48
63
  {
49
64
  slug: "alert",
50
65
  registryName: "alert",
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={button:{slug:`button`,source:`metadata`,summary:`Action component for submit, secondary, destructive, warning, loading, icon and navigation-like flows. Verify every state in light and dark mode before shipping.`,props:[{name:`variant`,type:`'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'warning' | 'link'`,defaultValue:`'default'`,description:`Controls visual hierarchy and action tone.`,example:`variant="destructive"`},{name:`size`,type:`'xs' | 'sm' | 'default' | 'md' | 'lg' | 'xl' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'`,defaultValue:`'default'`,description:`Controls height, spacing and icon-only sizing.`,example:`size="icon-sm"`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Shows the spinner, disables interaction and communicates pending state.`,example:`loading={isSaving}`},{name:`loadingLabel`,type:`string`,defaultValue:`'Loading'`,description:`Accessible label displayed while the button is loading.`,example:`loadingLabel="Saving"`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the action and removes it from normal interaction.`,example:`disabled={!canSubmit}`},{name:`leftIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered before the label. Use for primary verbs and scan-friendly actions.`},{name:`rightIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered after the label. Use for forward navigation or external transitions.`},{name:`asChild`,type:`boolean`,defaultValue:`false`,description:`Renders the visual button style on a child element for link or router composition.`,example:`asChild`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for spacing or layout composition.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Button label or icon content. Icon-only buttons must still provide an accessible name.`},{name:`aria-label`,type:`string`,defaultValue:`-`,description:`Required for icon-only buttons so the action is announced correctly.`,notes:`Use when children are only icons.`}],examples:[{title:`Primary action`,code:`<Button>Save changes</Button>`},{title:`Loading action`,code:`<Button loading loadingLabel="Saving">Save changes</Button>`},{title:`Destructive action`,code:`<Button variant="destructive">Delete</Button>`},{title:`Icon-only action`,code:`<Button size="icon-sm" aria-label="Open actions">...</Button>`}],accessibility:[`Keep visible focus states.`,`Use aria-label for icon-only buttons.`,`Loading buttons should keep a readable label.`,`Do not use disabled buttons for navigation links.`]},input:{slug:`input`,source:`metadata`,summary:`Primary typed-value surface. Start with Input and move into presets only when behavior requires it.`,props:[{name:`value`,type:`string | number`,defaultValue:`-`,description:`Controlled input value.`,example:`value={name}`},{name:`defaultValue`,type:`string | number`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`onChange`,type:`ChangeEventHandler<HTMLInputElement>`,defaultValue:`-`,description:`Native change handler for value updates.`,example:`onChange={(event) => setValue(event.target.value)}`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled string flows.`,example:`onValueChange={setQuery}`},{name:`type`,type:`HTMLInputTypeAttribute`,defaultValue:`'text'`,description:`Native input type. Prefer presets only when formatting or masking is required.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Short hint for empty input state.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows the built-in clear action when a value exists.`,example:`clearable`},{name:`onClear`,type:`() => void`,defaultValue:`-`,description:`Called after the built-in clear action resets the field.`},{name:`trailingAction`,type:`ReactNode`,defaultValue:`-`,description:`Interactive trailing slot for counters, shortcuts, or toggle actions.`,example:`trailingAction={<span>12 results</span>}`},{name:`replaceTrailingWhenClear`,type:`boolean`,defaultValue:`true`,description:`Controls whether clear replaces trailing content or sits beside it.`},{name:`clearOnEscape`,type:`boolean`,defaultValue:`false`,description:`Clears the value on Escape when clearable mode is active.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing and interaction.`},{name:`required`,type:`boolean`,defaultValue:`false`,description:`Marks the input as required for native validation.`},{name:`name`,type:`string`,defaultValue:`-`,description:`Form field name used during submission.`},{name:`id`,type:`string`,defaultValue:`-`,description:`Connects input to label and help text.`},{name:`aria-invalid`,type:`boolean`,defaultValue:`false`,description:`Communicates validation state to assistive technology.`}],examples:[{title:`Controlled text`,code:`<Input value={value} onValueChange={setValue} />`},{title:`Clearable primary field`,code:`<Input value={query} onValueChange={setQuery} clearable trailingAction={<span>12 results</span>} />`},{title:`Search preset direction`,code:`// Prefer Input first; use SearchInput only when shortcut/result behavior is required.`}],accessibility:[`Always pair form inputs with labels.`,`Use aria-describedby for helper/error text.`,`Keep disabled and read-only states visually distinct.`]},select:{slug:`select`,source:`metadata`,summary:`Primary selection surface. Start with Select and move into members only when async loading, multi-selection, or command-style filtering is required.`,props:[{name:`value`,type:`string | string[]`,defaultValue:`-`,description:`Controlled selected value. Multi-select uses an array.`},{name:`defaultValue`,type:`string | string[]`,defaultValue:`-`,description:`Uncontrolled initial selected value.`},{name:`onValueChange`,type:`(value: string | string[]) => void`,defaultValue:`-`,description:`Called when the selected value changes.`,example:`onValueChange={setStatus}`},{name:`options`,type:`Array<{ label: string; value: string; disabled?: boolean }>`,defaultValue:`[]`,required:!0,description:`Selectable option list.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown when no value is selected.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the control and option selection.`},{name:`searchable`,type:`boolean`,defaultValue:`false`,description:`Enables local filtering on the main Select surface.`},{name:`multiple`,type:`boolean`,defaultValue:`false`,description:`Allows multiple values when the active member supports it.`}],examples:[{title:`Primary select`,code:`<Select value={status} onValueChange={setStatus} options={statusOptions} />`},{title:`Searchable primary select`,code:`<Select value={owner} onValueChange={setOwner} searchable options={ownerOptions} />`},{title:`Async member direction`,code:`// Prefer Select first; use AsyncSelect only when remote loading is required.`}],accessibility:[`Use clear option labels.`,`Keep disabled options visible but not selectable.`,`Do not replace long forms with hidden select menus.`]},"data-table":{slug:`data-table`,source:`metadata`,summary:"Operational grid for dense product data. Keep `columns`, `data`, `getRowId`, toolbar wiring, and pagination explicit so search, selection, row actions, loading, and server-mode behavior stay predictable.",props:[{name:`columns`,type:`ColumnDef<RowData>[]`,defaultValue:`-`,required:!0,description:`Column definitions for visible table structure.`,example:`columns={invoiceColumns}`},{name:`data`,type:`RowData[]`,defaultValue:`[]`,required:!0,description:`Rows for the current client or server page.`,example:`data={rows}`},{name:`getRowId`,type:`(row: RowData, index: number) => string`,defaultValue:`-`,description:`Stable row id for selection, row actions, and refresh updates.`,example:`getRowId={(row) => row.id}`},{name:`title`,type:`ReactNode`,defaultValue:`-`,description:`Toolbar title when you want the table to explain itself without extra wrapper markup.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Short supporting line for operators using the table.`},{name:`search`,type:`DataTableSearchConfig`,defaultValue:`-`,description:`Controlled search input config for the built-in toolbar.`,example:`search={{ value, onValueChange: setValue, placeholder: "Search invoices..." }}`},{name:`toolbarProps`,type:`DataTableToolbarProps | (table) => DataTableToolbarProps`,defaultValue:`-`,description:`Inject search, filters, actions, and selection affordances into the default toolbar.`,notes:`Use this when you want one canonical toolbar instead of composing a separate header card.`},{name:`toolbar`,type:`ReactNode | (table) => ReactNode`,defaultValue:`-`,description:`Replace the default toolbar entirely when the route needs a custom control layout.`},{name:`features`,type:`DataTableFeatureConfig`,defaultValue:`-`,description:`Turn default search, column visibility, row actions, bulk actions, refresh, or export behavior on and off.`},{name:`toolbarActions`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Extra action cluster rendered beside visibility / refresh / export controls.`},{name:`bulkActions`,type:`DataTableBulkAction<RowData>[]`,defaultValue:`-`,description:`Bulk actions shown when selected rows exist.`},{name:`rowActions`,type:`(row, original) => DataTableRowAction<RowData>[]`,defaultValue:`-`,description:`Declarative row menu items appended as an actions column.`},{name:`sorting`,type:`SortingState`,defaultValue:`[]`,description:`Controlled sorting state.`,example:`sorting={sorting}`},{name:`onSortingChange`,type:`OnChangeFn<SortingState>`,defaultValue:`-`,description:`Called when sorting changes.`,example:`onSortingChange={setSorting}`},{name:`columnVisibility`,type:`VisibilityState`,defaultValue:`{}`,description:`Controlled column visibility map.`},{name:`onColumnVisibilityChange`,type:`OnChangeFn<VisibilityState>`,defaultValue:`-`,description:`Called when visible columns change.`},{name:`rowSelection`,type:`RowSelectionState`,defaultValue:`{}`,description:`Controlled row selection state.`},{name:`onRowSelectionChange`,type:`OnChangeFn<RowSelectionState>`,defaultValue:`-`,description:`Called when row selection changes.`},{name:`enableRowSelection`,type:`boolean | ((row) => boolean)`,defaultValue:`false`,description:`Enables checkbox or row selection behavior per row or for the whole grid.`},{name:`pagination`,type:`DataTablePaginationConfig | false`,defaultValue:`-`,description:`Page index, page size, totals, labels, and pagination handlers.`,notes:"Pass `manual: true` when server data already arrives sliced by page."},{name:`renderMobileCard`,type:`(row) => ReactNode`,defaultValue:`-`,description:`Optional mobile card renderer when the table must collapse into stacked records.`},{name:`onRowClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional single-click row activation handler.`},{name:`onRowDoubleClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional double-click activation handler for denser operator workflows.`},{name:`getRowDisabled`,type:`(row) => boolean`,defaultValue:`-`,description:`Disable specific rows without removing them from the result set.`},{name:`density`,type:`'compact' | 'default' | 'comfortable'`,defaultValue:`'default'`,description:`Controls header and cell spacing.`,example:`density="comfortable"`},{name:`striped`,type:`boolean`,defaultValue:`false`,description:`Adds zebra striping for long operational lists.`},{name:`bordered`,type:`boolean`,defaultValue:`false`,description:`Adds stronger cell and table borders.`},{name:`stickyHeader`,type:`boolean`,defaultValue:`false`,description:`Keeps headers pinned while the table scrolls.`},{name:`isLoading`,type:`boolean`,defaultValue:`false`,description:`Shows loading state.`},{name:`loadingVariant`,type:`'skeleton' | 'state'`,defaultValue:`'skeleton'`,description:`Choose between skeleton rows or a dedicated loading state block.`},{name:`loadingState`,type:`LoadingStateProps`,defaultValue:`-`,description:'Customizes the loading state when `loadingVariant="state"`.'},{name:`isError`,type:`boolean`,defaultValue:`false`,description:`Switches the grid into an error fallback state.`},{name:`emptyState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when there are no rows.`},{name:`errorState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when the data request fails.`},{name:`skeletonRows`,type:`number`,defaultValue:`6`,description:`How many skeleton rows to render during loading.`},{name:`cellFallback`,type:`ReactNode`,defaultValue:`"-"`,description:`Value rendered when a cell returns empty content.`}],accessibility:[`Keep column headers readable and sortable targets large enough for pointer and keyboard use.`,`Provide clear labels for row action menus, visibility controls, and bulk actions.`,`When mobile cards replace the table, preserve the same row meaning and action availability.`]},dialog:{slug:`dialog`,source:`metadata`,summary:`Focused overlay for short decisions, confirmations and contained edit flows.`,props:[{name:`open`,type:`boolean`,defaultValue:`-`,description:`Controlled open state.`},{name:`defaultOpen`,type:`boolean`,defaultValue:`false`,description:`Initial uncontrolled open state.`},{name:`onOpenChange`,type:`(open: boolean) => void`,defaultValue:`-`,description:`Called when the dialog opens or closes.`},{name:`title`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Accessible dialog title.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Supporting description for context.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Dialog body content.`},{name:`footer`,type:`ReactNode`,defaultValue:`-`,description:`Action row for confirm/cancel buttons.`}],accessibility:[`Every dialog needs a title.`,`Return focus to the trigger after close.`,`Do not put long multi-step workflows in a small dialog.`]},"date-picker":{slug:`date-picker`,source:`metadata`,summary:`Date and range selection surface for reporting, scheduling and form flows.`,props:[{name:`value`,type:`Date | string | null`,defaultValue:`null`,description:`Controlled selected date.`},{name:`onValueChange`,type:`(value: Date | string | null) => void`,defaultValue:`-`,description:`Called when the selected date changes.`},{name:`mode`,type:`'single' | 'range'`,defaultValue:`'single'`,description:`Selection mode.`},{name:`minDate`,type:`Date | string`,defaultValue:`-`,description:`Earliest selectable date.`},{name:`maxDate`,type:`Date | string`,defaultValue:`-`,description:`Latest selectable date.`},{name:`disabledDates`,type:`Date[] | ((date: Date) => boolean)`,defaultValue:`-`,description:`Dates that cannot be selected.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown before selection.`}],accessibility:[`Clarify date format near text inputs.`,`Disable unavailable dates rather than hiding them.`,`Define timezone assumptions before submitting values.`]},"form-input":{slug:`form-input`,source:`metadata`,summary:`React Hook Form wrapper for Input with label, helper text, validation and error display.`,props:[{name:`control`,type:`Control<TFieldValues>`,defaultValue:`-`,required:!0,description:`RHF control instance from useForm().`},{name:`name`,type:`FieldPath<TFieldValues>`,defaultValue:`-`,required:!0,description:`Field path used for registration and value lookup.`},{name:`label`,type:`ReactNode`,defaultValue:`-`,description:`Visible field label.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Helper text shown under the field.`},{name:`rules`,type:`UseControllerProps['rules']`,defaultValue:`-`,description:`Validation rules passed to RHF controller.`},{name:`required`,type:`boolean | '*'`,defaultValue:`false`,description:`Marks the field as required in the UI.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the field and prevents editing.`},{name:`error`,type:`string | FieldError | null`,defaultValue:`-`,description:`Optional error override.`}],accessibility:[`Label must remain visible.`,`Error text should be connected to the field.`,`Required state should be visual and semantic.`]}};function t(t){return e[t]}exports.componentApiSchemas=e,exports.getComponentApiSchema=t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={button:{slug:`button`,source:`metadata`,summary:`Action component for submit, secondary, destructive, warning, loading, icon and navigation-like flows. Verify every state in light and dark mode before shipping.`,props:[{name:`variant`,type:`'default' | 'secondary' | 'outline' | 'ghost' | 'destructive' | 'warning' | 'link'`,defaultValue:`'default'`,description:`Controls visual hierarchy and action tone.`,example:`variant="destructive"`},{name:`size`,type:`'xs' | 'sm' | 'default' | 'md' | 'lg' | 'xl' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'`,defaultValue:`'default'`,description:`Controls height, spacing and icon-only sizing.`,example:`size="icon-sm"`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Shows the spinner, disables interaction and communicates pending state.`,example:`loading={isSaving}`},{name:`loadingLabel`,type:`string`,defaultValue:`'Loading'`,description:`Accessible label displayed while the button is loading.`,example:`loadingLabel="Saving"`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the action and removes it from normal interaction.`,example:`disabled={!canSubmit}`},{name:`leftIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered before the label. Use for primary verbs and scan-friendly actions.`},{name:`rightIcon`,type:`ReactNode`,defaultValue:`-`,description:`Icon rendered after the label. Use for forward navigation or external transitions.`},{name:`iconOnly`,type:`boolean`,defaultValue:`false`,description:`Switches default sizing to the icon button size while keeping Button semantics.`,example:`iconOnly aria-label="Download"`},{name:`fullWidth`,type:`boolean`,defaultValue:`false`,description:`Expands the button to fill its parent width.`,example:`fullWidth`},{name:`pressed`,type:`boolean`,defaultValue:`false`,description:`Marks toggle-like button state with aria-pressed and selected styling.`,example:`pressed={active}`},{name:`className`,type:`string`,defaultValue:`-`,description:`Optional class override for spacing or layout composition.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Button label or icon content. Icon-only buttons must still provide an accessible name.`},{name:`aria-label`,type:`string`,defaultValue:`-`,description:`Required for icon-only buttons so the action is announced correctly.`,notes:`Use when children are only icons.`}],examples:[{title:`Primary action`,code:`<Button>Save changes</Button>`},{title:`Loading action`,code:`<Button loading loadingLabel="Saving">Save changes</Button>`},{title:`Destructive action`,code:`<Button variant="destructive">Delete</Button>`},{title:`Icon-only action`,code:`<Button size="icon-sm" aria-label="Open actions">...</Button>`}],accessibility:[`Keep visible focus states.`,`Use aria-label for icon-only buttons.`,`Loading buttons should keep a readable label.`,`Do not use disabled buttons for navigation links.`]},input:{slug:`input`,source:`metadata`,summary:`Primary typed-value surface. Start with Input and move into presets only when behavior requires it.`,props:[{name:`value`,type:`string | number`,defaultValue:`-`,description:`Controlled input value.`,example:`value={name}`},{name:`defaultValue`,type:`string | number`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`kind`,type:`'text' | 'search' | 'password' | 'number' | 'phone' | 'money' | 'quantity' | 'masked' | 'date' | 'date-range'`,defaultValue:`'text'`,description:`Routes Input into a supported preset without teaching a new public component name first.`,example:`kind="search"`},{name:`onChange`,type:`ChangeEventHandler<HTMLInputElement>`,defaultValue:`-`,description:`Native change handler for value updates.`,example:`onChange={(event) => setValue(event.target.value)}`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled string flows.`,example:`onValueChange={setQuery}`},{name:`type`,type:`HTMLInputTypeAttribute`,defaultValue:`'text'`,description:`Native input type. Prefer presets only when formatting or masking is required.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Short hint for empty input state.`},{name:`leading`,type:`ReactNode`,defaultValue:`-`,description:`Non-interactive leading slot for icons, prefixes, or labels.`},{name:`trailing`,type:`ReactNode`,defaultValue:`-`,description:`Passive trailing slot for units, counts, or status copy.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows the built-in clear action when a value exists.`,example:`clearable`},{name:`onClear`,type:`() => void`,defaultValue:`-`,description:`Called after the built-in clear action resets the field.`},{name:`trailingAction`,type:`ReactNode`,defaultValue:`-`,description:`Interactive trailing slot for counters, shortcuts, or toggle actions.`,example:`trailingAction={<span>12 results</span>}`},{name:`replaceTrailingWhenClear`,type:`boolean`,defaultValue:`true`,description:`Controls whether clear replaces trailing content or sits beside it.`},{name:`clearOnEscape`,type:`boolean`,defaultValue:`false`,description:`Clears the value on Escape when clearable mode is active.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and connected to danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing and interaction.`},{name:`required`,type:`boolean`,defaultValue:`false`,description:`Marks the input as required for native validation.`},{name:`name`,type:`string`,defaultValue:`-`,description:`Form field name used during submission.`},{name:`id`,type:`string`,defaultValue:`-`,description:`Connects input to label and help text.`},{name:`aria-invalid`,type:`boolean`,defaultValue:`false`,description:`Communicates validation state to assistive technology.`}],examples:[{title:`Controlled text`,code:`<Input value={value} onValueChange={setValue} />`},{title:`Clearable primary field`,code:`<Input value={query} onValueChange={setQuery} clearable trailingAction={<span>12 results</span>} />`},{title:`Search preset direction`,code:`// Prefer Input first; use SearchInput only when shortcut/result behavior is required.`}],accessibility:[`Always pair form inputs with labels.`,`Use aria-describedby for helper/error text.`,`Keep disabled and read-only states visually distinct.`]},select:{slug:`select`,source:`metadata`,summary:`Primary single-selection surface. Start with Select for finite option sets, then use AsyncSelect with isMulti only when remote loading or multi-value behavior is required.`,props:[{name:`value`,type:`string | null`,defaultValue:`-`,description:`Controlled selected value.`},{name:`defaultValue`,type:`string | null`,defaultValue:`-`,description:`Uncontrolled initial selected value.`},{name:`onValueChange`,type:`(value: string | undefined) => void`,defaultValue:`-`,description:`Called when the selected value changes.`,example:`onValueChange={setStatus}`},{name:`options`,type:`Array<{ label: string; value: string; disabled?: boolean }>`,defaultValue:`[]`,required:!0,description:`Selectable option list.`},{name:`groups`,type:`Array<{ label?: ReactNode; options: SelectOption[] }>`,defaultValue:`-`,description:`Grouped selectable options for longer finite lists.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown when no value is selected.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the control and option selection.`},{name:`searchable`,type:`boolean`,defaultValue:`false`,description:`Enables local filtering on the main Select surface.`},{name:`clearable`,type:`boolean`,defaultValue:`false`,description:`Shows a clear action when a value is selected.`},{name:`loading`,type:`boolean`,defaultValue:`false`,description:`Disables selection and renders a loading state.`},{name:`emptyLabel`,type:`ReactNode`,defaultValue:`'No options found'`,description:`Empty state content for local filtering.`},{name:`emptyMessage`,type:`ReactNode`,defaultValue:`-`,description:`Alias for empty state content used by newer docs.`},{name:`renderOption`,type:`(option, state) => ReactNode`,defaultValue:`-`,description:`Custom option renderer for richer rows.`}],examples:[{title:`Primary select`,code:`<Select value={status} onValueChange={setStatus} options={statusOptions} />`},{title:`Searchable primary select`,code:`<Select value={owner} onValueChange={setOwner} searchable options={ownerOptions} />`},{title:`Grouped select`,code:`<Select value={region} onValueChange={setRegion} groups={regionGroups} searchable />`},{title:`Async member direction`,code:`// Prefer Select first; use AsyncSelect only when remote loading is required.`}],accessibility:[`Use clear option labels.`,`Keep disabled options visible but not selectable.`,`Do not replace long forms with hidden select menus.`]},textarea:{slug:`textarea`,source:`metadata`,summary:`Multi-line text entry surface with helper, error, read-only, disabled and character-count support.`,props:[{name:`value`,type:`string`,defaultValue:`-`,description:`Controlled textarea value.`},{name:`defaultValue`,type:`string`,defaultValue:`-`,description:`Uncontrolled initial value.`},{name:`onChange`,type:`ChangeEventHandler<HTMLTextAreaElement>`,defaultValue:`-`,description:`Native change handler.`},{name:`onValueChange`,type:`(value: string) => void`,defaultValue:`-`,description:`Direct text callback for controlled flows.`},{name:`rows`,type:`number`,defaultValue:`-`,description:`Initial visible row count.`},{name:`maxLength`,type:`number`,defaultValue:`-`,description:`Native maximum character length.`},{name:`helperText`,type:`ReactNode`,defaultValue:`-`,description:`Support copy rendered below the field.`},{name:`errorText`,type:`ReactNode`,defaultValue:`-`,description:`Validation copy rendered below the field and danger styling.`},{name:`showCharacterCount`,type:`boolean`,defaultValue:`false`,description:`Shows current length and maxLength when available.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables editing.`},{name:`readOnly`,type:`boolean`,defaultValue:`false`,description:`Keeps content copyable while preventing edits.`}],examples:[{title:`Controlled note`,code:`<Textarea value={note} onValueChange={setNote} helperText="Internal note" />`},{title:`Limited feedback`,code:`<Textarea maxLength={240} showCharacterCount />`},{title:`Error state`,code:`<Textarea errorText="Please add at least 10 characters." />`}],accessibility:[`Pair textareas with visible labels.`,`Use helper and error copy instead of placeholder-only instructions.`,`Keep read-only distinct from disabled.`]},"data-table":{slug:`data-table`,source:`metadata`,summary:"Operational grid for dense product data. Keep `columns`, `data`, `getRowId`, toolbar wiring, and pagination explicit so search, selection, row actions, loading, and server-mode behavior stay predictable.",props:[{name:`columns`,type:`ColumnDef<RowData>[]`,defaultValue:`-`,required:!0,description:`Column definitions for visible table structure.`,example:`columns={invoiceColumns}`},{name:`data`,type:`RowData[]`,defaultValue:`[]`,required:!0,description:`Rows for the current client or server page.`,example:`data={rows}`},{name:`getRowId`,type:`(row: RowData, index: number) => string`,defaultValue:`-`,description:`Stable row id for selection, row actions, and refresh updates.`,example:`getRowId={(row) => row.id}`},{name:`title`,type:`ReactNode`,defaultValue:`-`,description:`Toolbar title when you want the table to explain itself without extra wrapper markup.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Short supporting line for operators using the table.`},{name:`search`,type:`DataTableSearchConfig`,defaultValue:`-`,description:`Controlled search input config for the built-in toolbar.`,example:`search={{ value, onValueChange: setValue, placeholder: "Search invoices..." }}`},{name:`toolbarProps`,type:`DataTableToolbarProps | (table) => DataTableToolbarProps`,defaultValue:`-`,description:`Inject search, filters, actions, and selection affordances into the default toolbar.`,notes:`Use this when you want one canonical toolbar instead of composing a separate header card.`},{name:`toolbar`,type:`ReactNode | (table) => ReactNode`,defaultValue:`-`,description:`Replace the default toolbar entirely when the route needs a custom control layout.`},{name:`features`,type:`DataTableFeatureConfig`,defaultValue:`-`,description:`Turn default search, column visibility, row actions, bulk actions, refresh, or export behavior on and off.`},{name:`toolbarActions`,type:`ReactNode | (context) => ReactNode`,defaultValue:`-`,description:`Extra action cluster rendered beside visibility / refresh / export controls.`},{name:`bulkActions`,type:`DataTableBulkAction<RowData>[]`,defaultValue:`-`,description:`Bulk actions shown when selected rows exist.`},{name:`rowActions`,type:`(row, original) => DataTableRowAction<RowData>[]`,defaultValue:`-`,description:`Declarative row menu items appended as an actions column.`},{name:`sorting`,type:`SortingState`,defaultValue:`[]`,description:`Controlled sorting state.`,example:`sorting={sorting}`},{name:`onSortingChange`,type:`OnChangeFn<SortingState>`,defaultValue:`-`,description:`Called when sorting changes.`,example:`onSortingChange={setSorting}`},{name:`columnVisibility`,type:`VisibilityState`,defaultValue:`{}`,description:`Controlled column visibility map.`},{name:`onColumnVisibilityChange`,type:`OnChangeFn<VisibilityState>`,defaultValue:`-`,description:`Called when visible columns change.`},{name:`rowSelection`,type:`RowSelectionState`,defaultValue:`{}`,description:`Controlled row selection state.`},{name:`onRowSelectionChange`,type:`OnChangeFn<RowSelectionState>`,defaultValue:`-`,description:`Called when row selection changes.`},{name:`enableRowSelection`,type:`boolean | ((row) => boolean)`,defaultValue:`false`,description:`Enables checkbox or row selection behavior per row or for the whole grid.`},{name:`pagination`,type:`DataTablePaginationConfig | false`,defaultValue:`-`,description:`Page index, page size, totals, labels, and pagination handlers.`,notes:"Pass `manual: true` when server data already arrives sliced by page."},{name:`renderMobileCard`,type:`(row) => ReactNode`,defaultValue:`-`,description:`Optional mobile card renderer when the table must collapse into stacked records.`},{name:`onRowClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional single-click row activation handler.`},{name:`onRowDoubleClick`,type:`(row) => void`,defaultValue:`-`,description:`Optional double-click activation handler for denser operator workflows.`},{name:`getRowDisabled`,type:`(row) => boolean`,defaultValue:`-`,description:`Disable specific rows without removing them from the result set.`},{name:`density`,type:`'compact' | 'default' | 'comfortable'`,defaultValue:`'default'`,description:`Controls header and cell spacing.`,example:`density="comfortable"`},{name:`striped`,type:`boolean`,defaultValue:`false`,description:`Adds zebra striping for long operational lists.`},{name:`bordered`,type:`boolean`,defaultValue:`false`,description:`Adds stronger cell and table borders.`},{name:`stickyHeader`,type:`boolean`,defaultValue:`false`,description:`Keeps headers pinned while the table scrolls.`},{name:`isLoading`,type:`boolean`,defaultValue:`false`,description:`Shows loading state.`},{name:`loadingVariant`,type:`'skeleton' | 'state'`,defaultValue:`'skeleton'`,description:`Choose between skeleton rows or a dedicated loading state block.`},{name:`loadingState`,type:`LoadingStateProps`,defaultValue:`-`,description:'Customizes the loading state when `loadingVariant="state"`.'},{name:`isError`,type:`boolean`,defaultValue:`false`,description:`Switches the grid into an error fallback state.`},{name:`emptyState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when there are no rows.`},{name:`errorState`,type:`Omit<DataStateProps, "status">`,defaultValue:`-`,description:`Fallback when the data request fails.`},{name:`skeletonRows`,type:`number`,defaultValue:`6`,description:`How many skeleton rows to render during loading.`},{name:`cellFallback`,type:`ReactNode`,defaultValue:`"-"`,description:`Value rendered when a cell returns empty content.`}],accessibility:[`Keep column headers readable and sortable targets large enough for pointer and keyboard use.`,`Provide clear labels for row action menus, visibility controls, and bulk actions.`,`When mobile cards replace the table, preserve the same row meaning and action availability.`]},dialog:{slug:`dialog`,source:`metadata`,summary:`Focused overlay for short decisions, confirmations and contained edit flows.`,props:[{name:`open`,type:`boolean`,defaultValue:`-`,description:`Controlled open state.`},{name:`defaultOpen`,type:`boolean`,defaultValue:`false`,description:`Initial uncontrolled open state.`},{name:`onOpenChange`,type:`(open: boolean) => void`,defaultValue:`-`,description:`Called when the dialog opens or closes.`},{name:`title`,type:`ReactNode`,defaultValue:`-`,required:!0,description:`Accessible dialog title.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Supporting description for context.`},{name:`children`,type:`ReactNode`,defaultValue:`-`,description:`Dialog body content.`},{name:`footer`,type:`ReactNode`,defaultValue:`-`,description:`Action row for confirm/cancel buttons.`}],accessibility:[`Every dialog needs a title.`,`Return focus to the trigger after close.`,`Do not put long multi-step workflows in a small dialog.`]},"date-picker":{slug:`date-picker`,source:`metadata`,summary:`Date and range selection surface for reporting, scheduling and form flows.`,props:[{name:`value`,type:`Date | string | null`,defaultValue:`null`,description:`Controlled selected date.`},{name:`onValueChange`,type:`(value: Date | string | null) => void`,defaultValue:`-`,description:`Called when the selected date changes.`},{name:`mode`,type:`'single' | 'range'`,defaultValue:`'single'`,description:`Selection mode.`},{name:`minDate`,type:`Date | string`,defaultValue:`-`,description:`Earliest selectable date.`},{name:`maxDate`,type:`Date | string`,defaultValue:`-`,description:`Latest selectable date.`},{name:`disabledDates`,type:`Date[] | ((date: Date) => boolean)`,defaultValue:`-`,description:`Dates that cannot be selected.`},{name:`placeholder`,type:`string`,defaultValue:`-`,description:`Text shown before selection.`}],accessibility:[`Clarify date format near text inputs.`,`Disable unavailable dates rather than hiding them.`,`Define timezone assumptions before submitting values.`]},"form-input":{slug:`form-input`,source:`metadata`,summary:`React Hook Form wrapper for Input with label, helper text, validation and error display.`,props:[{name:`control`,type:`Control<TFieldValues>`,defaultValue:`-`,required:!0,description:`RHF control instance from useForm().`},{name:`name`,type:`FieldPath<TFieldValues>`,defaultValue:`-`,required:!0,description:`Field path used for registration and value lookup.`},{name:`label`,type:`ReactNode`,defaultValue:`-`,description:`Visible field label.`},{name:`description`,type:`ReactNode`,defaultValue:`-`,description:`Helper text shown under the field.`},{name:`rules`,type:`UseControllerProps['rules']`,defaultValue:`-`,description:`Validation rules passed to RHF controller.`},{name:`required`,type:`boolean | '*'`,defaultValue:`false`,description:`Marks the field as required in the UI.`},{name:`disabled`,type:`boolean`,defaultValue:`false`,description:`Disables the field and prevents editing.`},{name:`error`,type:`string | FieldError | null`,defaultValue:`-`,description:`Optional error override.`}],accessibility:[`Label must remain visible.`,`Error text should be connected to the field.`,`Required state should be visual and semantic.`]}};function t(t){return e[t]}exports.componentApiSchemas=e,exports.getComponentApiSchema=t;
@@ -53,11 +53,25 @@ var e = {
53
53
  description: "Icon rendered after the label. Use for forward navigation or external transitions."
54
54
  },
55
55
  {
56
- name: "asChild",
56
+ name: "iconOnly",
57
57
  type: "boolean",
58
58
  defaultValue: "false",
59
- description: "Renders the visual button style on a child element for link or router composition.",
60
- example: "asChild"
59
+ description: "Switches default sizing to the icon button size while keeping Button semantics.",
60
+ example: "iconOnly aria-label=\"Download\""
61
+ },
62
+ {
63
+ name: "fullWidth",
64
+ type: "boolean",
65
+ defaultValue: "false",
66
+ description: "Expands the button to fill its parent width.",
67
+ example: "fullWidth"
68
+ },
69
+ {
70
+ name: "pressed",
71
+ type: "boolean",
72
+ defaultValue: "false",
73
+ description: "Marks toggle-like button state with aria-pressed and selected styling.",
74
+ example: "pressed={active}"
61
75
  },
62
76
  {
63
77
  name: "className",
@@ -123,6 +137,13 @@ var e = {
123
137
  defaultValue: "-",
124
138
  description: "Uncontrolled initial value."
125
139
  },
140
+ {
141
+ name: "kind",
142
+ type: "'text' | 'search' | 'password' | 'number' | 'phone' | 'money' | 'quantity' | 'masked' | 'date' | 'date-range'",
143
+ defaultValue: "'text'",
144
+ description: "Routes Input into a supported preset without teaching a new public component name first.",
145
+ example: "kind=\"search\""
146
+ },
126
147
  {
127
148
  name: "onChange",
128
149
  type: "ChangeEventHandler<HTMLInputElement>",
@@ -149,6 +170,18 @@ var e = {
149
170
  defaultValue: "-",
150
171
  description: "Short hint for empty input state."
151
172
  },
173
+ {
174
+ name: "leading",
175
+ type: "ReactNode",
176
+ defaultValue: "-",
177
+ description: "Non-interactive leading slot for icons, prefixes, or labels."
178
+ },
179
+ {
180
+ name: "trailing",
181
+ type: "ReactNode",
182
+ defaultValue: "-",
183
+ description: "Passive trailing slot for units, counts, or status copy."
184
+ },
152
185
  {
153
186
  name: "clearable",
154
187
  type: "boolean",
@@ -181,6 +214,24 @@ var e = {
181
214
  defaultValue: "false",
182
215
  description: "Clears the value on Escape when clearable mode is active."
183
216
  },
217
+ {
218
+ name: "helperText",
219
+ type: "ReactNode",
220
+ defaultValue: "-",
221
+ description: "Support copy rendered below the field."
222
+ },
223
+ {
224
+ name: "errorText",
225
+ type: "ReactNode",
226
+ defaultValue: "-",
227
+ description: "Validation copy rendered below the field and connected to danger styling."
228
+ },
229
+ {
230
+ name: "showCharacterCount",
231
+ type: "boolean",
232
+ defaultValue: "false",
233
+ description: "Shows current length and maxLength when available."
234
+ },
184
235
  {
185
236
  name: "disabled",
186
237
  type: "boolean",
@@ -235,23 +286,23 @@ var e = {
235
286
  select: {
236
287
  slug: "select",
237
288
  source: "metadata",
238
- summary: "Primary selection surface. Start with Select and move into members only when async loading, multi-selection, or command-style filtering is required.",
289
+ summary: "Primary single-selection surface. Start with Select for finite option sets, then use AsyncSelect with isMulti only when remote loading or multi-value behavior is required.",
239
290
  props: [
240
291
  {
241
292
  name: "value",
242
- type: "string | string[]",
293
+ type: "string | null",
243
294
  defaultValue: "-",
244
- description: "Controlled selected value. Multi-select uses an array."
295
+ description: "Controlled selected value."
245
296
  },
246
297
  {
247
298
  name: "defaultValue",
248
- type: "string | string[]",
299
+ type: "string | null",
249
300
  defaultValue: "-",
250
301
  description: "Uncontrolled initial selected value."
251
302
  },
252
303
  {
253
304
  name: "onValueChange",
254
- type: "(value: string | string[]) => void",
305
+ type: "(value: string | undefined) => void",
255
306
  defaultValue: "-",
256
307
  description: "Called when the selected value changes.",
257
308
  example: "onValueChange={setStatus}"
@@ -263,6 +314,12 @@ var e = {
263
314
  required: !0,
264
315
  description: "Selectable option list."
265
316
  },
317
+ {
318
+ name: "groups",
319
+ type: "Array<{ label?: ReactNode; options: SelectOption[] }>",
320
+ defaultValue: "-",
321
+ description: "Grouped selectable options for longer finite lists."
322
+ },
266
323
  {
267
324
  name: "placeholder",
268
325
  type: "string",
@@ -282,10 +339,34 @@ var e = {
282
339
  description: "Enables local filtering on the main Select surface."
283
340
  },
284
341
  {
285
- name: "multiple",
342
+ name: "clearable",
286
343
  type: "boolean",
287
344
  defaultValue: "false",
288
- description: "Allows multiple values when the active member supports it."
345
+ description: "Shows a clear action when a value is selected."
346
+ },
347
+ {
348
+ name: "loading",
349
+ type: "boolean",
350
+ defaultValue: "false",
351
+ description: "Disables selection and renders a loading state."
352
+ },
353
+ {
354
+ name: "emptyLabel",
355
+ type: "ReactNode",
356
+ defaultValue: "'No options found'",
357
+ description: "Empty state content for local filtering."
358
+ },
359
+ {
360
+ name: "emptyMessage",
361
+ type: "ReactNode",
362
+ defaultValue: "-",
363
+ description: "Alias for empty state content used by newer docs."
364
+ },
365
+ {
366
+ name: "renderOption",
367
+ type: "(option, state) => ReactNode",
368
+ defaultValue: "-",
369
+ description: "Custom option renderer for richer rows."
289
370
  }
290
371
  ],
291
372
  examples: [
@@ -297,6 +378,10 @@ var e = {
297
378
  title: "Searchable primary select",
298
379
  code: "<Select value={owner} onValueChange={setOwner} searchable options={ownerOptions} />"
299
380
  },
381
+ {
382
+ title: "Grouped select",
383
+ code: "<Select value={region} onValueChange={setRegion} groups={regionGroups} searchable />"
384
+ },
300
385
  {
301
386
  title: "Async member direction",
302
387
  code: "// Prefer Select first; use AsyncSelect only when remote loading is required."
@@ -308,6 +393,98 @@ var e = {
308
393
  "Do not replace long forms with hidden select menus."
309
394
  ]
310
395
  },
396
+ textarea: {
397
+ slug: "textarea",
398
+ source: "metadata",
399
+ summary: "Multi-line text entry surface with helper, error, read-only, disabled and character-count support.",
400
+ props: [
401
+ {
402
+ name: "value",
403
+ type: "string",
404
+ defaultValue: "-",
405
+ description: "Controlled textarea value."
406
+ },
407
+ {
408
+ name: "defaultValue",
409
+ type: "string",
410
+ defaultValue: "-",
411
+ description: "Uncontrolled initial value."
412
+ },
413
+ {
414
+ name: "onChange",
415
+ type: "ChangeEventHandler<HTMLTextAreaElement>",
416
+ defaultValue: "-",
417
+ description: "Native change handler."
418
+ },
419
+ {
420
+ name: "onValueChange",
421
+ type: "(value: string) => void",
422
+ defaultValue: "-",
423
+ description: "Direct text callback for controlled flows."
424
+ },
425
+ {
426
+ name: "rows",
427
+ type: "number",
428
+ defaultValue: "-",
429
+ description: "Initial visible row count."
430
+ },
431
+ {
432
+ name: "maxLength",
433
+ type: "number",
434
+ defaultValue: "-",
435
+ description: "Native maximum character length."
436
+ },
437
+ {
438
+ name: "helperText",
439
+ type: "ReactNode",
440
+ defaultValue: "-",
441
+ description: "Support copy rendered below the field."
442
+ },
443
+ {
444
+ name: "errorText",
445
+ type: "ReactNode",
446
+ defaultValue: "-",
447
+ description: "Validation copy rendered below the field and danger styling."
448
+ },
449
+ {
450
+ name: "showCharacterCount",
451
+ type: "boolean",
452
+ defaultValue: "false",
453
+ description: "Shows current length and maxLength when available."
454
+ },
455
+ {
456
+ name: "disabled",
457
+ type: "boolean",
458
+ defaultValue: "false",
459
+ description: "Disables editing."
460
+ },
461
+ {
462
+ name: "readOnly",
463
+ type: "boolean",
464
+ defaultValue: "false",
465
+ description: "Keeps content copyable while preventing edits."
466
+ }
467
+ ],
468
+ examples: [
469
+ {
470
+ title: "Controlled note",
471
+ code: "<Textarea value={note} onValueChange={setNote} helperText=\"Internal note\" />"
472
+ },
473
+ {
474
+ title: "Limited feedback",
475
+ code: "<Textarea maxLength={240} showCharacterCount />"
476
+ },
477
+ {
478
+ title: "Error state",
479
+ code: "<Textarea errorText=\"Please add at least 10 characters.\" />"
480
+ }
481
+ ],
482
+ accessibility: [
483
+ "Pair textareas with visible labels.",
484
+ "Use helper and error copy instead of placeholder-only instructions.",
485
+ "Keep read-only distinct from disabled."
486
+ ]
487
+ },
311
488
  "data-table": {
312
489
  slug: "data-table",
313
490
  source: "metadata",