tembro 2.0.4 → 2.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/dist/components/actions/action-menu.cjs +1 -1
  2. package/dist/components/actions/action-menu.d.ts +13 -1
  3. package/dist/components/actions/action-menu.js +87 -61
  4. package/dist/components/actions/button-group.cjs +1 -1
  5. package/dist/components/actions/button-group.d.ts +9 -1
  6. package/dist/components/actions/button-group.js +58 -14
  7. package/dist/components/actions/copy-button.cjs +1 -1
  8. package/dist/components/actions/copy-button.d.ts +2 -1
  9. package/dist/components/actions/copy-button.js +13 -11
  10. package/dist/components/calendar/calendar.cjs +1 -1
  11. package/dist/components/calendar/calendar.d.ts +14 -1
  12. package/dist/components/calendar/calendar.js +207 -128
  13. package/dist/components/calendar/date-picker.cjs +1 -1
  14. package/dist/components/calendar/date-picker.d.ts +3 -1
  15. package/dist/components/calendar/date-picker.js +57 -27
  16. package/dist/components/calendar/date-range-picker.cjs +1 -1
  17. package/dist/components/calendar/date-range-picker.d.ts +10 -1
  18. package/dist/components/calendar/date-range-picker.js +149 -64
  19. package/dist/components/data-table/data-table-toolbar.cjs +1 -1
  20. package/dist/components/data-table/data-table-toolbar.d.ts +5 -1
  21. package/dist/components/data-table/data-table-toolbar.js +36 -23
  22. package/dist/components/data-table/data-table.cjs +1 -1
  23. package/dist/components/data-table/data-table.d.ts +6 -4
  24. package/dist/components/data-table/data-table.js +87 -79
  25. package/dist/components/data-table/demo.cjs +1 -1
  26. package/dist/components/data-table/demo.js +3 -13
  27. package/dist/components/data-table/index.cjs +1 -1
  28. package/dist/components/data-table/index.js +5 -5
  29. package/dist/components/data-table/public.cjs +1 -1
  30. package/dist/components/data-table/public.d.ts +1 -6
  31. package/dist/components/data-table/public.js +7 -12
  32. package/dist/components/display/activity-feed.cjs +1 -1
  33. package/dist/components/display/activity-feed.d.ts +12 -1
  34. package/dist/components/display/activity-feed.js +69 -47
  35. package/dist/components/display/carousel.cjs +1 -1
  36. package/dist/components/display/carousel.d.ts +10 -1
  37. package/dist/components/display/carousel.js +68 -23
  38. package/dist/components/display/code-block.cjs +2 -1
  39. package/dist/components/display/code-block.d.ts +3 -1
  40. package/dist/components/display/code-block.js +33 -19
  41. package/dist/components/display/comparison-card.cjs +1 -1
  42. package/dist/components/display/comparison-card.d.ts +3 -3
  43. package/dist/components/display/comparison-card.js +14 -38
  44. package/dist/components/display/data-state.cjs +1 -1
  45. package/dist/components/display/data-state.d.ts +12 -2
  46. package/dist/components/display/data-state.js +80 -42
  47. package/dist/components/display/demo.cjs +1 -1
  48. package/dist/components/display/demo.js +1 -5
  49. package/dist/components/display/index.cjs +1 -1
  50. package/dist/components/display/index.d.ts +0 -3
  51. package/dist/components/display/index.js +21 -24
  52. package/dist/components/feedback/alert.cjs +1 -1
  53. package/dist/components/feedback/alert.d.ts +6 -1
  54. package/dist/components/feedback/alert.js +49 -19
  55. package/dist/components/feedback/index.cjs +1 -1
  56. package/dist/components/feedback/index.d.ts +0 -2
  57. package/dist/components/feedback/index.js +3 -5
  58. package/dist/components/filters/demo.cjs +1 -1
  59. package/dist/components/filters/demo.js +1 -5
  60. package/dist/components/filters/filter-bar.cjs +1 -1
  61. package/dist/components/filters/filter-bar.d.ts +15 -1
  62. package/dist/components/filters/filter-bar.js +94 -50
  63. package/dist/components/filters/index.cjs +1 -1
  64. package/dist/components/filters/index.d.ts +0 -1
  65. package/dist/components/filters/index.js +3 -4
  66. package/dist/components/form/form-field-shell.cjs +1 -1
  67. package/dist/components/form/form-field-shell.d.ts +17 -3
  68. package/dist/components/form/form-field-shell.js +54 -40
  69. package/dist/components/form/form-input.cjs +1 -1
  70. package/dist/components/form/form-input.js +278 -217
  71. package/dist/components/form/form-select.cjs +1 -1
  72. package/dist/components/form/form-select.js +47 -33
  73. package/dist/components/form/form-switch.cjs +1 -1
  74. package/dist/components/form/form-switch.js +79 -66
  75. package/dist/components/form/form-textarea.cjs +1 -1
  76. package/dist/components/form/form-textarea.js +59 -48
  77. package/dist/components/form/index.cjs +1 -1
  78. package/dist/components/form/index.js +14 -14
  79. package/dist/components/form/public.cjs +1 -1
  80. package/dist/components/form/public.d.ts +0 -8
  81. package/dist/components/form/public.js +7 -15
  82. package/dist/components/inputs/async-select.cjs +1 -1
  83. package/dist/components/inputs/async-select.d.ts +11 -2
  84. package/dist/components/inputs/async-select.js +278 -270
  85. package/dist/components/inputs/combobox.cjs +1 -1
  86. package/dist/components/inputs/combobox.d.ts +5 -1
  87. package/dist/components/inputs/combobox.js +52 -19
  88. package/dist/components/inputs/simple-select.cjs +1 -1
  89. package/dist/components/inputs/simple-select.d.ts +2 -1
  90. package/dist/components/inputs/simple-select.js +32 -16
  91. package/dist/components/layout/app-sidebar.cjs +1 -1
  92. package/dist/components/layout/app-sidebar.d.ts +4 -1
  93. package/dist/components/layout/app-sidebar.js +152 -132
  94. package/dist/components/layout/breadcrumbs.cjs +1 -1
  95. package/dist/components/layout/breadcrumbs.d.ts +2 -1
  96. package/dist/components/layout/breadcrumbs.js +10 -10
  97. package/dist/components/layout/index.cjs +1 -1
  98. package/dist/components/layout/index.js +3 -3
  99. package/dist/components/layout/stat-card.cjs +1 -1
  100. package/dist/components/layout/stat-card.d.ts +8 -1
  101. package/dist/components/layout/stat-card.js +33 -11
  102. package/dist/components/modern/calendar-scheduler.cjs +1 -1
  103. package/dist/components/modern/calendar-scheduler.d.ts +2 -1
  104. package/dist/components/modern/calendar-scheduler.js +21 -12
  105. package/dist/components/overlay/alert-dialog.cjs +1 -1
  106. package/dist/components/overlay/alert-dialog.d.ts +15 -1
  107. package/dist/components/overlay/alert-dialog.js +102 -27
  108. package/dist/components/overlay/drawer.cjs +1 -1
  109. package/dist/components/overlay/drawer.d.ts +4 -1
  110. package/dist/components/overlay/drawer.js +20 -17
  111. package/dist/components/patterns/index.cjs +1 -1
  112. package/dist/components/patterns/index.d.ts +0 -1
  113. package/dist/components/patterns/index.js +1 -2
  114. package/dist/components/patterns/public.cjs +1 -1
  115. package/dist/components/patterns/public.d.ts +0 -1
  116. package/dist/components/patterns/public.js +1 -2
  117. package/dist/components/ui/button/index.cjs +1 -1
  118. package/dist/components/ui/button/index.d.ts +3 -1
  119. package/dist/components/ui/button/index.js +7 -5
  120. package/dist/components/ui/checkbox/index.cjs +1 -1
  121. package/dist/components/ui/checkbox/index.d.ts +8 -0
  122. package/dist/components/ui/checkbox/index.js +16 -14
  123. package/dist/components/ui/collapse/index.cjs +1 -1
  124. package/dist/components/ui/collapse/index.d.ts +17 -3
  125. package/dist/components/ui/collapse/index.js +88 -33
  126. package/dist/components/ui/dialog/index.cjs +1 -1
  127. package/dist/components/ui/dialog/index.d.ts +2 -1
  128. package/dist/components/ui/dialog/index.js +6 -4
  129. package/dist/components/ui/dropdown-menu/index.cjs +1 -1
  130. package/dist/components/ui/dropdown-menu/index.d.ts +9 -4
  131. package/dist/components/ui/dropdown-menu/index.js +87 -62
  132. package/dist/index.cjs +1 -1
  133. package/dist/index.js +137 -156
  134. package/dist/public-component-surface.cjs +1 -1
  135. package/dist/public-component-surface.js +0 -15
  136. package/dist/showcase/component-api-schema.cjs +1 -1
  137. package/dist/showcase/component-api-schema.js +2 -2
  138. package/dist/showcase/create-demo.cjs +20 -34
  139. package/dist/showcase/create-demo.js +15 -16
  140. package/dist/showcase/fallback.cjs +3 -3
  141. package/dist/showcase/fallback.js +275 -265
  142. package/dist/showcase/premium/accordion/showcase.cjs +1 -1
  143. package/dist/showcase/premium/accordion/showcase.js +36 -5
  144. package/dist/showcase/premium/action-menu/showcase.cjs +1 -1
  145. package/dist/showcase/premium/action-menu/showcase.js +26 -8
  146. package/dist/showcase/premium/activity-feed/showcase.cjs +1 -1
  147. package/dist/showcase/premium/activity-feed/showcase.js +60 -36
  148. package/dist/showcase/premium/alert/showcase.cjs +1 -1
  149. package/dist/showcase/premium/alert/showcase.js +41 -18
  150. package/dist/showcase/premium/alert-dialog/showcase.cjs +1 -1
  151. package/dist/showcase/premium/alert-dialog/showcase.js +35 -7
  152. package/dist/showcase/premium/async-multi-select/mock.cjs +4 -3
  153. package/dist/showcase/premium/async-multi-select/mock.js +5 -5
  154. package/dist/showcase/premium/async-multi-select/showcase.cjs +1 -1
  155. package/dist/showcase/premium/async-multi-select/showcase.js +4 -3
  156. package/dist/showcase/premium/async-select/mock.cjs +1 -1
  157. package/dist/showcase/premium/async-select/mock.js +1 -1
  158. package/dist/showcase/premium/async-select/showcase.cjs +1 -1
  159. package/dist/showcase/premium/async-select/showcase.js +69 -22
  160. package/dist/showcase/premium/button/showcase.cjs +1 -1
  161. package/dist/showcase/premium/button/showcase.js +49 -3
  162. package/dist/showcase/premium/button-group/showcase.cjs +1 -1
  163. package/dist/showcase/premium/button-group/showcase.js +53 -29
  164. package/dist/showcase/premium/calendar/showcase.cjs +1 -1
  165. package/dist/showcase/premium/calendar/showcase.js +7 -2
  166. package/dist/showcase/premium/carousel/showcase.cjs +1 -1
  167. package/dist/showcase/premium/carousel/showcase.js +95 -47
  168. package/dist/showcase/premium/checkbox/showcase.cjs +1 -1
  169. package/dist/showcase/premium/checkbox/showcase.js +143 -67
  170. package/dist/showcase/premium/clearable-input/mock.cjs +4 -3
  171. package/dist/showcase/premium/clearable-input/mock.js +3 -2
  172. package/dist/showcase/premium/clearable-input/showcase.cjs +1 -1
  173. package/dist/showcase/premium/clearable-input/showcase.js +8 -2
  174. package/dist/showcase/premium/collapse/showcase.cjs +1 -1
  175. package/dist/showcase/premium/collapse/showcase.js +7 -0
  176. package/dist/showcase/premium/combobox/showcase.cjs +1 -1
  177. package/dist/showcase/premium/combobox/showcase.d.ts +2 -1
  178. package/dist/showcase/premium/combobox/showcase.js +56 -47
  179. package/dist/showcase/premium/data-table/showcase.cjs +1 -1
  180. package/dist/showcase/premium/data-table/showcase.js +138 -46
  181. package/dist/showcase/premium/data-table-parts/showcase.cjs +1 -1
  182. package/dist/showcase/premium/data-table-parts/showcase.js +13 -13
  183. package/dist/showcase/premium/date-input/mock.cjs +1 -1
  184. package/dist/showcase/premium/date-input/mock.js +1 -1
  185. package/dist/showcase/premium/date-range-picker/showcase.cjs +1 -1
  186. package/dist/showcase/premium/date-range-picker/showcase.js +32 -1
  187. package/dist/showcase/premium/dropdown-menu/showcase.cjs +1 -1
  188. package/dist/showcase/premium/dropdown-menu/showcase.js +88 -54
  189. package/dist/showcase/premium/form-wrapper/mock.cjs +41 -15
  190. package/dist/showcase/premium/form-wrapper/mock.js +4 -4
  191. package/dist/showcase/premium/form-wrapper/showcase.cjs +1 -1
  192. package/dist/showcase/premium/form-wrapper/showcase.js +77 -28
  193. package/dist/showcase/premium/index.cjs +1 -1
  194. package/dist/showcase/premium/index.js +426 -467
  195. package/dist/showcase/premium/input/mock.cjs +4 -1
  196. package/dist/showcase/premium/input/mock.js +1 -1
  197. package/dist/showcase/premium/masked-input/mock.cjs +1 -1
  198. package/dist/showcase/premium/masked-input/mock.js +1 -1
  199. package/dist/showcase/premium/money-input/mock.cjs +1 -1
  200. package/dist/showcase/premium/money-input/mock.js +1 -1
  201. package/dist/showcase/premium/number-input/mock.cjs +1 -1
  202. package/dist/showcase/premium/number-input/mock.js +1 -1
  203. package/dist/showcase/premium/phone-input/mock.cjs +1 -1
  204. package/dist/showcase/premium/phone-input/mock.js +1 -1
  205. package/dist/showcase/premium/quantity-input/mock.cjs +1 -1
  206. package/dist/showcase/premium/quantity-input/mock.js +1 -1
  207. package/dist/showcase/premium/simple-select/mock.cjs +1 -1
  208. package/dist/showcase/premium/simple-select/mock.js +1 -1
  209. package/dist/showcase/premium/simple-select/showcase.cjs +1 -1
  210. package/dist/showcase/premium/simple-select/showcase.js +4 -2
  211. package/dist/showcase/preview-catalog.cjs +7 -10
  212. package/dist/showcase/preview-catalog.js +7 -7
  213. package/dist/showcase/registry-quality.cjs +1 -1
  214. package/dist/showcase/registry-quality.js +0 -23
  215. package/dist/showcase/registry-specific.cjs +1 -1
  216. package/dist/showcase/registry-specific.js +149 -383
  217. package/dist/showcase/render-registry-preview.cjs +1 -1
  218. package/dist/showcase/render-registry-preview.js +163 -195
  219. package/dist/showcase/site-data.cjs +1 -1
  220. package/dist/showcase/site-data.js +197 -941
  221. package/dist/showcase/supplemental.cjs +1 -1
  222. package/dist/showcase/supplemental.js +1 -1
  223. package/dist/showcase/tembro-registry.json.cjs +1 -1
  224. package/dist/showcase/tembro-registry.json.js +33 -51
  225. package/package.json +1 -1
  226. package/packages/cli/dist/index.cjs +2 -2
  227. package/packages/cli/vendor/src/components/actions/action-menu.tsx +149 -83
  228. package/packages/cli/vendor/src/components/actions/button-group.tsx +141 -33
  229. package/packages/cli/vendor/src/components/actions/copy-button.tsx +21 -16
  230. package/packages/cli/vendor/src/components/calendar/calendar.tsx +223 -88
  231. package/packages/cli/vendor/src/components/calendar/date-picker.tsx +73 -29
  232. package/packages/cli/vendor/src/components/calendar/date-range-picker.tsx +154 -49
  233. package/packages/cli/vendor/src/components/data-table/data-table-toolbar.tsx +71 -50
  234. package/packages/cli/vendor/src/components/data-table/data-table.tsx +65 -53
  235. package/packages/cli/vendor/src/components/data-table/demo.tsx +2 -12
  236. package/packages/cli/vendor/src/components/data-table/public.ts +1 -6
  237. package/packages/cli/vendor/src/components/display/activity-feed.tsx +98 -40
  238. package/packages/cli/vendor/src/components/display/carousel.tsx +88 -2
  239. package/packages/cli/vendor/src/components/display/code-block.tsx +58 -26
  240. package/packages/cli/vendor/src/components/display/comparison-card.tsx +15 -41
  241. package/packages/cli/vendor/src/components/display/data-state.tsx +119 -50
  242. package/packages/cli/vendor/src/components/display/demo.tsx +0 -4
  243. package/packages/cli/vendor/src/components/display/index.ts +0 -3
  244. package/packages/cli/vendor/src/components/feedback/alert.tsx +86 -28
  245. package/packages/cli/vendor/src/components/feedback/index.ts +0 -2
  246. package/packages/cli/vendor/src/components/filters/demo.tsx +0 -1
  247. package/packages/cli/vendor/src/components/filters/filter-bar.tsx +126 -54
  248. package/packages/cli/vendor/src/components/filters/index.ts +0 -1
  249. package/packages/cli/vendor/src/components/form/form-field-shell.tsx +72 -34
  250. package/packages/cli/vendor/src/components/form/form-input.tsx +118 -11
  251. package/packages/cli/vendor/src/components/form/form-select.tsx +26 -3
  252. package/packages/cli/vendor/src/components/form/form-switch.tsx +77 -58
  253. package/packages/cli/vendor/src/components/form/form-textarea.tsx +65 -51
  254. package/packages/cli/vendor/src/components/form/public.ts +0 -9
  255. package/packages/cli/vendor/src/components/inputs/async-select.tsx +126 -82
  256. package/packages/cli/vendor/src/components/inputs/combobox.tsx +66 -9
  257. package/packages/cli/vendor/src/components/inputs/simple-select.tsx +52 -24
  258. package/packages/cli/vendor/src/components/layout/app-sidebar.tsx +42 -1
  259. package/packages/cli/vendor/src/components/layout/breadcrumbs.tsx +17 -8
  260. package/packages/cli/vendor/src/components/layout/stat-card.tsx +63 -23
  261. package/packages/cli/vendor/src/components/modern/calendar-scheduler.tsx +32 -22
  262. package/packages/cli/vendor/src/components/overlay/alert-dialog.tsx +148 -24
  263. package/packages/cli/vendor/src/components/overlay/drawer.tsx +42 -30
  264. package/packages/cli/vendor/src/components/patterns/index.ts +0 -1
  265. package/packages/cli/vendor/src/components/patterns/public.ts +0 -1
  266. package/packages/cli/vendor/src/components/ui/button/index.tsx +27 -17
  267. package/packages/cli/vendor/src/components/ui/checkbox/index.tsx +22 -5
  268. package/packages/cli/vendor/src/components/ui/collapse/index.tsx +97 -16
  269. package/packages/cli/vendor/src/components/ui/dialog/index.tsx +12 -8
  270. package/packages/cli/vendor/src/components/ui/dropdown-menu/index.tsx +82 -28
  271. package/packages/cli/vendor/src/public-component-surface.ts +0 -3
  272. package/packages/cli/vendor/src/showcase/component-api-schema.ts +2 -2
  273. package/packages/cli/vendor/src/showcase/create-demo.tsx +31 -46
  274. package/packages/cli/vendor/src/showcase/fallback.tsx +80 -99
  275. package/packages/cli/vendor/src/showcase/premium/accordion/showcase.tsx +32 -2
  276. package/packages/cli/vendor/src/showcase/premium/action-menu/showcase.tsx +12 -3
  277. package/packages/cli/vendor/src/showcase/premium/activity-feed/showcase.tsx +15 -2
  278. package/packages/cli/vendor/src/showcase/premium/alert/showcase.tsx +32 -17
  279. package/packages/cli/vendor/src/showcase/premium/alert-dialog/showcase.tsx +28 -3
  280. package/packages/cli/vendor/src/showcase/premium/async-multi-select/mock.ts +6 -5
  281. package/packages/cli/vendor/src/showcase/premium/async-multi-select/showcase.tsx +5 -4
  282. package/packages/cli/vendor/src/showcase/premium/async-select/mock.ts +1 -1
  283. package/packages/cli/vendor/src/showcase/premium/async-select/showcase.tsx +36 -0
  284. package/packages/cli/vendor/src/showcase/premium/button/showcase.tsx +26 -5
  285. package/packages/cli/vendor/src/showcase/premium/button-group/showcase.tsx +20 -3
  286. package/packages/cli/vendor/src/showcase/premium/calendar/showcase.tsx +5 -0
  287. package/packages/cli/vendor/src/showcase/premium/carousel/showcase.tsx +33 -5
  288. package/packages/cli/vendor/src/showcase/premium/checkbox/showcase.tsx +46 -3
  289. package/packages/cli/vendor/src/showcase/premium/clearable-input/mock.ts +5 -3
  290. package/packages/cli/vendor/src/showcase/premium/clearable-input/showcase.tsx +5 -2
  291. package/packages/cli/vendor/src/showcase/premium/collapse/showcase.tsx +4 -0
  292. package/packages/cli/vendor/src/showcase/premium/combobox/showcase.tsx +8 -0
  293. package/packages/cli/vendor/src/showcase/premium/data-table/showcase.tsx +77 -27
  294. package/packages/cli/vendor/src/showcase/premium/data-table-parts/showcase.tsx +11 -11
  295. package/packages/cli/vendor/src/showcase/premium/date-input/mock.ts +1 -1
  296. package/packages/cli/vendor/src/showcase/premium/date-range-picker/showcase.tsx +7 -0
  297. package/packages/cli/vendor/src/showcase/premium/dropdown-menu/showcase.tsx +46 -3
  298. package/packages/cli/vendor/src/showcase/premium/form-wrapper/mock.ts +70 -44
  299. package/packages/cli/vendor/src/showcase/premium/form-wrapper/showcase.tsx +129 -12
  300. package/packages/cli/vendor/src/showcase/premium/index.ts +7 -24
  301. package/packages/cli/vendor/src/showcase/premium/input/mock.ts +2 -2
  302. package/packages/cli/vendor/src/showcase/premium/masked-input/mock.ts +1 -1
  303. package/packages/cli/vendor/src/showcase/premium/money-input/mock.ts +1 -1
  304. package/packages/cli/vendor/src/showcase/premium/number-input/mock.ts +1 -1
  305. package/packages/cli/vendor/src/showcase/premium/phone-input/mock.ts +1 -1
  306. package/packages/cli/vendor/src/showcase/premium/quantity-input/mock.ts +1 -1
  307. package/packages/cli/vendor/src/showcase/premium/simple-select/mock.ts +1 -1
  308. package/packages/cli/vendor/src/showcase/premium/simple-select/showcase.tsx +2 -1
  309. package/packages/cli/vendor/src/showcase/preview-catalog.tsx +7 -7
  310. package/packages/cli/vendor/src/showcase/registry-quality.ts +4 -28
  311. package/packages/cli/vendor/src/showcase/registry-specific.tsx +3 -178
  312. package/packages/cli/vendor/src/showcase/render-registry-preview.tsx +18 -51
  313. package/packages/cli/vendor/src/showcase/site-data.tsx +2443 -2761
  314. package/packages/cli/vendor/src/showcase/supplemental.tsx +2 -42
  315. package/packages/cli/vendor/src/showcase/tembro-registry.json +11 -58
  316. package/registry.json +11 -61
  317. package/dist/components/display/entity-card.cjs +0 -1
  318. package/dist/components/display/entity-card.d.ts +0 -18
  319. package/dist/components/display/entity-card.js +0 -61
  320. package/dist/components/display/entity-header.cjs +0 -1
  321. package/dist/components/display/entity-header.d.ts +0 -13
  322. package/dist/components/display/entity-header.js +0 -52
  323. package/dist/components/display/file-card.cjs +0 -1
  324. package/dist/components/display/file-card.d.ts +0 -14
  325. package/dist/components/display/file-card.js +0 -59
  326. package/dist/components/feedback/empty-search-state.cjs +0 -1
  327. package/dist/components/feedback/empty-search-state.d.ts +0 -11
  328. package/dist/components/feedback/empty-search-state.js +0 -45
  329. package/dist/components/feedback/empty-state.cjs +0 -1
  330. package/dist/components/feedback/empty-state.d.ts +0 -11
  331. package/dist/components/feedback/empty-state.js +0 -38
  332. package/dist/components/filters/filter-chips.cjs +0 -1
  333. package/dist/components/filters/filter-chips.d.ts +0 -18
  334. package/dist/components/filters/filter-chips.js +0 -61
  335. package/dist/components/patterns/form-builder-presets.cjs +0 -1
  336. package/dist/components/patterns/form-builder-presets.d.ts +0 -1
  337. package/dist/components/patterns/form-builder-presets.js +0 -2
  338. package/dist/components/patterns/form-builder.cjs +0 -1
  339. package/dist/components/patterns/form-builder.d.ts +0 -109
  340. package/dist/components/patterns/form-builder.js +0 -263
  341. package/dist/showcase/premium/empty-state/index.cjs +0 -1
  342. package/dist/showcase/premium/empty-state/index.d.ts +0 -2
  343. package/dist/showcase/premium/empty-state/index.js +0 -3
  344. package/dist/showcase/premium/empty-state/mock.cjs +0 -14
  345. package/dist/showcase/premium/empty-state/mock.d.ts +0 -2
  346. package/dist/showcase/premium/empty-state/mock.js +0 -31
  347. package/dist/showcase/premium/empty-state/showcase.cjs +0 -1
  348. package/dist/showcase/premium/empty-state/showcase.d.ts +0 -3
  349. package/dist/showcase/premium/empty-state/showcase.js +0 -99
  350. package/dist/showcase/premium/form-builder/index.cjs +0 -1
  351. package/dist/showcase/premium/form-builder/index.d.ts +0 -2
  352. package/dist/showcase/premium/form-builder/index.js +0 -3
  353. package/dist/showcase/premium/form-builder/mock.cjs +0 -57
  354. package/dist/showcase/premium/form-builder/mock.d.ts +0 -2
  355. package/dist/showcase/premium/form-builder/mock.js +0 -40
  356. package/dist/showcase/premium/form-builder/showcase.cjs +0 -1
  357. package/dist/showcase/premium/form-builder/showcase.d.ts +0 -3
  358. package/dist/showcase/premium/form-builder/showcase.js +0 -69
  359. package/packages/cli/vendor/src/components/display/entity-card.tsx +0 -80
  360. package/packages/cli/vendor/src/components/display/entity-header.tsx +0 -80
  361. package/packages/cli/vendor/src/components/display/file-card.tsx +0 -61
  362. package/packages/cli/vendor/src/components/feedback/empty-search-state.tsx +0 -65
  363. package/packages/cli/vendor/src/components/feedback/empty-state.tsx +0 -56
  364. package/packages/cli/vendor/src/components/filters/filter-chips.tsx +0 -89
  365. package/packages/cli/vendor/src/components/patterns/form-builder-presets.ts +0 -13
  366. package/packages/cli/vendor/src/components/patterns/form-builder.tsx +0 -443
  367. package/packages/cli/vendor/src/showcase/premium/empty-state/index.ts +0 -2
  368. package/packages/cli/vendor/src/showcase/premium/empty-state/mock.ts +0 -30
  369. package/packages/cli/vendor/src/showcase/premium/empty-state/showcase.tsx +0 -65
  370. package/packages/cli/vendor/src/showcase/premium/form-builder/index.ts +0 -2
  371. package/packages/cli/vendor/src/showcase/premium/form-builder/mock.ts +0 -79
  372. package/packages/cli/vendor/src/showcase/premium/form-builder/showcase.tsx +0 -55
