tembro 2.0.4 → 2.0.6

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 (401) 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-pagination.cjs +1 -1
  20. package/dist/components/data-table/data-table-pagination.js +4 -4
  21. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  22. package/dist/components/data-table/data-table-toolbar.d.ts +5 -1
  23. package/dist/components/data-table/data-table-toolbar.js +36 -23
  24. package/dist/components/data-table/data-table.cjs +1 -1
  25. package/dist/components/data-table/data-table.d.ts +8 -6
  26. package/dist/components/data-table/data-table.js +89 -80
  27. package/dist/components/data-table/demo.cjs +1 -1
  28. package/dist/components/data-table/demo.js +3 -13
  29. package/dist/components/data-table/index.cjs +1 -1
  30. package/dist/components/data-table/index.js +5 -5
  31. package/dist/components/data-table/public.cjs +1 -1
  32. package/dist/components/data-table/public.d.ts +1 -6
  33. package/dist/components/data-table/public.js +7 -12
  34. package/dist/components/display/activity-feed.cjs +1 -1
  35. package/dist/components/display/activity-feed.d.ts +12 -1
  36. package/dist/components/display/activity-feed.js +69 -47
  37. package/dist/components/display/carousel.cjs +1 -1
  38. package/dist/components/display/carousel.d.ts +16 -1
  39. package/dist/components/display/carousel.js +71 -26
  40. package/dist/components/display/code-block.cjs +2 -1
  41. package/dist/components/display/code-block.d.ts +3 -1
  42. package/dist/components/display/code-block.js +33 -19
  43. package/dist/components/display/comparison-card.cjs +1 -1
  44. package/dist/components/display/comparison-card.d.ts +3 -3
  45. package/dist/components/display/comparison-card.js +14 -38
  46. package/dist/components/display/data-state.cjs +1 -1
  47. package/dist/components/display/data-state.d.ts +12 -2
  48. package/dist/components/display/data-state.js +80 -42
  49. package/dist/components/display/demo.cjs +1 -1
  50. package/dist/components/display/demo.js +1 -5
  51. package/dist/components/display/index.cjs +1 -1
  52. package/dist/components/display/index.d.ts +0 -3
  53. package/dist/components/display/index.js +21 -24
  54. package/dist/components/display/smart-card.d.ts +1 -1
  55. package/dist/components/display/status-legend.d.ts +1 -1
  56. package/dist/components/feedback/alert.cjs +1 -1
  57. package/dist/components/feedback/alert.d.ts +6 -1
  58. package/dist/components/feedback/alert.js +49 -19
  59. package/dist/components/feedback/index.cjs +1 -1
  60. package/dist/components/feedback/index.d.ts +0 -2
  61. package/dist/components/feedback/index.js +3 -5
  62. package/dist/components/filters/demo.cjs +1 -1
  63. package/dist/components/filters/demo.js +1 -5
  64. package/dist/components/filters/filter-bar.cjs +1 -1
  65. package/dist/components/filters/filter-bar.d.ts +15 -1
  66. package/dist/components/filters/filter-bar.js +94 -50
  67. package/dist/components/filters/index.cjs +1 -1
  68. package/dist/components/filters/index.d.ts +0 -1
  69. package/dist/components/filters/index.js +3 -4
  70. package/dist/components/form/form-field-shell.cjs +1 -1
  71. package/dist/components/form/form-field-shell.d.ts +17 -3
  72. package/dist/components/form/form-field-shell.js +54 -40
  73. package/dist/components/form/form-input.cjs +1 -1
  74. package/dist/components/form/form-input.d.ts +3 -4
  75. package/dist/components/form/form-input.js +285 -224
  76. package/dist/components/form/form-select.cjs +1 -1
  77. package/dist/components/form/form-select.d.ts +2 -2
  78. package/dist/components/form/form-select.js +49 -35
  79. package/dist/components/form/form-switch.cjs +1 -1
  80. package/dist/components/form/form-switch.js +79 -66
  81. package/dist/components/form/form-textarea.cjs +1 -1
  82. package/dist/components/form/form-textarea.js +59 -48
  83. package/dist/components/form/index.cjs +1 -1
  84. package/dist/components/form/index.js +14 -14
  85. package/dist/components/form/public.cjs +1 -1
  86. package/dist/components/form/public.d.ts +0 -8
  87. package/dist/components/form/public.js +7 -15
  88. package/dist/components/inputs/async-select.cjs +1 -1
  89. package/dist/components/inputs/async-select.d.ts +14 -2
  90. package/dist/components/inputs/async-select.js +278 -270
  91. package/dist/components/inputs/combobox.cjs +1 -1
  92. package/dist/components/inputs/combobox.d.ts +5 -1
  93. package/dist/components/inputs/combobox.js +52 -19
  94. package/dist/components/inputs/search-input.d.ts +3 -0
  95. package/dist/components/inputs/simple-select.cjs +1 -1
  96. package/dist/components/inputs/simple-select.d.ts +10 -31
  97. package/dist/components/inputs/simple-select.js +5 -85
  98. package/dist/components/layout/app-sidebar.cjs +1 -1
  99. package/dist/components/layout/app-sidebar.d.ts +4 -1
  100. package/dist/components/layout/app-sidebar.js +152 -132
  101. package/dist/components/layout/breadcrumbs.cjs +1 -1
  102. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  103. package/dist/components/layout/breadcrumbs.js +10 -10
  104. package/dist/components/layout/index.cjs +1 -1
  105. package/dist/components/layout/index.js +3 -3
  106. package/dist/components/layout/stat-card.cjs +1 -1
  107. package/dist/components/layout/stat-card.d.ts +8 -1
  108. package/dist/components/layout/stat-card.js +33 -11
  109. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  110. package/dist/components/modern/calendar-scheduler.d.ts +2 -1
  111. package/dist/components/modern/calendar-scheduler.js +21 -12
  112. package/dist/components/overlay/alert-dialog.cjs +1 -1
  113. package/dist/components/overlay/alert-dialog.d.ts +15 -1
  114. package/dist/components/overlay/alert-dialog.js +102 -27
  115. package/dist/components/overlay/drawer.cjs +1 -1
  116. package/dist/components/overlay/drawer.d.ts +4 -1
  117. package/dist/components/overlay/drawer.js +20 -17
  118. package/dist/components/patterns/index.cjs +1 -1
  119. package/dist/components/patterns/index.d.ts +0 -1
  120. package/dist/components/patterns/index.js +1 -2
  121. package/dist/components/patterns/public.cjs +1 -1
  122. package/dist/components/patterns/public.d.ts +0 -1
  123. package/dist/components/patterns/public.js +1 -2
  124. package/dist/components/ui/button/index.cjs +1 -1
  125. package/dist/components/ui/button/index.d.ts +3 -1
  126. package/dist/components/ui/button/index.js +7 -5
  127. package/dist/components/ui/card/index.cjs +1 -1
  128. package/dist/components/ui/card/index.d.ts +13 -2
  129. package/dist/components/ui/card/index.js +74 -49
  130. package/dist/components/ui/checkbox/index.cjs +1 -1
  131. package/dist/components/ui/checkbox/index.d.ts +8 -0
  132. package/dist/components/ui/checkbox/index.js +16 -14
  133. package/dist/components/ui/collapse/index.cjs +1 -1
  134. package/dist/components/ui/collapse/index.d.ts +17 -3
  135. package/dist/components/ui/collapse/index.js +88 -33
  136. package/dist/components/ui/dialog/index.cjs +1 -1
  137. package/dist/components/ui/dialog/index.d.ts +2 -1
  138. package/dist/components/ui/dialog/index.js +6 -4
  139. package/dist/components/ui/dropdown-menu/index.cjs +1 -1
  140. package/dist/components/ui/dropdown-menu/index.d.ts +9 -4
  141. package/dist/components/ui/dropdown-menu/index.js +87 -62
  142. package/dist/components/ui/input/index.cjs +1 -1
  143. package/dist/components/ui/input/index.d.ts +8 -0
  144. package/dist/components/ui/input/index.js +63 -30
  145. package/dist/components/ui/select/index.cjs +1 -1
  146. package/dist/components/ui/select/index.d.ts +33 -1
  147. package/dist/components/ui/select/index.js +154 -48
  148. package/dist/index.cjs +1 -1
  149. package/dist/index.js +137 -156
  150. package/dist/public-component-surface.cjs +1 -1
  151. package/dist/public-component-surface.js +0 -15
  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 +23 -36
  155. package/dist/showcase/create-demo.js +15 -16
  156. package/dist/showcase/fallback.cjs +3 -3
  157. package/dist/showcase/fallback.js +275 -265
  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 +16 -14
  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 +426 -467
  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/select/mock.cjs +8 -9
  224. package/dist/showcase/premium/select/mock.js +1 -1
  225. package/dist/showcase/premium/select/showcase.cjs +1 -1
  226. package/dist/showcase/premium/select/showcase.js +76 -86
  227. package/dist/showcase/premium/simple-select/mock.cjs +1 -1
  228. package/dist/showcase/premium/simple-select/mock.js +1 -1
  229. package/dist/showcase/premium/simple-select/showcase.cjs +1 -1
  230. package/dist/showcase/premium/simple-select/showcase.js +4 -2
  231. package/dist/showcase/preview-catalog.cjs +7 -10
  232. package/dist/showcase/preview-catalog.js +7 -7
  233. package/dist/showcase/registry-quality.cjs +1 -1
  234. package/dist/showcase/registry-quality.js +0 -23
  235. package/dist/showcase/registry-specific.cjs +1 -1
  236. package/dist/showcase/registry-specific.js +153 -383
  237. package/dist/showcase/render-registry-preview.cjs +1 -1
  238. package/dist/showcase/render-registry-preview.js +169 -197
  239. package/dist/showcase/site-data.cjs +1 -1
  240. package/dist/showcase/site-data.js +197 -941
  241. package/dist/showcase/supplemental.cjs +1 -1
  242. package/dist/showcase/supplemental.js +1 -1
  243. package/dist/showcase/tembro-registry.json.cjs +1 -1
  244. package/dist/showcase/tembro-registry.json.js +33 -51
  245. package/package.json +1 -1
  246. package/packages/cli/dist/index.cjs +2 -2
  247. package/packages/cli/vendor/src/components/actions/action-menu.tsx +149 -83
  248. package/packages/cli/vendor/src/components/actions/button-group.tsx +141 -33
  249. package/packages/cli/vendor/src/components/actions/copy-button.tsx +21 -16
  250. package/packages/cli/vendor/src/components/calendar/calendar.tsx +223 -88
  251. package/packages/cli/vendor/src/components/calendar/date-picker.tsx +73 -29
  252. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +154 -49
  253. package/packages/cli/vendor/src/components/data-table/data-table-pagination.tsx +7 -7
  254. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +71 -50
  255. package/packages/cli/vendor/src/components/data-table/data-table.tsx +86 -73
  256. package/packages/cli/vendor/src/components/data-table/demo.tsx +2 -12
  257. package/packages/cli/vendor/src/components/data-table/public.ts +1 -6
  258. package/packages/cli/vendor/src/components/display/activity-feed.tsx +98 -40
  259. package/packages/cli/vendor/src/components/display/carousel.tsx +104 -6
  260. package/packages/cli/vendor/src/components/display/code-block.tsx +58 -26
  261. package/packages/cli/vendor/src/components/display/comparison-card.tsx +15 -41
  262. package/packages/cli/vendor/src/components/display/data-state.tsx +119 -50
  263. package/packages/cli/vendor/src/components/display/demo.tsx +0 -4
  264. package/packages/cli/vendor/src/components/display/index.ts +0 -3
  265. package/packages/cli/vendor/src/components/display/smart-card.tsx +1 -1
  266. package/packages/cli/vendor/src/components/display/status-legend.tsx +1 -1
  267. package/packages/cli/vendor/src/components/feedback/alert.tsx +86 -28
  268. package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
  269. package/packages/cli/vendor/src/components/filters/demo.tsx +0 -1
  270. package/packages/cli/vendor/src/components/filters/filter-bar.tsx +126 -54
  271. package/packages/cli/vendor/src/components/filters/index.ts +0 -1
  272. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +72 -34
  273. package/packages/cli/vendor/src/components/form/form-input.tsx +127 -23
  274. package/packages/cli/vendor/src/components/form/form-select.tsx +30 -7
  275. package/packages/cli/vendor/src/components/form/form-switch.tsx +77 -58
  276. package/packages/cli/vendor/src/components/form/form-textarea.tsx +65 -51
  277. package/packages/cli/vendor/src/components/form/public.ts +0 -9
  278. package/packages/cli/vendor/src/components/inputs/async-select.tsx +138 -91
  279. package/packages/cli/vendor/src/components/inputs/combobox.tsx +66 -9
  280. package/packages/cli/vendor/src/components/inputs/search-input.tsx +5 -2
  281. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +20 -162
  282. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +42 -1
  283. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +17 -8
  284. package/packages/cli/vendor/src/components/layout/stat-card.tsx +63 -23
  285. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +32 -22
  286. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +148 -24
  287. package/packages/cli/vendor/src/components/overlay/drawer.tsx +42 -30
  288. package/packages/cli/vendor/src/components/patterns/index.ts +0 -1
  289. package/packages/cli/vendor/src/components/patterns/public.ts +0 -1
  290. package/packages/cli/vendor/src/components/ui/button/index.tsx +27 -17
  291. package/packages/cli/vendor/src/components/ui/card/index.tsx +95 -25
  292. package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +22 -5
  293. package/packages/cli/vendor/src/components/ui/collapse/index.tsx +97 -16
  294. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +12 -8
  295. package/packages/cli/vendor/src/components/ui/dropdown-menu/index.tsx +82 -28
  296. package/packages/cli/vendor/src/components/ui/input/index.tsx +98 -0
  297. package/packages/cli/vendor/src/components/ui/select/index.tsx +227 -34
  298. package/packages/cli/vendor/src/public-component-surface.ts +0 -3
  299. package/packages/cli/vendor/src/showcase/component-api-schema.ts +2 -2
  300. package/packages/cli/vendor/src/showcase/create-demo.tsx +44 -58
  301. package/packages/cli/vendor/src/showcase/fallback.tsx +80 -99
  302. package/packages/cli/vendor/src/showcase/premium/accordion/showcase.tsx +32 -2
  303. package/packages/cli/vendor/src/showcase/premium/action-menu/showcase.tsx +12 -3
  304. package/packages/cli/vendor/src/showcase/premium/activity-feed/showcase.tsx +15 -2
  305. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +32 -17
  306. package/packages/cli/vendor/src/showcase/premium/alert-dialog/showcase.tsx +28 -3
  307. package/packages/cli/vendor/src/showcase/premium/async-multi-select/mock.ts +6 -5
  308. package/packages/cli/vendor/src/showcase/premium/async-multi-select/showcase.tsx +5 -4
  309. package/packages/cli/vendor/src/showcase/premium/async-select/mock.ts +1 -1
  310. package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +36 -0
  311. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +26 -5
  312. package/packages/cli/vendor/src/showcase/premium/button-group/showcase.tsx +20 -3
  313. package/packages/cli/vendor/src/showcase/premium/calendar/showcase.tsx +5 -0
  314. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +33 -5
  315. package/packages/cli/vendor/src/showcase/premium/checkbox/showcase.tsx +46 -3
  316. package/packages/cli/vendor/src/showcase/premium/clearable-input/mock.ts +5 -3
  317. package/packages/cli/vendor/src/showcase/premium/clearable-input/showcase.tsx +5 -2
  318. package/packages/cli/vendor/src/showcase/premium/collapse/showcase.tsx +4 -0
  319. package/packages/cli/vendor/src/showcase/premium/combobox/showcase.tsx +8 -0
  320. package/packages/cli/vendor/src/showcase/premium/data-table/showcase.tsx +77 -27
  321. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +14 -14
  322. package/packages/cli/vendor/src/showcase/premium/date-input/mock.ts +1 -1
  323. package/packages/cli/vendor/src/showcase/premium/date-range-picker/showcase.tsx +7 -0
  324. package/packages/cli/vendor/src/showcase/premium/dropdown-menu/showcase.tsx +46 -3
  325. package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +70 -44
  326. package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +129 -12
  327. package/packages/cli/vendor/src/showcase/premium/index.ts +7 -24
  328. package/packages/cli/vendor/src/showcase/premium/input/mock.ts +2 -2
  329. package/packages/cli/vendor/src/showcase/premium/masked-input/mock.ts +1 -1
  330. package/packages/cli/vendor/src/showcase/premium/money-input/mock.ts +1 -1
  331. package/packages/cli/vendor/src/showcase/premium/number-input/mock.ts +1 -1
  332. package/packages/cli/vendor/src/showcase/premium/phone-input/mock.ts +1 -1
  333. package/packages/cli/vendor/src/showcase/premium/quantity-input/mock.ts +1 -1
  334. package/packages/cli/vendor/src/showcase/premium/select/mock.ts +1 -1
  335. package/packages/cli/vendor/src/showcase/premium/select/showcase.tsx +13 -21
  336. package/packages/cli/vendor/src/showcase/premium/simple-select/mock.ts +1 -1
  337. package/packages/cli/vendor/src/showcase/premium/simple-select/showcase.tsx +2 -1
  338. package/packages/cli/vendor/src/showcase/preview-catalog.tsx +7 -7
  339. package/packages/cli/vendor/src/showcase/registry-quality.ts +4 -28
  340. package/packages/cli/vendor/src/showcase/registry-specific.tsx +10 -186
  341. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +23 -57
  342. package/packages/cli/vendor/src/showcase/site-data.tsx +2443 -2761
  343. package/packages/cli/vendor/src/showcase/supplemental.tsx +2 -42
  344. package/packages/cli/vendor/src/showcase/tembro-registry.json +11 -58
  345. package/registry.json +11 -61
  346. package/dist/components/display/entity-card.cjs +0 -1
  347. package/dist/components/display/entity-card.d.ts +0 -18
  348. package/dist/components/display/entity-card.js +0 -61
  349. package/dist/components/display/entity-header.cjs +0 -1
  350. package/dist/components/display/entity-header.d.ts +0 -13
  351. package/dist/components/display/entity-header.js +0 -52
  352. package/dist/components/display/file-card.cjs +0 -1
  353. package/dist/components/display/file-card.d.ts +0 -14
  354. package/dist/components/display/file-card.js +0 -59
  355. package/dist/components/feedback/empty-search-state.cjs +0 -1
  356. package/dist/components/feedback/empty-search-state.d.ts +0 -11
  357. package/dist/components/feedback/empty-search-state.js +0 -45
  358. package/dist/components/feedback/empty-state.cjs +0 -1
  359. package/dist/components/feedback/empty-state.d.ts +0 -11
  360. package/dist/components/feedback/empty-state.js +0 -38
  361. package/dist/components/filters/filter-chips.cjs +0 -1
  362. package/dist/components/filters/filter-chips.d.ts +0 -18
  363. package/dist/components/filters/filter-chips.js +0 -61
  364. package/dist/components/patterns/form-builder-presets.cjs +0 -1
  365. package/dist/components/patterns/form-builder-presets.d.ts +0 -1
  366. package/dist/components/patterns/form-builder-presets.js +0 -2
  367. package/dist/components/patterns/form-builder.cjs +0 -1
  368. package/dist/components/patterns/form-builder.d.ts +0 -109
  369. package/dist/components/patterns/form-builder.js +0 -263
  370. package/dist/showcase/premium/empty-state/index.cjs +0 -1
  371. package/dist/showcase/premium/empty-state/index.d.ts +0 -2
  372. package/dist/showcase/premium/empty-state/index.js +0 -3
  373. package/dist/showcase/premium/empty-state/mock.cjs +0 -14
  374. package/dist/showcase/premium/empty-state/mock.d.ts +0 -2
  375. package/dist/showcase/premium/empty-state/mock.js +0 -31
  376. package/dist/showcase/premium/empty-state/showcase.cjs +0 -1
  377. package/dist/showcase/premium/empty-state/showcase.d.ts +0 -3
  378. package/dist/showcase/premium/empty-state/showcase.js +0 -99
  379. package/dist/showcase/premium/form-builder/index.cjs +0 -1
  380. package/dist/showcase/premium/form-builder/index.d.ts +0 -2
  381. package/dist/showcase/premium/form-builder/index.js +0 -3
  382. package/dist/showcase/premium/form-builder/mock.cjs +0 -57
  383. package/dist/showcase/premium/form-builder/mock.d.ts +0 -2
  384. package/dist/showcase/premium/form-builder/mock.js +0 -40
  385. package/dist/showcase/premium/form-builder/showcase.cjs +0 -1
  386. package/dist/showcase/premium/form-builder/showcase.d.ts +0 -3
  387. package/dist/showcase/premium/form-builder/showcase.js +0 -69
  388. package/packages/cli/vendor/src/components/display/entity-card.tsx +0 -80
  389. package/packages/cli/vendor/src/components/display/entity-header.tsx +0 -80
  390. package/packages/cli/vendor/src/components/display/file-card.tsx +0 -61
  391. package/packages/cli/vendor/src/components/feedback/empty-search-state.tsx +0 -65
  392. package/packages/cli/vendor/src/components/feedback/empty-state.tsx +0 -56
  393. package/packages/cli/vendor/src/components/filters/filter-chips.tsx +0 -89
  394. package/packages/cli/vendor/src/components/patterns/form-builder-presets.ts +0 -13
  395. package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -443
  396. package/packages/cli/vendor/src/showcase/premium/empty-state/index.ts +0 -2
  397. package/packages/cli/vendor/src/showcase/premium/empty-state/mock.ts +0 -30
  398. package/packages/cli/vendor/src/showcase/premium/empty-state/showcase.tsx +0 -65
  399. package/packages/cli/vendor/src/showcase/premium/form-builder/index.ts +0 -2
  400. package/packages/cli/vendor/src/showcase/premium/form-builder/mock.ts +0 -79
  401. package/packages/cli/vendor/src/showcase/premium/form-builder/showcase.tsx +0 -55
