tembro 2.0.3 → 2.0.5

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 (579) hide show
  1. package/dist/components/actions/action-menu.cjs +1 -1
  2. package/dist/components/actions/action-menu.d.ts +13 -1
  3. package/dist/components/actions/action-menu.js +87 -61
  4. package/dist/components/actions/button-group.cjs +1 -1
  5. package/dist/components/actions/button-group.d.ts +9 -1
  6. package/dist/components/actions/button-group.js +58 -14
  7. package/dist/components/actions/copy-button.cjs +1 -1
  8. package/dist/components/actions/copy-button.d.ts +2 -1
  9. package/dist/components/actions/copy-button.js +13 -11
  10. package/dist/components/calendar/calendar.cjs +1 -1
  11. package/dist/components/calendar/calendar.d.ts +14 -1
  12. package/dist/components/calendar/calendar.js +207 -128
  13. package/dist/components/calendar/date-picker.cjs +1 -1
  14. package/dist/components/calendar/date-picker.d.ts +3 -1
  15. package/dist/components/calendar/date-picker.js +57 -27
  16. package/dist/components/calendar/date-range-picker.cjs +1 -1
  17. package/dist/components/calendar/date-range-picker.d.ts +10 -1
  18. package/dist/components/calendar/date-range-picker.js +149 -64
  19. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  20. package/dist/components/data-table/data-table-toolbar.d.ts +5 -1
  21. package/dist/components/data-table/data-table-toolbar.js +36 -23
  22. package/dist/components/data-table/data-table.cjs +1 -1
  23. package/dist/components/data-table/data-table.d.ts +6 -4
  24. package/dist/components/data-table/data-table.js +87 -79
  25. package/dist/components/data-table/demo.cjs +1 -1
  26. package/dist/components/data-table/demo.js +3 -13
  27. package/dist/components/data-table/index.cjs +1 -1
  28. package/dist/components/data-table/index.js +5 -5
  29. package/dist/components/data-table/public.cjs +1 -1
  30. package/dist/components/data-table/public.d.ts +1 -6
  31. package/dist/components/data-table/public.js +7 -12
  32. package/dist/components/display/activity-feed.cjs +1 -1
  33. package/dist/components/display/activity-feed.d.ts +12 -1
  34. package/dist/components/display/activity-feed.js +69 -47
  35. package/dist/components/display/carousel.cjs +1 -1
  36. package/dist/components/display/carousel.d.ts +10 -1
  37. package/dist/components/display/carousel.js +68 -23
  38. package/dist/components/display/code-block.cjs +2 -1
  39. package/dist/components/display/code-block.d.ts +3 -1
  40. package/dist/components/display/code-block.js +33 -19
  41. package/dist/components/display/comparison-card.cjs +1 -1
  42. package/dist/components/display/comparison-card.d.ts +3 -3
  43. package/dist/components/display/comparison-card.js +14 -38
  44. package/dist/components/display/data-state.cjs +1 -1
  45. package/dist/components/display/data-state.d.ts +12 -2
  46. package/dist/components/display/data-state.js +80 -42
  47. package/dist/components/display/demo.cjs +1 -1
  48. package/dist/components/display/demo.js +1 -5
  49. package/dist/components/display/index.cjs +1 -1
  50. package/dist/components/display/index.d.ts +0 -8
  51. package/dist/components/display/index.js +21 -29
  52. package/dist/components/feedback/alert.cjs +1 -1
  53. package/dist/components/feedback/alert.d.ts +6 -1
  54. package/dist/components/feedback/alert.js +49 -19
  55. package/dist/components/feedback/index.cjs +1 -1
  56. package/dist/components/feedback/index.d.ts +0 -2
  57. package/dist/components/feedback/index.js +3 -5
  58. package/dist/components/filters/demo.cjs +1 -1
  59. package/dist/components/filters/demo.js +1 -5
  60. package/dist/components/filters/filter-bar.cjs +1 -1
  61. package/dist/components/filters/filter-bar.d.ts +15 -1
  62. package/dist/components/filters/filter-bar.js +94 -50
  63. package/dist/components/filters/index.cjs +1 -1
  64. package/dist/components/filters/index.d.ts +0 -1
  65. package/dist/components/filters/index.js +3 -4
  66. package/dist/components/form/demo.cjs +1 -1
  67. package/dist/components/form/demo.js +1 -2
  68. package/dist/components/form/form-field-shell.cjs +1 -1
  69. package/dist/components/form/form-field-shell.d.ts +17 -3
  70. package/dist/components/form/form-field-shell.js +54 -40
  71. package/dist/components/form/form-input.cjs +1 -1
  72. package/dist/components/form/form-input.js +278 -217
  73. package/dist/components/form/form-select.cjs +1 -1
  74. package/dist/components/form/form-select.js +47 -33
  75. package/dist/components/form/form-switch.cjs +1 -1
  76. package/dist/components/form/form-switch.js +79 -66
  77. package/dist/components/form/form-textarea.cjs +1 -1
  78. package/dist/components/form/form-textarea.js +59 -48
  79. package/dist/components/form/index.cjs +1 -1
  80. package/dist/components/form/index.d.ts +0 -1
  81. package/dist/components/form/index.js +11 -12
  82. package/dist/components/form/public.cjs +1 -1
  83. package/dist/components/form/public.d.ts +0 -9
  84. package/dist/components/form/public.js +7 -16
  85. package/dist/components/inputs/async-select.cjs +1 -1
  86. package/dist/components/inputs/async-select.d.ts +11 -2
  87. package/dist/components/inputs/async-select.js +278 -270
  88. package/dist/components/inputs/combobox.cjs +1 -1
  89. package/dist/components/inputs/combobox.d.ts +5 -1
  90. package/dist/components/inputs/combobox.js +52 -19
  91. package/dist/components/inputs/index.cjs +1 -1
  92. package/dist/components/inputs/index.d.ts +0 -2
  93. package/dist/components/inputs/index.js +3 -5
  94. package/dist/components/inputs/public.cjs +1 -1
  95. package/dist/components/inputs/public.d.ts +0 -2
  96. package/dist/components/inputs/public.js +3 -5
  97. package/dist/components/inputs/simple-select.cjs +1 -1
  98. package/dist/components/inputs/simple-select.d.ts +2 -1
  99. package/dist/components/inputs/simple-select.js +32 -16
  100. package/dist/components/layout/app-sidebar.cjs +1 -1
  101. package/dist/components/layout/app-sidebar.d.ts +4 -1
  102. package/dist/components/layout/app-sidebar.js +152 -132
  103. package/dist/components/layout/breadcrumbs.cjs +1 -1
  104. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  105. package/dist/components/layout/breadcrumbs.js +10 -10
  106. package/dist/components/layout/index.cjs +1 -1
  107. package/dist/components/layout/index.d.ts +0 -1
  108. package/dist/components/layout/index.js +4 -5
  109. package/dist/components/layout/public.cjs +1 -1
  110. package/dist/components/layout/public.d.ts +0 -1
  111. package/dist/components/layout/public.js +2 -3
  112. package/dist/components/layout/stat-card.cjs +1 -1
  113. package/dist/components/layout/stat-card.d.ts +8 -1
  114. package/dist/components/layout/stat-card.js +33 -11
  115. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  116. package/dist/components/modern/calendar-scheduler.d.ts +2 -1
  117. package/dist/components/modern/calendar-scheduler.js +21 -12
  118. package/dist/components/modern/index.cjs +1 -1
  119. package/dist/components/modern/index.d.ts +0 -4
  120. package/dist/components/modern/index.js +12 -16
  121. package/dist/components/overlay/alert-dialog.cjs +1 -1
  122. package/dist/components/overlay/alert-dialog.d.ts +15 -1
  123. package/dist/components/overlay/alert-dialog.js +102 -27
  124. package/dist/components/overlay/drawer.cjs +1 -1
  125. package/dist/components/overlay/drawer.d.ts +4 -1
  126. package/dist/components/overlay/drawer.js +20 -17
  127. package/dist/components/patterns/index.cjs +1 -1
  128. package/dist/components/patterns/index.d.ts +0 -1
  129. package/dist/components/patterns/index.js +1 -2
  130. package/dist/components/patterns/public.cjs +1 -1
  131. package/dist/components/patterns/public.d.ts +0 -1
  132. package/dist/components/patterns/public.js +1 -2
  133. package/dist/components/ui/button/index.cjs +1 -1
  134. package/dist/components/ui/button/index.d.ts +3 -1
  135. package/dist/components/ui/button/index.js +7 -5
  136. package/dist/components/ui/checkbox/index.cjs +1 -1
  137. package/dist/components/ui/checkbox/index.d.ts +8 -0
  138. package/dist/components/ui/checkbox/index.js +16 -14
  139. package/dist/components/ui/collapse/index.cjs +1 -1
  140. package/dist/components/ui/collapse/index.d.ts +17 -3
  141. package/dist/components/ui/collapse/index.js +88 -33
  142. package/dist/components/ui/dialog/index.cjs +1 -1
  143. package/dist/components/ui/dialog/index.d.ts +2 -1
  144. package/dist/components/ui/dialog/index.js +6 -4
  145. package/dist/components/ui/dropdown-menu/index.cjs +1 -1
  146. package/dist/components/ui/dropdown-menu/index.d.ts +9 -4
  147. package/dist/components/ui/dropdown-menu/index.js +87 -62
  148. package/dist/index.cjs +1 -1
  149. package/dist/index.js +145 -177
  150. package/dist/public-component-surface.cjs +1 -1
  151. package/dist/public-component-surface.js +0 -80
  152. package/dist/showcase/component-api-schema.cjs +1 -1
  153. package/dist/showcase/component-api-schema.js +2 -2
  154. package/dist/showcase/create-demo.cjs +20 -34
  155. package/dist/showcase/create-demo.js +15 -16
  156. package/dist/showcase/fallback.cjs +3 -3
  157. package/dist/showcase/fallback.js +287 -451
  158. package/dist/showcase/premium/accordion/showcase.cjs +1 -1
  159. package/dist/showcase/premium/accordion/showcase.js +36 -5
  160. package/dist/showcase/premium/action-menu/showcase.cjs +1 -1
  161. package/dist/showcase/premium/action-menu/showcase.js +26 -8
  162. package/dist/showcase/premium/activity-feed/showcase.cjs +1 -1
  163. package/dist/showcase/premium/activity-feed/showcase.js +60 -36
  164. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  165. package/dist/showcase/premium/alert/showcase.js +41 -18
  166. package/dist/showcase/premium/alert-dialog/showcase.cjs +1 -1
  167. package/dist/showcase/premium/alert-dialog/showcase.js +35 -7
  168. package/dist/showcase/premium/async-multi-select/mock.cjs +4 -3
  169. package/dist/showcase/premium/async-multi-select/mock.js +5 -5
  170. package/dist/showcase/premium/async-multi-select/showcase.cjs +1 -1
  171. package/dist/showcase/premium/async-multi-select/showcase.js +4 -3
  172. package/dist/showcase/premium/async-select/mock.cjs +1 -1
  173. package/dist/showcase/premium/async-select/mock.js +1 -1
  174. package/dist/showcase/premium/async-select/showcase.cjs +1 -1
  175. package/dist/showcase/premium/async-select/showcase.js +69 -22
  176. package/dist/showcase/premium/button/showcase.cjs +1 -1
  177. package/dist/showcase/premium/button/showcase.js +49 -3
  178. package/dist/showcase/premium/button-group/showcase.cjs +1 -1
  179. package/dist/showcase/premium/button-group/showcase.js +53 -29
  180. package/dist/showcase/premium/calendar/showcase.cjs +1 -1
  181. package/dist/showcase/premium/calendar/showcase.js +7 -2
  182. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  183. package/dist/showcase/premium/carousel/showcase.js +95 -47
  184. package/dist/showcase/premium/checkbox/showcase.cjs +1 -1
  185. package/dist/showcase/premium/checkbox/showcase.js +143 -67
  186. package/dist/showcase/premium/clearable-input/mock.cjs +4 -3
  187. package/dist/showcase/premium/clearable-input/mock.js +3 -2
  188. package/dist/showcase/premium/clearable-input/showcase.cjs +1 -1
  189. package/dist/showcase/premium/clearable-input/showcase.js +8 -2
  190. package/dist/showcase/premium/collapse/showcase.cjs +1 -1
  191. package/dist/showcase/premium/collapse/showcase.js +7 -0
  192. package/dist/showcase/premium/combobox/showcase.cjs +1 -1
  193. package/dist/showcase/premium/combobox/showcase.d.ts +2 -1
  194. package/dist/showcase/premium/combobox/showcase.js +56 -47
  195. package/dist/showcase/premium/data-table/showcase.cjs +1 -1
  196. package/dist/showcase/premium/data-table/showcase.js +138 -46
  197. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  198. package/dist/showcase/premium/data-table-parts/showcase.js +13 -13
  199. package/dist/showcase/premium/date-input/mock.cjs +1 -1
  200. package/dist/showcase/premium/date-input/mock.js +1 -1
  201. package/dist/showcase/premium/date-range-picker/showcase.cjs +1 -1
  202. package/dist/showcase/premium/date-range-picker/showcase.js +32 -1
  203. package/dist/showcase/premium/dropdown-menu/showcase.cjs +1 -1
  204. package/dist/showcase/premium/dropdown-menu/showcase.js +88 -54
  205. package/dist/showcase/premium/form-wrapper/mock.cjs +41 -15
  206. package/dist/showcase/premium/form-wrapper/mock.js +4 -4
  207. package/dist/showcase/premium/form-wrapper/showcase.cjs +1 -1
  208. package/dist/showcase/premium/form-wrapper/showcase.js +77 -28
  209. package/dist/showcase/premium/index.cjs +1 -1
  210. package/dist/showcase/premium/index.js +467 -574
  211. package/dist/showcase/premium/input/mock.cjs +4 -1
  212. package/dist/showcase/premium/input/mock.js +1 -1
  213. package/dist/showcase/premium/masked-input/mock.cjs +1 -1
  214. package/dist/showcase/premium/masked-input/mock.js +1 -1
  215. package/dist/showcase/premium/money-input/mock.cjs +1 -1
  216. package/dist/showcase/premium/money-input/mock.js +1 -1
  217. package/dist/showcase/premium/number-input/mock.cjs +1 -1
  218. package/dist/showcase/premium/number-input/mock.js +1 -1
  219. package/dist/showcase/premium/phone-input/mock.cjs +1 -1
  220. package/dist/showcase/premium/phone-input/mock.js +1 -1
  221. package/dist/showcase/premium/quantity-input/mock.cjs +1 -1
  222. package/dist/showcase/premium/quantity-input/mock.js +1 -1
  223. package/dist/showcase/premium/simple-select/mock.cjs +1 -1
  224. package/dist/showcase/premium/simple-select/mock.js +1 -1
  225. package/dist/showcase/premium/simple-select/showcase.cjs +1 -1
  226. package/dist/showcase/premium/simple-select/showcase.js +4 -2
  227. package/dist/showcase/preview-catalog.cjs +7 -10
  228. package/dist/showcase/preview-catalog.js +7 -7
  229. package/dist/showcase/registry-quality.cjs +1 -1
  230. package/dist/showcase/registry-quality.js +0 -24
  231. package/dist/showcase/registry-specific.cjs +1 -1
  232. package/dist/showcase/registry-specific.js +149 -383
  233. package/dist/showcase/render-registry-preview.cjs +1 -1
  234. package/dist/showcase/render-registry-preview.js +163 -195
  235. package/dist/showcase/site-data.cjs +1 -1
  236. package/dist/showcase/site-data.js +197 -941
  237. package/dist/showcase/supplemental.cjs +1 -1
  238. package/dist/showcase/supplemental.js +1 -1
  239. package/dist/showcase/tembro-registry.json.cjs +1 -1
  240. package/dist/showcase/tembro-registry.json.js +33 -59
  241. package/package.json +1 -1
  242. package/packages/cli/dist/index.cjs +2 -2
  243. package/packages/cli/vendor/src/components/actions/action-menu.tsx +149 -83
  244. package/packages/cli/vendor/src/components/actions/button-group.tsx +141 -33
  245. package/packages/cli/vendor/src/components/actions/copy-button.tsx +21 -16
  246. package/packages/cli/vendor/src/components/calendar/calendar.tsx +223 -88
  247. package/packages/cli/vendor/src/components/calendar/date-picker.tsx +73 -29
  248. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +154 -49
  249. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +71 -50
  250. package/packages/cli/vendor/src/components/data-table/data-table.tsx +65 -53
  251. package/packages/cli/vendor/src/components/data-table/demo.tsx +2 -12
  252. package/packages/cli/vendor/src/components/data-table/public.ts +1 -6
  253. package/packages/cli/vendor/src/components/display/activity-feed.tsx +98 -40
  254. package/packages/cli/vendor/src/components/display/carousel.tsx +88 -2
  255. package/packages/cli/vendor/src/components/display/code-block.tsx +58 -26
  256. package/packages/cli/vendor/src/components/display/comparison-card.tsx +15 -41
  257. package/packages/cli/vendor/src/components/display/data-state.tsx +119 -50
  258. package/packages/cli/vendor/src/components/display/demo.tsx +0 -4
  259. package/packages/cli/vendor/src/components/display/index.ts +0 -8
  260. package/packages/cli/vendor/src/components/feedback/alert.tsx +86 -28
  261. package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
  262. package/packages/cli/vendor/src/components/filters/demo.tsx +0 -1
  263. package/packages/cli/vendor/src/components/filters/filter-bar.tsx +126 -54
  264. package/packages/cli/vendor/src/components/filters/index.ts +0 -1
  265. package/packages/cli/vendor/src/components/form/demo.tsx +0 -1
  266. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +72 -34
  267. package/packages/cli/vendor/src/components/form/form-input.tsx +118 -11
  268. package/packages/cli/vendor/src/components/form/form-select.tsx +26 -3
  269. package/packages/cli/vendor/src/components/form/form-switch.tsx +77 -58
  270. package/packages/cli/vendor/src/components/form/form-textarea.tsx +65 -51
  271. package/packages/cli/vendor/src/components/form/index.ts +0 -1
  272. package/packages/cli/vendor/src/components/form/public.ts +0 -11
  273. package/packages/cli/vendor/src/components/inputs/async-select.tsx +126 -82
  274. package/packages/cli/vendor/src/components/inputs/combobox.tsx +66 -9
  275. package/packages/cli/vendor/src/components/inputs/index.ts +0 -2
  276. package/packages/cli/vendor/src/components/inputs/public.ts +0 -2
  277. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +52 -24
  278. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +42 -1
  279. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +17 -8
  280. package/packages/cli/vendor/src/components/layout/index.ts +0 -1
  281. package/packages/cli/vendor/src/components/layout/public.ts +0 -1
  282. package/packages/cli/vendor/src/components/layout/stat-card.tsx +63 -23
  283. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +32 -22
  284. package/packages/cli/vendor/src/components/modern/index.ts +1 -5
  285. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +148 -24
  286. package/packages/cli/vendor/src/components/overlay/drawer.tsx +42 -30
  287. package/packages/cli/vendor/src/components/patterns/index.ts +0 -1
  288. package/packages/cli/vendor/src/components/patterns/public.ts +0 -1
  289. package/packages/cli/vendor/src/components/ui/button/index.tsx +27 -17
  290. package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +22 -5
  291. package/packages/cli/vendor/src/components/ui/collapse/index.tsx +97 -16
  292. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +12 -8
  293. package/packages/cli/vendor/src/components/ui/dropdown-menu/index.tsx +82 -28
  294. package/packages/cli/vendor/src/public-component-surface.ts +0 -16
  295. package/packages/cli/vendor/src/showcase/component-api-schema.ts +2 -2
  296. package/packages/cli/vendor/src/showcase/create-demo.tsx +31 -46
  297. package/packages/cli/vendor/src/showcase/fallback.tsx +83 -263
  298. package/packages/cli/vendor/src/showcase/premium/accordion/showcase.tsx +32 -2
  299. package/packages/cli/vendor/src/showcase/premium/action-menu/showcase.tsx +12 -3
  300. package/packages/cli/vendor/src/showcase/premium/activity-feed/showcase.tsx +15 -2
  301. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +32 -17
  302. package/packages/cli/vendor/src/showcase/premium/alert-dialog/showcase.tsx +28 -3
  303. package/packages/cli/vendor/src/showcase/premium/async-multi-select/mock.ts +6 -5
  304. package/packages/cli/vendor/src/showcase/premium/async-multi-select/showcase.tsx +5 -4
  305. package/packages/cli/vendor/src/showcase/premium/async-select/mock.ts +1 -1
  306. package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +36 -0
  307. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +26 -5
  308. package/packages/cli/vendor/src/showcase/premium/button-group/showcase.tsx +20 -3
  309. package/packages/cli/vendor/src/showcase/premium/calendar/showcase.tsx +5 -0
  310. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +33 -5
  311. package/packages/cli/vendor/src/showcase/premium/checkbox/showcase.tsx +46 -3
  312. package/packages/cli/vendor/src/showcase/premium/clearable-input/mock.ts +5 -3
  313. package/packages/cli/vendor/src/showcase/premium/clearable-input/showcase.tsx +5 -2
  314. package/packages/cli/vendor/src/showcase/premium/collapse/showcase.tsx +4 -0
  315. package/packages/cli/vendor/src/showcase/premium/combobox/showcase.tsx +8 -0
  316. package/packages/cli/vendor/src/showcase/premium/data-table/showcase.tsx +77 -27
  317. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +11 -11
  318. package/packages/cli/vendor/src/showcase/premium/date-input/mock.ts +1 -1
  319. package/packages/cli/vendor/src/showcase/premium/date-range-picker/showcase.tsx +7 -0
  320. package/packages/cli/vendor/src/showcase/premium/dropdown-menu/showcase.tsx +46 -3
  321. package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +70 -44
  322. package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +129 -12
  323. package/packages/cli/vendor/src/showcase/premium/index.ts +7 -46
  324. package/packages/cli/vendor/src/showcase/premium/input/mock.ts +2 -2
  325. package/packages/cli/vendor/src/showcase/premium/masked-input/mock.ts +1 -1
  326. package/packages/cli/vendor/src/showcase/premium/money-input/mock.ts +1 -1
  327. package/packages/cli/vendor/src/showcase/premium/number-input/mock.ts +1 -1
  328. package/packages/cli/vendor/src/showcase/premium/phone-input/mock.ts +1 -1
  329. package/packages/cli/vendor/src/showcase/premium/quantity-input/mock.ts +1 -1
  330. package/packages/cli/vendor/src/showcase/premium/simple-select/mock.ts +1 -1
  331. package/packages/cli/vendor/src/showcase/premium/simple-select/showcase.tsx +2 -1
  332. package/packages/cli/vendor/src/showcase/preview-catalog.tsx +7 -7
  333. package/packages/cli/vendor/src/showcase/registry-quality.ts +4 -30
  334. package/packages/cli/vendor/src/showcase/registry-specific.tsx +3 -178
  335. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +18 -51
  336. package/packages/cli/vendor/src/showcase/site-data.tsx +2443 -2761
  337. package/packages/cli/vendor/src/showcase/supplemental.tsx +2 -42
  338. package/packages/cli/vendor/src/showcase/tembro-registry.json +206 -280
  339. package/registry.json +251 -329
  340. package/dist/components/display/aspect-ratio.cjs +0 -1
  341. package/dist/components/display/aspect-ratio.d.ts +0 -6
  342. package/dist/components/display/aspect-ratio.js +0 -21
  343. package/dist/components/display/entity-card.cjs +0 -1
  344. package/dist/components/display/entity-card.d.ts +0 -18
  345. package/dist/components/display/entity-card.js +0 -61
  346. package/dist/components/display/entity-header.cjs +0 -1
  347. package/dist/components/display/entity-header.d.ts +0 -13
  348. package/dist/components/display/entity-header.js +0 -52
  349. package/dist/components/display/file-card.cjs +0 -1
  350. package/dist/components/display/file-card.d.ts +0 -14
  351. package/dist/components/display/file-card.js +0 -59
  352. package/dist/components/display/float-button.cjs +0 -1
  353. package/dist/components/display/float-button.d.ts +0 -6
  354. package/dist/components/display/float-button.js +0 -20
  355. package/dist/components/display/key-value-card.cjs +0 -1
  356. package/dist/components/display/key-value-card.d.ts +0 -16
  357. package/dist/components/display/key-value-card.js +0 -35
  358. package/dist/components/display/keyboard-shortcut.cjs +0 -1
  359. package/dist/components/display/keyboard-shortcut.d.ts +0 -7
  360. package/dist/components/display/keyboard-shortcut.js +0 -18
  361. package/dist/components/display/skeleton-form.cjs +0 -1
  362. package/dist/components/display/skeleton-form.d.ts +0 -9
  363. package/dist/components/display/skeleton-form.js +0 -31
  364. package/dist/components/display/skeleton-table.cjs +0 -1
  365. package/dist/components/display/skeleton-table.d.ts +0 -9
  366. package/dist/components/display/skeleton-table.js +0 -42
  367. package/dist/components/display/tag-list.cjs +0 -1
  368. package/dist/components/display/tag-list.d.ts +0 -17
  369. package/dist/components/display/tag-list.js +0 -30
  370. package/dist/components/display/watermark.cjs +0 -1
  371. package/dist/components/display/watermark.d.ts +0 -6
  372. package/dist/components/display/watermark.js +0 -23
  373. package/dist/components/feedback/empty-search-state.cjs +0 -1
  374. package/dist/components/feedback/empty-search-state.d.ts +0 -11
  375. package/dist/components/feedback/empty-search-state.js +0 -45
  376. package/dist/components/feedback/empty-state.cjs +0 -1
  377. package/dist/components/feedback/empty-state.d.ts +0 -11
  378. package/dist/components/feedback/empty-state.js +0 -38
  379. package/dist/components/filters/filter-chips.cjs +0 -1
  380. package/dist/components/filters/filter-chips.d.ts +0 -18
  381. package/dist/components/filters/filter-chips.js +0 -61
  382. package/dist/components/form/repeater-field.cjs +0 -1
  383. package/dist/components/form/repeater-field.d.ts +0 -16
  384. package/dist/components/form/repeater-field.js +0 -48
  385. package/dist/components/inputs/cascader.cjs +0 -1
  386. package/dist/components/inputs/cascader.d.ts +0 -13
  387. package/dist/components/inputs/cascader.js +0 -58
  388. package/dist/components/inputs/mention-input.cjs +0 -1
  389. package/dist/components/inputs/mention-input.d.ts +0 -18
  390. package/dist/components/inputs/mention-input.js +0 -96
  391. package/dist/components/layout/stack.cjs +0 -1
  392. package/dist/components/layout/stack.d.ts +0 -23
  393. package/dist/components/layout/stack.js +0 -57
  394. package/dist/components/modern/affix.cjs +0 -1
  395. package/dist/components/modern/affix.d.ts +0 -7
  396. package/dist/components/modern/affix.js +0 -18
  397. package/dist/components/patterns/form-builder-presets.cjs +0 -1
  398. package/dist/components/patterns/form-builder-presets.d.ts +0 -1
  399. package/dist/components/patterns/form-builder-presets.js +0 -2
  400. package/dist/components/patterns/form-builder.cjs +0 -1
  401. package/dist/components/patterns/form-builder.d.ts +0 -109
  402. package/dist/components/patterns/form-builder.js +0 -263
  403. package/dist/showcase/premium/affix/index.cjs +0 -1
  404. package/dist/showcase/premium/affix/index.d.ts +0 -2
  405. package/dist/showcase/premium/affix/index.js +0 -3
  406. package/dist/showcase/premium/affix/mock.cjs +0 -12
  407. package/dist/showcase/premium/affix/mock.d.ts +0 -2
  408. package/dist/showcase/premium/affix/mock.js +0 -15
  409. package/dist/showcase/premium/affix/showcase.cjs +0 -1
  410. package/dist/showcase/premium/affix/showcase.d.ts +0 -2
  411. package/dist/showcase/premium/affix/showcase.js +0 -64
  412. package/dist/showcase/premium/aspect-ratio/index.cjs +0 -1
  413. package/dist/showcase/premium/aspect-ratio/index.d.ts +0 -2
  414. package/dist/showcase/premium/aspect-ratio/index.js +0 -3
  415. package/dist/showcase/premium/aspect-ratio/mock.cjs +0 -11
  416. package/dist/showcase/premium/aspect-ratio/mock.d.ts +0 -2
  417. package/dist/showcase/premium/aspect-ratio/mock.js +0 -26
  418. package/dist/showcase/premium/aspect-ratio/showcase.cjs +0 -1
  419. package/dist/showcase/premium/aspect-ratio/showcase.d.ts +0 -2
  420. package/dist/showcase/premium/aspect-ratio/showcase.js +0 -53
  421. package/dist/showcase/premium/cascader/index.cjs +0 -1
  422. package/dist/showcase/premium/cascader/index.d.ts +0 -2
  423. package/dist/showcase/premium/cascader/index.js +0 -3
  424. package/dist/showcase/premium/cascader/mock.cjs +0 -9
  425. package/dist/showcase/premium/cascader/mock.d.ts +0 -2
  426. package/dist/showcase/premium/cascader/mock.js +0 -19
  427. package/dist/showcase/premium/cascader/showcase.cjs +0 -1
  428. package/dist/showcase/premium/cascader/showcase.d.ts +0 -2
  429. package/dist/showcase/premium/cascader/showcase.js +0 -43
  430. package/dist/showcase/premium/empty-state/index.cjs +0 -1
  431. package/dist/showcase/premium/empty-state/index.d.ts +0 -2
  432. package/dist/showcase/premium/empty-state/index.js +0 -3
  433. package/dist/showcase/premium/empty-state/mock.cjs +0 -14
  434. package/dist/showcase/premium/empty-state/mock.d.ts +0 -2
  435. package/dist/showcase/premium/empty-state/mock.js +0 -31
  436. package/dist/showcase/premium/empty-state/showcase.cjs +0 -1
  437. package/dist/showcase/premium/empty-state/showcase.d.ts +0 -3
  438. package/dist/showcase/premium/empty-state/showcase.js +0 -99
  439. package/dist/showcase/premium/float-button/index.cjs +0 -1
  440. package/dist/showcase/premium/float-button/index.d.ts +0 -2
  441. package/dist/showcase/premium/float-button/index.js +0 -3
  442. package/dist/showcase/premium/float-button/mock.cjs +0 -10
  443. package/dist/showcase/premium/float-button/mock.d.ts +0 -2
  444. package/dist/showcase/premium/float-button/mock.js +0 -15
  445. package/dist/showcase/premium/float-button/showcase.cjs +0 -1
  446. package/dist/showcase/premium/float-button/showcase.d.ts +0 -2
  447. package/dist/showcase/premium/float-button/showcase.js +0 -28
  448. package/dist/showcase/premium/form-builder/index.cjs +0 -1
  449. package/dist/showcase/premium/form-builder/index.d.ts +0 -2
  450. package/dist/showcase/premium/form-builder/index.js +0 -3
  451. package/dist/showcase/premium/form-builder/mock.cjs +0 -57
  452. package/dist/showcase/premium/form-builder/mock.d.ts +0 -2
  453. package/dist/showcase/premium/form-builder/mock.js +0 -40
  454. package/dist/showcase/premium/form-builder/showcase.cjs +0 -1
  455. package/dist/showcase/premium/form-builder/showcase.d.ts +0 -3
  456. package/dist/showcase/premium/form-builder/showcase.js +0 -69
  457. package/dist/showcase/premium/keyboard-shortcut/index.cjs +0 -1
  458. package/dist/showcase/premium/keyboard-shortcut/index.d.ts +0 -2
  459. package/dist/showcase/premium/keyboard-shortcut/index.js +0 -3
  460. package/dist/showcase/premium/keyboard-shortcut/mock.cjs +0 -5
  461. package/dist/showcase/premium/keyboard-shortcut/mock.d.ts +0 -2
  462. package/dist/showcase/premium/keyboard-shortcut/mock.js +0 -26
  463. package/dist/showcase/premium/keyboard-shortcut/showcase.cjs +0 -1
  464. package/dist/showcase/premium/keyboard-shortcut/showcase.d.ts +0 -1
  465. package/dist/showcase/premium/keyboard-shortcut/showcase.js +0 -64
  466. package/dist/showcase/premium/mention-input/index.cjs +0 -1
  467. package/dist/showcase/premium/mention-input/index.d.ts +0 -2
  468. package/dist/showcase/premium/mention-input/index.js +0 -3
  469. package/dist/showcase/premium/mention-input/mock.cjs +0 -11
  470. package/dist/showcase/premium/mention-input/mock.d.ts +0 -2
  471. package/dist/showcase/premium/mention-input/mock.js +0 -19
  472. package/dist/showcase/premium/mention-input/showcase.cjs +0 -1
  473. package/dist/showcase/premium/mention-input/showcase.d.ts +0 -2
  474. package/dist/showcase/premium/mention-input/showcase.js +0 -35
  475. package/dist/showcase/premium/skeleton-form/index.cjs +0 -1
  476. package/dist/showcase/premium/skeleton-form/index.d.ts +0 -2
  477. package/dist/showcase/premium/skeleton-form/index.js +0 -3
  478. package/dist/showcase/premium/skeleton-form/mock.cjs +0 -5
  479. package/dist/showcase/premium/skeleton-form/mock.d.ts +0 -2
  480. package/dist/showcase/premium/skeleton-form/mock.js +0 -19
  481. package/dist/showcase/premium/skeleton-form/showcase.cjs +0 -1
  482. package/dist/showcase/premium/skeleton-form/showcase.d.ts +0 -2
  483. package/dist/showcase/premium/skeleton-form/showcase.js +0 -52
  484. package/dist/showcase/premium/skeleton-table/index.cjs +0 -1
  485. package/dist/showcase/premium/skeleton-table/index.d.ts +0 -2
  486. package/dist/showcase/premium/skeleton-table/index.js +0 -3
  487. package/dist/showcase/premium/skeleton-table/mock.cjs +0 -5
  488. package/dist/showcase/premium/skeleton-table/mock.d.ts +0 -2
  489. package/dist/showcase/premium/skeleton-table/mock.js +0 -19
  490. package/dist/showcase/premium/skeleton-table/showcase.cjs +0 -1
  491. package/dist/showcase/premium/skeleton-table/showcase.d.ts +0 -2
  492. package/dist/showcase/premium/skeleton-table/showcase.js +0 -59
  493. package/dist/showcase/premium/stack/index.cjs +0 -1
  494. package/dist/showcase/premium/stack/index.d.ts +0 -2
  495. package/dist/showcase/premium/stack/index.js +0 -3
  496. package/dist/showcase/premium/stack/mock.cjs +0 -10
  497. package/dist/showcase/premium/stack/mock.d.ts +0 -2
  498. package/dist/showcase/premium/stack/mock.js +0 -26
  499. package/dist/showcase/premium/stack/showcase.cjs +0 -1
  500. package/dist/showcase/premium/stack/showcase.d.ts +0 -1
  501. package/dist/showcase/premium/stack/showcase.js +0 -47
  502. package/dist/showcase/premium/tag-list/index.cjs +0 -1
  503. package/dist/showcase/premium/tag-list/index.d.ts +0 -2
  504. package/dist/showcase/premium/tag-list/index.js +0 -3
  505. package/dist/showcase/premium/tag-list/mock.cjs +0 -12
  506. package/dist/showcase/premium/tag-list/mock.d.ts +0 -2
  507. package/dist/showcase/premium/tag-list/mock.js +0 -26
  508. package/dist/showcase/premium/tag-list/showcase.cjs +0 -1
  509. package/dist/showcase/premium/tag-list/showcase.d.ts +0 -2
  510. package/dist/showcase/premium/tag-list/showcase.js +0 -83
  511. package/dist/showcase/premium/watermark/index.cjs +0 -1
  512. package/dist/showcase/premium/watermark/index.d.ts +0 -2
  513. package/dist/showcase/premium/watermark/index.js +0 -3
  514. package/dist/showcase/premium/watermark/mock.cjs +0 -11
  515. package/dist/showcase/premium/watermark/mock.d.ts +0 -2
  516. package/dist/showcase/premium/watermark/mock.js +0 -26
  517. package/dist/showcase/premium/watermark/showcase.cjs +0 -1
  518. package/dist/showcase/premium/watermark/showcase.d.ts +0 -2
  519. package/dist/showcase/premium/watermark/showcase.js +0 -34
  520. package/packages/cli/vendor/src/components/display/aspect-ratio.tsx +0 -22
  521. package/packages/cli/vendor/src/components/display/entity-card.tsx +0 -80
  522. package/packages/cli/vendor/src/components/display/entity-header.tsx +0 -80
  523. package/packages/cli/vendor/src/components/display/file-card.tsx +0 -61
  524. package/packages/cli/vendor/src/components/display/float-button.tsx +0 -27
  525. package/packages/cli/vendor/src/components/display/key-value-card.tsx +0 -50
  526. package/packages/cli/vendor/src/components/display/keyboard-shortcut.tsx +0 -31
  527. package/packages/cli/vendor/src/components/display/skeleton-form.tsx +0 -51
  528. package/packages/cli/vendor/src/components/display/skeleton-table.tsx +0 -59
  529. package/packages/cli/vendor/src/components/display/tag-list.tsx +0 -52
  530. package/packages/cli/vendor/src/components/display/watermark.tsx +0 -20
  531. package/packages/cli/vendor/src/components/feedback/empty-search-state.tsx +0 -65
  532. package/packages/cli/vendor/src/components/feedback/empty-state.tsx +0 -56
  533. package/packages/cli/vendor/src/components/filters/filter-chips.tsx +0 -89
  534. package/packages/cli/vendor/src/components/form/repeater-field.tsx +0 -93
  535. package/packages/cli/vendor/src/components/inputs/cascader.tsx +0 -41
  536. package/packages/cli/vendor/src/components/inputs/mention-input.tsx +0 -162
  537. package/packages/cli/vendor/src/components/layout/stack.tsx +0 -106
  538. package/packages/cli/vendor/src/components/modern/affix.tsx +0 -21
  539. package/packages/cli/vendor/src/components/patterns/form-builder-presets.ts +0 -13
  540. package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -443
  541. package/packages/cli/vendor/src/showcase/premium/affix/index.ts +0 -3
  542. package/packages/cli/vendor/src/showcase/premium/affix/mock.ts +0 -26
  543. package/packages/cli/vendor/src/showcase/premium/affix/showcase.tsx +0 -37
  544. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/index.ts +0 -2
  545. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/mock.ts +0 -26
  546. package/packages/cli/vendor/src/showcase/premium/aspect-ratio/showcase.tsx +0 -37
  547. package/packages/cli/vendor/src/showcase/premium/cascader/index.ts +0 -3
  548. package/packages/cli/vendor/src/showcase/premium/cascader/mock.ts +0 -24
  549. package/packages/cli/vendor/src/showcase/premium/cascader/showcase.tsx +0 -20
  550. package/packages/cli/vendor/src/showcase/premium/empty-state/index.ts +0 -2
  551. package/packages/cli/vendor/src/showcase/premium/empty-state/mock.ts +0 -30
  552. package/packages/cli/vendor/src/showcase/premium/empty-state/showcase.tsx +0 -65
  553. package/packages/cli/vendor/src/showcase/premium/float-button/index.ts +0 -3
  554. package/packages/cli/vendor/src/showcase/premium/float-button/mock.ts +0 -24
  555. package/packages/cli/vendor/src/showcase/premium/float-button/showcase.tsx +0 -21
  556. package/packages/cli/vendor/src/showcase/premium/form-builder/index.ts +0 -2
  557. package/packages/cli/vendor/src/showcase/premium/form-builder/mock.ts +0 -79
  558. package/packages/cli/vendor/src/showcase/premium/form-builder/showcase.tsx +0 -55
  559. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/index.ts +0 -2
  560. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/mock.ts +0 -20
  561. package/packages/cli/vendor/src/showcase/premium/keyboard-shortcut/showcase.tsx +0 -42
  562. package/packages/cli/vendor/src/showcase/premium/mention-input/index.ts +0 -3
  563. package/packages/cli/vendor/src/showcase/premium/mention-input/mock.ts +0 -26
  564. package/packages/cli/vendor/src/showcase/premium/mention-input/showcase.tsx +0 -27
  565. package/packages/cli/vendor/src/showcase/premium/skeleton-form/index.ts +0 -3
  566. package/packages/cli/vendor/src/showcase/premium/skeleton-form/mock.ts +0 -20
  567. package/packages/cli/vendor/src/showcase/premium/skeleton-form/showcase.tsx +0 -34
  568. package/packages/cli/vendor/src/showcase/premium/skeleton-table/index.ts +0 -3
  569. package/packages/cli/vendor/src/showcase/premium/skeleton-table/mock.ts +0 -20
  570. package/packages/cli/vendor/src/showcase/premium/skeleton-table/showcase.tsx +0 -37
  571. package/packages/cli/vendor/src/showcase/premium/stack/index.ts +0 -2
  572. package/packages/cli/vendor/src/showcase/premium/stack/mock.ts +0 -25
  573. package/packages/cli/vendor/src/showcase/premium/stack/showcase.tsx +0 -22
  574. package/packages/cli/vendor/src/showcase/premium/tag-list/index.ts +0 -2
  575. package/packages/cli/vendor/src/showcase/premium/tag-list/mock.ts +0 -27
  576. package/packages/cli/vendor/src/showcase/premium/tag-list/showcase.tsx +0 -55
  577. package/packages/cli/vendor/src/showcase/premium/watermark/index.ts +0 -2
  578. package/packages/cli/vendor/src/showcase/premium/watermark/mock.ts +0 -26
  579. package/packages/cli/vendor/src/showcase/premium/watermark/showcase.tsx +0 -26