@@ -2,97 +2,133 @@ import * as React from "react"
2
2
  import { Loader2Icon, MoreHorizontalIcon } from "lucide-react"
3
3
 
4
4
  import { Button } from "@/components/ui/button"
5
- import {
6
- DropdownMenu,
7
- DropdownMenuContent,
8
- DropdownMenuItem,
9
- DropdownMenuLabel,
10
- DropdownMenuSeparator,
11
- DropdownMenuTrigger,
12
- } from "@/components/ui/dropdown-menu"
5
+ import {
6
+ DropdownMenu,
7
+ DropdownMenuContent,
8
+ DropdownMenuItem,
9
+ DropdownMenuItemDescription,
10
+ DropdownMenuLabel,
11
+ DropdownMenuSeparator,
12
+ DropdownMenuShortcut,
13
+ DropdownMenuTrigger,
14
+ } from "@/components/ui/dropdown-menu"
13
15
  import { cn, stopInteractivePropagation } from "@/lib/utils"
14
16
 
15
- export type ActionMenuItem = {
16
- key: string
17
- label: React.ReactNode
18
- icon?: React.ReactNode
17
+ export type ActionMenuItem = {
18
+ key: string
19
+ label: React.ReactNode
20
+ section?: React.ReactNode
21
+ description?: React.ReactNode
22
+ icon?: React.ReactNode
19
23
  shortcut?: React.ReactNode
20
24
  disabled?: boolean
21
25
  loading?: boolean
22
- destructive?: boolean
23
- hidden?: boolean
24
- onSelect?: () => void | Promise<void>
25
- }
26
+ destructive?: boolean
27
+ hidden?: boolean
28
+ keepOpen?: boolean
29
+ onSelect?: () => void | Promise<void>
30
+ }
26
31
 