@@ -1,6 +1,9 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Label, Input } from "tembro"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
+ import { Label, Input } from "tembro"
2
3
 
3
4
  export function Example() {
5
+ const [query, setQuery] = useState("buttons")
6
+
4
7
  return (
5
8
  <form className="space-y-4">
6
9
  <div>
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/input/mock.ts
2
2
  var e = {
3
- 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
+ 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",
4
4
  htmlCode: "<label for=\"example\">Search components</label>\n<input id=\"example\" data-slot=\"input\" type=\"text\" placeholder=\"Search components...\" />",
5
5
  cliCommand: "npx tembro add input",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { MaskedInput } from "@/index"
2
+ import { MaskedInput } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState("AA-123")
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/masked-input/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { MaskedInput } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState(\"AA-123\")\n\n return (\n <MaskedInput\n value={value}\n onValueChange={(nextValue) => setValue(nextValue)}\n mask={(raw: string) => raw.toUpperCase().slice(0, 6).replace(/(.{3})(?=.)/, \"$1-\")}\n placeholder=\"AA-123\"\n />\n )\n}\n",
3
+ code: "import { useState } from \"react\"\nimport { MaskedInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"AA-123\")\n\n return (\n <MaskedInput\n value={value}\n onValueChange={(nextValue) => setValue(nextValue)}\n mask={(raw: string) => raw.toUpperCase().slice(0, 6).replace(/(.{3})(?=.)/, \"$1-\")}\n placeholder=\"AA-123\"\n />\n )\n}\n",
4
4
  htmlCode: "<label for=\"masked\">Referral code</label><input id=\"masked\" type=\"text\" value=\"AA-123\" placeholder=\"AA-123\" />",
5
5
  cliCommand: "npx tembro add masked-input",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { MoneyInput } from "@/index"
2
+ import { MoneyInput } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState<number | null>(2990.5)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/money-input/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { MoneyInput } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(2990.5)\n const [raw, setRaw] = useState(\"$2,990.50\")\n\n return (\n <div className=\"space-y-3\">\n <MoneyInput\n value={value}\n onValueChange={(nextValue, rawValue) => {\n setValue(nextValue)\n setRaw(rawValue)\n }}\n prefix=\"$\"\n inputMode=\"decimal\"\n step={0.5}\n />\n <p className=\"text-sm aui-text-subtle\">\n Numeric value: <strong>{value === null ? \"invalid\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw input: {raw}</p>\n <p className=\"text-sm aui-text-muted\">Use inputMode to match expected currency input source.</p>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { MoneyInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(2990.5)\n const [raw, setRaw] = useState(\"$2,990.50\")\n\n return (\n <div className=\"space-y-3\">\n <MoneyInput\n value={value}\n onValueChange={(nextValue, rawValue) => {\n setValue(nextValue)\n setRaw(rawValue)\n }}\n prefix=\"$\"\n inputMode=\"decimal\"\n step={0.5}\n />\n <p className=\"text-sm aui-text-subtle\">\n Numeric value: <strong>{value === null ? \"invalid\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw input: {raw}</p>\n <p className=\"text-sm aui-text-muted\">Use inputMode to match expected currency input source.</p>\n </div>\n )\n}",
4
4
  htmlCode: "<label for=\"money\">Budget</label><div>$<input id=\"money\" inputmode=\"decimal\" type=\"text\" /></div>",
5
5
  cliCommand: "npx tembro add money-input",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { NumberInput, parseNumberInput } from "@/index"
2
+ import { NumberInput, parseNumberInput } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState<number | null>(14)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/number-input/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { NumberInput, parseNumberInput } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(14)\n const [raw, setRaw] = useState(\"14\")\n\n return (\n <div className=\"space-y-3\">\n <NumberInput\n value={value}\n onNumberChange={(nextValue) => {\n setValue(nextValue)\n setRaw(String(nextValue ?? \"\"))\n }}\n onChange={(event) => {\n const candidate = parseNumberInput(event.target.value)\n if (candidate === null) setRaw(event.target.value)\n }}\n min={0}\n max={100}\n step={5}\n allowEmpty\n />\n <p className=\"text-sm aui-text-subtle\">\n Parsed numeric: <strong>{value === null ? \"unset\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw text: {raw}</p>\n <p className=\"text-sm aui-text-muted\">\n Try entering invalid chars to see how parse and clamp rules apply.\n </p>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { NumberInput, parseNumberInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState<number | null>(14)\n const [raw, setRaw] = useState(\"14\")\n\n return (\n <div className=\"space-y-3\">\n <NumberInput\n value={value}\n onNumberChange={(nextValue) => {\n setValue(nextValue)\n setRaw(String(nextValue ?? \"\"))\n }}\n onChange={(event) => {\n const candidate = parseNumberInput(event.target.value)\n if (candidate === null) setRaw(event.target.value)\n }}\n min={0}\n max={100}\n step={5}\n allowEmpty\n />\n <p className=\"text-sm aui-text-subtle\">\n Parsed numeric: <strong>{value === null ? \"unset\" : value}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">Raw text: {raw}</p>\n <p className=\"text-sm aui-text-muted\">\n Try entering invalid chars to see how parse and clamp rules apply.\n </p>\n </div>\n )\n}",
4
4
  htmlCode: "<label for=\"example-number\">Amount</label><input id=\"example-number\" inputmode=\"decimal\" type=\"text\" />",
5
5
  cliCommand: "npx tembro add number-input",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { PhoneInput } from "@/index"
2
+ import { PhoneInput } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [value, setValue] = useState("+998 90 123 45 67")
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/phone-input/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { PhoneInput } from \"@/index\"\n\nexport function Example() {\n const [value, setValue] = useState(\"+998 90 123 45 67\")\n\n return (\n <PhoneInput\n value={value}\n onValueChange={setValue}\n defaultCountry=\"UZ\"\n placeholder=\"+998 90 123 45 67\"\n />\n )\n}\n",
3
+ code: "import { useState } from \"react\"\nimport { PhoneInput } from \"tembro\"\n\nexport function Example() {\n const [value, setValue] = useState(\"+998 90 123 45 67\")\n\n return (\n <PhoneInput\n value={value}\n onValueChange={setValue}\n defaultCountry=\"UZ\"\n placeholder=\"+998 90 123 45 67\"\n />\n )\n}\n",
4
4
  htmlCode: "<label for=\"phone\">Phone</label><input id=\"phone\" type=\"tel\" inputmode=\"tel\" placeholder=\"+998 90 123 45 67\" />",
5
5
  cliCommand: "npx tembro add phone-input",
6
6
  highlights: [
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { QuantityInput } from "@/index"
2
+ import { QuantityInput } from "tembro"
3
3
 
4
4
  export function Example() {
5
5
  const [quantity, setQuantity] = useState<number | null>(3)
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/quantity-input/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { QuantityInput } from \"@/index\"\n\nexport function Example() {\n const [quantity, setQuantity] = useState<number | null>(3)\n\n return (\n <div className=\"space-y-3\">\n <QuantityInput\n value={quantity}\n onValueChange={(nextValue: number | null) => setQuantity(nextValue)}\n min={0}\n max={10}\n step={1}\n showControls\n />\n <p className=\"text-sm aui-text-subtle\">\n Items: <strong>{quantity ?? \"unset\"}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">\n Controls should stay aligned with adjacent action columns in compact table rows.\n </p>\n <p className=\"text-sm aui-text-muted\">\n Try increment/decrement at bounds to validate guardrails.\n </p>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { QuantityInput } from \"tembro\"\n\nexport function Example() {\n const [quantity, setQuantity] = useState<number | null>(3)\n\n return (\n <div className=\"space-y-3\">\n <QuantityInput\n value={quantity}\n onValueChange={(nextValue: number | null) => setQuantity(nextValue)}\n min={0}\n max={10}\n step={1}\n showControls\n />\n <p className=\"text-sm aui-text-subtle\">\n Items: <strong>{quantity ?? \"unset\"}</strong>\n </p>\n <p className=\"text-sm aui-text-muted\">\n Controls should stay aligned with adjacent action columns in compact table rows.\n </p>\n <p className=\"text-sm aui-text-muted\">\n Try increment/decrement at bounds to validate guardrails.\n </p>\n </div>\n )\n}",
4
4
  htmlCode: "<label for=\"qty\">Quantity</label><input id=\"qty\" type=\"text\" inputmode=\"numeric\" />",
5
5
  cliCommand: "npx tembro add quantity-input",
6
6
  highlights: [
@@ -1,12 +1,11 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from "tembro"
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { Select } from "tembro"
2
+
3
+ const planOptions = [
4
+ { value: "starter", label: "Starter" },
5
+ { value: "growth", label: "Growth" },
6
+ { value: "enterprise", label: "Enterprise" },
7
+ ]
2
8
 
3
9
  export function Example() {
4
- return (
5
- <Select defaultValue="starter">
6
- <SelectTrigger><SelectValue /></SelectTrigger>
7
- <SelectContent>
8
- <SelectItem value="starter">Starter</SelectItem>
9
- </SelectContent>
10
- </Select>
11
- )
10
+ return <Select defaultValue="starter" options={planOptions} />
12
11
  }`,cliCommand:`npx tembro add select`,highlights:[`Primary selection surface`,`Controlled selection`,`Searchable local flow`,`Compact trigger options`],relatedBlockSlugs:[`crm-dashboard`,`users-table`,`dashboard-starter`],scenarios:[{title:`Plan picker`,description:`Switch between starter, growth and enterprise plans.`},{title:`Status filter`,description:`Use select inside dashboards and reporting toolbars.`},{title:`Compact trigger`,description:`Render small controls in dense admin layouts.`},{title:`Grouped options`,description:`Present structured choices without overwhelming the form.`}],capabilityNotes:[`Start here for most static single-choice flows before reaching for helper members.`,`Supports controlled and uncontrolled selected values plus searchable local filtering.`,`Includes trigger sizing for compact or default density layouts.`,`AsyncSelect, AsyncMultiSelect, SimpleSelect, and Combobox should read as related members rather than separate starting points.`]};exports.selectMock=e;
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/select/mock.ts
2
2
  var e = {
3
- code: "import { Select, SelectTrigger, SelectValue, SelectContent, SelectItem } from \"tembro\"\n\nexport function Example() {\n return (\n <Select defaultValue=\"starter\">\n <SelectTrigger><SelectValue /></SelectTrigger>\n <SelectContent>\n <SelectItem value=\"starter\">Starter</SelectItem>\n </SelectContent>\n </Select>\n )\n}",
3
+ code: "import { Select } from \"tembro\"\n\nconst planOptions = [\n { value: \"starter\", label: \"Starter\" },\n { value: \"growth\", label: \"Growth\" },\n { value: \"enterprise\", label: \"Enterprise\" },\n]\n\nexport function Example() {\n return <Select defaultValue=\"starter\" options={planOptions} />\n}",
4
4
  cliCommand: "npx tembro add select",
5
5
  highlights: [
6
6
  "Primary selection surface",
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../components/ui/button/index.cjs"),n=require("../../../components/ui/badge/index.cjs"),r=require("../../../components/ui/select/index.cjs"),i=require("./data.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=`border-t border-[color:var(--aui-divider)] py-6`;function c({state:e,setState:c}){let l=i.selectDemoGroups[0].options,u=i.selectDemoGroups[1].options,d=e.selectValue??l[0].value,f=l.find(e=>e.value===d)??l[0],p=l[1]??l[0],[m,h]=a.useState(`plan`),g=f.value===`enterprise`?[[`Seats`,`Unlimited`],[`Support`,`Dedicated`],[`SLA`,`Priority`]]:f.value===`growth`?[[`Seats`,`25`],[`Support`,`Shared`],[`SLA`,`Same day`]]:[[`Seats`,`5`],[`Support`,`Email`],[`SLA`,`Standard`]];return(0,o.jsxs)(`div`,{className:`space-y-0`,children:[(0,o.jsxs)(`section`,{className:`pb-6`,children:[(0,o.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between`,children:[(0,o.jsxs)(`div`,{className:`max-w-xl`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Selection`}),(0,o.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`One clean select surface first`}),(0,o.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Show the default trigger, controlled value, and summary update in one place.`})]}),(0,o.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]`,children:[(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Choice`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:f.label})]}),(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Mode`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold capitalize aui-text-strong`,children:m})]}),(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Options`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:m===`plan`?l.length:u.length})]})]})]}),(0,o.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2`,children:[(0,o.jsx)(t.Button,{size:`sm`,variant:m===`plan`?`default`:`outline`,onClick:()=>h(`plan`),children:`Default trigger`}),(0,o.jsx)(t.Button,{size:`sm`,variant:m===`density`?`default`:`outline`,onClick:()=>h(`density`),children:`Compact trigger`})]})]}),(0,o.jsx)(`section`,{className:s,children:(0,o.jsxs)(`div`,{className:`grid gap-6 xl:grid-cols-[minmax(0,0.92fr)_minmax(0,1.08fr)]`,children:[(0,o.jsxs)(`div`,{className:`space-y-4`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Primary select`}),(0,o.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:m===`plan`?`Standard choice trigger`:`Compact toolbar trigger`})]}),(0,o.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium aui-text-muted`,children:m===`plan`?`Workspace plan`:`Toolbar density`}),(0,o.jsx)(`div`,{className:`mt-3`,children:m===`plan`?(0,o.jsxs)(r.Select,{value:d,onValueChange:e=>c({selectValue:e??l[0].value}),children:[(0,o.jsx)(r.SelectTrigger,{className:`w-full`,children:(0,o.jsx)(r.SelectValue,{})}),(0,o.jsx)(r.SelectContent,{children:l.map(e=>(0,o.jsx)(r.SelectItem,{value:e.value,children:e.label},e.value))})]}):(0,o.jsxs)(r.Select,{defaultValue:u[0].value,children:[(0,o.jsx)(r.SelectTrigger,{size:`sm`,className:`w-full`,children:(0,o.jsx)(r.SelectValue,{})}),(0,o.jsx)(r.SelectContent,{children:u.map(e=>(0,o.jsx)(r.SelectItem,{value:e.value,children:e.label},e.value))})]})})]}),(0,o.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:g.map(([e,t])=>(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs aui-text-muted`,children:e}),(0,o.jsx)(`p`,{className:`mt-1 text-sm font-medium aui-text-strong`,children:t})]},e))})]}),(0,o.jsxs)(`div`,{className:`space-y-4`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Controlled result`}),(0,o.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:f.label})]}),(0,o.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:f.value})]}),(0,o.jsx)(`div`,{className:`border-y border-[color:var(--aui-divider)]`,children:[`Base Select should cover normal forms and static choices first.`,`Async and searchable variants should be documented as upgrades, not parallel defaults.`,`Controlled value must update nearby product UI immediately.`].map(e=>(0,o.jsx)(`div`,{className:`border-b border-[color:var(--aui-divider)] py-3 text-sm leading-6 aui-text-muted last:border-b-0`,children:e},e))}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,o.jsxs)(t.Button,{type:`button`,size:`sm`,onClick:()=>c({selectValue:p.value}),children:[`Choose `,p.label]}),(0,o.jsx)(t.Button,{type:`button`,size:`sm`,variant:`secondary`,onClick:()=>c({selectValue:l[0].value}),children:`Reset`})]})]})]})})]})}exports.SelectShowcase=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../components/ui/button/index.cjs"),n=require("../../../components/ui/badge/index.cjs"),r=require("../../../components/ui/select/index.cjs"),i=require("./data.cjs");let a=require("react");a=e.__toESM(a,1);let o=require("react/jsx-runtime");var s=`border-t border-[color:var(--aui-divider)] py-6`;function c({state:e,setState:c}){let l=i.selectDemoGroups[0].options,u=i.selectDemoGroups[1].options,d=e.selectValue??l[0].value,f=l.find(e=>e.value===d)??l[0],p=l[1]??l[0],[m,h]=a.useState(`plan`),g=f.value===`enterprise`?[[`Seats`,`Unlimited`],[`Support`,`Dedicated`],[`SLA`,`Priority`]]:f.value===`growth`?[[`Seats`,`25`],[`Support`,`Shared`],[`SLA`,`Same day`]]:[[`Seats`,`5`],[`Support`,`Email`],[`SLA`,`Standard`]];return(0,o.jsxs)(`div`,{className:`space-y-0`,children:[(0,o.jsxs)(`section`,{className:`pb-6`,children:[(0,o.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between`,children:[(0,o.jsxs)(`div`,{className:`max-w-xl`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Selection`}),(0,o.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`One clean select surface first`}),(0,o.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Show the default trigger, controlled value, and summary update in one place.`})]}),(0,o.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]`,children:[(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Choice`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:f.label})]}),(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Mode`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold capitalize aui-text-strong`,children:m})]}),(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Options`}),(0,o.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:m===`plan`?l.length:u.length})]})]})]}),(0,o.jsxs)(`div`,{className:`mt-6 flex flex-wrap gap-2`,children:[(0,o.jsx)(t.Button,{size:`sm`,variant:m===`plan`?`default`:`outline`,onClick:()=>h(`plan`),children:`Default trigger`}),(0,o.jsx)(t.Button,{size:`sm`,variant:m===`density`?`default`:`outline`,onClick:()=>h(`density`),children:`Compact trigger`})]})]}),(0,o.jsx)(`section`,{className:s,children:(0,o.jsxs)(`div`,{className:`grid gap-6 xl:grid-cols-[minmax(0,0.92fr)_minmax(0,1.08fr)]`,children:[(0,o.jsxs)(`div`,{className:`space-y-4`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Primary select`}),(0,o.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:m===`plan`?`Standard choice trigger`:`Compact toolbar trigger`})]}),(0,o.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm font-medium aui-text-muted`,children:m===`plan`?`Workspace plan`:`Toolbar density`}),(0,o.jsx)(`div`,{className:`mt-3`,children:m===`plan`?(0,o.jsx)(r.Select,{value:d,onValueChange:e=>c({selectValue:e??l[0].value}),options:l,triggerClassName:`w-full`}):(0,o.jsx)(r.Select,{defaultValue:u[0].value,options:u,size:`sm`,triggerClassName:`w-full`})})]}),(0,o.jsx)(`div`,{className:`grid gap-3 sm:grid-cols-3`,children:g.map(([e,t])=>(0,o.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,o.jsx)(`p`,{className:`text-xs aui-text-muted`,children:e}),(0,o.jsx)(`p`,{className:`mt-1 text-sm font-medium aui-text-strong`,children:t})]},e))})]}),(0,o.jsxs)(`div`,{className:`space-y-4`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Controlled result`}),(0,o.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:f.label})]}),(0,o.jsx)(n.Badge,{variant:`outline`,className:`rounded-full`,children:f.value})]}),(0,o.jsx)(`div`,{className:`border-y border-[color:var(--aui-divider)]`,children:[`Base Select should cover normal forms and static choices first.`,`Async and searchable variants should be documented as upgrades, not parallel defaults.`,`Controlled value must update nearby product UI immediately.`].map(e=>(0,o.jsx)(`div`,{className:`border-b border-[color:var(--aui-divider)] py-3 text-sm leading-6 aui-text-muted last:border-b-0`,children:e},e))}),(0,o.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,o.jsxs)(t.Button,{type:`button`,size:`sm`,onClick:()=>c({selectValue:p.value}),children:[`Choose `,p.label]}),(0,o.jsx)(t.Button,{type:`button`,size:`sm`,variant:`secondary`,onClick:()=>c({selectValue:l[0].value}),children:`Reset`})]})]})]})})]})}exports.SelectShowcase=c;
@@ -1,17 +1,17 @@
1
1
  import { Button as e } from "../../../components/ui/button/index.js";