@@ -1,7 +1,16 @@
1
1
  import * as React from "react"
2
2
  import { useForm, useWatch } from "react-hook-form"
3
3
 
4
- import { Badge, Button, FormAsyncSelect, FormFieldShell, FormInput, FormSelect, FormSwitch, FormTextarea } from "@/index"
4
+ import {
5
+ Badge,
6
+ Button,
7
+ FormInput,
8
+ FormSelect,
9
+ FormSwitch,
10
+ FormTextarea,
11
+ } from "@/index"
12
+ import { FormDatePicker } from "@/components/form/form-date-picker"
13
+ import { FormDateRangePicker } from "@/components/form/form-date-range-picker"
5
14
 
6
15
  import type { ComponentDemoProps } from "../types"
7
16
 
@@ -11,6 +20,15 @@ type DemoValues = {
11
20
  budget: number | null
12
21
  notes: string
13
22
  active: boolean
23
+ query: string
24
+ password: string
25
+ dueDate: string
26
+ period: {
27
+ from: string
28
+ to: string
29
+ }
30
+ periodFrom: string
31
+ periodTo: string
14
32
  status: string
15
33
  ownerId: string
16
34
  }
@@ -55,6 +73,15 @@ export function FormWrapperShowcase({ mode }: ComponentDemoProps) {
55
73
  budget: 120,
56
74
  notes: "RHF wrapper coverage for control, name, and validation.",
57
75
  active: true,
76
+ query: "billing",
77
+ password: "",
78
+ dueDate: "2026-07-18",
79
+ period: {
80
+ from: "2026-07-01",
81
+ to: "2026-07-14",
82
+ },
83
+ periodFrom: "2026-07-01",
84
+ periodTo: "2026-07-14",
58
85
  status: "review",
59
86
  ownerId: "workspace-alpha",
60
87
  },
