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 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/calendar/date-range-picker.cjs");let t=require("react"),n=require("react/jsx-runtime");function r({mode:r}){let[i,a]=(0,t.useState)({from:`2026-06-01`,to:`2026-06-07`});return(0,n.jsxs)(`div`,{className:`space-y-4`,children:[(0,n.jsx)(e.DateRangePicker,{value:i,onValueChange:e=>a({from:e.from??``,to:e.to??``}),min:`2026-06-01`,max:`2026-12-31`,disabledDates:[`2026-06-21`,`2026-06-22`]}),(0,n.jsxs)(`p`,{className:`aui-text-subtle text-sm`,children:[`Range: `,i.from,` → `,i.to]}),(0,n.jsxs)(`p`,{className:`aui-text-muted text-sm`,children:[`Mode: `,r]})]})}exports.DateRangePickerShowcase=r;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../../components/calendar/date-range-picker.cjs");let t=require("react"),n=require("react/jsx-runtime");function r({mode:r}){let[i,a]=(0,t.useState)({from:`2026-06-01`,to:`2026-06-07`});return(0,n.jsxs)(`div`,{className:`space-y-4`,children:[(0,n.jsx)(e.DateRangePicker,{value:i,onValueChange:e=>a({from:e.from??``,to:e.to??``}),min:`2026-06-01`,max:`2026-12-31`,disabledDates:[`2026-06-21`,`2026-06-22`],closeOnPresetSelect:!0,presets:[{label:`This week`,value:{from:`2026-06-01`,to:`2026-06-07`}},{label:`Next 14 days`,value:{from:`2026-06-08`,to:`2026-06-20`}},{label:`Q3`,value:{from:`2026-07-01`,to:`2026-09-30`}}],labels:{placeholder:`Choose reporting range`,apply:`Apply range`,clear:`Clear`,start:`Start`,end:`End`}}),(0,n.jsxs)(`p`,{className:`aui-text-subtle text-sm`,children:[`Range: `,i.from,` → `,i.to]}),(0,n.jsxs)(`p`,{className:`aui-text-muted text-sm`,children:[`Mode: `,r]})]})}exports.DateRangePickerShowcase=r;
@@ -18,7 +18,38 @@ function i({ mode: i }) {
18
18
  }),
19
19
  min: "2026-06-01",
20
20
  max: "2026-12-31",
21
- disabledDates: ["2026-06-21", "2026-06-22"]
21
+ disabledDates: ["2026-06-21", "2026-06-22"],
22
+ closeOnPresetSelect: !0,
23
+ presets: [
24
+ {
25
+ label: "This week",
26
+ value: {
27
+ from: "2026-06-01",
28
+ to: "2026-06-07"
29
+ }
30
+ },
31
+ {
32
+ label: "Next 14 days",
33
+ value: {
34
+ from: "2026-06-08",
35
+ to: "2026-06-20"
36
+ }
37
+ },
38
+ {
39
+ label: "Q3",
40
+ value: {
41
+ from: "2026-07-01",
42
+ to: "2026-09-30"
43
+ }
44
+ }
45
+ ],
46
+ labels: {
47
+ placeholder: "Choose reporting range",
48
+ apply: "Apply range",
49
+ clear: "Clear",
50
+ start: "Start",
51
+ end: "End"
52
+ }
22
53
  }),
