@nadicodeai/ui 12.1.102 → 12.1.104

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 (562) hide show
  1. package/dist/components/accordion.d.ts +38 -12
  2. package/dist/components/accordion.d.ts.map +1 -1
  3. package/dist/components/accordion.js +36 -15
  4. package/dist/components/account-menu.js +2 -2
  5. package/dist/components/action-menu.d.ts +20 -19
  6. package/dist/components/action-menu.d.ts.map +1 -1
  7. package/dist/components/action-menu.js +22 -15
  8. package/dist/components/action-status.d.ts +14 -10
  9. package/dist/components/action-status.d.ts.map +1 -1
  10. package/dist/components/action-status.js +14 -10
  11. package/dist/components/activity-calendar.d.ts +3 -1
  12. package/dist/components/activity-calendar.d.ts.map +1 -1
  13. package/dist/components/activity-calendar.js +16 -2
  14. package/dist/components/activity-feed.d.ts +2 -2
  15. package/dist/components/activity-feed.d.ts.map +1 -1
  16. package/dist/components/activity-feed.js +14 -5
  17. package/dist/components/agent-card.d.ts +11 -5
  18. package/dist/components/agent-card.d.ts.map +1 -1
  19. package/dist/components/agent-card.js +13 -7
  20. package/dist/components/agent-list-row.js +1 -1
  21. package/dist/components/agent-orb-appearance.d.ts +7 -1
  22. package/dist/components/agent-orb-appearance.d.ts.map +1 -1
  23. package/dist/components/agent-orb-appearance.js +26 -0
  24. package/dist/components/agent-profile.d.ts +8 -7
  25. package/dist/components/agent-profile.d.ts.map +1 -1
  26. package/dist/components/agent-profile.js +6 -6
  27. package/dist/components/alert-dialog.d.ts +25 -16
  28. package/dist/components/alert-dialog.d.ts.map +1 -1
  29. package/dist/components/alert-dialog.js +30 -18
  30. package/dist/components/alert.d.ts +1 -1
  31. package/dist/components/avatar.d.ts +83 -17
  32. package/dist/components/avatar.d.ts.map +1 -1
  33. package/dist/components/avatar.js +89 -23
  34. package/dist/components/badge.d.ts +59 -8
  35. package/dist/components/badge.d.ts.map +1 -1
  36. package/dist/components/badge.js +57 -14
  37. package/dist/components/breadcrumb.d.ts +18 -7
  38. package/dist/components/breadcrumb.d.ts.map +1 -1
  39. package/dist/components/breadcrumb.js +37 -13
  40. package/dist/components/button-group.d.ts +12 -15
  41. package/dist/components/button-group.d.ts.map +1 -1
  42. package/dist/components/button-group.js +13 -17
  43. package/dist/components/button.d.ts +126 -23
  44. package/dist/components/button.d.ts.map +1 -1
  45. package/dist/components/button.js +164 -39
  46. package/dist/components/calendar.d.ts +26 -15
  47. package/dist/components/calendar.d.ts.map +1 -1
  48. package/dist/components/calendar.js +60 -46
  49. package/dist/components/card-row.d.ts +13 -5
  50. package/dist/components/card-row.d.ts.map +1 -1
  51. package/dist/components/card-row.js +24 -10
  52. package/dist/components/card.d.ts +6 -12
  53. package/dist/components/card.d.ts.map +1 -1
  54. package/dist/components/card.js +11 -16
  55. package/dist/components/carousel.d.ts +3 -3
  56. package/dist/components/carousel.d.ts.map +1 -1
  57. package/dist/components/carousel.js +7 -7
  58. package/dist/components/catalog-drawer.d.ts +7 -7
  59. package/dist/components/catalog-drawer.d.ts.map +1 -1
  60. package/dist/components/catalog-drawer.js +6 -6
  61. package/dist/components/chart-area-stacked.d.ts +1 -1
  62. package/dist/components/chart-area-stacked.d.ts.map +1 -1
  63. package/dist/components/chart-area-stacked.js +4 -4
  64. package/dist/components/chart-axis.d.ts +14 -1
  65. package/dist/components/chart-axis.d.ts.map +1 -1
  66. package/dist/components/chart-axis.js +11 -1
  67. package/dist/components/chart-bar-horizontal.d.ts +2 -2
  68. package/dist/components/chart-bar-horizontal.d.ts.map +1 -1
  69. package/dist/components/chart-bar-horizontal.js +14 -5
  70. package/dist/components/chart-bar-multiple.d.ts +1 -1
  71. package/dist/components/chart-bar-multiple.d.ts.map +1 -1
  72. package/dist/components/chart-bar-multiple.js +3 -3
  73. package/dist/components/chart-bar-stacked.d.ts +1 -1
  74. package/dist/components/chart-bar-stacked.d.ts.map +1 -1
  75. package/dist/components/chart-bar-stacked.js +3 -3
  76. package/dist/components/chart-card.d.ts +17 -6
  77. package/dist/components/chart-card.d.ts.map +1 -1
  78. package/dist/components/chart-card.js +11 -4
  79. package/dist/components/chart-date-range-control.d.ts +18 -9
  80. package/dist/components/chart-date-range-control.d.ts.map +1 -1
  81. package/dist/components/chart-date-range-control.js +43 -47
  82. package/dist/components/chart-sparkline.d.ts +4 -3
  83. package/dist/components/chart-sparkline.d.ts.map +1 -1
  84. package/dist/components/chart-sparkline.js +6 -5
  85. package/dist/components/check-counts.d.ts +44 -0
  86. package/dist/components/check-counts.d.ts.map +1 -0
  87. package/dist/components/check-counts.js +51 -0
  88. package/dist/components/checkbox.d.ts +39 -11
  89. package/dist/components/checkbox.d.ts.map +1 -1
  90. package/dist/components/checkbox.js +38 -11
  91. package/dist/components/choicebox.d.ts +96 -0
  92. package/dist/components/choicebox.d.ts.map +1 -0
  93. package/dist/components/choicebox.js +113 -0
  94. package/dist/components/clearable-input.d.ts +57 -0
  95. package/dist/components/clearable-input.d.ts.map +1 -0
  96. package/dist/components/clearable-input.js +58 -0
  97. package/dist/components/code-block.d.ts +77 -17
  98. package/dist/components/code-block.d.ts.map +1 -1
  99. package/dist/components/code-block.js +85 -15
  100. package/dist/components/collapsible.d.ts +27 -10
  101. package/dist/components/collapsible.d.ts.map +1 -1
  102. package/dist/components/collapsible.js +24 -9
  103. package/dist/components/collection-filters.d.ts +3 -1
  104. package/dist/components/collection-filters.d.ts.map +1 -1
  105. package/dist/components/collection-filters.js +7 -9
  106. package/dist/components/collection-page.d.ts +31 -10
  107. package/dist/components/collection-page.d.ts.map +1 -1
  108. package/dist/components/collection-page.js +14 -13
  109. package/dist/components/collection-search.d.ts +32 -10
  110. package/dist/components/collection-search.d.ts.map +1 -1
  111. package/dist/components/collection-search.js +24 -13
  112. package/dist/components/collection-sort.d.ts.map +1 -1
  113. package/dist/components/collection-sort.js +2 -2
  114. package/dist/components/collection-toolbar.d.ts +5 -2
  115. package/dist/components/collection-toolbar.d.ts.map +1 -1
  116. package/dist/components/collection-toolbar.js +7 -4
  117. package/dist/components/combobox.d.ts +97 -22
  118. package/dist/components/combobox.d.ts.map +1 -1
  119. package/dist/components/combobox.js +80 -28
  120. package/dist/components/command.d.ts +34 -21
  121. package/dist/components/command.d.ts.map +1 -1
  122. package/dist/components/command.js +33 -25
  123. package/dist/components/confirm-dialog.d.ts +23 -6
  124. package/dist/components/confirm-dialog.d.ts.map +1 -1
  125. package/dist/components/confirm-dialog.js +32 -13
  126. package/dist/components/context-menu.d.ts +14 -10
  127. package/dist/components/context-menu.d.ts.map +1 -1
  128. package/dist/components/context-menu.js +17 -12
  129. package/dist/components/copy-button.d.ts +5 -2
  130. package/dist/components/copy-button.d.ts.map +1 -1
  131. package/dist/components/copy-button.js +16 -8
  132. package/dist/components/data-table.d.ts +120 -54
  133. package/dist/components/data-table.d.ts.map +1 -1
  134. package/dist/components/data-table.js +163 -92
  135. package/dist/components/desktop-shell.d.ts +4 -2
  136. package/dist/components/desktop-shell.d.ts.map +1 -1
  137. package/dist/components/desktop-shell.js +3 -3
  138. package/dist/components/dialog.d.ts +63 -24
  139. package/dist/components/dialog.d.ts.map +1 -1
  140. package/dist/components/dialog.js +52 -31
  141. package/dist/components/disclosure-row.d.ts +1 -2
  142. package/dist/components/disclosure-row.d.ts.map +1 -1
  143. package/dist/components/disclosure-row.js +1 -2
  144. package/dist/components/disclosure.d.ts +1 -1
  145. package/dist/components/disclosure.js +1 -1
  146. package/dist/components/drawer.d.ts +33 -12
  147. package/dist/components/drawer.d.ts.map +1 -1
  148. package/dist/components/drawer.js +47 -35
  149. package/dist/components/dropdown-menu.d.ts +59 -14
  150. package/dist/components/dropdown-menu.d.ts.map +1 -1
  151. package/dist/components/dropdown-menu.js +58 -26
  152. package/dist/components/empty-state.d.ts +35 -12
  153. package/dist/components/empty-state.d.ts.map +1 -1
  154. package/dist/components/empty-state.js +35 -17
  155. package/dist/components/entry-scene.d.ts +4 -4
  156. package/dist/components/entry-scene.d.ts.map +1 -1
  157. package/dist/components/entry-scene.js +2 -2
  158. package/dist/components/field.d.ts +44 -14
  159. package/dist/components/field.d.ts.map +1 -1
  160. package/dist/components/field.js +49 -20
  161. package/dist/components/file-diff.d.ts.map +1 -1
  162. package/dist/components/file-diff.js +3 -4
  163. package/dist/components/form-dialog.d.ts +7 -7
  164. package/dist/components/form-dialog.d.ts.map +1 -1
  165. package/dist/components/form-dialog.js +13 -11
  166. package/dist/components/form-drawer.d.ts +10 -7
  167. package/dist/components/form-drawer.d.ts.map +1 -1
  168. package/dist/components/form-drawer.js +11 -10
  169. package/dist/components/gauge.d.ts +64 -0
  170. package/dist/components/gauge.d.ts.map +1 -0
  171. package/dist/components/gauge.js +73 -0
  172. package/dist/components/hover-card.d.ts +72 -14
  173. package/dist/components/hover-card.d.ts.map +1 -1
  174. package/dist/components/hover-card.js +51 -17
  175. package/dist/components/identity-mark.d.ts +8 -1
  176. package/dist/components/identity-mark.d.ts.map +1 -1
  177. package/dist/components/identity-mark.js +31 -5
  178. package/dist/components/input-group.d.ts +44 -21
  179. package/dist/components/input-group.d.ts.map +1 -1
  180. package/dist/components/input-group.js +74 -27
  181. package/dist/components/input.d.ts +64 -12
  182. package/dist/components/input.d.ts.map +1 -1
  183. package/dist/components/input.js +51 -15
  184. package/dist/components/item.d.ts +37 -15
  185. package/dist/components/item.d.ts.map +1 -1
  186. package/dist/components/item.js +41 -22
  187. package/dist/components/kbd.d.ts +49 -13
  188. package/dist/components/kbd.d.ts.map +1 -1
  189. package/dist/components/kbd.js +115 -16
  190. package/dist/components/kpi-card.d.ts +12 -4
  191. package/dist/components/kpi-card.d.ts.map +1 -1
  192. package/dist/components/kpi-card.js +13 -4
  193. package/dist/components/label.d.ts +17 -10
  194. package/dist/components/label.d.ts.map +1 -1
  195. package/dist/components/label.js +18 -11
  196. package/dist/components/library-shelf.d.ts +6 -6
  197. package/dist/components/library-shelf.d.ts.map +1 -1
  198. package/dist/components/library-shelf.js +5 -5
  199. package/dist/components/load-more-button.d.ts +35 -0
  200. package/dist/components/load-more-button.d.ts.map +1 -0
  201. package/dist/components/load-more-button.js +26 -0
  202. package/dist/components/message-notice.d.ts +8 -13
  203. package/dist/components/message-notice.d.ts.map +1 -1
  204. package/dist/components/message-notice.js +25 -22
  205. package/dist/components/middle-truncate.d.ts +33 -0
  206. package/dist/components/middle-truncate.d.ts.map +1 -0
  207. package/dist/components/middle-truncate.js +72 -0
  208. package/dist/components/multi-select.d.ts +94 -0
  209. package/dist/components/multi-select.d.ts.map +1 -0
  210. package/dist/components/multi-select.js +132 -0
  211. package/dist/components/native-select.d.ts +37 -13
  212. package/dist/components/native-select.d.ts.map +1 -1
  213. package/dist/components/native-select.js +27 -11
  214. package/dist/components/notice-banner.d.ts +17 -10
  215. package/dist/components/notice-banner.d.ts.map +1 -1
  216. package/dist/components/notice-banner.js +12 -11
  217. package/dist/components/numbered-steps.d.ts +10 -4
  218. package/dist/components/numbered-steps.d.ts.map +1 -1
  219. package/dist/components/numbered-steps.js +9 -7
  220. package/dist/components/object-page.d.ts +40 -14
  221. package/dist/components/object-page.d.ts.map +1 -1
  222. package/dist/components/object-page.js +12 -10
  223. package/dist/components/object-workspace.d.ts +29 -10
  224. package/dist/components/object-workspace.d.ts.map +1 -1
  225. package/dist/components/object-workspace.js +18 -8
  226. package/dist/components/overview-page.d.ts +2 -2
  227. package/dist/components/overview-page.d.ts.map +1 -1
  228. package/dist/components/overview-page.js +8 -7
  229. package/dist/components/page-actions.d.ts +28 -8
  230. package/dist/components/page-actions.d.ts.map +1 -1
  231. package/dist/components/page-actions.js +22 -25
  232. package/dist/components/page-header.d.ts +11 -4
  233. package/dist/components/page-header.d.ts.map +1 -1
  234. package/dist/components/page-header.js +10 -5
  235. package/dist/components/pending-label.d.ts +6 -5
  236. package/dist/components/pending-label.d.ts.map +1 -1
  237. package/dist/components/pending-label.js +14 -6
  238. package/dist/components/picture-label.d.ts +2 -2
  239. package/dist/components/picture-label.d.ts.map +1 -1
  240. package/dist/components/picture-label.js +3 -3
  241. package/dist/components/portal-sidebar-frame.d.ts +9 -21
  242. package/dist/components/portal-sidebar-frame.d.ts.map +1 -1
  243. package/dist/components/portal-sidebar-frame.js +13 -27
  244. package/dist/components/progress-checklist.d.ts +46 -0
  245. package/dist/components/progress-checklist.d.ts.map +1 -0
  246. package/dist/components/progress-checklist.js +46 -0
  247. package/dist/components/progress.d.ts +48 -8
  248. package/dist/components/progress.d.ts.map +1 -1
  249. package/dist/components/progress.js +92 -16
  250. package/dist/components/prose.d.ts +19 -0
  251. package/dist/components/prose.d.ts.map +1 -0
  252. package/dist/components/prose.js +29 -0
  253. package/dist/components/radio-group.d.ts +51 -12
  254. package/dist/components/radio-group.d.ts.map +1 -1
  255. package/dist/components/radio-group.js +42 -12
  256. package/dist/components/reading-column.js +1 -1
  257. package/dist/components/record-identity.d.ts +6 -5
  258. package/dist/components/record-identity.d.ts.map +1 -1
  259. package/dist/components/record-identity.js +12 -3
  260. package/dist/components/record-list.d.ts +117 -27
  261. package/dist/components/record-list.d.ts.map +1 -1
  262. package/dist/components/record-list.js +185 -55
  263. package/dist/components/record-time.d.ts +20 -7
  264. package/dist/components/record-time.d.ts.map +1 -1
  265. package/dist/components/record-time.js +38 -19
  266. package/dist/components/resizable.d.ts +7 -5
  267. package/dist/components/resizable.d.ts.map +1 -1
  268. package/dist/components/resizable.js +6 -6
  269. package/dist/components/scope-switcher.d.ts +2 -0
  270. package/dist/components/scope-switcher.d.ts.map +1 -1
  271. package/dist/components/scope-switcher.js +2 -2
  272. package/dist/components/scroll-area.d.ts +47 -11
  273. package/dist/components/scroll-area.d.ts.map +1 -1
  274. package/dist/components/scroll-area.js +72 -14
  275. package/dist/components/segmented-control.d.ts +82 -0
  276. package/dist/components/segmented-control.d.ts.map +1 -0
  277. package/dist/components/segmented-control.js +90 -0
  278. package/dist/components/select.d.ts +55 -15
  279. package/dist/components/select.d.ts.map +1 -1
  280. package/dist/components/select.js +62 -19
  281. package/dist/components/separator.d.ts +12 -5
  282. package/dist/components/separator.d.ts.map +1 -1
  283. package/dist/components/separator.js +11 -6
  284. package/dist/components/settings-facts.d.ts +34 -14
  285. package/dist/components/settings-facts.d.ts.map +1 -1
  286. package/dist/components/settings-facts.js +21 -12
  287. package/dist/components/settings-page.d.ts +4 -4
  288. package/dist/components/settings-page.js +5 -5
  289. package/dist/components/settings-section.d.ts +160 -34
  290. package/dist/components/settings-section.d.ts.map +1 -1
  291. package/dist/components/settings-section.js +92 -39
  292. package/dist/components/sheet.d.ts +47 -16
  293. package/dist/components/sheet.d.ts.map +1 -1
  294. package/dist/components/sheet.js +40 -19
  295. package/dist/components/sidebar-sections.d.ts +16 -12
  296. package/dist/components/sidebar-sections.d.ts.map +1 -1
  297. package/dist/components/sidebar-sections.js +30 -15
  298. package/dist/components/sidebar.d.ts +117 -21
  299. package/dist/components/sidebar.d.ts.map +1 -1
  300. package/dist/components/sidebar.js +180 -55
  301. package/dist/components/skeleton.d.ts +54 -8
  302. package/dist/components/skeleton.d.ts.map +1 -1
  303. package/dist/components/skeleton.js +44 -9
  304. package/dist/components/slider.d.ts +53 -11
  305. package/dist/components/slider.d.ts.map +1 -1
  306. package/dist/components/slider.js +71 -17
  307. package/dist/components/snippet.d.ts +57 -0
  308. package/dist/components/snippet.d.ts.map +1 -0
  309. package/dist/components/snippet.js +60 -0
  310. package/dist/components/sonner.d.ts +13 -14
  311. package/dist/components/sonner.d.ts.map +1 -1
  312. package/dist/components/sonner.js +25 -22
  313. package/dist/components/status-badge.d.ts +37 -11
  314. package/dist/components/status-badge.d.ts.map +1 -1
  315. package/dist/components/status-badge.js +63 -15
  316. package/dist/components/status-dot.d.ts +42 -11
  317. package/dist/components/status-dot.d.ts.map +1 -1
  318. package/dist/components/status-dot.js +40 -11
  319. package/dist/components/switch.d.ts +43 -12
  320. package/dist/components/switch.d.ts.map +1 -1
  321. package/dist/components/switch.js +42 -12
  322. package/dist/components/table-card.d.ts +21 -12
  323. package/dist/components/table-card.d.ts.map +1 -1
  324. package/dist/components/table-card.js +17 -9
  325. package/dist/components/table-layouts.d.ts +40 -8
  326. package/dist/components/table-layouts.d.ts.map +1 -1
  327. package/dist/components/table-layouts.js +52 -8
  328. package/dist/components/table-value.d.ts +4 -3
  329. package/dist/components/table-value.d.ts.map +1 -1
  330. package/dist/components/table-value.js +6 -5
  331. package/dist/components/table.d.ts +62 -25
  332. package/dist/components/table.d.ts.map +1 -1
  333. package/dist/components/table.js +62 -26
  334. package/dist/components/tabs.d.ts +86 -17
  335. package/dist/components/tabs.d.ts.map +1 -1
  336. package/dist/components/tabs.js +93 -22
  337. package/dist/components/text-link.d.ts +4 -1
  338. package/dist/components/text-link.d.ts.map +1 -1
  339. package/dist/components/text-link.js +4 -1
  340. package/dist/components/text-with-copy-button.d.ts +30 -0
  341. package/dist/components/text-with-copy-button.d.ts.map +1 -0
  342. package/dist/components/text-with-copy-button.js +32 -0
  343. package/dist/components/textarea.d.ts +40 -10
  344. package/dist/components/textarea.d.ts.map +1 -1
  345. package/dist/components/textarea.js +50 -11
  346. package/dist/components/theme-mode-switcher.d.ts +18 -1
  347. package/dist/components/theme-mode-switcher.d.ts.map +1 -1
  348. package/dist/components/theme-mode-switcher.js +20 -2
  349. package/dist/components/toggle-group.d.ts +28 -8
  350. package/dist/components/toggle-group.d.ts.map +1 -1
  351. package/dist/components/toggle-group.js +12 -6
  352. package/dist/components/toggle.d.ts +6 -3
  353. package/dist/components/toggle.d.ts.map +1 -1
  354. package/dist/components/toggle.js +10 -7
  355. package/dist/components/tooltip.d.ts +43 -12
  356. package/dist/components/tooltip.d.ts.map +1 -1
  357. package/dist/components/tooltip.js +45 -16
  358. package/dist/components/trend-badge.js +1 -1
  359. package/dist/components/update-card.js +1 -1
  360. package/dist/eslint/index.js +82 -0
  361. package/dist/eslint/rules/badge-is-static-label.js +93 -0
  362. package/dist/eslint/rules/button-icon-slot.js +102 -0
  363. package/dist/eslint/rules/button-link-for-navigation.js +146 -0
  364. package/dist/eslint/rules/button-no-aria-label-with-text.js +75 -0
  365. package/dist/eslint/rules/button-type-roles-only-in-buttons.js +83 -0
  366. package/dist/eslint/rules/choice-control-has-a-name.js +98 -0
  367. package/dist/eslint/rules/choice-group-in-fieldset.js +86 -0
  368. package/dist/eslint/rules/command-shortcut-single-owner.js +118 -0
  369. package/dist/eslint/rules/confirm-dialog-words.js +63 -0
  370. package/dist/eslint/rules/data-table-one-unsized-column.js +96 -0
  371. package/dist/eslint/rules/destructive-action-placement.js +69 -0
  372. package/dist/eslint/rules/disabled-choice-says-why.js +71 -0
  373. package/dist/eslint/rules/ellipsis-opens-a-dialog.js +110 -0
  374. package/dist/eslint/rules/input-group-owners.js +155 -0
  375. package/dist/eslint/rules/kbd-children-no-modifier-text.js +128 -0
  376. package/dist/eslint/rules/literal-text.js +41 -0
  377. package/dist/eslint/rules/middle-truncate-placement.js +69 -0
  378. package/dist/eslint/rules/no-bare-button-label.js +55 -0
  379. package/dist/eslint/rules/no-control-in-read-only-surface.js +106 -0
  380. package/dist/eslint/rules/no-hand-built-busy.js +104 -0
  381. package/dist/eslint/rules/no-hand-built-theme-picker.js +144 -0
  382. package/dist/eslint/rules/no-hand-built-tile.js +41 -0
  383. package/dist/eslint/rules/no-hand-formatted-date.js +87 -0
  384. package/dist/eslint/rules/no-hand-stacked-avatars.js +67 -0
  385. package/dist/eslint/rules/no-nested-collapse.js +60 -0
  386. package/dist/eslint/rules/no-search-in-form.js +47 -0
  387. package/dist/eslint/rules/no-shadcn-appearance-override.js +2 -16
  388. package/dist/eslint/rules/no-shell-prompt-in-snippet.js +74 -0
  389. package/dist/eslint/rules/no-stock-error-words.js +56 -0
  390. package/dist/eslint/rules/no-tooltip-around-labelled-field.js +72 -0
  391. package/dist/eslint/rules/no-weight-class-on-strong-in-type-role.js +57 -0
  392. package/dist/eslint/rules/one-submenu-level.js +43 -0
  393. package/dist/eslint/rules/one-toast-per-flow.js +91 -0
  394. package/dist/eslint/rules/option-count.js +167 -0
  395. package/dist/eslint/rules/page-command-link-not-render.js +43 -0
  396. package/dist/eslint/rules/progress-needs-name.js +57 -0
  397. package/dist/eslint/rules/settings-limit-in-footer.js +94 -0
  398. package/dist/eslint/rules/skeleton-in-region.js +80 -0
  399. package/dist/eslint/rules/sortable-heading-uses-sort.js +79 -0
  400. package/dist/eslint/rules/table-cell-inset-owner.js +107 -0
  401. package/dist/eslint/rules/tabs-selection-is-controlled.js +47 -0
  402. package/dist/eslint/rules/tooltip-only-arrow.js +38 -0
  403. package/dist/eslint/rules/tooltip-trigger-accessible-name.js +114 -0
  404. package/dist/eslint/strict-design-system.js +21 -7
  405. package/dist/index.d.ts +13 -13
  406. package/dist/index.d.ts.map +1 -1
  407. package/dist/index.js +12 -13
  408. package/dist/internal/assistant-ui/attachment.d.ts.map +1 -1
  409. package/dist/internal/assistant-ui/attachment.js +2 -2
  410. package/dist/internal/assistant-ui/reasoning.d.ts +1 -1
  411. package/dist/internal/assistant-ui/reasoning.d.ts.map +1 -1
  412. package/dist/internal/assistant-ui/tool-fallback.js +1 -1
  413. package/dist/internal/assistant-ui/tool-group.d.ts +1 -1
  414. package/dist/internal/assistant-ui/tool-group.d.ts.map +1 -1
  415. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts +2 -3
  416. package/dist/internal/assistant-ui/tooltip-icon-button.d.ts.map +1 -1
  417. package/dist/internal/assistant-ui/tooltip-icon-button.js +1 -1
  418. package/dist/internal/catalog-list.js +2 -2
  419. package/dist/internal/collection-note.d.ts +23 -0
  420. package/dist/internal/collection-note.d.ts.map +1 -0
  421. package/dist/internal/collection-note.js +17 -0
  422. package/dist/internal/collection-rail.d.ts +57 -0
  423. package/dist/internal/collection-rail.d.ts.map +1 -0
  424. package/dist/internal/collection-rail.js +33 -0
  425. package/dist/internal/company-logo.d.ts +18 -0
  426. package/dist/internal/company-logo.d.ts.map +1 -0
  427. package/dist/internal/company-logo.js +14 -0
  428. package/dist/internal/control-name.d.ts +12 -0
  429. package/dist/internal/control-name.d.ts.map +1 -0
  430. package/dist/internal/control-name.js +1 -0
  431. package/dist/internal/diff-line.d.ts +9 -0
  432. package/dist/internal/diff-line.d.ts.map +1 -0
  433. package/dist/internal/diff-line.js +8 -0
  434. package/dist/internal/empty.d.ts +8 -4
  435. package/dist/internal/empty.d.ts.map +1 -1
  436. package/dist/internal/empty.js +14 -8
  437. package/dist/internal/field-frame.d.ts +33 -0
  438. package/dist/internal/field-frame.d.ts.map +1 -0
  439. package/dist/internal/field-frame.js +20 -0
  440. package/dist/internal/final-focus.d.ts +8 -0
  441. package/dist/internal/final-focus.d.ts.map +1 -0
  442. package/dist/internal/final-focus.js +10 -0
  443. package/dist/internal/footer-strip.d.ts.map +1 -1
  444. package/dist/internal/footer-strip.js +3 -1
  445. package/dist/internal/form-submit.d.ts +9 -5
  446. package/dist/internal/form-submit.d.ts.map +1 -1
  447. package/dist/internal/form-submit.js +31 -2
  448. package/dist/internal/input-box.d.ts +26 -0
  449. package/dist/internal/input-box.d.ts.map +1 -0
  450. package/dist/internal/input-box.js +59 -0
  451. package/dist/internal/menu-surface.d.ts +10 -3
  452. package/dist/internal/menu-surface.d.ts.map +1 -1
  453. package/dist/internal/menu-surface.js +10 -3
  454. package/dist/internal/notice.d.ts +25 -0
  455. package/dist/internal/notice.d.ts.map +1 -0
  456. package/dist/internal/notice.js +33 -0
  457. package/dist/internal/overlay-stem.d.ts +5 -0
  458. package/dist/internal/overlay-stem.d.ts.map +1 -0
  459. package/dist/internal/overlay-stem.js +7 -0
  460. package/dist/internal/phone-sheet.d.ts +4 -0
  461. package/dist/internal/phone-sheet.d.ts.map +1 -0
  462. package/dist/internal/phone-sheet.js +2 -0
  463. package/dist/internal/present-content.d.ts +3 -0
  464. package/dist/internal/present-content.d.ts.map +1 -0
  465. package/dist/internal/present-content.js +1 -0
  466. package/dist/internal/record-menu-items.d.ts +4 -3
  467. package/dist/internal/record-menu-items.d.ts.map +1 -1
  468. package/dist/internal/record-menu-items.js +21 -6
  469. package/dist/internal/settings-save.d.ts +9 -2
  470. package/dist/internal/settings-save.d.ts.map +1 -1
  471. package/dist/internal/settings-save.js +19 -6
  472. package/dist/internal/table-compact-line.d.ts +38 -0
  473. package/dist/internal/table-compact-line.d.ts.map +1 -0
  474. package/dist/internal/table-compact-line.js +35 -0
  475. package/dist/internal/title-when-cut.d.ts +8 -0
  476. package/dist/internal/title-when-cut.d.ts.map +1 -0
  477. package/dist/internal/title-when-cut.js +22 -0
  478. package/dist/internal/unsaved-guard.d.ts +18 -0
  479. package/dist/internal/unsaved-guard.d.ts.map +1 -0
  480. package/dist/internal/unsaved-guard.js +31 -0
  481. package/dist/lib/merge-tokens.generated.js +2 -2
  482. package/dist/showcase/foundations.d.ts.map +1 -1
  483. package/dist/showcase/foundations.js +10 -2
  484. package/dist/showcase/specimens/actions.d.ts +2 -0
  485. package/dist/showcase/specimens/actions.d.ts.map +1 -1
  486. package/dist/showcase/specimens/actions.js +30 -5
  487. package/dist/showcase/specimens/charts.d.ts.map +1 -1
  488. package/dist/showcase/specimens/charts.js +22 -13
  489. package/dist/showcase/specimens/choices.d.ts +14 -3
  490. package/dist/showcase/specimens/choices.d.ts.map +1 -1
  491. package/dist/showcase/specimens/choices.js +93 -13
  492. package/dist/showcase/specimens/compositions.d.ts.map +1 -1
  493. package/dist/showcase/specimens/compositions.js +136 -23
  494. package/dist/showcase/specimens/data.d.ts +12 -7
  495. package/dist/showcase/specimens/data.d.ts.map +1 -1
  496. package/dist/showcase/specimens/data.js +139 -35
  497. package/dist/showcase/specimens/feedback.d.ts +2 -0
  498. package/dist/showcase/specimens/feedback.d.ts.map +1 -1
  499. package/dist/showcase/specimens/feedback.js +39 -15
  500. package/dist/showcase/specimens/index.d.ts +20 -12
  501. package/dist/showcase/specimens/index.d.ts.map +1 -1
  502. package/dist/showcase/specimens/inputs.d.ts +4 -2
  503. package/dist/showcase/specimens/inputs.d.ts.map +1 -1
  504. package/dist/showcase/specimens/inputs.js +62 -19
  505. package/dist/showcase/specimens/menus.d.ts +0 -1
  506. package/dist/showcase/specimens/menus.d.ts.map +1 -1
  507. package/dist/showcase/specimens/menus.js +47 -17
  508. package/dist/showcase/specimens/navigation.d.ts +6 -4
  509. package/dist/showcase/specimens/navigation.d.ts.map +1 -1
  510. package/dist/showcase/specimens/navigation.js +61 -32
  511. package/dist/showcase/specimens/other.d.ts +1 -3
  512. package/dist/showcase/specimens/other.d.ts.map +1 -1
  513. package/dist/showcase/specimens/other.js +17 -13
  514. package/dist/showcase/specimens/status.d.ts +4 -1
  515. package/dist/showcase/specimens/status.d.ts.map +1 -1
  516. package/dist/showcase/specimens/status.js +64 -11
  517. package/dist/showcase/usage.generated.d.ts +1 -1
  518. package/dist/showcase/usage.generated.d.ts.map +1 -1
  519. package/dist/showcase/usage.generated.js +632 -544
  520. package/dist/standalone/index.js +1 -1
  521. package/dist/styles/components.css +13 -13
  522. package/dist/styles/globals.css +25 -0
  523. package/package.json +2 -3
  524. package/dist/components/approval-row.d.ts +0 -34
  525. package/dist/components/approval-row.d.ts.map +0 -1
  526. package/dist/components/approval-row.js +0 -27
  527. package/dist/components/channel-view.d.ts +0 -112
  528. package/dist/components/channel-view.d.ts.map +0 -1
  529. package/dist/components/channel-view.js +0 -84
  530. package/dist/components/dashboard-shell.d.ts +0 -51
  531. package/dist/components/dashboard-shell.d.ts.map +0 -1
  532. package/dist/components/dashboard-shell.js +0 -89
  533. package/dist/components/direction.d.ts +0 -2
  534. package/dist/components/direction.d.ts.map +0 -1
  535. package/dist/components/direction.js +0 -1
  536. package/dist/components/expandable-block.d.ts +0 -20
  537. package/dist/components/expandable-block.d.ts.map +0 -1
  538. package/dist/components/expandable-block.js +0 -32
  539. package/dist/components/form.d.ts +0 -42
  540. package/dist/components/form.d.ts.map +0 -1
  541. package/dist/components/form.js +0 -91
  542. package/dist/components/label-system.d.ts +0 -17
  543. package/dist/components/label-system.d.ts.map +0 -1
  544. package/dist/components/label-system.js +0 -21
  545. package/dist/components/memory-item.d.ts +0 -21
  546. package/dist/components/memory-item.d.ts.map +0 -1
  547. package/dist/components/memory-item.js +0 -18
  548. package/dist/components/menubar.d.ts +0 -43
  549. package/dist/components/menubar.d.ts.map +0 -1
  550. package/dist/components/menubar.js +0 -69
  551. package/dist/components/navigation-menu.d.ts +0 -26
  552. package/dist/components/navigation-menu.d.ts.map +0 -1
  553. package/dist/components/navigation-menu.js +0 -45
  554. package/dist/components/pagination.d.ts +0 -33
  555. package/dist/components/pagination.d.ts.map +0 -1
  556. package/dist/components/pagination.js +0 -41
  557. package/dist/components/plugin-slot-boundary.d.ts +0 -42
  558. package/dist/components/plugin-slot-boundary.d.ts.map +0 -1
  559. package/dist/components/plugin-slot-boundary.js +0 -41
  560. package/dist/components/status-row.d.ts +0 -32
  561. package/dist/components/status-row.d.ts.map +0 -1
  562. package/dist/components/status-row.js +0 -35