27
- export type ActionMenuProps = {
28
- actions: ActionMenuItem[]
29
- label?: React.ReactNode
30
- trigger?: React.ReactElement
31
- align?: "start" | "center" | "end"
32
- side?: "top" | "right" | "bottom" | "left"
33
- sideOffset?: number
34
- disabled?: boolean
35
- contentClassName?: string
36
- triggerClassName?: string
37
- emptyLabel?: React.ReactNode
38
- }
32
+ export type ActionMenuProps = {
33
+ actions: ActionMenuItem[]
34
+ label?: React.ReactNode
35
+ trigger?: React.ReactElement
36
+ align?: "start" | "center" | "end"
37
+ side?: "top" | "right" | "bottom" | "left"
38
+ sideOffset?: number
39
+ disabled?: boolean
40
+ triggerVariant?: React.ComponentProps<typeof Button>["variant"]
41
+ triggerSize?: React.ComponentProps<typeof Button>["size"]
42
+ showChevron?: boolean
43
+ closeOnSelect?: boolean
44
+ contentClassName?: string
45
+ triggerClassName?: string
46
+ itemClassName?: string
47
+ emptyLabel?: React.ReactNode
48
+ menuWidth?: number | string
49
+ loadingLabel?: React.ReactNode
50
+ persistIconSpace?: boolean
51
+ }
39
52
 