2
2
  import { Badge as t } from "../../../components/ui/badge/index.js";
3
- import { Select as n, SelectContent as r, SelectItem as i, SelectTrigger as a, SelectValue as o } from "../../../components/ui/select/index.js";
4
- import { selectDemoGroups as s } from "./data.js";
5
- import * as c from "react";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
3
+ import { Select as n } from "../../../components/ui/select/index.js";
4
+ import { selectDemoGroups as r } from "./data.js";
5
+ import * as i from "react";
6
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
7
7
  //#region src/showcase/premium/select/showcase.tsx
8
- var d = "border-t border-[color:var(--aui-divider)] py-6";
9
- function f({ state: f, setState: p }) {
10
- let m = s[0].options, h = s[1].options, g = f.selectValue ?? m[0].value, _ = m.find((e) => e.value === g) ?? m[0], v = m[1] ?? m[0], [y, b] = c.useState("plan"), x = _.value === "enterprise" ? [
8
+ var s = "border-t border-[color:var(--aui-divider)] py-6";
9
+ function c({ state: c, setState: l }) {
10
+ let u = r[0].options, d = r[1].options, f = c.selectValue ?? u[0].value, p = u.find((e) => e.value === f) ?? u[0], m = u[1] ?? u[0], [h, g] = i.useState("plan"), _ = p.value === "enterprise" ? [
11
11
  ["Seats", "Unlimited"],
12
12
  ["Support", "Dedicated"],
13
13
  ["SLA", "Priority"]
14
- ] : _.value === "growth" ? [
14
+ ] : p.value === "growth" ? [
15
15
  ["Seats", "25"],
16
16
  ["Support", "Shared"],
17
17
  ["SLA", "Same day"]
@@ -20,175 +20,165 @@ function f({ state: f, setState: p }) {
20
20
  ["Support", "Email"],
21
21
  ["SLA", "Standard"]
22
22
  ];
23
- return /* @__PURE__ */ u("div", {
23
+ return /* @__PURE__ */ o("div", {
24
24
  className: "space-y-0",
25
- children: [/* @__PURE__ */ u("section", {
25
+ children: [/* @__PURE__ */ o("section", {
26
26
  className: "pb-6",
27
- children: [/* @__PURE__ */ u("div", {
27
+ children: [/* @__PURE__ */ o("div", {
28
28
  className: "flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between",
29
- children: [/* @__PURE__ */ u("div", {
29
+ children: [/* @__PURE__ */ o("div", {
30
30
  className: "max-w-xl",
31
31
  children: [
32
- /* @__PURE__ */ l("p", {
32
+ /* @__PURE__ */ a("p", {
33
33
  className: "text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted",
34
34
  children: "Selection"
35
35
  }),
36
- /* @__PURE__ */ l("h3", {
36
+ /* @__PURE__ */ a("h3", {
37
37
  className: "mt-3 text-2xl font-semibold tracking-tight aui-text-strong",
38
38
  children: "One clean select surface first"
39
39
  }),
40
- /* @__PURE__ */ l("p", {
40
+ /* @__PURE__ */ a("p", {
41
41
  className: "mt-3 text-sm leading-6 aui-text-muted",
42
42
  children: "Show the default trigger, controlled value, and summary update in one place."
43
43
  })
44
44
  ]
45
- }), /* @__PURE__ */ u("div", {
45
+ }), /* @__PURE__ */ o("div", {
46
46
  className: "grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]",
47
47
  children: [
48
- /* @__PURE__ */ u("div", {
48
+ /* @__PURE__ */ o("div", {
49
49
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
50
- children: [/* @__PURE__ */ l("p", {
50
+ children: [/* @__PURE__ */ a("p", {
51
51
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
52
52
  children: "Choice"
53
- }), /* @__PURE__ */ l("p", {
53
+ }), /* @__PURE__ */ a("p", {
54
54
  className: "mt-2 text-lg font-semibold aui-text-strong",
55
- children: _.label
55
+ children: p.label
56
56
  })]
57
57
  }),
58
- /* @__PURE__ */ u("div", {
58
+ /* @__PURE__ */ o("div", {
59
59
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
60
- children: [/* @__PURE__ */ l("p", {
60
+ children: [/* @__PURE__ */ a("p", {
61
61
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
62
62
  children: "Mode"
63
- }), /* @__PURE__ */ l("p", {
63
+ }), /* @__PURE__ */ a("p", {
64
64
  className: "mt-2 text-lg font-semibold capitalize aui-text-strong",
65
- children: y
65
+ children: h
66
66
  })]
67
67
  }),
68
- /* @__PURE__ */ u("div", {
68
+ /* @__PURE__ */ o("div", {
69
69
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
70
- children: [/* @__PURE__ */ l("p", {
70
+ children: [/* @__PURE__ */ a("p", {
71
71
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
72
72
  children: "Options"
73
- }), /* @__PURE__ */ l("p", {
73
+ }), /* @__PURE__ */ a("p", {
74
74
  className: "mt-2 text-lg font-semibold aui-text-strong",
75
- children: y === "plan" ? m.length : h.length
75
+ children: h === "plan" ? u.length : d.length
76
76
  })]
77
77
  })
78
78
  ]
79
79
  })]
80
- }), /* @__PURE__ */ u("div", {
80
+ }), /* @__PURE__ */ o("div", {
81
81
  className: "mt-6 flex flex-wrap gap-2",
82
- children: [/* @__PURE__ */ l(e, {
82
+ children: [/* @__PURE__ */ a(e, {
83
83
  size: "sm",
84
- variant: y === "plan" ? "default" : "outline",
85
- onClick: () => b("plan"),
84
+ variant: h === "plan" ? "default" : "outline",
85
+ onClick: () => g("plan"),
86
86
  children: "Default trigger"
87
- }), /* @__PURE__ */ l(e, {
87
+ }), /* @__PURE__ */ a(e, {
88
88
  size: "sm",
89
- variant: y === "density" ? "default" : "outline",
90
- onClick: () => b("density"),
89
+ variant: h === "density" ? "default" : "outline",
90
+ onClick: () => g("density"),
91
91
  children: "Compact trigger"
92
92
  })]
93
93
  })]
94
- }), /* @__PURE__ */ l("section", {
95
- className: d,
96
- children: /* @__PURE__ */ u("div", {
94
+ }), /* @__PURE__ */ a("section", {
95
+ className: s,
96
+ children: /* @__PURE__ */ o("div", {
97
97
  className: "grid gap-6 xl:grid-cols-[minmax(0,0.92fr)_minmax(0,1.08fr)]",
98
- children: [/* @__PURE__ */ u("div", {
98
+ children: [/* @__PURE__ */ o("div", {
99
99
  className: "space-y-4",
100
100
  children: [
101
- /* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
101
+ /* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
102
102
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
103
103
  children: "Primary select"
104
- }), /* @__PURE__ */ l("h4", {
104
+ }), /* @__PURE__ */ a("h4", {
105
105
  className: "mt-2 text-xl font-semibold tracking-tight aui-text-strong",
106
- children: y === "plan" ? "Standard choice trigger" : "Compact toolbar trigger"
106
+ children: h === "plan" ? "Standard choice trigger" : "Compact toolbar trigger"
107
107
  })] }),
108
- /* @__PURE__ */ u("div", {
108
+ /* @__PURE__ */ o("div", {
109
109
  className: "rounded-[20px] border border-[color:var(--aui-divider)] p-4",
110
- children: [/* @__PURE__ */ l("p", {
110
+ children: [/* @__PURE__ */ a("p", {
111
111
  className: "text-sm font-medium aui-text-muted",
112
- children: y === "plan" ? "Workspace plan" : "Toolbar density"
113
- }), /* @__PURE__ */ l("div", {
112
+ children: h === "plan" ? "Workspace plan" : "Toolbar density"
113
+ }), /* @__PURE__ */ a("div", {
114
114
  className: "mt-3",
115
- children: y === "plan" ? /* @__PURE__ */ u(n, {
116
- value: g,
117
- onValueChange: (e) => p({ selectValue: e ?? m[0].value }),
118
- children: [/* @__PURE__ */ l(a, {
119
- className: "w-full",
120
- children: /* @__PURE__ */ l(o, {})
121
- }), /* @__PURE__ */ l(r, { children: m.map((e) => /* @__PURE__ */ l(i, {
122
- value: e.value,
123
- children: e.label
124
- }, e.value)) })]
125
- }) : /* @__PURE__ */ u(n, {
126
- defaultValue: h[0].value,
127
- children: [/* @__PURE__ */ l(a, {
128
- size: "sm",
129
- className: "w-full",
130
- children: /* @__PURE__ */ l(o, {})
131
- }), /* @__PURE__ */ l(r, { children: h.map((e) => /* @__PURE__ */ l(i, {
132
- value: e.value,
133
- children: e.label
134
- }, e.value)) })]
115
+ children: h === "plan" ? /* @__PURE__ */ a(n, {
116
+ value: f,
117
+ onValueChange: (e) => l({ selectValue: e ?? u[0].value }),
118
+ options: u,
119
+ triggerClassName: "w-full"
120
+ }) : /* @__PURE__ */ a(n, {
121
+ defaultValue: d[0].value,
122
+ options: d,
123
+ size: "sm",
124
+ triggerClassName: "w-full"
135
125
  })
136
126
  })]
137
127
  }),
138
- /* @__PURE__ */ l("div", {
128
+ /* @__PURE__ */ a("div", {
139
129
  className: "grid gap-3 sm:grid-cols-3",
140
- children: x.map(([e, t]) => /* @__PURE__ */ u("div", {
130
+ children: _.map(([e, t]) => /* @__PURE__ */ o("div", {
141
131
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
142
- children: [/* @__PURE__ */ l("p", {
132
+ children: [/* @__PURE__ */ a("p", {
143
133
  className: "text-xs aui-text-muted",
144
134
  children: e
145
- }), /* @__PURE__ */ l("p", {
135
+ }), /* @__PURE__ */ a("p", {
146
136
  className: "mt-1 text-sm font-medium aui-text-strong",
147
137
  children: t
148
138
  })]
149
139
  }, e))
150
140
  })
151
141
  ]
152
- }), /* @__PURE__ */ u("div", {
142
+ }), /* @__PURE__ */ o("div", {
153
143
  className: "space-y-4",
154
144
  children: [
155
- /* @__PURE__ */ u("div", {
145
+ /* @__PURE__ */ o("div", {
156
146
  className: "flex items-center justify-between gap-3",
157
- children: [/* @__PURE__ */ u("div", { children: [/* @__PURE__ */ l("p", {
147
+ children: [/* @__PURE__ */ o("div", { children: [/* @__PURE__ */ a("p", {
158
148
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
159
149
  children: "Controlled result"
160
- }), /* @__PURE__ */ l("h4", {
150
+ }), /* @__PURE__ */ a("h4", {
161
151
  className: "mt-2 text-xl font-semibold tracking-tight aui-text-strong",
162
- children: _.label
163
- })] }), /* @__PURE__ */ l(t, {
152
+ children: p.label
153
+ })] }), /* @__PURE__ */ a(t, {
164
154
  variant: "outline",
165
155
  className: "rounded-full",
166
- children: _.value
156
+ children: p.value
167
157
  })]
168
158
  }),
169
- /* @__PURE__ */ l("div", {
159
+ /* @__PURE__ */ a("div", {
170
160
  className: "border-y border-[color:var(--aui-divider)]",
171
161
  children: [
172
162
  "Base Select should cover normal forms and static choices first.",
173
163
  "Async and searchable variants should be documented as upgrades, not parallel defaults.",
174
164
  "Controlled value must update nearby product UI immediately."
175
- ].map((e) => /* @__PURE__ */ l("div", {
165
+ ].map((e) => /* @__PURE__ */ a("div", {
176
166
  className: "border-b border-[color:var(--aui-divider)] py-3 text-sm leading-6 aui-text-muted last:border-b-0",
177
167
  children: e
178
168
  }, e))
179
169
  }),
180
- /* @__PURE__ */ u("div", {
170
+ /* @__PURE__ */ o("div", {
181
171
  className: "flex flex-wrap gap-2",
182
- children: [/* @__PURE__ */ u(e, {
172
+ children: [/* @__PURE__ */ o(e, {
183
173
  type: "button",
184
174
  size: "sm",
185
- onClick: () => p({ selectValue: v.value }),
186
- children: ["Choose ", v.label]
187
- }), /* @__PURE__ */ l(e, {
175
+ onClick: () => l({ selectValue: m.value }),
176
+ children: ["Choose ", m.label]
177
+ }), /* @__PURE__ */ a(e, {
188
178
  type: "button",
189
179
  size: "sm",
190
180
  variant: "secondary",
191
- onClick: () => p({ selectValue: m[0].value }),
181
+ onClick: () => l({ selectValue: u[0].value }),
192
182
  children: "Reset"
193
183
  })]
194
184
  })
@@ -199,4 +189,4 @@ function f({ state: f, setState: p }) {
199
189
  });
200
190
  }
201
191
  //#endregion
202
- export { f as SelectShowcase };
192
+ export { c as SelectShowcase };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useState } from "react"
2
- import { Button, SimpleSelect } from "@/index"
2
+ import { Button, SimpleSelect } from "tembro"
3
3
 
4
4
  const selectOptions = [
5
5
  { value: "public", label: "Public", disabled: false },
@@ -1,6 +1,6 @@
1
1
  //#region src/showcase/premium/simple-select/mock.ts
2
2
  var e = {
3
- code: "import { useState } from \"react\"\nimport { Button, SimpleSelect } from \"@/index\"\n\nconst selectOptions = [\n { value: \"public\", label: \"Public\", disabled: false },\n { value: \"private\", label: \"Private\", disabled: false },\n { value: \"internal\", label: \"Internal\", disabled: false },\n { value: \"archived\", label: \"Archived\", disabled: true },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"private\")\n\n return (\n <div className=\"space-y-3\">\n <SimpleSelect\n options={selectOptions}\n value={value}\n onValueChange={(nextValue) => setValue(nextValue ?? \"private\")}\n placeholder=\"Visibility\"\n size=\"sm\"\n />\n <div className=\"rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm aui-text-muted\">\n Current visibility: <strong>{value}</strong>\n </div>\n <Button variant=\"outline\" onClick={() => setValue(\"public\")}>Reset public</Button>\n </div>\n )\n}",
3
+ code: "import { useState } from \"react\"\nimport { Button, SimpleSelect } from \"tembro\"\n\nconst selectOptions = [\n { value: \"public\", label: \"Public\", disabled: false },\n { value: \"private\", label: \"Private\", disabled: false },\n { value: \"internal\", label: \"Internal\", disabled: false },\n { value: \"archived\", label: \"Archived\", disabled: true },\n]\n\nexport function Example() {\n const [value, setValue] = useState(\"private\")\n\n return (\n <div className=\"space-y-3\">\n <SimpleSelect\n options={selectOptions}\n value={value}\n onValueChange={(nextValue) => setValue(nextValue ?? \"private\")}\n placeholder=\"Visibility\"\n size=\"sm\"\n />\n <div className=\"rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm aui-text-muted\">\n Current visibility: <strong>{value}</strong>\n </div>\n <Button variant=\"outline\" onClick={() => setValue(\"public\")}>Reset public</Button>\n </div>\n )\n}",
4
4
  htmlCode: "<button data-slot=\"simple-select-trigger\">Open options</button>",
5
5
  cliCommand: "npx tembro add simple-select",
6
6
  highlights: [
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/inputs/simple-select.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.SimpleSelect,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.SimpleSelect,{defaultValue:`public`,options:d},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/ui/button/index.cjs"),t=require("../../../components/ui/badge/index.cjs"),n=require("../../../components/inputs/simple-select.cjs"),r=require("../../component-route-data.cjs");let i=require("react"),a=require("react/jsx-runtime");function o({mode:o}){let[s,c]=(0,i.useState)(`private`),[l,u]=(0,i.useState)(0),d=r.routeSimpleSelectOptions,f=d.find(e=>e.value===s);return(0,a.jsxs)(`div`,{className:`space-y-4`,children:[(0,a.jsxs)(`div`,{className:`rounded-[20px] border border-[color:var(--aui-divider)] bg-[color:var(--aui-page-bg-alt)] p-4`,children:[(0,a.jsx)(`p`,{className:`text-sm font-medium aui-text-strong`,children:`SimpleSelect is the lightweight static member`}),(0,a.jsx)(`p`,{className:`mt-2 text-sm leading-6 aui-text-muted`,children:`Use it only when you want a thinner wrapper around the main Select surface for static option lists.`}),(0,a.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2`,children:[(0,a.jsx)(t.Badge,{variant:`outline`,children:`Static options`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Searchable`}),(0,a.jsx)(t.Badge,{variant:`outline`,children:`Clearable`})]})]}),(0,a.jsx)(n.SimpleSelect,{value:s,onValueChange:e=>c(e),options:d,placeholder:`Visibility`,searchable:!0,clearable:!0,showSelectedDescription:!0}),(0,a.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-3`,children:[(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Current value`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:f?.label??`Nothing selected`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`Behavior`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Clear icon and disabled items behave inside the same trigger model.`})]}),(0,a.jsxs)(`div`,{className:`rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:[(0,a.jsx)(`p`,{className:`font-medium aui-text-strong`,children:`When to use`}),(0,a.jsx)(`p`,{className:`mt-2 aui-text-muted`,children:`Choose this for local option lists before moving to AsyncSelect.`})]})]}),(0,a.jsx)(n.SimpleSelect,{defaultValue:`public`,options:d,showSelectedDescription:!0},l),(0,a.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>c(void 0),children:`Clear controlled`}),(0,a.jsx)(e.Button,{variant:`outline`,size:`sm`,onClick:()=>u(e=>e+1),children:`Reset uncontrolled sample`})]}),o===`playground`?(0,a.jsx)(`p`,{className:`aui-text-muted rounded-2xl border border-[color:var(--aui-surface-border)] bg-[color:var(--aui-surface-muted)] px-4 py-3 text-sm`,children:`Controlled selection can power filter states, while uncontrolled default usage is fine for one-off static forms. If the list becomes remote, move back to the Select family and choose AsyncSelect.`}):null]})}exports.SimpleSelectShowcase=o;
@@ -46,7 +46,8 @@ function s({ mode: s }) {
46
46
  options: f,
47
47
  placeholder: "Visibility",
48
48
  searchable: !0,
49
- clearable: !0
49
+ clearable: !0,
50
+ showSelectedDescription: !0
50
51
  }),
51
52
  /* @__PURE__ */ o("div", {
52
53
  className: "grid gap-3 md:grid-cols-3",
@@ -85,7 +86,8 @@ function s({ mode: s }) {
85
86
  }),
86
87
  /* @__PURE__ */ a(n, {
87
88
  defaultValue: "public",
88
- options: f
89
+ options: f,
90
+ showSelectedDescription: !0
89
91
  }, u),
90
92
  /* @__PURE__ */ o("div", {
91
93
  className: "flex flex-wrap gap-2",
@@ -1,15 +1,13 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=[{slug:`dashboard-01`,title:`Dashboard with sidebar`,command:`npx tembro init --template next --defaults
2
- npx tembro add app-sidebar metric-grid data-table`,code:`import { AppSidebar } from "@/components/layout/app-sidebar"
3
- import { MetricGrid } from "@/components/display/metric-grid"
2
+ npx tembro add app-sidebar metric-grid data-table`,code:`import { AppSidebar, MetricGrid } from "tembro"
4
3
 
5
4
  export function Dashboard01() {
6
5
  return <AppSidebar />
7
- }`,tone:`dashboard`},{slug:`table-01`,title:`Advanced invoice table`,command:`npx tembro add data-table`,code:`import { DataTable } from "@/components/data-table/data-table"
6
+ }`,tone:`dashboard`},{slug:`table-01`,title:`Advanced invoice table`,command:`npx tembro add data-table`,code:`import { DataTable } from "tembro"
8
7
 
9
8
  export function Table01() {
10
9
  return <DataTable columns={columns} data={rows} />
11
- }`,tone:`table`},{slug:`auth-01`,title:`Authentication screen`,command:`npx tembro add input button`,code:`import { Button } from "@/components/ui/button"
12
- import { Input } from "@/components/ui/input"
10
+ }`,tone:`table`},{slug:`auth-01`,title:`Authentication screen`,command:`npx tembro add input button`,code:`import { Button, Input } from "tembro"
13
11
 
14
12
  export function Auth01() {
15
13
  return (
@@ -19,8 +17,7 @@ export function Auth01() {
19
17
  <Button>Sign in</Button>
20
18
  </div>
21
19
  )
22
- }`,tone:`auth`},{slug:`product-01`,title:`Commerce product detail`,command:`npx tembro add badge button`,code:`import { Badge } from "@/components/ui/badge"
23
- import { Button } from "@/components/ui/button"
20
+ }`,tone:`auth`},{slug:`product-01`,title:`Commerce product detail`,command:`npx tembro add badge button`,code:`import { Badge, Button } from "tembro"
24
21
 
25
22
  export function Product01() {
26
23
  return (
@@ -30,15 +27,15 @@ export function Product01() {
30
27
  <Button>Buy now</Button>
31
28
  </div>
32
29
  )
33
- }`,tone:`product`},{slug:`command-01`,title:`Command palette`,command:`npx tembro add command-palette`,code:`import { CommandPalette } from "@/components/command/command-palette"
30
+ }`,tone:`product`},{slug:`command-01`,title:`Command palette`,command:`npx tembro add command-palette`,code:`import { CommandPalette } from "tembro"
34
31
 
35
32
  export function Command01() {
36
33
  return <CommandPalette />
37
- }`,tone:`command`},{slug:`calendar-01`,title:`Calendar and date picker`,command:`npx tembro add calendar date-picker`,code:`import { Calendar } from "@/components/calendar/calendar"
34
+ }`,tone:`command`},{slug:`calendar-01`,title:`Calendar and date picker`,command:`npx tembro add calendar date-picker`,code:`import { Calendar } from "tembro"
38
35
 
39
36
  export function Calendar01() {
40
37
  return <Calendar />
41
- }`,tone:`calendar`},{slug:`upload-01`,title:`Upload workspace`,command:`npx tembro add file-upload image-upload`,code:`import { FileUpload } from "@/components/upload/file-upload"
38
+ }`,tone:`calendar`},{slug:`upload-01`,title:`Upload workspace`,command:`npx tembro add file-upload image-upload`,code:`import { FileUpload } from "tembro"
42
39
 
43
40
  export function Upload01() {
44
41
  return <FileUpload />