@@ -1,15 +1,40 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { ArrowUpRight, ChevronDown, ChevronLeft, ChevronRight, Plus, X } from "lucide-react";
4
- import { Button } from "../../components/button.js";
3
+ import { ArrowUpRight, ChevronLeft, ChevronRight, Download, Plus, X } from "lucide-react";
4
+ import { Button, ButtonLink } from "../../components/button.js";
5
5
  import { ButtonGroup } from "../../components/button-group.js";
6
+ import { Card } from "../../components/card.js";
6
7
  import { CopyButton } from "../../components/copy-button.js";
7
- import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuTrigger, } from "../../components/dropdown-menu.js";
8
+ import { LoadMoreButton } from "../../components/load-more-button.js";
8
9
  import { PageActionsRow } from "../../components/page-actions.js";
9
10
  import { nothing, PAGE_MENU } from "../samples.js";
11
+ const TEXT_SIZES = ["xs", "sm", "default", "lg"];
12
+ const LOOKS = [
13
+ { look: "default", label: "New Agent" },
14
+ { look: "outline", label: "Import" },
15
+ { look: "secondary", label: "Preview" },
16
+ { look: "ghost", label: "Skip" },
17
+ { look: "destructive", label: "Delete Agent" },
18
+ { look: "link", label: "View logs" },
19
+ ];
20
+ const ICON_SIZES = [
21
+ { size: "icon-xs", label: "Add Agent, extra small" },
22
+ { size: "icon-sm", label: "Add Agent, small" },
23
+ { size: "icon", label: "Add Agent" },
24
+ { size: "icon-lg", label: "Add Agent, large" },
25
+ ];
26
+ const EVENTS = ["Rossi Ottica connected", "Invoice 0412 paid", "Agent updated"];
27
+ function Row({ children, label }) {
28
+ return (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [label ? (_jsx("span", { className: "w-24 shrink-0 text-body-sm text-muted-foreground", children: label })) : null, children] }));
29
+ }
30
+ function Hint({ children }) {
31
+ return _jsx("span", { className: "text-body-sm text-muted-foreground", children: children });
32
+ }
10
33
  export const ACTIONS = {
11
- Button: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs(Button, { children: [_jsx(Plus, { "data-icon": "inline-start", "aria-hidden": "true" }), "New Agent"] }), _jsx(Button, { variant: "outline", children: "Import" }), _jsx(Button, { variant: "secondary", children: "Preview" }), _jsx(Button, { variant: "ghost", children: "Skip" }), _jsx(Button, { variant: "destructive", children: "Delete Agent" }), _jsx(Button, { variant: "link", children: "View logs" }), _jsx(Button, { disabled: true, variant: "outline", children: "Connect" }), _jsxs(Button, { variant: "outline", children: ["Open Billing", _jsx(ArrowUpRight, { "data-icon": "inline-end", "aria-hidden": "true" })] })] })),
12
- ButtonGroup: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-4", children: [_jsxs(ButtonGroup, { "aria-label": "Status filter", children: [_jsx(Button, { variant: "outline", children: "Status: Needs attention" }), _jsx(Button, { "aria-label": "Remove filter: Status", size: "icon", variant: "outline", children: _jsx(X, { "aria-hidden": "true" }) })] }), _jsxs(ButtonGroup, { "aria-label": "Pages", children: [_jsx(Button, { "aria-label": "Previous page", disabled: true, size: "icon", variant: "outline", children: _jsx(ChevronLeft, { "aria-hidden": "true" }) }), _jsx(Button, { "aria-label": "Next page", size: "icon", variant: "outline", children: _jsx(ChevronRight, { "aria-hidden": "true" }) })] }), _jsxs(ButtonGroup, { "aria-label": "Download report", children: [_jsx(Button, { variant: "outline", children: "Download PDF" }), _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { "aria-label": "More download formats", render: _jsx(Button, { size: "icon", variant: "outline" }), children: _jsx(ChevronDown, { "aria-hidden": "true" }) }), _jsx(DropdownMenuContent, { align: "end", children: _jsxs(DropdownMenuRadioGroup, { value: "pdf", children: [_jsx(DropdownMenuRadioItem, { value: "pdf", children: "Download PDF" }), _jsx(DropdownMenuRadioItem, { value: "csv", children: "Download CSV" }), _jsx(DropdownMenuRadioItem, { value: "xlsx", children: "Download Excel" })] }) })] })] })] })),
34
+ Button: () => (_jsxs("div", { className: "flex flex-col gap-6", children: [_jsx("div", { className: "flex flex-col gap-3", children: LOOKS.map(({ look, label }) => (_jsx(Row, { label: look, children: TEXT_SIZES.map((size) => (_jsx(Button, { size: size, variant: look, children: label }, size))) }, look))) }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx(Row, { label: "prefix", children: TEXT_SIZES.map((size) => (_jsx(Button, { prefix: _jsx(Plus, { "aria-hidden": "true" }), size: size, children: "New Agent" }, size))) }), _jsx(Row, { label: "suffix", children: TEXT_SIZES.map((size) => (_jsx(Button, { size: size, suffix: _jsx(ArrowUpRight, { "aria-hidden": "true" }), variant: "outline", children: "Open Billing" }, size))) }), _jsx(Row, { label: "both", children: TEXT_SIZES.map((size) => (_jsx(Button, { prefix: _jsx(Download, { "aria-hidden": "true" }), size: size, suffix: _jsx(ArrowUpRight, { "aria-hidden": "true" }), variant: "secondary", children: "Download report" }, size))) })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsx(Row, { label: "icon only", children: ICON_SIZES.map(({ size, label }) => (_jsx(Button, { "aria-label": label, size: size, variant: "outline", children: _jsx(Plus, { "aria-hidden": "true" }) }, size))) }), _jsx(Row, { label: "circle", children: ICON_SIZES.map(({ size, label }) => (_jsx(Button, { "aria-label": label, shape: "circle", size: size, variant: "outline", children: _jsx(Plus, { "aria-hidden": "true" }) }, size))) }), _jsx(Row, { label: "rounded", children: TEXT_SIZES.map((size) => (_jsx(Button, { shape: "rounded", size: size, variant: "outline", children: "Invite member" }, size))) })] }), _jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs(Row, { label: "disabled", children: [_jsx(Button, { disabled: true, variant: "outline", children: "Connect" }), _jsx(Hint, { children: "Add a billing account first." })] }), _jsxs(Row, { label: "loading", children: [_jsx(Button, { variant: "outline", children: "Save" }), _jsx(Button, { loading: true, loadingLabel: "Saving", variant: "outline", children: "Save" }), _jsx(Button, { children: "Invite member" }), _jsx(Button, { loading: true, loadingLabel: "Inviting member", children: "Invite member" })] })] })] })),
35
+ ButtonLink: () => (_jsxs("div", { className: "flex flex-col gap-3", children: [_jsxs(Row, { label: "variants", children: [_jsx(ButtonLink, { href: "#portal", children: "Open Portal" }), _jsx(ButtonLink, { href: "#invoices", variant: "outline", children: "View invoices" }), _jsx(ButtonLink, { href: "#agents", variant: "secondary", children: "All Agents" }), _jsx(ButtonLink, { href: "#settings", variant: "ghost", children: "Settings" })] }), _jsx(Row, { label: "sizes", children: TEXT_SIZES.map((size) => (_jsx(ButtonLink, { href: "#portal", size: size, variant: "outline", children: "Open Portal" }, size))) }), _jsx(Row, { label: "external", children: _jsx(ButtonLink, { href: "https://docs.nadicode.com", rel: "noreferrer", suffix: _jsx(ArrowUpRight, { "aria-hidden": "true" }), target: "_blank", variant: "outline", children: "Read the guide" }) }), _jsx(Row, { label: "icon only", children: _jsx(ButtonLink, { "aria-label": "Open Rossi Ottica", href: "#rossi-ottica", size: "icon", variant: "outline", children: _jsx(ArrowUpRight, { "aria-hidden": "true" }) }) }), _jsxs(Row, { label: "loading", children: [_jsx(ButtonLink, { href: "#portal", loading: true, loadingLabel: "Opening Portal", variant: "outline", children: "Open Portal" }), _jsx(ButtonLink, { disabled: true, href: "#invoices", variant: "outline", children: "Download invoice" }), _jsx(Hint, { children: "The invoice is still being prepared." })] })] })),
36
+ ButtonGroup: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-4", children: [_jsxs(ButtonGroup, { "aria-label": "Status filter", children: [_jsx(Button, { variant: "outline", children: "Status: Needs attention" }), _jsx(Button, { "aria-label": "Remove filter: Status", size: "icon", variant: "outline", children: _jsx(X, { "aria-hidden": "true" }) })] }), _jsxs(ButtonGroup, { "aria-label": "Pages", children: [_jsx(Button, { "aria-label": "Previous page", disabled: true, size: "icon", variant: "outline", children: _jsx(ChevronLeft, { "aria-hidden": "true" }) }), _jsx(Button, { "aria-label": "Next page", size: "icon", variant: "outline", children: _jsx(ChevronRight, { "aria-hidden": "true" }) })] })] })),
37
+ LoadMoreButton: () => (_jsxs("div", { className: "flex flex-col gap-6", children: [_jsxs("div", { className: "flex flex-col", children: [_jsx("ul", { className: "flex flex-col gap-1 text-body-sm", children: EVENTS.map((event) => (_jsx("li", { children: event }, event))) }), _jsx(LoadMoreButton, { loading: false, loadingLabel: "Loading more events", onClick: nothing, children: "Load more events" })] }), _jsxs("div", { className: "flex flex-col", children: [_jsx("ul", { className: "flex flex-col gap-1 text-body-sm", children: EVENTS.map((event) => (_jsx("li", { children: event }, event))) }), _jsx(LoadMoreButton, { loading: true, loadingLabel: "Loading more events", children: "Load more events" })] }), _jsxs(Card, { className: "gap-0 py-0", surface: "outlined", children: [_jsx("ul", { className: "flex flex-col gap-1 p-4 text-body-sm", children: EVENTS.map((event) => (_jsx("li", { children: event }, event))) }), _jsx(LoadMoreButton, { className: "border-x-0 border-b-0", loading: false, loadingLabel: "Loading more events", noBorderRadius: true, noGap: true, onClick: nothing, children: "Load more events" })] })] })),
13
38
  CopyButton: () => (_jsxs("div", { className: "flex items-center gap-2 font-mono text-sm", children: ["agt_0042", _jsx(CopyButton, { copiedLabel: "Copied", copyFailedLabel: "Couldn't copy", copyLabel: "Copy Agent ID", value: "agt_0042" })] })),