23
54
  /* @__PURE__ */ r("p", {
24
55
  className: "aui-text-subtle text-sm",
@@ -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/dropdown-menu/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime");var a=`border-t border-[color:var(--aui-divider)] py-6`;function o({mode:e}){let[o,s]=r.useState(`private`),[c,l]=r.useState(!0);return(0,i.jsxs)(`div`,{className:`space-y-0`,children:[(0,i.jsx)(`section`,{className:`pb-6`,children:(0,i.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between`,children:[(0,i.jsxs)(`div`,{className:`max-w-xl`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Dropdown menu`}),(0,i.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Secondary actions belong here`}),(0,i.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Use one trigger for quick actions, tiny settings, and destructive follow-ups.`})]}),(0,i.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]`,children:[(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Status`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:o===`public`?`Public`:`Private`})]}),(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Notifications`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:c?`On`:`Off`})]}),(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Route`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:e===`playground`?`Interactive`:`Docs`})]})]})]})}),(0,i.jsx)(`section`,{className:a,children:(0,i.jsxs)(`div`,{className:`flex flex-col gap-5 xl:flex-row xl:items-start xl:justify-between`,children:[(0,i.jsxs)(`div`,{className:`max-w-xl`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Live menu`}),(0,i.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:`Open and verify small state changes`})]}),(0,i.jsxs)(n.DropdownMenu,{children:[(0,i.jsx)(n.DropdownMenuTrigger,{children:(0,i.jsx)(t.Button,{children:`Open menu`})}),(0,i.jsxs)(n.DropdownMenuContent,{children:[(0,i.jsx)(n.DropdownMenuLabel,{children:`Workspace actions`}),(0,i.jsx)(n.DropdownMenuItem,{children:`Open workspace`}),(0,i.jsx)(n.DropdownMenuItem,{disabled:!0,children:`Delete from archive`}),(0,i.jsx)(n.DropdownMenuSeparator,{}),(0,i.jsx)(n.DropdownMenuCheckboxItem,{checked:c,onCheckedChange:e=>l(!!e),children:`Notification access`}),(0,i.jsx)(n.DropdownMenuGroup,{children:(0,i.jsxs)(n.DropdownMenuRadioGroup,{value:o,onValueChange:e=>s(e),children:[(0,i.jsx)(n.DropdownMenuRadioItem,{value:`public`,children:`Public`}),(0,i.jsx)(n.DropdownMenuRadioItem,{value:`private`,children:`Private`})]})}),(0,i.jsx)(n.DropdownMenuSeparator,{}),(0,i.jsxs)(n.DropdownMenuItem,{variant:`destructive`,children:[`Remove workspace`,(0,i.jsx)(n.DropdownMenuShortcut,{children:`⌘D`})]})]})]})]})}),(0,i.jsx)(`section`,{className:a,children:(0,i.jsx)(`div`,{className:`border-y border-[color:var(--aui-divider)]`,children:[`Keep the main CTA outside the menu.`,`Use radio and checkbox items only for very small settings.`,`Destructive items should still be explicit and easy to notice.`].map(e=>(0,i.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))})})]})}exports.DropdownMenuShowcase=o;
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/dropdown-menu/index.cjs");let r=require("react");r=e.__toESM(r,1);let i=require("react/jsx-runtime");var a=`border-t border-[color:var(--aui-divider)] py-6`;function o({mode:e}){let[o,s]=r.useState(`private`),[c,l]=r.useState(!0),[u,d]=r.useState(!1),[f,p]=r.useState(!1);return(0,i.jsxs)(`div`,{className:`space-y-0`,children:[(0,i.jsx)(`section`,{className:`pb-6`,children:(0,i.jsxs)(`div`,{className:`flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between`,children:[(0,i.jsxs)(`div`,{className:`max-w-xl`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted`,children:`Dropdown menu`}),(0,i.jsx)(`h3`,{className:`mt-3 text-2xl font-semibold tracking-tight aui-text-strong`,children:`Secondary actions belong here`}),(0,i.jsx)(`p`,{className:`mt-3 text-sm leading-6 aui-text-muted`,children:`Use one trigger for quick actions, tiny settings, and destructive follow-ups.`})]}),(0,i.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]`,children:[(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Status`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:o===`public`?`Public`:`Private`})]}),(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Notifications`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:c?`On`:`Off`})]}),(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Route`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:e===`playground`?`Interactive`:`Docs`})]}),(0,i.jsxs)(`div`,{className:`rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Menu close`}),(0,i.jsx)(`p`,{className:`mt-2 text-lg font-semibold aui-text-strong`,children:f?`Pinned open`:`Auto close`})]})]})]})}),(0,i.jsx)(`section`,{className:a,children:(0,i.jsxs)(`div`,{className:`flex flex-col gap-5 xl:flex-row xl:items-start xl:justify-between`,children:[(0,i.jsxs)(`div`,{className:`max-w-xl`,children:[(0,i.jsx)(`p`,{className:`text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted`,children:`Live menu`}),(0,i.jsx)(`h4`,{className:`mt-2 text-xl font-semibold tracking-tight aui-text-strong`,children:`Open and verify small state changes`})]}),(0,i.jsxs)(n.DropdownMenu,{children:[(0,i.jsx)(n.DropdownMenuTrigger,{children:(0,i.jsx)(t.Button,{children:`Open menu`})}),(0,i.jsxs)(n.DropdownMenuContent,{children:[(0,i.jsx)(n.DropdownMenuLabel,{children:`Workspace actions`}),(0,i.jsxs)(n.DropdownMenuItem,{children:[(0,i.jsxs)(`span`,{className:`grid gap-0.5`,children:[(0,i.jsx)(`span`,{children:`Open workspace`}),(0,i.jsx)(n.DropdownMenuItemDescription,{children:`Go to the main dashboard route`})]}),(0,i.jsx)(n.DropdownMenuShortcut,{children:`↵`})]}),(0,i.jsx)(n.DropdownMenuItem,{disabled:!0,children:(0,i.jsxs)(`span`,{className:`grid gap-0.5`,children:[(0,i.jsx)(`span`,{children:`Delete from archive`}),(0,i.jsx)(n.DropdownMenuItemDescription,{children:`Locked until retention expires`})]})}),(0,i.jsx)(n.DropdownMenuSeparator,{}),(0,i.jsx)(n.DropdownMenuCheckboxItem,{checked:c,closeOnSelect:!f,onCheckedChange:e=>l(!!e),children:`Notification access`}),(0,i.jsx)(n.DropdownMenuCheckboxItem,{checked:u,closeOnSelect:!f,onCheckedChange:e=>d(!!e),children:`Compact density`}),(0,i.jsx)(n.DropdownMenuCheckboxItem,{checked:f,closeOnSelect:!1,onCheckedChange:e=>p(!!e),children:`Keep menu open`}),(0,i.jsxs)(n.DropdownMenuSub,{children:[(0,i.jsx)(n.DropdownMenuSubTrigger,{children:`Export`}),(0,i.jsxs)(n.DropdownMenuSubContent,{children:[(0,i.jsx)(n.DropdownMenuItem,{children:`CSV`}),(0,i.jsx)(n.DropdownMenuItem,{children:`PDF summary`}),(0,i.jsx)(n.DropdownMenuItem,{children:`JSON payload`})]})]}),(0,i.jsx)(n.DropdownMenuGroup,{children:(0,i.jsxs)(n.DropdownMenuRadioGroup,{value:o,onValueChange:e=>s(e),children:[(0,i.jsx)(n.DropdownMenuRadioItem,{value:`public`,children:`Public`}),(0,i.jsx)(n.DropdownMenuRadioItem,{value:`private`,children:`Private`})]})}),(0,i.jsx)(n.DropdownMenuSeparator,{}),(0,i.jsxs)(n.DropdownMenuItem,{variant:`destructive`,children:[`Remove workspace`,(0,i.jsx)(n.DropdownMenuShortcut,{children:`⌘D`})]})]})]})]})}),(0,i.jsx)(`section`,{className:a,children:(0,i.jsx)(`div`,{className:`border-y border-[color:var(--aui-divider)]`,children:[`Keep the main CTA outside the menu.`,`Use radio and checkbox items only for very small settings.`,`Destructive items should still be explicit and easy to notice.`].map(e=>(0,i.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))})})]})}exports.DropdownMenuShowcase=o;
@@ -1,125 +1,159 @@
1
1
  import { Button as e } from "../../../components/ui/button/index.js";
2
- import { DropdownMenu as t, DropdownMenuCheckboxItem as n, DropdownMenuContent as r, DropdownMenuGroup as i, DropdownMenuItem as a, DropdownMenuLabel as o, DropdownMenuRadioGroup as s, DropdownMenuRadioItem as c, DropdownMenuSeparator as l, DropdownMenuShortcut as u, DropdownMenuTrigger as d } from "../../../components/ui/dropdown-menu/index.js";
3
- import * as f from "react";
4
- import { jsx as p, jsxs as m } from "react/jsx-runtime";
2
+ import { DropdownMenu as t, DropdownMenuCheckboxItem as n, DropdownMenuContent as r, DropdownMenuGroup as i, DropdownMenuItem as a, DropdownMenuItemDescription as o, DropdownMenuLabel as s, DropdownMenuRadioGroup as c, DropdownMenuRadioItem as l, DropdownMenuSeparator as u, DropdownMenuShortcut as d, DropdownMenuSub as f, DropdownMenuSubContent as p, DropdownMenuSubTrigger as m, DropdownMenuTrigger as h } from "../../../components/ui/dropdown-menu/index.js";
3
+ import * as g from "react";
4
+ import { jsx as _, jsxs as v } from "react/jsx-runtime";
5
5
  //#region src/showcase/premium/dropdown-menu/showcase.tsx
6
- var h = "border-t border-[color:var(--aui-divider)] py-6";
7
- function g({ mode: g }) {
8
- let [_, v] = f.useState("private"), [y, b] = f.useState(!0);
9
- return /* @__PURE__ */ m("div", {
6
+ var y = "border-t border-[color:var(--aui-divider)] py-6";
7
+ function b({ mode: b }) {
8
+ let [x, S] = g.useState("private"), [C, w] = g.useState(!0), [T, E] = g.useState(!1), [D, O] = g.useState(!1);
9
+ return /* @__PURE__ */ v("div", {
10
10
  className: "space-y-0",
11
11
  children: [
12
- /* @__PURE__ */ p("section", {
12
+ /* @__PURE__ */ _("section", {
13
13
  className: "pb-6",
14
- children: /* @__PURE__ */ m("div", {
14
+ children: /* @__PURE__ */ v("div", {
15
15
  className: "flex flex-col gap-6 xl:flex-row xl:items-end xl:justify-between",
16
- children: [/* @__PURE__ */ m("div", {
16
+ children: [/* @__PURE__ */ v("div", {
17
17
  className: "max-w-xl",
18
18
  children: [
19
- /* @__PURE__ */ p("p", {
19
+ /* @__PURE__ */ _("p", {
20
20
  className: "text-xs font-semibold uppercase tracking-[0.26em] aui-text-muted",
21
21
  children: "Dropdown menu"
22
22
  }),
23
- /* @__PURE__ */ p("h3", {
23
+ /* @__PURE__ */ _("h3", {
24
24
  className: "mt-3 text-2xl font-semibold tracking-tight aui-text-strong",
25
25
  children: "Secondary actions belong here"
26
26
  }),
27
- /* @__PURE__ */ p("p", {
27
+ /* @__PURE__ */ _("p", {
28
28
  className: "mt-3 text-sm leading-6 aui-text-muted",
29
29
  children: "Use one trigger for quick actions, tiny settings, and destructive follow-ups."
30
30
  })
31
31
  ]
32
- }), /* @__PURE__ */ m("div", {
32
+ }), /* @__PURE__ */ v("div", {
33
33
  className: "grid gap-3 sm:grid-cols-3 xl:min-w-[360px] xl:max-w-[420px]",
34
34
  children: [
35
- /* @__PURE__ */ m("div", {
35
+ /* @__PURE__ */ v("div", {
36
36
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
37
- children: [/* @__PURE__ */ p("p", {
37
+ children: [/* @__PURE__ */ _("p", {
38
38
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
39
39
  children: "Status"
40
- }), /* @__PURE__ */ p("p", {
40
+ }), /* @__PURE__ */ _("p", {
41
41
  className: "mt-2 text-lg font-semibold aui-text-strong",
42
- children: _ === "public" ? "Public" : "Private"
42
+ children: x === "public" ? "Public" : "Private"
43
43
  })]
44
44
  }),
45
- /* @__PURE__ */ m("div", {
45
+ /* @__PURE__ */ v("div", {
46
46
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
47
- children: [/* @__PURE__ */ p("p", {
47
+ children: [/* @__PURE__ */ _("p", {
48
48
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
49
49
  children: "Notifications"
50
- }), /* @__PURE__ */ p("p", {
50
+ }), /* @__PURE__ */ _("p", {
51
51
  className: "mt-2 text-lg font-semibold aui-text-strong",
52
- children: y ? "On" : "Off"
52
+ children: C ? "On" : "Off"
53
53
  })]
54
54
  }),
55
- /* @__PURE__ */ m("div", {
55
+ /* @__PURE__ */ v("div", {
56
56
  className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
57
- children: [/* @__PURE__ */ p("p", {
57
+ children: [/* @__PURE__ */ _("p", {
58
58
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
59
59
  children: "Route"
60
- }), /* @__PURE__ */ p("p", {
60
+ }), /* @__PURE__ */ _("p", {
61
61
  className: "mt-2 text-lg font-semibold aui-text-strong",
62
- children: g === "playground" ? "Interactive" : "Docs"
62
+ children: b === "playground" ? "Interactive" : "Docs"
63
+ })]
64
+ }),
65
+ /* @__PURE__ */ v("div", {
66
+ className: "rounded-[18px] border border-[color:var(--aui-divider)] px-4 py-3",
67
+ children: [/* @__PURE__ */ _("p", {
68
+ className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
69
+ children: "Menu close"
70
+ }), /* @__PURE__ */ _("p", {
71
+ className: "mt-2 text-lg font-semibold aui-text-strong",
72
+ children: D ? "Pinned open" : "Auto close"
63
73
  })]
64
74
  })
65
75
  ]
66
76
  })]
67
77
  })
68
78
  }),
69
- /* @__PURE__ */ p("section", {
70
- className: h,
71
- children: /* @__PURE__ */ m("div", {
79
+ /* @__PURE__ */ _("section", {
80
+ className: y,
81
+ children: /* @__PURE__ */ v("div", {
72
82
  className: "flex flex-col gap-5 xl:flex-row xl:items-start xl:justify-between",
73
- children: [/* @__PURE__ */ m("div", {
83
+ children: [/* @__PURE__ */ v("div", {
74
84
  className: "max-w-xl",
75
- children: [/* @__PURE__ */ p("p", {
85
+ children: [/* @__PURE__ */ _("p", {
76
86
  className: "text-xs font-semibold uppercase tracking-[0.22em] aui-text-muted",
77
87
  children: "Live menu"
78
- }), /* @__PURE__ */ p("h4", {
88
+ }), /* @__PURE__ */ _("h4", {
79
89
  className: "mt-2 text-xl font-semibold tracking-tight aui-text-strong",
80
90
  children: "Open and verify small state changes"
81
91
  })]
82
- }), /* @__PURE__ */ m(t, { children: [/* @__PURE__ */ p(d, { children: /* @__PURE__ */ p(e, { children: "Open menu" }) }), /* @__PURE__ */ m(r, { children: [
83
- /* @__PURE__ */ p(o, { children: "Workspace actions" }),
84
- /* @__PURE__ */ p(a, { children: "Open workspace" }),
85
- /* @__PURE__ */ p(a, {
92
+ }), /* @__PURE__ */ v(t, { children: [/* @__PURE__ */ _(h, { children: /* @__PURE__ */ _(e, { children: "Open menu" }) }), /* @__PURE__ */ v(r, { children: [
93
+ /* @__PURE__ */ _(s, { children: "Workspace actions" }),
94
+ /* @__PURE__ */ v(a, { children: [/* @__PURE__ */ v("span", {
95
+ className: "grid gap-0.5",
96
+ children: [/* @__PURE__ */ _("span", { children: "Open workspace" }), /* @__PURE__ */ _(o, { children: "Go to the main dashboard route" })]
97
+ }), /* @__PURE__ */ _(d, { children: "↵" })] }),
98
+ /* @__PURE__ */ _(a, {
86
99
  disabled: !0,
87
- children: "Delete from archive"
100
+ children: /* @__PURE__ */ v("span", {
101
+ className: "grid gap-0.5",
102
+ children: [/* @__PURE__ */ _("span", { children: "Delete from archive" }), /* @__PURE__ */ _(o, { children: "Locked until retention expires" })]
103
+ })
88
104
  }),
89
- /* @__PURE__ */ p(l, {}),
90
- /* @__PURE__ */ p(n, {
91
- checked: y,
92
- onCheckedChange: (e) => b(!!e),
105
+ /* @__PURE__ */ _(u, {}),
106
+ /* @__PURE__ */ _(n, {
107
+ checked: C,
108
+ closeOnSelect: !D,
109
+ onCheckedChange: (e) => w(!!e),
93
110
  children: "Notification access"
94
111
  }),
95
- /* @__PURE__ */ p(i, { children: /* @__PURE__ */ m(s, {
96
- value: _,
97
- onValueChange: (e) => v(e),
98
- children: [/* @__PURE__ */ p(c, {
112
+ /* @__PURE__ */ _(n, {
113
+ checked: T,
114
+ closeOnSelect: !D,
115
+ onCheckedChange: (e) => E(!!e),
116
+ children: "Compact density"
117
+ }),
118
+ /* @__PURE__ */ _(n, {
119
+ checked: D,
120
+ closeOnSelect: !1,
121
+ onCheckedChange: (e) => O(!!e),
122
+ children: "Keep menu open"
123
+ }),
124
+ /* @__PURE__ */ v(f, { children: [/* @__PURE__ */ _(m, { children: "Export" }), /* @__PURE__ */ v(p, { children: [
125
+ /* @__PURE__ */ _(a, { children: "CSV" }),
126
+ /* @__PURE__ */ _(a, { children: "PDF summary" }),
127
+ /* @__PURE__ */ _(a, { children: "JSON payload" })
128
+ ] })] }),
129
+ /* @__PURE__ */ _(i, { children: /* @__PURE__ */ v(c, {
130
+ value: x,
131
+ onValueChange: (e) => S(e),
132
+ children: [/* @__PURE__ */ _(l, {
99
133
  value: "public",
100
134
  children: "Public"
101
- }), /* @__PURE__ */ p(c, {
135
+ }), /* @__PURE__ */ _(l, {
102
136
  value: "private",
103
137
  children: "Private"
104
138
  })]
105
139
  }) }),
106
- /* @__PURE__ */ p(l, {}),
107
- /* @__PURE__ */ m(a, {
140
+ /* @__PURE__ */ _(u, {}),
141
+ /* @__PURE__ */ v(a, {
108
142
  variant: "destructive",
109
- children: ["Remove workspace", /* @__PURE__ */ p(u, { children: "⌘D" })]
143
+ children: ["Remove workspace", /* @__PURE__ */ _(d, { children: "⌘D" })]
110
144
  })
111
145
  ] })] })]
112
146
  })
113
147
  }),
114
- /* @__PURE__ */ p("section", {
115
- className: h,
116
- children: /* @__PURE__ */ p("div", {
148
+ /* @__PURE__ */ _("section", {
149
+ className: y,
150
+ children: /* @__PURE__ */ _("div", {
117
151
  className: "border-y border-[color:var(--aui-divider)]",
118
152
  children: [
119
153
  "Keep the main CTA outside the menu.",
120
154
  "Use radio and checkbox items only for very small settings.",
121
155
  "Destructive items should still be explicit and easy to notice."
122
- ].map((e) => /* @__PURE__ */ p("div", {
156
+ ].map((e) => /* @__PURE__ */ _("div", {
123
157
  className: "border-b border-[color:var(--aui-divider)] py-3 text-sm leading-6 aui-text-muted last:border-b-0",
124
158
  children: e
125
159
  }, e))
@@ -129,4 +163,4 @@ function g({ mode: g }) {
129
163
  });
130
164
  }
131
165
  //#endregion
132
- export { g as DropdownMenuShowcase };
166
+ export { b as DropdownMenuShowcase };
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e={code:`import { useForm } from "react-hook-form"
2
- import { Button, FormFieldShell, FormInput, FormSwitch, FormTextarea } from "@/index"
2
+ import { Button, FormInput, FormSwitch, FormTextarea } from "tembro"
3
3
 
4
4
  type DemoValues = {
5
5
  name: string
@@ -26,19 +26,17 @@ export function Example() {
26
26
 
27
27
  return (
28
28
  <form onSubmit={onSubmit} className="space-y-4">
29
- <FormFieldShell label="Workspace name" required>
30
- <FormInput
31
- control={form.control}
32
- name="name"
33
- label="Workspace name"
34
- required
35
- placeholder="Write a workspace title"
36
- rules={{
37
- required: "Workspace name is required",
38
- minLength: { value: 3, message: "At least 3 characters" },
39
- }}
40
- />
41
- </FormFieldShell>
29
+ <FormInput
30
+ control={form.control}
31
+ name="name"
32
+ label="Workspace name"
33
+ required
34
+ placeholder="Write a workspace title"
35
+ rules={{
36
+ required: "Workspace name is required",
37
+ minLength: { value: 3, message: "At least 3 characters" },
38
+ }}
39
+ />
42
40
 
43
41
  <FormInput
44
42
  control={form.control}
@@ -72,7 +70,7 @@ export function Example() {
72
70
 
73
71
  <Button type="submit">Save</Button>
74
72
  </form>
75
- )`,htmlCode:`<form><label for="workspace">Workspace</label><input id="workspace" value="Azamat UI" /></form>`,cliCommand:`npx tembro add form-wrapper`,highlights:[`control + name contract`,"Universal `kind` variants",`Error display and required markers`,`Consistent wrapper shell behavior`],relatedBlockSlugs:[`settings-form`,`crm-dashboard`,`users-table`],scenarios:[{title:`Required validation`,description:"Use `rules` for required and length constraints and show errors in shell."},{title:`Error display`,description:`Inject custom error messages for required and domain checks.`},{title:`Read-only states`,description:`Support locked and disabled states from parent screens.`},{title:`Unified layout`,description:`Keep one shell language for input, select and toggle types without multiplying wrapper names.`}],capabilityNotes:["Use `control` and `name` from a shared `useForm` call for every field wrapper.","Prefer `FormInput kind=...` and `FormSelect kind=...` for new work; keep alias wrappers only for migration.","Pass RHF `rules` or `validate` to each wrapper, instead of inline ad-hoc checks.","`required` should be explicit both in copy (UI marker) and schema.","Render validation messages through wrapper-level `error` or formState errors for consistent spacing."]},t={code:`import { useForm } from "react-hook-form"
73
+ )`,htmlCode:`<form><label for="workspace">Workspace</label><input id="workspace" value="Azamat UI" /></form>`,cliCommand:`npx tembro add form-input form-textarea form-switch`,highlights:[`control + name contract`,"Universal `kind` variants",`Error display and required markers`,`Consistent wrapper shell behavior`],relatedBlockSlugs:[`settings-form`,`crm-dashboard`,`users-table`],scenarios:[{title:`Required validation`,description:"Use `rules` for required and length constraints and show errors in shell."},{title:`Error display`,description:`Inject custom error messages for required and domain checks.`},{title:`Read-only states`,description:`Support locked and disabled states from parent screens.`},{title:`Unified layout`,description:`Keep one shell language for input, select and toggle types without multiplying wrapper names.`}],capabilityNotes:["Use `control` and `name` from a shared `useForm` call for every field wrapper.","Prefer `FormInput kind=...` and `FormSelect kind=...` for new work; keep alias wrappers only for migration.","Pass RHF `rules` or `validate` to each wrapper, instead of inline ad-hoc checks.","`required` should be explicit both in copy (UI marker) and schema.","Render validation messages through wrapper-level `error` or formState errors for consistent spacing."]},t={code:`import { useForm } from "react-hook-form"
76
74
  import { Button, FormSelect } from "tembro"
77
75
 
78
76
  const statusOptions = [
@@ -81,6 +79,20 @@ const statusOptions = [
81
79
  { label: "Live", value: "live" },
82
80
  ]
83
81
 
82
+ const workspaceOptions = [
83
+ { value: "workspace-alpha", label: "Workspace Alpha", description: "Core design system route" },
84
+ { value: "workspace-beta", label: "Workspace Beta", description: "CRM rollout workspace" },
85
+ ]
86
+
87
+ async function loadWorkspaces(search: string) {
88
+ const query = search.trim().toLowerCase()
89
+ return workspaceOptions.filter((option) => !query || option.label.toLowerCase().includes(query))
90
+ }
91
+
92
+ async function loadWorkspace(value: string) {
93
+ return workspaceOptions.find((option) => option.value === value) ?? null
94
+ }
95
+
84
96
  export function Example() {
85
97
  const form = useForm({
86
98
  defaultValues: {
@@ -114,6 +126,20 @@ export function Example() {
114
126
  }`,cliCommand:`npx tembro add form-select`,highlights:[`One RHF select wrapper`,`Simple + async under one API`,`Shared shell labels and errors`,`Preferred select-form entry`],relatedBlockSlugs:[`settings-form`,`crm-dashboard`,`users-table`],scenarios:[{title:`Static form choices`,description:`Use the default FormSelect mode for known statuses, roles, or visibility controls.`},{title:`Remote edit flows`,description:`Switch to kind="async" when the form hydrates saved entity values from remote search results.`},{title:`Shared validation shell`,description:`Keep labels, descriptions, and errors aligned across simple and async field variants.`}],capabilityNotes:[`Prefer FormSelect for new select fields instead of splitting wrappers too early.`,`Use kind="async" only when loading and hydration are remote concerns.`,`Keep the RHF contract identical while the field interaction model changes underneath.`]},n={code:`import { useForm } from "react-hook-form"
115
127
  import { Button, FormAsyncSelect } from "tembro"
116
128
 
129
+ const workspaceOptions = [
130
+ { value: "workspace-alpha", label: "Workspace Alpha", description: "Core design system route" },
131
+ { value: "workspace-beta", label: "Workspace Beta", description: "CRM rollout workspace" },
132
+ ]
133
+
134
+ async function loadWorkspaces(search: string) {
135
+ const query = search.trim().toLowerCase()
136
+ return workspaceOptions.filter((option) => !query || option.label.toLowerCase().includes(query))
137
+ }
138
+
139
+ async function loadWorkspace(value: string) {
140
+ return workspaceOptions.find((option) => option.value === value) ?? null
141
+ }
142
+
117
143
  export function Example() {
118
144
  const form = useForm({
119
145
  defaultValues: {
@@ -1,8 +1,8 @@
1
1
  //#region src/showcase/premium/form-wrapper/mock.ts
2
2
  var e = {
3
- code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormFieldShell, FormInput, FormSwitch, FormTextarea } from \"@/index\"\n\ntype DemoValues = {\n name: string\n ownerPhone: string\n price: number | null\n notes: string\n active: boolean\n}\n\nexport function Example() {\n const form = useForm<DemoValues>({\n defaultValues: {\n name: \"Azamat UI\",\n ownerPhone: \"+998 90 123 45 67\",\n price: 120,\n notes: \"Use control, name, rules, error, and required labels.\",\n active: true,\n },\n })\n\n const onSubmit = form.handleSubmit((values) => {\n console.log(values)\n })\n\n return (\n <form onSubmit={onSubmit} className=\"space-y-4\">\n <FormFieldShell label=\"Workspace name\" required>\n <FormInput\n control={form.control}\n name=\"name\"\n label=\"Workspace name\"\n required\n placeholder=\"Write a workspace title\"\n rules={{\n required: \"Workspace name is required\",\n minLength: { value: 3, message: \"At least 3 characters\" },\n }}\n />\n </FormFieldShell>\n\n <FormInput\n control={form.control}\n name=\"ownerPhone\"\n kind=\"phone\"\n label=\"Owner phone\"\n description=\"Use canonical phone value for API payloads.\"\n rules={{ required: \"Phone number is required\" }}\n />\n\n <FormInput\n control={form.control}\n name=\"price\"\n kind=\"number\"\n label=\"Budget\"\n min={0}\n max={100000}\n required\n />\n\n <FormTextarea\n control={form.control}\n name=\"notes\"\n label=\"Notes\"\n required\n rows={3}\n description=\"RHF handles error and required states.\"\n />\n\n <FormSwitch control={form.control} name=\"active\" label=\"Active\" />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )",
3
+ code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormInput, FormSwitch, FormTextarea } from \"tembro\"\n\ntype DemoValues = {\n name: string\n ownerPhone: string\n price: number | null\n notes: string\n active: boolean\n}\n\nexport function Example() {\n const form = useForm<DemoValues>({\n defaultValues: {\n name: \"Azamat UI\",\n ownerPhone: \"+998 90 123 45 67\",\n price: 120,\n notes: \"Use control, name, rules, error, and required labels.\",\n active: true,\n },\n })\n\n const onSubmit = form.handleSubmit((values) => {\n console.log(values)\n })\n\n return (\n <form onSubmit={onSubmit} className=\"space-y-4\">\n <FormInput\n control={form.control}\n name=\"name\"\n label=\"Workspace name\"\n required\n placeholder=\"Write a workspace title\"\n rules={{\n required: \"Workspace name is required\",\n minLength: { value: 3, message: \"At least 3 characters\" },\n }}\n />\n\n <FormInput\n control={form.control}\n name=\"ownerPhone\"\n kind=\"phone\"\n label=\"Owner phone\"\n description=\"Use canonical phone value for API payloads.\"\n rules={{ required: \"Phone number is required\" }}\n />\n\n <FormInput\n control={form.control}\n name=\"price\"\n kind=\"number\"\n label=\"Budget\"\n min={0}\n max={100000}\n required\n />\n\n <FormTextarea\n control={form.control}\n name=\"notes\"\n label=\"Notes\"\n required\n rows={3}\n description=\"RHF handles error and required states.\"\n />\n\n <FormSwitch control={form.control} name=\"active\" label=\"Active\" />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )",
4
4
  htmlCode: "<form><label for=\"workspace\">Workspace</label><input id=\"workspace\" value=\"Azamat UI\" /></form>",
5
- cliCommand: "npx tembro add form-wrapper",
5
+ cliCommand: "npx tembro add form-input form-textarea form-switch",
6
6
  highlights: [
7
7
  "control + name contract",
8
8
  "Universal `kind` variants",
@@ -40,7 +40,7 @@ var e = {
40
40
  "Render validation messages through wrapper-level `error` or formState errors for consistent spacing."
41
41
  ]
42
42
  }, t = {
43
- code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormSelect } from \"tembro\"\n\nconst statusOptions = [\n { label: \"Draft\", value: \"draft\" },\n { label: \"Review\", value: \"review\" },\n { label: \"Live\", value: \"live\" },\n]\n\nexport function Example() {\n const form = useForm({\n defaultValues: {\n status: \"review\",\n ownerId: \"workspace-alpha\",\n },\n })\n\n return (\n <form className=\"space-y-4\">\n <FormSelect\n control={form.control}\n name=\"status\"\n label=\"Release status\"\n options={statusOptions}\n placeholder=\"Choose status\"\n />\n\n <FormSelect\n control={form.control}\n name=\"ownerId\"\n kind=\"async\"\n label=\"Linked workspace\"\n loadOptions={loadWorkspaces}\n loadSelectedOption={loadWorkspace}\n />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )\n}",
43
+ code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormSelect } from \"tembro\"\n\nconst statusOptions = [\n { label: \"Draft\", value: \"draft\" },\n { label: \"Review\", value: \"review\" },\n { label: \"Live\", value: \"live\" },\n]\n\nconst workspaceOptions = [\n { value: \"workspace-alpha\", label: \"Workspace Alpha\", description: \"Core design system route\" },\n { value: \"workspace-beta\", label: \"Workspace Beta\", description: \"CRM rollout workspace\" },\n]\n\nasync function loadWorkspaces(search: string) {\n const query = search.trim().toLowerCase()\n return workspaceOptions.filter((option) => !query || option.label.toLowerCase().includes(query))\n}\n\nasync function loadWorkspace(value: string) {\n return workspaceOptions.find((option) => option.value === value) ?? null\n}\n\nexport function Example() {\n const form = useForm({\n defaultValues: {\n status: \"review\",\n ownerId: \"workspace-alpha\",\n },\n })\n\n return (\n <form className=\"space-y-4\">\n <FormSelect\n control={form.control}\n name=\"status\"\n label=\"Release status\"\n options={statusOptions}\n placeholder=\"Choose status\"\n />\n\n <FormSelect\n control={form.control}\n name=\"ownerId\"\n kind=\"async\"\n label=\"Linked workspace\"\n loadOptions={loadWorkspaces}\n loadSelectedOption={loadWorkspace}\n />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )\n}",
44
44
  cliCommand: "npx tembro add form-select",
45
45
  highlights: [
46
46
  "One RHF select wrapper",
@@ -73,7 +73,7 @@ var e = {
73
73
  "Keep the RHF contract identical while the field interaction model changes underneath."
74
74
  ]
75
75
  }, n = {
76
- code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormAsyncSelect } from \"tembro\"\n\nexport function Example() {\n const form = useForm({\n defaultValues: {\n ownerId: \"workspace-alpha\",\n },\n })\n\n return (\n <form className=\"space-y-4\">\n <FormAsyncSelect\n control={form.control}\n name=\"ownerId\"\n label=\"Linked workspace\"\n loadOptions={loadWorkspaces}\n loadSelectedOption={loadWorkspace}\n />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )\n}\n\n// New work should prefer:\n// <FormSelect control={form.control} name=\"ownerId\" kind=\"async\" ... />",
76
+ code: "import { useForm } from \"react-hook-form\"\nimport { Button, FormAsyncSelect } from \"tembro\"\n\nconst workspaceOptions = [\n { value: \"workspace-alpha\", label: \"Workspace Alpha\", description: \"Core design system route\" },\n { value: \"workspace-beta\", label: \"Workspace Beta\", description: \"CRM rollout workspace\" },\n]\n\nasync function loadWorkspaces(search: string) {\n const query = search.trim().toLowerCase()\n return workspaceOptions.filter((option) => !query || option.label.toLowerCase().includes(query))\n}\n\nasync function loadWorkspace(value: string) {\n return workspaceOptions.find((option) => option.value === value) ?? null\n}\n\nexport function Example() {\n const form = useForm({\n defaultValues: {\n ownerId: \"workspace-alpha\",\n },\n })\n\n return (\n <form className=\"space-y-4\">\n <FormAsyncSelect\n control={form.control}\n name=\"ownerId\"\n label=\"Linked workspace\"\n loadOptions={loadWorkspaces}\n loadSelectedOption={loadWorkspace}\n />\n\n <Button type=\"submit\">Save</Button>\n </form>\n )\n}\n\n// New work should prefer:\n// <FormSelect control={form.control} name=\"ownerId\" kind=\"async\" ... />",
77
77
  cliCommand: "npx tembro add form-async-select",
78
78
  highlights: [
79
79
  "Compatibility alias",
@@ -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/form/form-field-shell.cjs"),i=require("../../../components/form/form-input.cjs"),a=require("../../../components/form/form-select.cjs"),o=require("../../../components/form/form-switch.cjs"),s=require("../../../components/form/form-textarea.cjs"),c=require("../../../components/form/form-async-select.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("react/jsx-runtime"),d=require("react-hook-form");var f=[{label:`Draft`,value:`draft`},{label:`Review`,value:`review`},{label:`Live`,value:`live`}],p=[{value:`workspace-alpha`,label:`Workspace Alpha`,description:`Core design system route`},{value:`workspace-beta`,label:`Workspace Beta`,description:`CRM rollout workspace`},{value:`workspace-gamma`,label:`Workspace Gamma`,description:`Billing and pricing flows`}];function m(e){let t=e.trim().toLowerCase();return Promise.resolve(p.filter(e=>!t||e.label.toLowerCase().includes(t)).map(e=>({...e})))}function h(e){let t=p.find(t=>t.value===e);return Promise.resolve(t?{...t}:null)}function g({mode:e}){let[g,_]=l.useState(``);l.useEffect(()=>{_(window.location.pathname)},[]);let v=(0,d.useForm)({defaultValues:{name:`Azamat UI`,ownerPhone:`+998 90 123 45 67`,budget:120,notes:`RHF wrapper coverage for control, name, and validation.`,active:!0,status:`review`,ownerId:`workspace-alpha`}}),y=(0,d.useWatch)({control:v.control,name:`active`}),b=g.split(`/`).filter(Boolean).at(-1);return b===`form-select`?(0,u.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,u.jsx)(a.FormSelect,{control:v.control,name:`status`,label:`Release status`,options:[...f]}),(0,u.jsx)(a.FormSelect,{control:v.control,name:`ownerId`,kind:`async`,label:`Linked workspace`,defaultOptions:p.map(e=>({...e})),loadOptions:m,loadSelectedOption:h})]}):b===`form-async-select`?(0,u.jsx)(c.FormAsyncSelect,{control:v.control,name:`ownerId`,label:`Linked workspace`,defaultOptions:p.map(e=>({...e})),loadOptions:m,loadSelectedOption:h}):(0,u.jsxs)(`form`,{className:`space-y-5`,children:[(0,u.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,u.jsx)(r.FormFieldShell,{label:`Workspace setup`,description:`Shared shell for required marker, error flow and spacing.`,required:!0,children:(0,u.jsx)(i.FormInput,{control:v.control,name:`name`,label:`Workspace name`,required:!0})}),(0,u.jsx)(i.FormInput,{control:v.control,name:`ownerPhone`,kind:`phone`,label:`Owner phone`}),(0,u.jsx)(i.FormInput,{control:v.control,name:`budget`,kind:`number`,label:`Budget`,min:0,max:999999}),(0,u.jsx)(s.FormTextarea,{control:v.control,name:`notes`,label:`Notes`,rows:3})]}),(0,u.jsx)(o.FormSwitch,{control:v.control,name:`active`,label:`Active`}),(0,u.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,u.jsx)(t.Button,{type:`button`,children:`Save`}),(0,u.jsx)(t.Button,{type:`button`,variant:`outline`,onClick:()=>v.reset(),children:`Reset`}),(0,u.jsx)(n.Badge,{variant:`outline`,children:e===`playground`?`Interactive`:y?`Active`:`Paused`})]})]})}exports.FormWrapperShowcase=g;
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/form/form-input.cjs"),i=require("../../../components/form/form-select.cjs"),a=require("../../../components/form/form-switch.cjs"),o=require("../../../components/form/form-textarea.cjs"),s=require("../../../components/form/form-date-picker.cjs"),c=require("../../../components/form/form-date-range-picker.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("react/jsx-runtime"),d=require("react-hook-form");var f=[{label:`Draft`,value:`draft`},{label:`Review`,value:`review`},{label:`Live`,value:`live`}],p=[{value:`workspace-alpha`,label:`Workspace Alpha`,description:`Core design system route`},{value:`workspace-beta`,label:`Workspace Beta`,description:`CRM rollout workspace`},{value:`workspace-gamma`,label:`Workspace Gamma`,description:`Billing and pricing flows`}];function m(e){let t=e.trim().toLowerCase();return Promise.resolve(p.filter(e=>!t||e.label.toLowerCase().includes(t)).map(e=>({...e})))}function h(e){let t=p.find(t=>t.value===e);return Promise.resolve(t?{...t}:null)}function g({mode:e}){let[g,_]=l.useState(``);l.useEffect(()=>{_(window.location.pathname)},[]);let v=(0,d.useForm)({defaultValues:{name:`Azamat UI`,ownerPhone:`+998 90 123 45 67`,budget:120,notes:`RHF wrapper coverage for control, name, and validation.`,active:!0,query:`billing`,password:``,dueDate:`2026-07-18`,period:{from:`2026-07-01`,to:`2026-07-14`},periodFrom:`2026-07-01`,periodTo:`2026-07-14`,status:`review`,ownerId:`workspace-alpha`}}),y=(0,d.useWatch)({control:v.control,name:`active`}),b=g.split(`/`).filter(Boolean).at(-1);return b===`form-select`||b===`form-async-select`?(0,u.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,u.jsx)(i.FormSelect,{control:v.control,name:`status`,label:`Release status`,options:[...f]}),(0,u.jsx)(i.FormSelect,{control:v.control,name:`ownerId`,kind:`async`,label:`Linked workspace`,defaultOptions:p.map(e=>({...e})),loadOptions:m,loadSelectedOption:h})]}):b===`form-search-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`query`,kind:`search`,label:`Search query`,description:`Search wrapper should keep label, hint and result-ready spacing together.`,placeholder:`Search workspaces`}):b===`form-password-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`password`,kind:`password`,label:`Workspace password`,description:`Password wrapper keeps toggle behavior inside the same form shell.`,placeholder:`Enter secure password`}):b===`form-number-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`budget`,kind:`number`,label:`Budget`,description:`Numeric wrapper keeps parsed value handling inside the field contract.`,min:0,max:999999}):b===`form-phone-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`ownerPhone`,kind:`phone`,label:`Owner phone`,description:`Phone wrapper preserves stable raw value while showing a formatted UI.`}):b===`form-date-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`dueDate`,kind:`date`,label:`Due date`,description:`Use the lightweight date input wrapper when string date entry is enough.`}):b===`form-date-range-input`?(0,u.jsx)(r.FormInput,{control:v.control,name:`period`,kind:`date-range`,label:`Reporting period`,description:`Range input wrapper keeps from/to fields under one shell.`}):b===`form-date-picker`?(0,u.jsx)(s.FormDatePicker,{control:v.control,name:`dueDate`,label:`Launch date`,description:`Use the picker wrapper when calendar selection matters more than raw typing.`}):b===`form-date-range-picker`?(0,u.jsx)(c.FormDateRangePicker,{control:v.control,fromName:`periodFrom`,toName:`periodTo`,label:`Launch window`,description:`Popover range picker keeps both fields synchronized inside one wrapper.`}):(0,u.jsxs)(`form`,{className:`space-y-5`,children:[(0,u.jsxs)(`div`,{className:`grid gap-4 xl:grid-cols-2`,children:[(0,u.jsx)(r.FormInput,{control:v.control,name:`name`,label:`Workspace name`,description:`Shared shell keeps required marker, helper text and error spacing aligned.`,required:!0}),(0,u.jsx)(r.FormInput,{control:v.control,name:`ownerPhone`,kind:`phone`,label:`Owner phone`}),(0,u.jsx)(r.FormInput,{control:v.control,name:`budget`,kind:`number`,label:`Budget`,min:0,max:999999}),(0,u.jsx)(o.FormTextarea,{control:v.control,name:`notes`,label:`Notes`,rows:3})]}),(0,u.jsx)(a.FormSwitch,{control:v.control,name:`active`,label:`Active`}),(0,u.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,u.jsx)(t.Button,{type:`button`,children:`Save`}),(0,u.jsx)(t.Button,{type:`button`,variant:`outline`,onClick:()=>v.reset(),children:`Reset`}),(0,u.jsx)(n.Badge,{variant:`outline`,children:e===`playground`?`Interactive`:y?`Active`:`Paused`})]})]})}exports.FormWrapperShowcase=g;
@@ -1,11 +1,11 @@
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 { FormFieldShell as n } from "../../../components/form/form-field-shell.js";
4
- import { FormInput as r } from "../../../components/form/form-input.js";
5
- import { FormSelect as i } from "../../../components/form/form-select.js";
6
- import { FormSwitch as a } from "../../../components/form/form-switch.js";
7
- import { FormTextarea as o } from "../../../components/form/form-textarea.js";
8
- import { FormAsyncSelect as s } from "../../../components/form/form-async-select.js";
3
+ import { FormInput as n } from "../../../components/form/form-input.js";
4
+ import { FormSelect as r } from "../../../components/form/form-select.js";
5
+ import { FormSwitch as i } from "../../../components/form/form-switch.js";
6
+ import { FormTextarea as a } from "../../../components/form/form-textarea.js";
7
+ import { FormDatePicker as o } from "../../../components/form/form-date-picker.js";
8
+ import { FormDateRangePicker as s } from "../../../components/form/form-date-range-picker.js";
9
9
  import * as c from "react";
10
10
  import { jsx as l, jsxs as u } from "react/jsx-runtime";
11
11
  import { useForm as d, useWatch as f } from "react-hook-form";
@@ -59,20 +59,29 @@ function _({ mode: _ }) {
59
59
  budget: 120,
60
60
  notes: "RHF wrapper coverage for control, name, and validation.",
61
61
  active: !0,
62
+ query: "billing",
63
+ password: "",
64
+ dueDate: "2026-07-18",
65
+ period: {
66
+ from: "2026-07-01",
67
+ to: "2026-07-14"
68
+ },
69
+ periodFrom: "2026-07-01",
70
+ periodTo: "2026-07-14",
62
71
  status: "review",
63
72
  ownerId: "workspace-alpha"
64
73
  } }), x = f({
65
74
  control: b.control,
66
75
  name: "active"
67
76
  }), S = v.split("/").filter(Boolean).at(-1);
68
- return S === "form-select" ? /* @__PURE__ */ u("div", {
77
+ return S === "form-select" || S === "form-async-select" ? /* @__PURE__ */ u("div", {
69
78
  className: "grid gap-4 xl:grid-cols-2",
70
- children: [/* @__PURE__ */ l(i, {
79
+ children: [/* @__PURE__ */ l(r, {
71
80
  control: b.control,
72
81
  name: "status",
73
82
  label: "Release status",
74
83
  options: [...p]
75
- }), /* @__PURE__ */ l(i, {
84
+ }), /* @__PURE__ */ l(r, {
76
85
  control: b.control,
77
86
  name: "ownerId",
78
87
  kind: "async",
@@ -81,13 +90,57 @@ function _({ mode: _ }) {
81
90
  loadOptions: h,
82
91
  loadSelectedOption: g
83
92
  })]
84
- }) : S === "form-async-select" ? /* @__PURE__ */ l(s, {
93
+ }) : S === "form-search-input" ? /* @__PURE__ */ l(n, {
85
94
  control: b.control,
86
- name: "ownerId",
87
- label: "Linked workspace",
88
- defaultOptions: m.map((e) => ({ ...e })),
89
- loadOptions: h,
90
- loadSelectedOption: g
95
+ name: "query",
96
+ kind: "search",
97
+ label: "Search query",
98
+ description: "Search wrapper should keep label, hint and result-ready spacing together.",
99
+ placeholder: "Search workspaces"
100
+ }) : S === "form-password-input" ? /* @__PURE__ */ l(n, {
101
+ control: b.control,
102
+ name: "password",
103
+ kind: "password",
104
+ label: "Workspace password",
105
+ description: "Password wrapper keeps toggle behavior inside the same form shell.",
106
+ placeholder: "Enter secure password"
107
+ }) : S === "form-number-input" ? /* @__PURE__ */ l(n, {
108
+ control: b.control,
109
+ name: "budget",
110
+ kind: "number",
111
+ label: "Budget",
112
+ description: "Numeric wrapper keeps parsed value handling inside the field contract.",
113
+ min: 0,
114
+ max: 999999
115
+ }) : S === "form-phone-input" ? /* @__PURE__ */ l(n, {
116
+ control: b.control,
117
+ name: "ownerPhone",
118
+ kind: "phone",
119
+ label: "Owner phone",
120
+ description: "Phone wrapper preserves stable raw value while showing a formatted UI."
121
+ }) : S === "form-date-input" ? /* @__PURE__ */ l(n, {
122
+ control: b.control,
123
+ name: "dueDate",
124
+ kind: "date",
125
+ label: "Due date",
126
+ description: "Use the lightweight date input wrapper when string date entry is enough."
127
+ }) : S === "form-date-range-input" ? /* @__PURE__ */ l(n, {
128
+ control: b.control,
129
+ name: "period",
130
+ kind: "date-range",
131
+ label: "Reporting period",
132
+ description: "Range input wrapper keeps from/to fields under one shell."
133
+ }) : S === "form-date-picker" ? /* @__PURE__ */ l(o, {
134
+ control: b.control,
135
+ name: "dueDate",
136
+ label: "Launch date",
137
+ description: "Use the picker wrapper when calendar selection matters more than raw typing."
138
+ }) : S === "form-date-range-picker" ? /* @__PURE__ */ l(s, {
139
+ control: b.control,
140
+ fromName: "periodFrom",
141
+ toName: "periodTo",
142
+ label: "Launch window",
143
+ description: "Popover range picker keeps both fields synchronized inside one wrapper."
91
144
  }) : /* @__PURE__ */ u("form", {
92
145
  className: "space-y-5",
93
146
  children: [
@@ -95,23 +148,19 @@ function _({ mode: _ }) {
95
148
  className: "grid gap-4 xl:grid-cols-2",
96
149
  children: [
97
150
  /* @__PURE__ */ l(n, {
98
- label: "Workspace setup",
99
- description: "Shared shell for required marker, error flow and spacing.",
100
- required: !0,
101
- children: /* @__PURE__ */ l(r, {
102
- control: b.control,
103
- name: "name",
104
- label: "Workspace name",
105
- required: !0
106
- })
151
+ control: b.control,
152
+ name: "name",
153
+ label: "Workspace name",
154
+ description: "Shared shell keeps required marker, helper text and error spacing aligned.",
155
+ required: !0
107
156
  }),
108
- /* @__PURE__ */ l(r, {
157
+ /* @__PURE__ */ l(n, {
109
158
  control: b.control,
110
159
  name: "ownerPhone",
111
160
  kind: "phone",
112
161
  label: "Owner phone"
113
162
  }),
114
- /* @__PURE__ */ l(r, {
163
+ /* @__PURE__ */ l(n, {
115
164
  control: b.control,
116
165
  name: "budget",
117
166
  kind: "number",
@@ -119,7 +168,7 @@ function _({ mode: _ }) {
119
168
  min: 0,
120
169
  max: 999999
121
170
  }),
122
- /* @__PURE__ */ l(o, {
171
+ /* @__PURE__ */ l(a, {
123
172
  control: b.control,
124
173
  name: "notes",
125
174
  label: "Notes",
@@ -127,7 +176,7 @@ function _({ mode: _ }) {
127
176
  })
128
177
  ]
129
178
  }),
130
- /* @__PURE__ */ l(a, {
179
+ /* @__PURE__ */ l(i, {
131
180
  control: b.control,
132
181
  name: "active",
133
182
  label: "Active"