40
53
  function ActionMenu({
41
54
  actions,
42
55
  label,
43
56
  trigger,
44
- align = "end",
45
- side = "bottom",
46
- sideOffset = 4,
47
- disabled = false,
48
- contentClassName,
49
- triggerClassName,
50
- emptyLabel = "No actions",
57
+ align = "end",
58
+ side = "bottom",
59
+ sideOffset = 4,
60
+ disabled = false,
61
+ triggerVariant = "ghost",
62
+ triggerSize = "icon-sm",
63
+ showChevron = false,
64
+ closeOnSelect = true,
65
+ contentClassName,
66
+ triggerClassName,
67
+ itemClassName,
68
+ emptyLabel = "No actions",
69
+ menuWidth,
70
+ loadingLabel = "Working...",
71
+ persistIconSpace = true,
51
72
  }: ActionMenuProps) {
52
73
  const visibleActions = actions.filter((action) => !action.hidden)
53
74
  const [loadingKey, setLoadingKey] = React.useState<string | null>(null)
75
+ const [open, setOpen] = React.useState(false)
76
+ const lastInvokedActionKeyRef = React.useRef<string | null>(null)
54
77
 
55
78
  const handleSelect = async (action: ActionMenuItem) => {
56
- if (action.disabled || action.loading || loadingKey) return
57
-
58
- try {
59
- setLoadingKey(action.key)
60
- await action.onSelect?.()
61
- } finally {
62
- setLoadingKey(null)
63
- }
64
- }
65
-
66
- return (
67
- <DropdownMenu>
79
+ if (action.disabled || action.loading || loadingKey) return
80
+
81
+ try {
82
+ setLoadingKey(action.key)
83
+ await action.onSelect?.()
84
+ if (closeOnSelect && !action.keepOpen) setOpen(false)
85
+ } finally {
86
+ setLoadingKey(null)
87
+ }
88
+ }
89
+
90
+ const triggerAction = (action: ActionMenuItem) => {
91
+ if (lastInvokedActionKeyRef.current === action.key) return
92
+ lastInvokedActionKeyRef.current = action.key
93
+ queueMicrotask(() => {
94
+ if (lastInvokedActionKeyRef.current === action.key) {
95
+ lastInvokedActionKeyRef.current = null
96
+ }
97
+ })
98
+ void handleSelect(action)
99
+ }
100
+
101
+ return (
102
+ <DropdownMenu open={open} onOpenChange={setOpen}>
68
103
  <DropdownMenuTrigger
69
104
  render={
70
105
  trigger ?? (
71
106
  <Button
72
107
  type="button"
73
- variant="ghost"
74
- size="icon-sm"
108
+ variant={triggerVariant}
109
+ size={triggerSize}
75
110
  disabled={disabled}
76
111
  className={cn(
77
- "rounded-full border border-transparent text-muted-foreground hover:border-border/70 hover:bg-muted/50 hover:text-foreground",
112
+ "rounded-full border border-transparent text-muted-foreground shadow-none transition-[background-color,border-color,color,box-shadow] hover:border-border/70 hover:bg-accent hover:text-foreground focus-visible:border-[color:var(--aui-focus-ring,var(--ring))] focus-visible:shadow-[0_0_0_3px_var(--aui-focus-ring-soft,transparent)]",
78
113
  triggerClassName
79
114
  )}
80
- onClick={stopInteractivePropagation}
81
115
  onMouseDown={stopInteractivePropagation}
82
116
  onDoubleClick={stopInteractivePropagation}
83
117
  />
84
118
  )
85
119
  }
86
120
  >
87
- {!trigger && <MoreHorizontalIcon />}
88
- <span className="sr-only">Open actions</span>
89
- </DropdownMenuTrigger>
90
- <DropdownMenuContent
91
- align={align}
92
- side={side}
93
- sideOffset={sideOffset}
94
- className={cn("min-w-40", contentClassName)}
95
- >
121
+ {!trigger && <MoreHorizontalIcon />}
122
+ {!trigger && showChevron && <span className="text-[10px] font-medium uppercase tracking-[0.18em]">Menu</span>}
123
+ <span className="sr-only">Open actions</span>
124
+ </DropdownMenuTrigger>
125
+ <DropdownMenuContent
126
+ align={align}
127
+ side={side}
128
+ sideOffset={sideOffset}
129
+ className={cn("min-w-48 rounded-[var(--aui-card-radius,var(--radius-lg))]", contentClassName)}
130
+ style={menuWidth ? { width: typeof menuWidth === "number" ? `${menuWidth}px` : menuWidth } : undefined}
131
+ >
96
132
  {label && <DropdownMenuLabel>{label}</DropdownMenuLabel>}
97
133
  {label && visibleActions.length > 0 && <DropdownMenuSeparator />}
98
134
 
@@ -100,30 +136,60 @@ function ActionMenu({
100
136
  <DropdownMenuItem disabled>{emptyLabel}</DropdownMenuItem>
101
137
  )}
102
138
 
103
- {visibleActions.map((action) => {
104
- const isLoading = action.loading || loadingKey === action.key
105
-
106
- return (
107
- <DropdownMenuItem
108
- key={action.key}
109
- disabled={action.disabled || isLoading}
110
- variant={action.destructive ? "destructive" : "default"}
111
- onClick={(event) => {
112
- stopInteractivePropagation(event)
113
- void handleSelect(action)
114
- }}
115
- onMouseDown={stopInteractivePropagation}
116
- onDoubleClick={stopInteractivePropagation}
117
- >
118
- {isLoading ? <Loader2Icon className="animate-spin" /> : action.icon}
119
- <span className="min-w-0 flex-1 truncate">{action.label}</span>
120
- {action.shortcut && (
121
- <span className="ml-auto text-[11px] tracking-[0.14em] text-muted-foreground">{action.shortcut}</span>
122
- )}
123
- </DropdownMenuItem>
139
+ {visibleActions.map((action, index) => {
140
+ const isLoading = action.loading || loadingKey === action.key
141
+ const previousSection = index > 0 ? visibleActions[index - 1]?.section : undefined
142
+ const shouldRenderSection = Boolean(action.section && action.section !== previousSection)
143
+
144
+ return (
145
+ <React.Fragment key={action.key}>
146
+ {shouldRenderSection ? (
147
+ <>
148
+ {index > 0 ? <DropdownMenuSeparator /> : null}
149
+ <DropdownMenuLabel>{action.section}</DropdownMenuLabel>
150
+ </>
151
+ ) : null}
152
+ <DropdownMenuItem
153
+ disabled={action.disabled || isLoading}
154
+ variant={action.destructive ? "destructive" : "default"}
155
+ closeOnSelect={closeOnSelect && !action.keepOpen}
156
+ className={cn(
157
+ "min-h-11 items-start gap-3 rounded-[calc(var(--radius-md)+1px)] border border-transparent py-2.5 transition-[background-color,color,border-color,box-shadow] data-[highlighted]:shadow-[inset_0_0_0_1px_color-mix(in_oklch,var(--primary),transparent_76%)] data-[disabled]:opacity-45",
158
+ itemClassName
159
+ )}
160
+ onSelect={(event) => {
161
+ if (action.keepOpen || !closeOnSelect) {
162
+ event.preventDefault()
163
+ }
164
+ stopInteractivePropagation(event)
165
+ triggerAction(action)
166
+ }}
167
+ onClick={(event) => {
168
+ stopInteractivePropagation(event)
169
+ triggerAction(action)
170
+ }}
171
+ onMouseDown={stopInteractivePropagation}
172
+ onDoubleClick={stopInteractivePropagation}
173
+ >
174
+ <span className={cn("mt-0.5 flex size-5 shrink-0 items-center justify-center text-muted-foreground", !persistIconSpace && !isLoading && !action.icon && "hidden")}>
175
+ {isLoading ? <Loader2Icon className="size-4 animate-spin" /> : action.icon}
176
+ </span>
177
+ <span className="min-w-0 flex-1">
178
+ <span className="block truncate">{action.label}</span>
179
+ {action.description ? (
180
+ <DropdownMenuItemDescription className="mt-0.5 truncate">
181
+ {isLoading ? loadingLabel : action.description}
182
+ </DropdownMenuItemDescription>
183
+ ) : null}
184
+ </span>
185
+ {action.shortcut && (
186
+ <DropdownMenuShortcut>{action.shortcut}</DropdownMenuShortcut>
187
+ )}
188
+ </DropdownMenuItem>
189
+ </React.Fragment>
124
190
  )
125
- })}
126
- </DropdownMenuContent>
191
+ })}
192
+ </DropdownMenuContent>
127
193
  </DropdownMenu>
128
194
  )
129
195
  }
@@ -6,40 +6,148 @@ import { cn } from "@/lib/utils"
6
6
  type ButtonProps = React.ComponentProps<typeof Button>
7
7
 
8
8
  export type ButtonGroupItem = Omit<ButtonProps, "children"> & {
9
- key: string
10
- label: React.ReactNode
11
- }
12
-
13
- export type ButtonGroupProps = React.ComponentProps<"div"> & {
14
- items?: ButtonGroupItem[]
15
- attached?: boolean
16
- size?: ButtonProps["size"]
17
- variant?: ButtonProps["variant"]
18
- }
9
+ key: string
10
+ label: React.ReactNode
11
+ description?: React.ReactNode
12
+ }
19
13
 