14
39
  PageActions: () => (_jsx(PageActionsRow, { menu: PAGE_MENU, primary: { label: "Invite customer", icon: _jsx(Plus, {}), onClick: nothing }, secondary: { label: "Import", onClick: nothing } })),
15
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/charts.tsx"],"names":[],"mappings":"AAyEA,iBAAS,wBAAwB,gCAiBhC;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;CA2KQ,CAAC"}
1
+ {"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/charts.tsx"],"names":[],"mappings":"AAmFA,iBAAS,wBAAwB,gCA0BhC;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;CAwLQ,CAAC"}
@@ -55,14 +55,18 @@ const ACTIVITY = Array.from({ length: 60 }, (_, day) => ({
55
55
  date: new Date(Date.UTC(2026, 7, 16 + day)).toISOString().slice(0, 10),
56
56
  value: (day * 7) % 11,
57
57
  }));
58
+ const RANGE_PRESET_LABELS = {
59
+ "7d": "Past 7 days",
60
+ "14d": "Past 14 days",
61
+ "30d": "Past 30 days",
62
+ cycle: "This cycle",
63
+ };
64
+ const RETENTION_FROM = "2026-07-16";
65
+ const RETENTION_TO = "2026-10-14";
58
66
  function DateRangeControlSpecimen() {
59
67
  const [range, setRange] = useState({ kind: "preset", preset: "30d" });
60
- return (_jsx(DateRangeControl, { customLabel: "Custom", label: "Date range", onChange: setRange, presetLabels: {
61
- "7d": "Past 7 days",
62
- "14d": "Past 14 days",
63
- "30d": "Past 30 days",
64
- cycle: "This cycle",
65
- }, formatCustomValue: ({ from, to }) => `${from} – ${to}`, value: range }));
68
+ const [smallRange, setSmallRange] = useState({ kind: "preset", preset: "7d" });
69
+ return (_jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [_jsx(DateRangeControl, { formatCustomValue: ({ from, to }) => `${from} – ${to}`, label: "Date range", maxValue: RETENTION_TO, minValue: RETENTION_FROM, onChange: setRange, presetLabels: RANGE_PRESET_LABELS, value: range }), _jsx(DateRangeControl, { formatCustomValue: ({ from, to }) => `${from} – ${to}`, label: "Date range, small", maxValue: RETENTION_TO, minValue: RETENTION_FROM, onChange: setSmallRange, presetLabels: RANGE_PRESET_LABELS, size: "sm", value: smallRange })] }));
66
70
  }