@@ -63,7 +90,7 @@ export function FormWrapperShowcase({ mode }: ComponentDemoProps) {
63
90
  const activeValue = useWatch({ control: form.control, name: "active" })
64
91
  const slug = pathname.split("/").filter(Boolean).at(-1)
65
92
 
66
- if (slug === "form-select") {
93
+ if (slug === "form-select" || slug === "form-async-select") {
67
94
  return (
68
95
  <div className="grid gap-4 xl:grid-cols-2">
69
96
  <FormSelect control={form.control} name="status" label="Release status" options={[...statusOptions]} />
@@ -80,15 +107,101 @@ export function FormWrapperShowcase({ mode }: ComponentDemoProps) {
80
107
  )
81
108
  }
82
109
 
83
- if (slug === "form-async-select") {
110
+ if (slug === "form-search-input") {
111
+ return (
112
+ <FormInput
113
+ control={form.control}
114
+ name="query"
115
+ kind="search"
116
+ label="Search query"
117
+ description="Search wrapper should keep label, hint and result-ready spacing together."
118
+ placeholder="Search workspaces"
119
+ />
120
+ )
121
+ }
122
+
123
+ if (slug === "form-password-input") {
84
124
  return (
85
- <FormAsyncSelect
125
+ <FormInput
86
126
  control={form.control}
87
- name="ownerId"
88
- label="Linked workspace"
89
- defaultOptions={workspaceOptions.map((option) => ({ ...option }))}
90
- loadOptions={loadWorkspaceOptions}
91
- loadSelectedOption={loadSelectedWorkspace}
127
+ name="password"
128
+ kind="password"
129
+ label="Workspace password"
130
+ description="Password wrapper keeps toggle behavior inside the same form shell."
131
+ placeholder="Enter secure password"
132
+ />
133
+ )
134
+ }
135
+
136
+ if (slug === "form-number-input") {
137
+ return (
138
+ <FormInput
139
+ control={form.control}
140
+ name="budget"
141
+ kind="number"
142
+ label="Budget"
143
+ description="Numeric wrapper keeps parsed value handling inside the field contract."
144
+ min={0}
145
+ max={999999}
146
+ />
147
+ )
148
+ }
149
+
150
+ if (slug === "form-phone-input") {
151
+ return (
152
+ <FormInput
153
+ control={form.control}
154
+ name="ownerPhone"
155
+ kind="phone"
156
+ label="Owner phone"
157
+ description="Phone wrapper preserves stable raw value while showing a formatted UI."
158
+ />
159
+ )
160
+ }
161
+
162
+ if (slug === "form-date-input") {
163
+ return (
164
+ <FormInput
165
+ control={form.control}
166
+ name="dueDate"
167
+ kind="date"
168
+ label="Due date"
169
+ description="Use the lightweight date input wrapper when string date entry is enough."
170
+ />
171
+ )
172
+ }
173
+
174
+ if (slug === "form-date-range-input") {
175
+ return (
176
+ <FormInput
177
+ control={form.control}
178
+ name="period"
179
+ kind="date-range"
180
+ label="Reporting period"
181
+ description="Range input wrapper keeps from/to fields under one shell."
182
+ />
183
+ )
184
+ }
185
+
186
+ if (slug === "form-date-picker") {
187
+ return (
188
+ <FormDatePicker
189
+ control={form.control}
190
+ name="dueDate"
191
+ label="Launch date"
192
+ description="Use the picker wrapper when calendar selection matters more than raw typing."
193
+ />
194
+ )
195
+ }
196
+
197
+ if (slug === "form-date-range-picker") {
198
+ return (
199
+ <FormDateRangePicker
200
+ control={form.control}
201
+ fromName="periodFrom"
202
+ toName="periodTo"
203
+ label="Launch window"
204
+ description="Popover range picker keeps both fields synchronized inside one wrapper."
92
205
  />
93
206
  )
94
207
  }
@@ -96,9 +209,13 @@ export function FormWrapperShowcase({ mode }: ComponentDemoProps) {
96
209
  return (
97
210
  <form className="space-y-5">
98
211
  <div className="grid gap-4 xl:grid-cols-2">
99
- <FormFieldShell label="Workspace setup" description="Shared shell for required marker, error flow and spacing." required>
100
- <FormInput control={form.control} name="name" label="Workspace name" required />
101
- </FormFieldShell>
212
+ <FormInput
213
+ control={form.control}
214
+ name="name"
215
+ label="Workspace name"
216
+ description="Shared shell keeps required marker, helper text and error spacing aligned."
217
+ required
218
+ />
102
219
 
103
220
  <FormInput control={form.control} name="ownerPhone" kind="phone" label="Owner phone" />
104
221
  <FormInput control={form.control} name="budget" kind="number" label="Budget" min={0} max={999999} />
@@ -1,24 +1,18 @@
1
- import * as React from "react"
2
-
3
1
  import type { ComponentDemoBundle } from "./types"
4
2
 
5
3
  import { alertMock, AlertShowcase } from "./alert"
6
4
  import { AlertDialogShowcase, alertDialogMock } from "./alert-dialog"
7
5
  import { accordionMock, AccordionShowcase } from "./accordion"
8
- import { affixMock, AffixShowcase } from "./affix"
9
6
  import { activityFeedMock, ActivityFeedShowcase } from "./activity-feed"
10
7
  import { ActionMenuShowcase, actionMenuMock } from "./action-menu"
11
8
  import { appShellMock, AppShellShowcase } from "./app-shell"
12
9
  import { appSidebarMock, AppSidebarShowcase } from "./app-sidebar"
13
- import { asyncMultiSelectMock, AsyncMultiSelectShowcase } from "./async-multi-select"
14
10
  import { asyncSelectMock, AsyncSelectShowcase } from "./async-select"
15
- import { aspectRatioMock, AspectRatioShowcase } from "./aspect-ratio"
16
- import { cascaderMock, CascaderShowcase } from "./cascader"
11
+ import { asyncMultiSelectMock, AsyncMultiSelectShowcase } from "./async-multi-select"
17
12
  import { avatarMock, AvatarShowcase } from "./avatar"
18
13
  import { carouselMock, CarouselShowcase } from "./carousel"
19
- import { floatButtonMock, FloatButtonShowcase } from "./float-button"
14
+ import { clearableInputMock, ClearableInputShowcase } from "./clearable-input"
20
15
  import { jsonInputMock, JsonInputShowcase } from "./json-input"
21
- import { mentionInputMock, MentionInputShowcase } from "./mention-input"
22
16
  import { qrCodeMock, QRCodeShowcase } from "./qr-code"
23
17
  import { menubarMock, MenubarShowcase } from "./menubar"
24
18
  import { navigationMenuMock, NavigationMenuShowcase } from "./navigation-menu"
@@ -33,25 +27,15 @@ import { cardMock, CardShowcase } from "./card"
33
27
  import { checkboxMock, CheckboxShowcase } from "./checkbox"
34
28
  import { codeBlockMock, CodeBlockShowcase } from "./code-block"
35
29
  import { dualListPickerMock, DualListPickerShowcase } from "./dual-list-picker"
36
- import { ClearableInputShowcase, clearableInputMock } from "./clearable-input"
37
30
  import { collapseMock, CollapseShowcase } from "./collapse"
38
31
  import { comboboxMock, ComboboxShowcase } from "./combobox"
39
32
  import { commandBarMock, CommandBarShowcase } from "./command-bar"
40
- import { ConfirmDialogShowcase, confirmDialogMock } from "./confirm-dialog"
41
33
  import { commandPaletteMock, CommandPaletteShowcase } from "./command-palette"
34
+ import { ConfirmDialogShowcase, confirmDialogMock } from "./confirm-dialog"
42
35
  import { copyButtonMock, CopyButtonShowcase } from "./copy-button"
43
36
  import { copyFieldMock, CopyFieldShowcase } from "./copy-field"
44
37
  import { dataStateMock, DataStateShowcase } from "./data-state"
45
38
  import { dataTableMock, DataTableShowcase } from "./data-table"
46
- import {
47
- DataTablePartShowcase,
48
- dataTableActionsColumnMock,
49
- dataTablePaginationMock,
50
- dataTableRowActionsMock,
51
- dataTableSavedFiltersMock,
52
- dataTableSelectColumnMock,
53
- dataTableToolbarMock,
54
- } from "./data-table-parts"
55
39
  import { dateInputMock, DateInputShowcase } from "./date-input"
56
40
  import { DatePickerShowcase, datePickerMock } from "./date-picker"
57
41
  import { DateRangeInputShowcase, dateRangeInputMock } from "./date-range-input"
@@ -61,14 +45,11 @@ import { descriptionsMock, DescriptionsShowcase } from "./descriptions"
61
45
  import { dialogMock, DialogShowcase } from "./dialog"
62
46
  import { dropdownMenuMock, DropdownMenuShowcase } from "./dropdown-menu"
63
47
  import { DrawerShowcase, drawerMock } from "./drawer"
64
- import { emptyStateMock, EmptyStateShowcase } from "./empty-state"
65
- import { FormBuilderShowcase, formBuilderMock } from "./form-builder"
66
48
  import { FormWrapperShowcase, formAsyncSelectMock, formRHFWrapperMock, formSelectMock } from "./form-wrapper"
67
49
  import { hoverCardMock, HoverCardShowcase } from "./hover-card"
68
50
  import { kanbanBoardMock, KanbanBoardShowcase } from "./kanban-board"
69
51
  import { infoCardMock, InfoCardShowcase } from "./info-card"
70
52
  import { inputMock, InputShowcase } from "./input"
71
- import { keyboardShortcutMock, KeyboardShortcutShowcase } from "./keyboard-shortcut"
72
53
  import { kbdMock, KbdShowcase } from "./kbd"
73
54
  import { listMock, ListShowcase } from "./list"
74
55
  import { loadingStateMock, LoadingStateShowcase } from "./loading-state"
@@ -88,9 +69,6 @@ import { pageContainerMock, PageContainerShowcase } from "./page-container"
88
69
  import { pageHeaderMock, PageHeaderShowcase } from "./page-header"
89
70
  import { PageTabsShowcase, pageTabsMock } from "./page-tabs"
90
71
  import { sectionMock, SectionShowcase } from "./section"
91
- import { stackMock, StackShowcase } from "./stack"
92
- import { skeletonFormMock, SkeletonFormShowcase } from "./skeleton-form"
93
- import { skeletonTableMock, SkeletonTableShowcase } from "./skeleton-table"
94
72
  import { phoneInputMock, PhoneInputShowcase } from "./phone-input"
95
73
  import { pageStateMock, PageStateShowcase } from "./page-state"
96
74
  import { paginationMock, PaginationShowcase } from "./pagination"
@@ -115,7 +93,6 @@ import { spinnerMock, SpinnerShowcase } from "./spinner"
115
93
  import { statisticMock, StatisticShowcase } from "./statistic"
116
94
  import { switchMock, SwitchShowcase } from "./switch"
117
95
  import { TagInputShowcase, tagInputMock } from "./tag-input"
118
- import { tagListMock, TagListShowcase } from "./tag-list"
119
96
  import { tableMock, TableShowcase } from "./table"
120
97
  import { tabsMock, TabsShowcase } from "./tabs"
121
98
  import { textareaMock, TextareaShowcase } from "./textarea"
@@ -129,7 +106,6 @@ import { fileUploadMock, FileUploadShowcase } from "./file-upload"
129
106
  import { imageUploadMock, ImageUploadShowcase } from "./image-upload"
130
107
  import { passwordInputMock, PasswordInputShowcase } from "./password-input"
131
108
  import { ratingMock, RatingShowcase } from "./rating"
132
- import { watermarkMock, WatermarkShowcase } from "./watermark"
133
109
 
134
110
  export { defaultComponentDemoState } from "./types"
135
111
  export type { ComponentDemoBundle, ComponentDemoMock, ComponentDemoProps, ComponentDemoState } from "./types"
@@ -138,21 +114,17 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
138
114
  alert: { mock: alertMock, Showcase: AlertShowcase },
139
115
  "alert-dialog": { mock: alertDialogMock, Showcase: AlertDialogShowcase },
140
116
  accordion: { mock: accordionMock, Showcase: AccordionShowcase },
141
- affix: { mock: affixMock, Showcase: AffixShowcase },
142
117
  "action-menu": { mock: actionMenuMock, Showcase: ActionMenuShowcase },
143
118
  button: { mock: buttonMock, Showcase: ButtonShowcase },
144
119
  "button-group": { mock: buttonGroupMock, Showcase: ButtonGroupShowcase },
145
120
  calendar: { mock: calendarMock, Showcase: CalendarShowcase },
146
121
  "calendar-scheduler": { mock: calendarSchedulerMock, Showcase: CalendarSchedulerShowcase },
147
- "cascader": { mock: cascaderMock, Showcase: CascaderShowcase },
148
122
  "command-bar": { mock: commandBarMock, Showcase: CommandBarShowcase },
149
123
  "command-palette": { mock: commandPaletteMock, Showcase: CommandPaletteShowcase },
150
124
  "carousel": { mock: carouselMock, Showcase: CarouselShowcase },
151
125
  "clearable-input": { mock: clearableInputMock, Showcase: ClearableInputShowcase },
152
126
  "code-block": { mock: codeBlockMock, Showcase: CodeBlockShowcase },
153
- "aspect-ratio": { mock: aspectRatioMock, Showcase: AspectRatioShowcase },
154
127
  "dual-list-picker": { mock: dualListPickerMock, Showcase: DualListPickerShowcase },
155
- "float-button": { mock: floatButtonMock, Showcase: FloatButtonShowcase },
156
128
  divider: { mock: dividerMock, Showcase: DividerShowcase },
157
129
  input: { mock: inputMock, Showcase: InputShowcase },
158
130
  textarea: { mock: textareaMock, Showcase: TextareaShowcase },
@@ -182,7 +154,6 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
182
154
  rating: { mock: ratingMock, Showcase: RatingShowcase },
183
155
  "masked-input": { mock: maskedInputMock, Showcase: MaskedInputShowcase },
184
156
  "phone-input": { mock: phoneInputMock, Showcase: PhoneInputShowcase },
185
- "mention-input": { mock: mentionInputMock, Showcase: MentionInputShowcase },
186
157
  "search-input": { mock: searchInputMock, Showcase: SearchInputShowcase },
187
158
  slider: { mock: sliderMock, Showcase: SliderShowcase },
188
159
  "time-picker": { mock: timePickerMock, Showcase: TimePickerShowcase },
@@ -206,12 +177,10 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
206
177
  "hover-card": { mock: hoverCardMock, Showcase: HoverCardShowcase },
207
178
  "right-click-menu": { mock: rightClickMenuMock, Showcase: RightClickMenuShowcase },
208
179
  "data-table": { mock: dataTableMock, Showcase: DataTableShowcase },
209
- "data-table-pagination": { mock: dataTablePaginationMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-pagination" }) },
210
- "data-table-toolbar": { mock: dataTableToolbarMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-toolbar" }) },
211
- "data-table-row-actions": { mock: dataTableRowActionsMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-row-actions" }) },
212
- "data-table-actions-column": { mock: dataTableActionsColumnMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-actions-column" }) },
213
- "data-table-select-column": { mock: dataTableSelectColumnMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-select-column" }) },
214
- "data-table-saved-filters": { mock: dataTableSavedFiltersMock, Showcase: (props) => React.createElement(DataTablePartShowcase, { ...props, slug: "data-table-saved-filters" }) },
180
+ "data-table-column-visibility-menu": { mock: dataTableMock, Showcase: DataTableShowcase },
181
+ "data-table-sortable-header": { mock: dataTableMock, Showcase: DataTableShowcase },
182
+ "data-table-bulk-actions": { mock: dataTableMock, Showcase: DataTableShowcase },
183
+ "data-table-view-presets": { mock: dataTableMock, Showcase: DataTableShowcase },
215
184
  "saved-filter-select": { mock: savedFilterSelectMock, Showcase: SavedFilterSelectShowcase },
216
185
  "form-field": { mock: formRHFWrapperMock, Showcase: FormWrapperShowcase },
217
186
  "form-field-shell": { mock: formRHFWrapperMock, Showcase: FormWrapperShowcase },
@@ -228,7 +197,6 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
228
197
  "form-date-range-input": { mock: formRHFWrapperMock, Showcase: FormWrapperShowcase },
229
198
  "form-date-picker": { mock: formRHFWrapperMock, Showcase: FormWrapperShowcase },
230
199
  "form-date-range-picker": { mock: formRHFWrapperMock, Showcase: FormWrapperShowcase },
231
- "form-builder": { mock: formBuilderMock, Showcase: FormBuilderShowcase },
232
200
  "segmented-control": { mock: segmentedControlMock, Showcase: SegmentedControlShowcase },
233
201
  skeleton: { mock: skeletonMock, Showcase: SkeletonShowcase },
234
202
  spinner: { mock: spinnerMock, Showcase: SpinnerShowcase },
@@ -249,18 +217,13 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
249
217
  list: { mock: listMock, Showcase: ListShowcase },
250
218
  "property-grid": { mock: propertyGridMock, Showcase: PropertyGridShowcase },
251
219
  "activity-feed": { mock: activityFeedMock, Showcase: ActivityFeedShowcase },
252
- "empty-state": { mock: emptyStateMock, Showcase: EmptyStateShowcase },
253
220
  "loading-state": { mock: loadingStateMock, Showcase: LoadingStateShowcase },
254
221
  "data-state": { mock: dataStateMock, Showcase: DataStateShowcase },
255
- "keyboard-shortcut": { mock: keyboardShortcutMock, Showcase: KeyboardShortcutShowcase },
256
222
  progress: { mock: progressMock, Showcase: ProgressShowcase },
257
223
  result: { mock: resultMock, Showcase: ResultShowcase },
258
224
  "resizable-panel": { mock: resizablePanelMock, Showcase: ResizablePanelShowcase },
259
225
  section: { mock: sectionMock, Showcase: SectionShowcase },
260
- stack: { mock: stackMock, Showcase: StackShowcase },
261
226
  statistic: { mock: statisticMock, Showcase: StatisticShowcase },
262
- "skeleton-form": { mock: skeletonFormMock, Showcase: SkeletonFormShowcase },
263
- "skeleton-table": { mock: skeletonTableMock, Showcase: SkeletonTableShowcase },
264
227
  "sticky-footer-bar": { mock: stickyFooterBarMock, Showcase: StickyFooterBarShowcase },
265
228
  "rich-text-editor": { mock: richTextEditorMock, Showcase: RichTextEditorShowcase },
266
229
  tour: { mock: tourMock, Showcase: TourShowcase },
@@ -270,9 +233,7 @@ export const premiumShowcaseDemoRegistry: Record<string, ComponentDemoBundle> =
270
233
  "tree-view": { mock: treeViewMock, Showcase: TreeViewShowcase },
271
234
  "file-upload": { mock: fileUploadMock, Showcase: FileUploadShowcase },
272
235
  "image-upload": { mock: imageUploadMock, Showcase: ImageUploadShowcase },
273
- watermark: { mock: watermarkMock, Showcase: WatermarkShowcase },
274
236
  "scroll-box": { mock: scrollBoxMock, Showcase: ScrollBoxShowcase },
275
- "tag-list": { mock: tagListMock, Showcase: TagListShowcase },
276
237
  timeline: { mock: timelineMock, Showcase: TimelineShowcase },
277
238
  toast: { mock: toastMock, Showcase: ToastShowcase },
278
239
  }
@@ -1,7 +1,7 @@
1
1
  import type { ComponentDemoMock } from "../types"
2
2
 
3
- export const inputMock: ComponentDemoMock = {
4
- code: `import { Label, Input } from "tembro"\n\nexport function Example() {\n return (\n <form className="space-y-4">\n <div>\n <Label htmlFor="support-email">Support email</Label>\n <Input id="support-email" type="email" defaultValue="team@acme.io" required />\n </div>\n\n <div>\n <Label htmlFor="component-search">Search components</Label>\n <Input\n id="component-search"\n value={query}\n onValueChange={setQuery}\n placeholder="Search by slug or title"\n clearable\n trailingAction={<span className="text-xs text-muted-foreground">12 results</span>}\n replaceTrailingWhenClear={false}\n />\n </div>\n\n <div>\n <Label htmlFor="api-prefix">Cost estimate</Label>\n <Input\n id="api-prefix"\n defaultValue="120"\n readOnly\n trailing={<span className="text-sm aui-text-muted">USD</span>}\n />\n </div>\n\n <div>\n <Label htmlFor="disabled-input">Locked status</Label>\n <Input id="disabled-input" disabled value="Locked while syncing" />\n </div>\n </form>\n )\n}\n`,
3
+ export const inputMock: ComponentDemoMock = {
4
+ code: `import { useState } from "react"\nimport { Label, Input } from "tembro"\n\nexport function Example() {\n const [query, setQuery] = useState("buttons")\n\n return (\n <form className="space-y-4">\n <div>\n <Label htmlFor="support-email">Support email</Label>\n <Input id="support-email" type="email" defaultValue="team@acme.io" required />\n </div>\n\n <div>\n <Label htmlFor="component-search">Search components</Label>\n <Input\n id="component-search"\n value={query}\n onValueChange={setQuery}\n placeholder="Search by slug or title"\n clearable\n trailingAction={<span className="text-xs text-muted-foreground">12 results</span>}\n replaceTrailingWhenClear={false}\n />\n </div>\n\n <div>\n <Label htmlFor="api-prefix">Cost estimate</Label>\n <Input\n id="api-prefix"\n defaultValue="120"\n readOnly\n trailing={<span className="text-sm aui-text-muted">USD</span>}\n />\n </div>\n\n <div>\n <Label htmlFor="disabled-input">Locked status</Label>\n <Input id="disabled-input" disabled value="Locked while syncing" />\n </div>\n </form>\n )\n}\n`,
5
5
  htmlCode: `<label for="example">Search components</label>\n<input id="example" data-slot="input" type="text" placeholder="Search components..." />`,
6
6
  cliCommand: "npx tembro add input",
7
7
  highlights: [
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const maskedInputMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { MaskedInput } from "@/index"
5
+ import { MaskedInput } from "tembro"
6
6
 
7
7
  export function Example() {
8
8
  const [value, setValue] = useState("AA-123")
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const moneyInputMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { MoneyInput } from "@/index"
5
+ import { MoneyInput } from "tembro"
6
6
 
7
7
  export function Example() {
8
8
  const [value, setValue] = useState<number | null>(2990.5)
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const numberInputMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { NumberInput, parseNumberInput } from "@/index"
5
+ import { NumberInput, parseNumberInput } from "tembro"
6
6
 
7
7
  export function Example() {
8
8
  const [value, setValue] = useState<number | null>(14)
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const phoneInputMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { PhoneInput } from "@/index"
5
+ import { PhoneInput } from "tembro"
6
6
 
7
7
  export function Example() {
8
8
  const [value, setValue] = useState("+998 90 123 45 67")
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const quantityInputMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { QuantityInput } from "@/index"
5
+ import { QuantityInput } from "tembro"
6
6
 
7
7
  export function Example() {
8
8
  const [quantity, setQuantity] = useState<number | null>(3)
@@ -2,7 +2,7 @@ import type { ComponentDemoMock } from "../types"
2
2
 
3
3
  export const simpleSelectMock: ComponentDemoMock = {
4
4
  code: `import { useState } from "react"
5
- import { Button, SimpleSelect } from "@/index"
5
+ import { Button, SimpleSelect } from "tembro"
6
6
 
7
7
  const selectOptions = [
8
8
  { value: "public", label: "Public", disabled: false },
@@ -31,6 +31,7 @@ export function SimpleSelectShowcase({ mode }: ComponentDemoProps) {
31
31
  placeholder="Visibility"
32
32
  searchable
33
33
  clearable
34
+ showSelectedDescription
34
35
  />
35
36
  <div className="grid gap-3 md:grid-cols-3">
36
37
  <div className="rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm">
@@ -46,7 +47,7 @@ export function SimpleSelectShowcase({ mode }: ComponentDemoProps) {
46
47
  <p className="mt-2 aui-text-muted">Choose this for local option lists before moving to AsyncSelect.</p>
47
48
  </div>
48
49
  </div>
49
- <SimpleSelect key={uncontrolledKey} defaultValue="public" options={options} />
50
+ <SimpleSelect key={uncontrolledKey} defaultValue="public" options={options} showSelectedDescription />
50
51
  <div className="flex flex-wrap gap-2">
51
52
  <Button variant="outline" size="sm" onClick={() => setValue(undefined)}>
52
53
  Clear controlled
@@ -13,49 +13,49 @@ export const previewSurfaceCatalog: PreviewSurfaceRecord[] = [
13
13
  slug: "dashboard-01",
14
14
  title: "Dashboard with sidebar",
15
15
  command: "npx tembro init --template next --defaults\nnpx tembro add app-sidebar metric-grid data-table",
16
- code: `import { AppSidebar } from "@/components/layout/app-sidebar"\nimport { MetricGrid } from "@/components/display/metric-grid"\n\nexport function Dashboard01() {\n return <AppSidebar />\n}`,
16
+ code: `import { AppSidebar, MetricGrid } from "tembro"\n\nexport function Dashboard01() {\n return <AppSidebar />\n}`,
17
17
  tone: "dashboard",
18
18
  },
19
19
  {
20
20
  slug: "table-01",
21
21
  title: "Advanced invoice table",
22
22
  command: "npx tembro add data-table",
23
- code: `import { DataTable } from "@/components/data-table/data-table"\n\nexport function Table01() {\n return <DataTable columns={columns} data={rows} />\n}`,
23
+ code: `import { DataTable } from "tembro"\n\nexport function Table01() {\n return <DataTable columns={columns} data={rows} />\n}`,
24
24
  tone: "table",
25
25
  },
26
26
  {
27
27
  slug: "auth-01",
28
28
  title: "Authentication screen",
29
29
  command: "npx tembro add input button",
30
- code: `import { Button } from "@/components/ui/button"\nimport { Input } from "@/components/ui/input"\n\nexport function Auth01() {\n return (\n <div className="space-y-3">\n <Input placeholder="Email" type="email" />\n <Input placeholder="Password" type="password" />\n <Button>Sign in</Button>\n </div>\n )\n}`,
30
+ code: `import { Button, Input } from "tembro"\n\nexport function Auth01() {\n return (\n <div className="space-y-3">\n <Input placeholder="Email" type="email" />\n <Input placeholder="Password" type="password" />\n <Button>Sign in</Button>\n </div>\n )\n}`,
31
31
  tone: "auth",
32
32
  },
33
33
  {
34
34
  slug: "product-01",
35
35
  title: "Commerce product detail",
36
36
  command: "npx tembro add badge button",
37
- code: `import { Badge } from "@/components/ui/badge"\nimport { Button } from "@/components/ui/button"\n\nexport function Product01() {\n return (\n <div className="space-y-2">\n <Badge>Featured</Badge>\n <div>Starter kit bundle</div>\n <Button>Buy now</Button>\n </div>\n )\n}`,
37
+ code: `import { Badge, Button } from "tembro"\n\nexport function Product01() {\n return (\n <div className="space-y-2">\n <Badge>Featured</Badge>\n <div>Starter kit bundle</div>\n <Button>Buy now</Button>\n </div>\n )\n}`,
38
38
  tone: "product",
39
39
  },
40
40
  {
41
41
  slug: "command-01",
42
42
  title: "Command palette",
43
43
  command: "npx tembro add command-palette",
44
- code: `import { CommandPalette } from "@/components/command/command-palette"\n\nexport function Command01() {\n return <CommandPalette />\n}`,
44
+ code: `import { CommandPalette } from "tembro"\n\nexport function Command01() {\n return <CommandPalette />\n}`,
45
45
  tone: "command",
46
46
  },
47
47
  {
48
48
  slug: "calendar-01",
49
49
  title: "Calendar and date picker",
50
50
  command: "npx tembro add calendar date-picker",
51
- code: `import { Calendar } from "@/components/calendar/calendar"\n\nexport function Calendar01() {\n return <Calendar />\n}`,
51
+ code: `import { Calendar } from "tembro"\n\nexport function Calendar01() {\n return <Calendar />\n}`,
52
52
  tone: "calendar",
53
53
  },
54
54
  {
55
55
  slug: "upload-01",
56
56
  title: "Upload workspace",
57
57
  command: "npx tembro add file-upload image-upload",
58
- code: `import { FileUpload } from "@/components/upload/file-upload"\n\nexport function Upload01() {\n return <FileUpload />\n}`,
58
+ code: `import { FileUpload } from "tembro"\n\nexport function Upload01() {\n return <FileUpload />\n}`,
59
59
  tone: "upload",
60
60
  },
61
61
  ]
@@ -13,15 +13,11 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
13
13
  component("form-switch", "FormSwitch", "form", "Boolean form control with shell-level label and hint handling."),
14
14
  component("form-date-picker", "FormDatePicker", "form", "Popover date picker wrapper with RHF integration."),
15
15
  component("form-date-range-picker", "FormDateRangePicker", "form", "Range date picker wrapper for planning and reporting flows."),
16
- component("repeater-field", "RepeaterField", "form", "Repeating row editor for dynamic field arrays."),
17
-
18
- component("dialog-actions", "DialogActions", "overlay", "Modal footer action row with cancel, secondary and primary actions."),
19
16
  component("alert-dialog", "AlertDialog", "overlay", "Destructive confirmation dialog with loading-ready action states."),
20
17
  component("drawer", "Drawer", "overlay", "Side panel for contextual details without leaving the page."),
21
18
 
22
19
  component("pagination", "Pagination", "navigation", "Controlled page navigation with edge buttons and active state."),
23
20
  component("nav-tabs", "NavTabs", "navigation", "Navigation tabs for switching related document sections."),
24
- component("anchor-nav", "AnchorNav", "navigation", "Section jump navigation for long detail pages."),
25
21
  component("page-tabs", "PageTabs", "navigation", "Top-level page tab strip for route-sized sections."),
26
22
  component("stepper-tabs", "StepperTabs", "navigation", "Step-like tabs for setup and onboarding progress."),
27
23
 
@@ -29,8 +25,6 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
29
25
  component("number-input", "NumberInput", "inputs", "Numeric entry for counts, thresholds, and reporting controls."),
30
26
  component("phone-input", "PhoneInput", "inputs", "Phone input with stable raw and masked value handling."),
31
27
  component("money-input", "MoneyInput", "inputs", "Currency entry for billing, finance and KPI editing flows."),
32
- component("date-input", "DateInput", "inputs", "Single-date field for compact forms and filter bars."),
33
- component("date-range-input", "DateRangeInput", "inputs", "Date range surface for reporting and booking windows."),
34
28
  component("simple-select", "SimpleSelect", "inputs", "Static local-option select for dashboards and settings forms."),
35
29
  component("async-select", "AsyncSelect", "inputs", "Remote-loaded select for large server-backed option sets."),
36
30
  component("combobox", "Combobox", "inputs", "Searchable local choice input for reassignment and command-like selection."),
@@ -38,33 +32,23 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
38
32
  component("range-slider", "RangeSlider", "inputs", "Two-handle slider for min/max filtering."),
39
33
  component("rating", "Rating", "inputs", "Compact score input for feedback and review flows."),
40
34
  component("otp-input", "OtpInput", "inputs", "One-time code entry with fixed-length slots."),
41
- component("color-input", "ColorInput", "inputs", "Theme and accent color field with native color selection."),
42
35
  component("inline-editable", "InlineEditable", "inputs", "Inline editing primitive for dense tables and configuration rows."),
43
36
  component("tag-input", "TagInput", "inputs", "Tokenized text input for labels, skills, and quick filters."),
44
37
 
45
- component("description-list", "DescriptionList", "display", "Structured key-value details for entity, invoice and profile pages."),
46
38
  component("progress", "Progress", "display", "Linear progress with label, value formatter, tone and indeterminate state."),
47
39
  component("progress-circle", "ProgressCircle", "display", "Compact circular progress for sidebars and status cards."),
48
40
  component("timeline", "Timeline", "display", "Vertical or horizontal event stream for workflow history."),
49
41
  component("status-dot", "StatusDot", "display", "Tiny live status indicator with optional pulse animation."),
50
42
  component("user-card", "UserCard", "display", "User summary row with avatar, metadata and actions."),
51
- component("delta-badge", "DeltaBadge", "display", "Compact positive, negative, and risk deltas for metric summaries."),
52
- component("entity-header", "EntityHeader", "display", "Top summary row for a customer, invoice, or workspace."),
53
- component("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
54
- component("entity-card", "EntityCard", "display", "Structured summary card with title, meta, state and actions."),
55
- component("file-card", "FileCard", "display", "Compact file summary with state and actions."),
43
+ component("notification-center", "NotificationCenter", "display", "Compact activity and notifications stream."),
56
44
  component("data-list", "DataList", "display", "Readable title and description rows for compact operational lists."),
57
45
  component("status-legend", "StatusLegend", "display", "Explain status meaning and counts in a compact legend."),
58
- component("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
59
- component("comparison-card", "ComparisonCard", "display", "Compare current and previous values in one compact card."),
46
+ component("trend-card", "TrendCard", "display", "Metric summary card with trend context."),
60
47
 
61
48
  component("action-menu", "ActionMenu", "actions", "Compact dropdown action menu for rows and cards."),
62
49
  component("button-group", "ButtonGroup", "actions", "Grouped action buttons for view switching and compact controls."),
63
50
  component("quick-action-grid", "QuickActionGrid", "actions", "Action launcher grid for dense dashboard shortcuts."),
64
- component("filter-chips", "FilterChips", "actions", "Inline active filter summaries with clear and remove actions."),
65
- component("data-table-saved-filters", "SavedFilterSelect", "actions", "Saved filter chips and quick view controls."),
66
- component("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
67
- component("command-palette", "CommandPalette", "actions", "Keyboard command surface for global navigation and actions."),
51
+ component("filter-bar", "FilterBar", "actions", "Search, filters, active-count and reset actions in one toolbar."),
68
52
 
69
53
  component("app-header", "AppHeader", "layout", "Sticky product header with left, center and right slots."),
70
54
  component("section-header", "SectionHeader", "layout", "Reusable section title block with actions and metadata."),
@@ -73,17 +57,7 @@ export const registryQualityDemoRegistry = createShowcaseDemoRegistry([
73
57
  component("alert", "Alert", "feedback", "Inline feedback banner for success, warning, info, and error states."),
74
58
  component("page-state", "PageState", "feedback", "Full-page completion or blocked state with next actions."),
75
59
 
76
- component("data-table-pagination", "DataTablePagination", "data-table", "Pagination control used by DataTable pages."),
77
- component("data-table-toolbar", "DataTableToolbar", "data-table", "Toolbar surface for DataTable search, filters and actions."),
78
- component("data-table-column-visibility-menu", "DataTableColumnVisibilityMenu", "data-table", "Column visibility menu pattern for table views."),
79
- component("data-table-select-column", "DataTableSelectColumn", "data-table", "Selection column pattern for bulk table workflows."),
80
- component("data-table-sortable-header", "DataTableSortableHeader", "data-table", "Sortable header trigger with clear visual state."),
81
- component("data-table-row-actions", "DataTableRowActions", "data-table", "Row action menu for inspect, duplicate and archive operations."),
82
- component("data-table-actions-column", "DataTableActionsColumn", "data-table", "Reusable actions column for DataTable definitions."),
83
- component("data-table-bulk-actions", "DataTableBulkActions", "data-table", "Bulk action bar for selected rows."),
84
- component("data-table-view-presets", "DataTableViewPresets", "data-table", "Saved table view presets for operational dashboards."),
85
-
86
- component("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
60
+ component("calendar", "Calendar", "calendar", "Single month calendar surface for date picker and scheduling flows."),
87
61
 
88
62
  component("file-upload", "FileUpload", "upload", "Full file upload surface with dropzone, action button and helper text."),
89
63
  component("image-upload", "ImageUpload", "upload", "Image upload pattern with preview-oriented copy."),