20
- function ButtonGroup({ items, attached = true, size = "sm", variant = "outline", className, children, ...props }: ButtonGroupProps) {
21
- return (
22
- <div
23
- data-slot="button-group"
24
- role="group"
25
- className={cn("inline-flex items-center", !attached && "gap-2", className)}
26
- {...props}
27
- >
28
- {items?.map(({ key, label, className: itemClassName, size: itemSize, variant: itemVariant, ...item }) => (
29
- <Button
30
- key={key}
31
- size={itemSize ?? size}
32
- variant={itemVariant ?? variant}
33
- className={cn(
34
- attached && "rounded-none first:rounded-l-md last:rounded-r-md -ml-px first:ml-0",
35
- itemClassName
36
- )}
37
- {...item}
38
- >
39
- {label}
40
- </Button>
41
- ))}
42
- {children}
14
+ export type ButtonGroupProps = React.ComponentProps<"div"> & {
15
+ items?: ButtonGroupItem[]
16
+ attached?: boolean
17
+ size?: ButtonProps["size"]
18
+ variant?: ButtonProps["variant"]
19
+ activeVariant?: ButtonProps["variant"]
20
+ orientation?: "horizontal" | "vertical"
21
+ fullWidth?: boolean
22
+ allowDeselect?: boolean
23
+ value?: string
24
+ defaultValue?: string
25
+ onValueChange?: (value: string) => void
26
+ }
27
+
28
+ function ButtonGroup({
29
+ items,
30
+ attached = true,
31
+ size = "sm",
32
+ variant = "outline",
33
+ activeVariant = "default",
34
+ orientation = "horizontal",
35
+ fullWidth = false,
36
+ allowDeselect = false,
37
+ value,
38
+ defaultValue,
39
+ onValueChange,
40
+ className,
41
+ children,
42
+ ...props
43
+ }: ButtonGroupProps) {
44
+ const isVertical = orientation === "vertical"
45
+ const isControlled = value !== undefined
46
+ const [internalValue, setInternalValue] = React.useState(defaultValue)
47
+ const currentValue = isControlled ? value : internalValue
48
+ const groupId = React.useId()
49
+ const itemRefs = React.useRef<Array<HTMLButtonElement | null>>([])
50
+
51
+ const updateValue = (nextValue: string) => {
52
+ const resolvedValue = allowDeselect && currentValue === nextValue ? "" : nextValue
53
+ if (!isControlled) setInternalValue(resolvedValue)
54
+ onValueChange?.(resolvedValue)
55
+ }
56
+
57
+ return (
58
+ <div
59
+ data-slot="button-group"
60
+ role="group"
61
+ data-orientation={orientation}
62
+ aria-orientation={orientation}
63
+ className={cn(
64
+ "inline-flex",
65
+ isVertical ? "flex-col" : "items-center",
66
+ fullWidth && "w-full",
67
+ attached
68
+ ? "overflow-hidden rounded-[var(--aui-control-radius,var(--radius-md))] border border-[color:var(--aui-control-border,var(--border))] bg-[color:var(--aui-control-surface,var(--background))] shadow-[var(--aui-control-shadow,none)]"
69
+ : "gap-2",
70
+ className
71
+ )}
72
+ {...props}
73
+ >
74
+ {items?.map(({ key, label, description, className: itemClassName, size: itemSize, variant: itemVariant, onClick, "aria-label": itemAriaLabel, ...item }, index) => {
75
+ const selected = currentValue === key
76
+ const descriptionId = description ? `${groupId}-${key}-description` : undefined
77
+ const resolvedAriaLabel = itemAriaLabel ?? (description && typeof label === "string" ? label : undefined)
78
+
79
+ return (
80
+ <Button
81
+ key={key}
82
+ ref={(node) => {
83
+ itemRefs.current[index] = node
84
+ }}
85
+ size={itemSize ?? size}
86
+ variant={itemVariant ?? (selected ? activeVariant : variant)}
87
+ aria-label={resolvedAriaLabel}
88
+ aria-pressed={selected || undefined}
89
+ aria-describedby={descriptionId}
90
+ tabIndex={selected || (!currentValue && index === 0) ? 0 : -1}
91
+ data-selected={selected || undefined}
92
+ className={cn(
93
+ attached &&
94
+ cn(
95
+ "relative rounded-none border-0 shadow-none first:ml-0 data-[selected=true]:shadow-none",
96
+ fullWidth && "flex-1",
97
+ isVertical
98
+ ? "w-full border-t border-[color:var(--aui-control-border,var(--border))] first:border-t-0"
99
+ : "border-l border-[color:var(--aui-control-border,var(--border))] first:border-l-0"
100
+ ),
101
+ description && "h-auto min-h-9 py-2",
102
+ itemClassName
103
+ )}
104
+ onClick={(event) => {
105
+ updateValue(key)
106
+ onClick?.(event)
107
+ }}
108
+ onKeyDown={(event) => {
109
+ const itemCount = items?.length ?? 0
110
+ if (!itemCount) return
111
+
112
+ const moveFocus = (nextIndex: number) => {
113
+ const boundedIndex = (nextIndex + itemCount) % itemCount
114
+ itemRefs.current[boundedIndex]?.focus()
115
+ }
116
+
117
+ if (event.key === "ArrowRight" && !isVertical) {
118
+ event.preventDefault()
119
+ moveFocus(index + 1)
120
+ } else if (event.key === "ArrowLeft" && !isVertical) {
121
+ event.preventDefault()
122
+ moveFocus(index - 1)
123
+ } else if (event.key === "ArrowDown" && isVertical) {
124
+ event.preventDefault()
125
+ moveFocus(index + 1)
126
+ } else if (event.key === "ArrowUp" && isVertical) {
127
+ event.preventDefault()
128
+ moveFocus(index - 1)
129
+ } else if (event.key === "Home") {
130
+ event.preventDefault()
131
+ moveFocus(0)
132
+ } else if (event.key === "End") {
133
+ event.preventDefault()
134
+ moveFocus(itemCount - 1)
135
+ }
136
+ }}
137
+ {...item}
138
+ >
139
+ {description ? (
140
+ <span className="flex min-w-0 flex-col items-start text-left">
141
+ <span>{label}</span>
142
+ <span aria-hidden="true" className="truncate text-[11px] font-medium opacity-80">{description}</span>
143
+ <span id={descriptionId} className="sr-only">{description}</span>
144
+ </span>
145
+ ) : (
146
+ label
147
+ )}
148
+ </Button>
149
+ )})}
150
+ {children}
43
151
  </div>
44
152
  )
45
153
  }
@@ -4,15 +4,16 @@ import { CheckIcon, CopyIcon } from "lucide-react"
4
4
  import { Button } from "@/components/ui/button"
5
5
  import { stopInteractivePropagation } from "@/lib/utils"
6
6
 
7
- export type CopyButtonProps = Omit<React.ComponentProps<typeof Button>, "onClick"> & {
8
- value: string
9
- copiedLabel?: React.ReactNode
10
- copyLabel?: React.ReactNode
11
- copiedTimeout?: number
12
- onCopied?: (value: string) => void
13
- onCopyError?: (error: unknown) => void
14
- showIcon?: boolean
15
- }
7
+ export type CopyButtonProps = Omit<React.ComponentProps<typeof Button>, "onClick"> & {
8
+ value: string
9
+ copiedLabel?: React.ReactNode
10
+ copyLabel?: React.ReactNode
11
+ copiedTimeout?: number
12
+ onCopied?: (value: string) => void
13
+ onCopyError?: (error: unknown) => void
14
+ showIcon?: boolean
15
+ copiedVariant?: React.ComponentProps<typeof Button>["variant"]
16
+ }
16
17
 
17
18
  async function copyToClipboard(value: string) {
18
19
  if (typeof navigator !== "undefined" && navigator.clipboard?.writeText) {
@@ -43,13 +44,15 @@ function CopyButton({
43
44
  value,
44
45
  copiedLabel = "Copied",
45
46
  copyLabel = "Copy",
46
- copiedTimeout = 1600,
47
- onCopied,
48
- onCopyError,
49
- showIcon = true,
50
- disabled,
51
- children,
52
- type = "button",
47
+ copiedTimeout = 1600,
48
+ onCopied,
49
+ onCopyError,
50
+ showIcon = true,
51
+ copiedVariant,
52
+ variant,
53
+ disabled,
54
+ children,
55
+ type = "button",
53
56
  ...props
54
57
  }: CopyButtonProps) {
55
58
  const [copied, setCopied] = React.useState(false)
@@ -84,10 +87,12 @@ function CopyButton({
84
87
  data-slot="copy-button"
85
88
  data-copied={copied || undefined}
86
89
  type={type}
90
+ variant={copied ? (copiedVariant ?? "secondary") : variant}
87
91
  disabled={disabled || !value}
88
92
  onClick={handleButtonClick}
89
93
  onMouseDown={stopInteractivePropagation}
90
94
  onDoubleClick={stopInteractivePropagation}
95
+ aria-live="polite"
91
96
  {...props}
92
97
  >
93
98
  {showIcon && (copied ? <CheckIcon data-icon="inline-start" /> : <CopyIcon data-icon="inline-start" />)}