67
71
  export const CHARTS = {
68
72
  ActivityCalendar: () => (_jsx(ActivityCalendar, { data: ACTIVITY, from: "2026-08-16", labels: {
@@ -77,7 +81,7 @@ export const CHARTS = {
77
81
  ChartBarHorizontal: () => (_jsx(ChartBarHorizontal, { data: MARGIN, negativeLabel: "Loss", period: "October 2026", positiveLabel: "Profit", title: "Margin by Customer", valueFormatter: euro, valueKey: "margin", xKey: "customer" })),
78
82
  ChartBarMultiple: () => (_jsx(ChartBarMultiple, { data: REVENUE, entityColorMap: createEntityColorMap(REVENUE_SERIES.map((series) => series.id)), otherLabel: "Everything else", period: "Aug \u2013 Oct 2026", series: REVENUE_SERIES, title: "Revenue and model cost", valueFormatter: euro, xKey: "month" })),
79
83
  ChartBarStacked: () => (_jsx(ChartBarStacked, { data: SPEND, entityColorMap: CUSTOMER_COLORS, otherLabel: "Everything else", period: "Jul \u2013 Oct 2026", series: CUSTOMERS, title: "Model spend by Customer", valueFormatter: euro, xKey: "month" })),
80
- ChartCard: () => (_jsx(ChartCard, { footer: { reading: "Updated 4 minutes ago" }, period: "October 2026", summary: _jsx(ChartSummary, { label: "Runs", trend: {
84
+ ChartCard: () => (_jsx(ChartCard, { footer: { reading: "Updated 4 minutes ago" }, link: { label: "Explore", accessibleName: "Explore Runs per week", link: _jsx("a", { href: "#runs" }) }, period: "October 2026", summary: _jsx(ChartSummary, { label: "Runs", trend: {
81
85
  value: "+12.4%",
82
86
  direction: "up",
83
87
  tone: trendTone("up"),
@@ -94,11 +98,16 @@ export const CHARTS = {
94
98
  ChartSparkline: () => (_jsxs("span", { className: "flex items-center gap-3 text-sm", children: ["Requests \u00B7 past 8 weeks", _jsx("span", { className: "h-6 w-24", children: _jsx(ChartSparkline, { data: [12, 18, 14, 22, 27, 25, 31, 36] }) }), _jsx(TrendBadge, { direction: "up", directionLabel: "up", tone: trendTone("up"), value: "+16%" })] })),
95
99
  createEntityColorMap: () => (_jsx("ul", { className: "grid max-w-xs gap-2 text-sm", children: CUSTOMERS.map((customer) => (_jsxs("li", { className: "flex items-center justify-between gap-3", children: [customer.label, _jsx("span", { className: "h-6 w-24", children: _jsx(ChartSparkline, { color: CUSTOMER_COLORS[customer.id], data: SPEND.map((month) => month[customer.id]) }) })] }, customer.id))) })),
96
100
  DateRangeControl: DateRangeControlSpecimen,
97
- KpiCard: () => (_jsx("div", { className: "max-w-xs", children: _jsx(KpiCard, { delta: {
98
- value: "+18%",
99
- direction: "up",
100
- comparison: "vs September",
101
- directionLabel: "up",
102
- }, label: "Tasks done this month", value: "1,284" }) })),
101
+ KpiCard: () => (_jsxs("div", { className: "grid max-w-xl gap-4 sm:grid-cols-2", children: [_jsx(KpiCard, { delta: {
102
+ value: "+18%",
103
+ direction: "up",
104
+ comparison: "vs September",
105
+ directionLabel: "up",
106
+ }, label: "Tasks done this month", value: "1,284" }), _jsx(KpiCard, { delta: {
107
+ value: "+63%",
108
+ direction: "up",
109
+ comparison: "vs previous period",
110
+ directionLabel: "up",
111
+ }, label: "Spend", note: "$110.00", sparkline: [4.1, 6.2, 1.2, 6.8, 7.1, 1.4, 7.4], value: "$179.32" })] })),
103
112
  TrendBadge: () => (_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx(TrendBadge, { direction: "up", directionLabel: "up", tone: trendTone("up"), value: "+12.4%" }), _jsx(TrendBadge, { direction: "up", directionLabel: "up", tone: trendTone("up", false), value: "+\u20AC 360" }), _jsx(TrendBadge, { direction: "flat", directionLabel: "unchanged", tone: trendTone("flat"), value: "0%" })] })),
104
113
  };
@@ -2,17 +2,28 @@ declare function CollectionSortSpecimen(): import("react").JSX.Element;
2
2
  declare function ComboboxSpecimen(): import("react").JSX.Element;
3
3
  declare function ModelSelectSpecimen(): import("react").JSX.Element;
4
4
  declare function SegmentedChoiceSpecimen(): import("react").JSX.Element;
5
+ declare function ChoiceboxGroupSpecimen(): import("react").JSX.Element;
6
+ declare function MultiSelectSpecimen(): import("react").JSX.Element;
7
+ declare function SegmentedControlSpecimen(): import("react").JSX.Element;
5
8
  declare function SelectSpecimen(): import("react").JSX.Element;
9
+ declare function ThemeModeSegmentsSpecimen(): import("react").JSX.Element;
6
10
  declare function ThemeModeSwitcherSpecimen(): import("react").JSX.Element;
11
+ declare function RadioGroupSpecimen(): import("react").JSX.Element;
12
+ declare function CheckboxSpecimen(): import("react").JSX.Element;
13
+ declare function SwitchSpecimen(): import("react").JSX.Element;
7
14
  export declare const CHOICES: {
8
- Checkbox: () => import("react").JSX.Element;
15
+ Checkbox: typeof CheckboxSpecimen;
16
+ ChoiceboxGroup: typeof ChoiceboxGroupSpecimen;
9
17
  CollectionSort: typeof CollectionSortSpecimen;
10
18
  Combobox: typeof ComboboxSpecimen;
11
19
  ModelSelect: typeof ModelSelectSpecimen;
12
- RadioGroup: () => import("react").JSX.Element;
20
+ MultiSelect: typeof MultiSelectSpecimen;
21
+ RadioGroup: typeof RadioGroupSpecimen;
13
22
  SegmentedChoice: typeof SegmentedChoiceSpecimen;
23
+ SegmentedControl: typeof SegmentedControlSpecimen;
14
24
  Select: typeof SelectSpecimen;
15
- Switch: () => import("react").JSX.Element;
25
+ Switch: typeof SwitchSpecimen;
26
+ ThemeModeSegments: typeof ThemeModeSegmentsSpecimen;
16
27
  ThemeModeSwitcher: typeof ThemeModeSwitcherSpecimen;
17
28
  Toggle: () => import("react").JSX.Element;
18
29
  ToggleGroup: () => import("react").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/choices.tsx"],"names":[],"mappings":"AAqCA,iBAAS,sBAAsB,gCAc9B;AAED,iBAAS,gBAAgB,gCAmBxB;AAED,iBAAS,mBAAmB,gCAc3B;AAED,iBAAS,uBAAuB,gCAe/B;AAED,iBAAS,cAAc,gCAmBtB;AAED,iBAAS,yBAAyB,gCAUjC;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;CAwDO,CAAC"}
1
+ {"version":3,"file":"choices.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/choices.tsx"],"names":[],"mappings":"AAwDA,iBAAS,sBAAsB,gCAc9B;AAED,iBAAS,gBAAgB,gCAgCxB;AAED,iBAAS,mBAAmB,gCAiB3B;AAED,iBAAS,uBAAuB,gCAe/B;AAED,iBAAS,sBAAsB,gCAkF9B;AAED,iBAAS,mBAAmB,gCAoC3B;AAID,iBAAS,wBAAwB,gCA8DhC;AAED,iBAAS,cAAc,gCA2CtB;AAED,iBAAS,yBAAyB,gCAUjC;AAED,iBAAS,yBAAyB,gCAQjC;AAED,iBAAS,kBAAkB,gCAuE1B;AAED,iBAAS,gBAAgB,gCAoCxB;AAED,iBAAS,cAAc,gCAgDtB;AAED,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;CAyBO,CAAC"}
@@ -1,17 +1,21 @@
1
1
  "use client";
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { LayoutGrid, List, Pin } from "lucide-react";
4
- import { useState } from "react";
3
+ import { Clock, Kanban, LayoutGrid, List, Pin } from "lucide-react";
4
+ import { useId, useState } from "react";
5
5
  import { ModelSelect, SegmentedChoice } from "../../components/agent-profile.js";
6
+ import { Button } from "../../components/button.js";
6
7
  import { Checkbox } from "../../components/checkbox.js";
8
+ import { ChoiceboxGroup, ChoiceboxGroupItem } from "../../components/choicebox.js";
7
9
  import { CollectionSort } from "../../components/collection-sort.js";
8
- import { Combobox, ComboboxContent, ComboboxEmpty, ComboboxInput, ComboboxItem, ComboboxList, } from "../../components/combobox.js";
9
- import { FieldLegend, FieldSet } from "../../components/field.js";
10
+ import { Combobox, ComboboxContent, ComboboxInput, ComboboxItem, ComboboxList, ComboboxLoading, } from "../../components/combobox.js";
11
+ import { Field, FieldLabel, FieldLegend, FieldSet } from "../../components/field.js";
10
12
  import { Label } from "../../components/label.js";
13
+ import { MultiSelect, MultiSelectContent, MultiSelectRow, MultiSelectTrigger, } from "../../components/multi-select.js";
11
14
  import { RadioGroup, RadioGroupItem } from "../../components/radio-group.js";
15
+ import { SegmentedControl } from "../../components/segmented-control.js";
12
16
  import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../components/select.js";
13
17
  import { Switch } from "../../components/switch.js";
14
- import { ThemeModeSwitcher } from "../../components/theme-mode-switcher.js";
18
+ import { ThemeModeSegments, ThemeModeSwitcher } from "../../components/theme-mode-switcher.js";
15
19
  import { Toggle } from "../../components/toggle.js";
16
20
  import { ToggleGroup, ToggleGroupItem } from "../../components/toggle-group.js";
17
21
  const SCHEDULES = [
@@ -21,6 +25,12 @@ const SCHEDULES = [
21
25
  { value: "weekly", label: "Every week" },
22
26
  ];
23
27
  const AGENTS = ["Acme Quotes", "Invoices", "Orders", "Support"];
28
+ const SWITCH_SIZES = [
29
+ { size: "sm", label: "Approvals" },
30
+ { size: "md", label: "Reminders" },
31
+ { size: "lg", label: "Digest" },
32
+ ];
33
+ const REGIONS = ["Milan", "Frankfurt", "Dublin"];
24
34
  function CollectionSortSpecimen() {
25
35
  const [order, setOrder] = useState("newest");
26
36
  return (_jsx(CollectionSort, { label: "Sort by", onValueChange: setOrder, options: [
@@ -30,11 +40,12 @@ function CollectionSortSpecimen() {
30
40
  ], value: order }));
31
41
  }
32
42
  function ComboboxSpecimen() {
33
- return (_jsxs("div", { className: "grid max-w-sm gap-2", children: [_jsx(Label, { htmlFor: "showcase-assignee", children: "Assign to" }), _jsxs(Combobox, { items: AGENTS, children: [_jsx(ComboboxInput, { id: "showcase-assignee", placeholder: "Find an Agent" }), _jsxs(ComboboxContent, { children: [_jsx(ComboboxEmpty, { children: "No Agent matches" }), _jsx(ComboboxList, { children: (agent) => (_jsx(ComboboxItem, { value: agent, children: agent }, agent)) })] })] })] }));
43
+ const [loading, setLoading] = useState(false);
44
+ return (_jsxs("div", { className: "grid max-w-sm gap-2", children: [_jsxs(Combobox, { items: AGENTS, children: [_jsx(ComboboxInput, { id: "showcase-assignee", label: "Assign to", placeholder: "Find an Agent", triggerLabel: "Show Agents" }), _jsxs(ComboboxContent, { empty: loading ? null : "No Agent matches", children: [_jsx(ComboboxLoading, { children: loading ? "Finding Agents" : null }), _jsx(ComboboxList, { children: (agent) => (_jsx(ComboboxItem, { value: agent, children: agent }, agent)) })] })] }), _jsx(Button, { className: "justify-self-start", onClick: () => setLoading((current) => !current), size: "sm", variant: "outline", children: loading ? "Show the list" : "Show loading" })] }));
34
45
  }
35
46
  function ModelSelectSpecimen() {
36
47
  const [model, setModel] = useState("anthropic/claude-opus-5");
37
- return (_jsxs("div", { className: "grid max-w-sm gap-2", children: [_jsx(Label, { htmlFor: "showcase-model", children: "Model" }), _jsx(ModelSelect, { id: "showcase-model", onValueChange: setModel, options: ["anthropic/claude-opus-5", "openai/gpt-5.6-sol", "google/gemini-3.1-flash-lite"], placeholder: "Choose a model", value: model })] }));
48
+ return (_jsxs("div", { className: "grid max-w-sm gap-2", children: [_jsx(Label, { htmlFor: "showcase-model", id: "showcase-model-label", children: "Model" }), _jsx(ModelSelect, { "aria-labelledby": "showcase-model-label", id: "showcase-model", onValueChange: setModel, options: ["anthropic/claude-opus-5", "openai/gpt-5.6-sol", "google/gemini-3.1-flash-lite"], placeholder: "Choose a model", value: model })] }));
38
49
  }
39
50
  function SegmentedChoiceSpecimen() {
40
51
  const [effort, setEffort] = useState("default");
@@ -45,24 +56,93 @@ function SegmentedChoiceSpecimen() {
45
56
  { value: "high", label: "High" },
46
57
  ], value: effort }));
47
58
  }
59
+ function ChoiceboxGroupSpecimen() {
60
+ const [plan, setPlan] = useState("trial");
61
+ return (_jsxs("div", { className: "grid max-w-2xl gap-6", children: [_jsxs(ChoiceboxGroup, { label: "Plan", name: "plan", onValueChange: (next) => setPlan(next === "pro" ? "pro" : "trial"), showLabel: true, type: "radio", value: plan, children: [_jsx(ChoiceboxGroupItem, { description: "Free for two weeks.", title: "Pro trial", value: "trial", children: "Ends on 30 November." }), _jsx(ChoiceboxGroupItem, { description: "Starts today.", title: "Pro", value: "pro" }), _jsx(ChoiceboxGroupItem, { description: "For one company only.", disabledReason: "Already used on this company.", title: "Second trial", value: "second-trial" })] }), _jsxs(ChoiceboxGroup, { defaultValue: "standard", label: "Server size", name: "server-size", showLabel: true, type: "radio", children: [_jsx(ChoiceboxGroupItem, { badge: "Recommended", description: "Enough for most teams.", specs: ["4 vCPU", "8 GB"], title: "Standard", value: "standard" }), _jsx(ChoiceboxGroupItem, { description: "For heavy daily use.", specs: ["8 vCPU", "16 GB"], title: "Enhanced", value: "enhanced" })] }), _jsxs(ChoiceboxGroup, { label: "Send the report by", showLabel: true, type: "checkbox", children: [_jsx(ChoiceboxGroupItem, { description: "To the billing address.", title: "Email", value: "email" }), _jsx(ChoiceboxGroupItem, { description: "To the Rossi Ottica channel.", title: "Alveare", value: "chat" })] }), _jsxs(ChoiceboxGroup, { defaultValue: "pro", disabledReason: "Your partner manages this plan.", label: "Plan, managed by a partner", showLabel: true, type: "radio", children: [_jsx(ChoiceboxGroupItem, { description: "Free for two weeks.", title: "Pro trial", value: "trial" }), _jsx(ChoiceboxGroupItem, { description: "Starts today.", title: "Pro", value: "pro" })] }), _jsxs(ChoiceboxGroup, { defaultValue: ["email"], label: "Send the invoice by", showLabel: true, type: "checkbox", children: [_jsx(ChoiceboxGroupItem, { description: "To the billing address.", title: "Email", value: "email" }), _jsx(ChoiceboxGroupItem, { description: "Not set up for this company.", disabledReason: "Connect Alveare first.", title: "Alveare", value: "chat" })] }), _jsxs(ChoiceboxGroup, { label: "Plan, stacked", orientation: "vertical", showLabel: true, type: "radio", children: [_jsx(ChoiceboxGroupItem, { description: "Free for two weeks.", title: "Pro trial", value: "trial" }), _jsx(ChoiceboxGroupItem, { description: "Starts today.", title: "Pro", value: "pro" })] })] }));
62
+ }
63
+ function MultiSelectSpecimen() {
64
+ const [chosen, setChosen] = useState(new Set(["Milan", "Frankfurt"]));
65
+ const [first] = chosen;
66
+ const summary = chosen.size === 0
67
+ ? "No regions selected"
68
+ : chosen.size === 1
69
+ ? (first ?? "")
70
+ : `${chosen.size} regions selected`;
71
+ return (_jsxs(MultiSelect, { onSelectAll: () => setChosen(new Set(REGIONS)), selectAllLabel: "Select all", selectedCount: chosen.size, selectOnlyLabel: "Select only", totalCount: REGIONS.length, children: [_jsx(MultiSelectTrigger, { "aria-label": "Regions", children: summary }), _jsx(MultiSelectContent, { children: REGIONS.map((region) => (_jsx(MultiSelectRow, { checked: chosen.has(region), name: region, onCheckedChange: (checked) => {
72
+ const next = new Set(chosen);
73
+ if (checked)
74
+ next.add(region);
75
+ else
76
+ next.delete(region);
77
+ setChosen(next);
78
+ }, onSelectOnly: () => setChosen(new Set([region])) }, region))) })] }));
79
+ }
80
+ const SEGMENT_SIZES = ["sm", "default", "lg"];
81
+ function SegmentedControlSpecimen() {
82
+ return (_jsxs("div", { className: "grid max-w-3xl gap-6", children: [_jsx(SegmentedControl, { "aria-label": "Message", defaultValue: "source", options: [
83
+ { value: "source", label: "Source" },
84
+ { value: "output", label: "Output" },
85
+ ] }), _jsx(SegmentedControl, { "aria-label": "Message, disabled", defaultValue: "source", disabled: true, options: [
86
+ { value: "source", label: "Source" },
87
+ { value: "output", label: "Output" },
88
+ ] }), _jsx("div", { className: "flex flex-wrap items-center gap-6", children: SEGMENT_SIZES.map((size) => (_jsx(SegmentedControl, { "aria-label": `Reports period, ${size}`, defaultValue: "month", options: [
89
+ { value: "week", label: "Week" },
90
+ { value: "month", label: "Month" },
91
+ { value: "year", label: "Year" },
92
+ ], size: size }, size))) }), _jsx(SegmentedControl, { "aria-label": "Message, full width", defaultValue: "source", fullWidth: true, options: [
93
+ { value: "source", label: "Source" },
94
+ { value: "output", label: "Output" },
95
+ ], size: "lg" }), _jsx("div", { className: "flex flex-wrap items-center gap-6", children: SEGMENT_SIZES.map((size) => (_jsx(SegmentedControl, { "aria-label": `Layout, ${size}`, defaultValue: "list", options: [
96
+ { value: "list", label: "List", icon: _jsx(List, {}), iconOnly: true },
97
+ { value: "grid", label: "Grid", icon: _jsx(LayoutGrid, {}), iconOnly: true },
98
+ { value: "board", label: "Board", icon: _jsx(Kanban, {}), iconOnly: true },
99
+ ], size: size }, size))) })] }));
100
+ }
48
101
  function SelectSpecimen() {
49
102
  const [schedule, setSchedule] = useState("weekdays");
50
- return (_jsxs("div", { className: "grid max-w-xs gap-2", children: [_jsx(Label, { htmlFor: "showcase-schedule", children: "Runs" }), _jsxs(Select, { onValueChange: (next) => setSchedule(next ?? "weekdays"), value: schedule, children: [_jsx(SelectTrigger, { id: "showcase-schedule", children: _jsx(SelectValue, { children: SCHEDULES.find((option) => option.value === schedule)?.label }) }), _jsx(SelectContent, { children: SCHEDULES.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] })] }));
103
+ const label = SCHEDULES.find((option) => option.value === schedule)?.label;
104
+ return (_jsxs("div", { className: "grid max-w-xs gap-2", children: [_jsxs(Select, { onValueChange: (next) => setSchedule(next ?? "weekdays"), value: schedule, children: [_jsx(SelectTrigger, { id: "showcase-schedule", label: "Runs", children: _jsx(SelectValue, { children: label }) }), _jsx(SelectContent, { children: SCHEDULES.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] }), _jsxs(Select, { onValueChange: (next) => setSchedule(next ?? "weekdays"), value: schedule, children: [_jsx(SelectTrigger, { "aria-label": "Runs, small", size: "sm", children: _jsx(SelectValue, { children: label }) }), _jsx(SelectContent, { children: SCHEDULES.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] }), _jsxs(Select, { onValueChange: (next) => setSchedule(next ?? "weekdays"), value: schedule, children: [_jsx(SelectTrigger, { "aria-label": "Runs, large", prefix: _jsx(Clock, { "aria-hidden": "true" }), size: "lg", children: _jsx(SelectValue, { children: label }) }), _jsx(SelectContent, { children: SCHEDULES.map((option) => (_jsx(SelectItem, { value: option.value, children: option.label }, option.value))) })] })] }));
105
+ }
106
+ function ThemeModeSegmentsSpecimen() {
107
+ const [mode, setMode] = useState("system");
108
+ return (_jsx(ThemeModeSegments, { "aria-label": "Theme", labels: { system: "System", light: "Light", dark: "Dark" }, onValueChange: setMode, value: mode }));
51
109
  }
52
110
  function ThemeModeSwitcherSpecimen() {
53
111
  const [mode, setMode] = useState("system");
54
- return (_jsx(ThemeModeSwitcher, { "aria-label": "Theme", labels: { light: "Light", dark: "Dark", system: "System" }, onValueChange: setMode, value: mode }));
112
+ const labels = { light: "Light", dark: "Dark", system: "System" };
113
+ return (_jsx("div", { className: "flex flex-wrap items-center gap-6", children: _jsx(ThemeModeSwitcher, { "aria-label": "Theme", labels: labels, onValueChange: setMode, value: mode }) }));
114
+ }
115
+ function RadioGroupSpecimen() {
116
+ const id = useId();
117
+ const legend = `${id}-legend`;
118
+ const disabledLegend = `${id}-disabled-legend`;
119
+ const requiredLegend = `${id}-required-legend`;
120
+ return (_jsxs("div", { className: "grid max-w-md gap-8", children: [_jsxs(FieldSet, { children: [_jsx(FieldLegend, { id: legend, variant: "label", children: "Who can see this Agent" }), _jsxs(RadioGroup, { "aria-labelledby": legend, defaultValue: "me", children: [_jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-me`, value: "me" }), _jsx(FieldLabel, { htmlFor: `${id}-me`, children: "Only me" })] }), _jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-everyone`, value: "everyone" }), _jsx(FieldLabel, { htmlFor: `${id}-everyone`, children: "Everyone in the company" })] })] })] }), _jsxs(FieldSet, { children: [_jsx(FieldLegend, { id: disabledLegend, variant: "label", children: "Who can see this Agent, locked" }), _jsxs(RadioGroup, { "aria-labelledby": disabledLegend, defaultValue: "me", disabled: true, children: [_jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-locked-me`, value: "me" }), _jsx(FieldLabel, { htmlFor: `${id}-locked-me`, children: "Only me" })] }), _jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-locked-everyone`, value: "everyone" }), _jsx(FieldLabel, { htmlFor: `${id}-locked-everyone`, children: "Everyone in the company" })] })] })] }), _jsxs("form", { className: "grid gap-4", method: "post", onSubmit: (event) => {
121
+ event.preventDefault();
122
+ }, children: [_jsxs(FieldSet, { children: [_jsx(FieldLegend, { id: requiredLegend, variant: "label", children: "Billing cycle" }), _jsxs(RadioGroup, { "aria-labelledby": requiredLegend, name: "cycle", required: true, children: [_jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-monthly`, value: "monthly" }), _jsx(FieldLabel, { htmlFor: `${id}-monthly`, children: "Monthly" })] }), _jsxs(Field, { orientation: "horizontal", children: [_jsx(RadioGroupItem, { id: `${id}-yearly`, value: "yearly" }), _jsx(FieldLabel, { htmlFor: `${id}-yearly`, children: "Yearly" })] })] })] }), _jsx(Button, { className: "justify-self-start", size: "sm", type: "submit", children: "Choose billing cycle" })] }), _jsx(RadioGroup, { "aria-label": "Standalone", defaultValue: "only", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { "aria-label": "Keep the old key", value: "only" }), _jsx("span", { className: "text-label-sm text-foreground", children: "Keep the old key" })] }) })] }));
123
+ }
124
+ function CheckboxSpecimen() {
125
+ const id = useId();
126
+ return (_jsxs("div", { className: "grid max-w-md gap-8", children: [_jsxs(FieldSet, { children: [_jsx(FieldLegend, { children: "Copies" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { defaultChecked: true, id: `${id}-copy` }), _jsx(Label, { htmlFor: `${id}-copy`, children: "Send a copy to the person who asked" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { id: `${id}-archive` }), _jsx(Label, { htmlFor: `${id}-archive`, children: "Keep a copy in the archive" })] })] }), _jsxs(FieldSet, { children: [_jsx(FieldLegend, { children: "Disabled" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { disabled: true, id: `${id}-off` }), _jsx(Label, { htmlFor: `${id}-off`, children: "Send a copy to the person who asked" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { defaultChecked: true, disabled: true, id: `${id}-on` }), _jsx(Label, { htmlFor: `${id}-on`, children: "Keep a copy in the archive" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { disabled: true, id: `${id}-mixed`, indeterminate: true }), _jsx(Label, { htmlFor: `${id}-mixed`, children: "Notify the people who follow it" })] })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { id: `${id}-some`, indeterminate: true }), _jsx(Label, { htmlFor: `${id}-some`, children: "3 of 5 selected" })] })] }));
127
+ }
128
+ function SwitchSpecimen() {
129
+ const id = useId();
130
+ return (_jsxs("div", { className: "grid max-w-md gap-8", children: [_jsxs("div", { className: "grid gap-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { id: `${id}-off` }), _jsx(Label, { htmlFor: `${id}-off`, children: "Approvals" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { defaultChecked: true, id: `${id}-on` }), _jsx(Label, { htmlFor: `${id}-on`, children: "Reminders" })] })] }), _jsxs("div", { className: "grid gap-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { disabled: true, id: `${id}-disabled-off` }), _jsx(Label, { htmlFor: `${id}-disabled-off`, children: "Approvals" })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { defaultChecked: true, disabled: true, id: `${id}-disabled-on` }), _jsx(Label, { htmlFor: `${id}-disabled-on`, children: "Reminders" })] })] }), _jsx("div", { className: "flex flex-wrap items-center gap-6", children: SWITCH_SIZES.map(({ size, label }) => (_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { defaultChecked: true, id: `${id}-${size}`, size: size }), _jsx(Label, { htmlFor: `${id}-${size}`, children: label })] }, size))) }), _jsx("div", { className: "grid gap-4", children: ["sm", "lg"].map((size) => (_jsxs("div", { className: "flex items-center gap-6", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Label, { htmlFor: `${id}-left-${size}`, children: "Digest" }), _jsx(Switch, { id: `${id}-left-${size}`, size: size })] }), _jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Switch, { id: `${id}-right-${size}`, size: size }), _jsx(Label, { htmlFor: `${id}-right-${size}`, children: "Digest" })] })] }, size))) })] }));
55
131
  }
56
132
  export const CHOICES = {
57
- Checkbox: () => (_jsxs(FieldSet, { className: "max-w-md", children: [_jsx(FieldLegend, { children: "Copies" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { defaultChecked: true, id: "showcase-copy" }), _jsx(Label, { htmlFor: "showcase-copy", children: "Send a copy to the person who asked" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Checkbox, { id: "showcase-archive" }), _jsx(Label, { htmlFor: "showcase-archive", children: "Keep a copy in the archive" })] })] })),
133
+ Checkbox: CheckboxSpecimen,
134
+ ChoiceboxGroup: ChoiceboxGroupSpecimen,
58
135
  CollectionSort: CollectionSortSpecimen,
59
136
  Combobox: ComboboxSpecimen,
60
137
  ModelSelect: ModelSelectSpecimen,
61
- RadioGroup: () => (_jsxs(FieldSet, { className: "max-w-md", children: [_jsx(FieldLegend, { children: "Who can see this Agent" }), _jsxs(RadioGroup, { defaultValue: "me", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { id: "showcase-me", value: "me" }), _jsx(Label, { htmlFor: "showcase-me", children: "Only me" })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(RadioGroupItem, { id: "showcase-everyone", value: "everyone" }), _jsx(Label, { htmlFor: "showcase-everyone", children: "Everyone in the company" })] })] })] })),
138
+ MultiSelect: MultiSelectSpecimen,
139
+ RadioGroup: RadioGroupSpecimen,
62
140
  SegmentedChoice: SegmentedChoiceSpecimen,
141
+ SegmentedControl: SegmentedControlSpecimen,
63
142
  Select: SelectSpecimen,
64
- Switch: () => (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Switch, { defaultChecked: true, id: "showcase-switch" }), _jsx(Label, { htmlFor: "showcase-switch", children: "Approvals" })] })),
143
+ Switch: SwitchSpecimen,
144
+ ThemeModeSegments: ThemeModeSegmentsSpecimen,
65
145
  ThemeModeSwitcher: ThemeModeSwitcherSpecimen,
66
146
  Toggle: () => (_jsx(Toggle, { "aria-label": "Pin chat", children: _jsx(Pin, { "aria-hidden": "true" }) })),
67
- ToggleGroup: () => (_jsxs(ToggleGroup, { "aria-label": "View", defaultValue: ["list"], spacing: 0, children: [_jsx(ToggleGroupItem, { "aria-label": "List", value: "list", children: _jsx(List, { "aria-hidden": "true" }) }), _jsx(ToggleGroupItem, { "aria-label": "Grid", value: "grid", children: _jsx(LayoutGrid, { "aria-hidden": "true" }) })] })),
147
+ ToggleGroup: () => (_jsxs(ToggleGroup, { "aria-label": "Chat details", defaultValue: ["tools"], multiple: true, spacing: 0, children: [_jsx(ToggleGroupItem, { value: "tools", children: "Tools" }), _jsx(ToggleGroupItem, { value: "reasoning", children: "Reasoning" })] })),
68
148
  };
@@ -1 +1 @@
1
- {"version":3,"file":"compositions.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/compositions.tsx"],"names":[],"mappings":"AA4HA,iBAAS,oBAAoB,gCA+B5B;AAED,iBAAS,wBAAwB,gCAahC;AAED,iBAAS,qBAAqB,gCAsB7B;AAED,iBAAS,yBAAyB,gCAGjC;AAED,iBAAS,sBAAsB,gCA6B9B;AAED,iBAAS,yBAAyB,gCAUjC;AAED,iBAAS,qBAAqB,gCAoB7B;AAED,iBAAS,kBAAkB,gCAiB1B;AAED,iBAAS,kBAAkB,gCAwB1B;AAED,iBAAS,kBAAkB,gCAwB1B;AAED,iBAAS,oBAAoB,gCAiB5B;AAED,iBAAS,oBAAoB,gCAqC5B;AAED,iBAAS,mBAAmB,gCA2B3B;AAED,iBAAS,mBAAmB,gCAsB3B;AAED,iBAAS,uBAAuB,gCAoB/B;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAiEE,CAAC"}
1
+ {"version":3,"file":"compositions.d.ts","sourceRoot":"","sources":["../../../src/showcase/specimens/compositions.tsx"],"names":[],"mappings":"AAoIA,iBAAS,oBAAoB,gCA+B5B;AAED,iBAAS,wBAAwB,gCAahC;AAED,iBAAS,qBAAqB,gCA0B7B;AAED,iBAAS,yBAAyB,gCAGjC;AAED,iBAAS,sBAAsB,gCAyD9B;AAED,iBAAS,yBAAyB,gCAUjC;AAED,iBAAS,qBAAqB,gCAwC7B;AAED,iBAAS,kBAAkB,gCAiB1B;AAED,iBAAS,kBAAkB,gCAuE1B;AAED,iBAAS,kBAAkB,gCAwB1B;AAED,iBAAS,oBAAoB,gCAkD5B;AAED,iBAAS,oBAAoB,gCAqC5B;AAED,iBAAS,mBAAmB,gCA2B3B;AAED,iBAAS,mBAAmB,gCAoB3B;AAwBD,iBAAS,uBAAuB,gCAkD/B;AA0BD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAmFE,CAAC"}