prime-ui-kit 0.2.5 → 0.3.2

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 (870) hide show
  1. package/README.md +165 -35
  2. package/dist/components/accordion/Accordion.d.ts +70 -0
  3. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  4. package/dist/components/accordion/examples/01-faq-marketing.d.ts +5 -0
  5. package/dist/components/accordion/examples/01-faq-marketing.d.ts.map +1 -0
  6. package/dist/components/accordion/examples/02-settings-panels.d.ts +6 -0
  7. package/dist/components/accordion/examples/02-settings-panels.d.ts.map +1 -0
  8. package/dist/components/accordion/examples/03-checkout-order-summary.d.ts +5 -0
  9. package/dist/components/accordion/examples/03-checkout-order-summary.d.ts.map +1 -0
  10. package/dist/components/accordion/examples/04-api-docs-sections.d.ts +6 -0
  11. package/dist/components/accordion/examples/04-api-docs-sections.d.ts.map +1 -0
  12. package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts +6 -0
  13. package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts.map +1 -0
  14. package/dist/components/avatar/Avatar.d.ts +58 -0
  15. package/dist/components/avatar/Avatar.d.ts.map +1 -0
  16. package/dist/components/avatar/examples/app-header-nav.d.ts +5 -0
  17. package/dist/components/avatar/examples/app-header-nav.d.ts.map +1 -0
  18. package/dist/components/avatar/examples/comment-thread.d.ts +5 -0
  19. package/dist/components/avatar/examples/comment-thread.d.ts.map +1 -0
  20. package/dist/components/avatar/examples/fallback-variants.d.ts +5 -0
  21. package/dist/components/avatar/examples/fallback-variants.d.ts.map +1 -0
  22. package/dist/components/avatar/examples/group-overflow.d.ts +5 -0
  23. package/dist/components/avatar/examples/group-overflow.d.ts.map +1 -0
  24. package/dist/components/avatar/examples/team-list.d.ts +5 -0
  25. package/dist/components/avatar/examples/team-list.d.ts.map +1 -0
  26. package/dist/components/badge/Badge.d.ts +51 -0
  27. package/dist/components/badge/Badge.d.ts.map +1 -0
  28. package/dist/components/badge/examples/admin-tags.d.ts +3 -0
  29. package/dist/components/badge/examples/admin-tags.d.ts.map +1 -0
  30. package/dist/components/badge/examples/canonical.d.ts +3 -0
  31. package/dist/components/badge/examples/canonical.d.ts.map +1 -0
  32. package/dist/components/badge/examples/ecommerce-inventory.d.ts +3 -0
  33. package/dist/components/badge/examples/ecommerce-inventory.d.ts.map +1 -0
  34. package/dist/components/badge/examples/inbox-labels.d.ts +3 -0
  35. package/dist/components/badge/examples/inbox-labels.d.ts.map +1 -0
  36. package/dist/components/badge/examples/status-presence.d.ts +6 -0
  37. package/dist/components/badge/examples/status-presence.d.ts.map +1 -0
  38. package/dist/components/banner/Banner.d.ts +78 -0
  39. package/dist/components/banner/Banner.d.ts.map +1 -0
  40. package/dist/components/banner/examples/billing-alert.d.ts +3 -0
  41. package/dist/components/banner/examples/billing-alert.d.ts.map +1 -0
  42. package/dist/components/banner/examples/cookie-consent-row.d.ts +3 -0
  43. package/dist/components/banner/examples/cookie-consent-row.d.ts.map +1 -0
  44. package/dist/components/banner/examples/feature-promo.d.ts +3 -0
  45. package/dist/components/banner/examples/feature-promo.d.ts.map +1 -0
  46. package/dist/components/banner/examples/maintenance.d.ts +3 -0
  47. package/dist/components/banner/examples/maintenance.d.ts.map +1 -0
  48. package/dist/components/breadcrumb/Breadcrumb.d.ts +47 -0
  49. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +1 -0
  50. package/dist/components/breadcrumb/examples/canonical.d.ts +3 -0
  51. package/dist/components/breadcrumb/examples/canonical.d.ts.map +1 -0
  52. package/dist/components/breadcrumb/examples/deep-documentation.d.ts +3 -0
  53. package/dist/components/breadcrumb/examples/deep-documentation.d.ts.map +1 -0
  54. package/dist/components/breadcrumb/examples/ecommerce-product.d.ts +3 -0
  55. package/dist/components/breadcrumb/examples/ecommerce-product.d.ts.map +1 -0
  56. package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts +6 -0
  57. package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts.map +1 -0
  58. package/dist/components/breadcrumb/examples/saas-settings.d.ts +3 -0
  59. package/dist/components/breadcrumb/examples/saas-settings.d.ts.map +1 -0
  60. package/dist/components/button/Button.d.ts +57 -0
  61. package/dist/components/button/Button.d.ts.map +1 -0
  62. package/dist/components/button/examples/canonical-composition.d.ts +5 -0
  63. package/dist/components/button/examples/canonical-composition.d.ts.map +1 -0
  64. package/dist/components/button/examples/destructive-confirm.d.ts +5 -0
  65. package/dist/components/button/examples/destructive-confirm.d.ts.map +1 -0
  66. package/dist/components/button/examples/form-submit-row.d.ts +5 -0
  67. package/dist/components/button/examples/form-submit-row.d.ts.map +1 -0
  68. package/dist/components/button/examples/marketing-cta.d.ts +5 -0
  69. package/dist/components/button/examples/marketing-cta.d.ts.map +1 -0
  70. package/dist/components/button/examples/toolbar.d.ts +5 -0
  71. package/dist/components/button/examples/toolbar.d.ts.map +1 -0
  72. package/dist/components/button-group/ButtonGroup.d.ts +34 -0
  73. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -0
  74. package/dist/components/button-group/examples/editor-toolbar.d.ts +6 -0
  75. package/dist/components/button-group/examples/editor-toolbar.d.ts.map +1 -0
  76. package/dist/components/button-group/examples/form-footer.d.ts +5 -0
  77. package/dist/components/button-group/examples/form-footer.d.ts.map +1 -0
  78. package/dist/components/button-group/examples/view-switcher.d.ts +5 -0
  79. package/dist/components/button-group/examples/view-switcher.d.ts.map +1 -0
  80. package/dist/components/button-group/examples/wizard-actions.d.ts +5 -0
  81. package/dist/components/button-group/examples/wizard-actions.d.ts.map +1 -0
  82. package/dist/components/card/Card.d.ts +234 -0
  83. package/dist/components/card/Card.d.ts.map +1 -0
  84. package/dist/components/card/examples/cta-cover.d.ts +5 -0
  85. package/dist/components/card/examples/cta-cover.d.ts.map +1 -0
  86. package/dist/components/card/examples/list-card.d.ts +3 -0
  87. package/dist/components/card/examples/list-card.d.ts.map +1 -0
  88. package/dist/components/card/examples/media-mini.d.ts +3 -0
  89. package/dist/components/card/examples/media-mini.d.ts.map +1 -0
  90. package/dist/components/card/examples/metric-dashboard.d.ts +3 -0
  91. package/dist/components/card/examples/metric-dashboard.d.ts.map +1 -0
  92. package/dist/components/card/examples/split-layout.d.ts +3 -0
  93. package/dist/components/card/examples/split-layout.d.ts.map +1 -0
  94. package/dist/components/checkbox/Checkbox.d.ts +42 -0
  95. package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
  96. package/dist/components/checkbox/examples/bulk-select-rows.d.ts +5 -0
  97. package/dist/components/checkbox/examples/bulk-select-rows.d.ts.map +1 -0
  98. package/dist/components/checkbox/examples/feature-flags-list.d.ts +5 -0
  99. package/dist/components/checkbox/examples/feature-flags-list.d.ts.map +1 -0
  100. package/dist/components/checkbox/examples/settings-panel.d.ts +5 -0
  101. package/dist/components/checkbox/examples/settings-panel.d.ts.map +1 -0
  102. package/dist/components/checkbox/examples/terms-acceptance.d.ts +5 -0
  103. package/dist/components/checkbox/examples/terms-acceptance.d.ts.map +1 -0
  104. package/dist/components/code-block/CodeBlock.d.ts +17 -0
  105. package/dist/components/code-block/CodeBlock.d.ts.map +1 -0
  106. package/dist/components/code-block/examples/api-response-preview.d.ts +3 -0
  107. package/dist/components/code-block/examples/api-response-preview.d.ts.map +1 -0
  108. package/dist/components/code-block/examples/config-snippet.d.ts +3 -0
  109. package/dist/components/code-block/examples/config-snippet.d.ts.map +1 -0
  110. package/dist/components/code-block/examples/error-stack.d.ts +3 -0
  111. package/dist/components/code-block/examples/error-stack.d.ts.map +1 -0
  112. package/dist/components/code-block/examples/minimal.d.ts +3 -0
  113. package/dist/components/code-block/examples/minimal.d.ts.map +1 -0
  114. package/dist/components/code-block/examples/tutorial-step.d.ts +3 -0
  115. package/dist/components/code-block/examples/tutorial-step.d.ts.map +1 -0
  116. package/dist/components/color-picker/ColorPicker.d.ts +76 -0
  117. package/dist/components/color-picker/ColorPicker.d.ts.map +1 -0
  118. package/dist/components/color-picker/ColorPickerRac.d.ts +76 -0
  119. package/dist/components/color-picker/ColorPickerRac.d.ts.map +1 -0
  120. package/dist/components/color-picker/examples/brand-kit.d.ts +3 -0
  121. package/dist/components/color-picker/examples/brand-kit.d.ts.map +1 -0
  122. package/dist/components/color-picker/examples/controlled-form-field.d.ts +3 -0
  123. package/dist/components/color-picker/examples/controlled-form-field.d.ts.map +1 -0
  124. package/dist/components/color-picker/examples/minimal-popover.d.ts +3 -0
  125. package/dist/components/color-picker/examples/minimal-popover.d.ts.map +1 -0
  126. package/dist/components/color-picker/examples/product-variant-swatch.d.ts +3 -0
  127. package/dist/components/color-picker/examples/product-variant-swatch.d.ts.map +1 -0
  128. package/dist/components/color-picker/examples/theme-accent.d.ts +3 -0
  129. package/dist/components/color-picker/examples/theme-accent.d.ts.map +1 -0
  130. package/dist/components/command-menu/CommandMenu.d.ts +74 -0
  131. package/dist/components/command-menu/CommandMenu.d.ts.map +1 -0
  132. package/dist/components/command-menu/examples/app-palette.d.ts +5 -0
  133. package/dist/components/command-menu/examples/app-palette.d.ts.map +1 -0
  134. package/dist/components/command-menu/examples/disabled-items.d.ts +6 -0
  135. package/dist/components/command-menu/examples/disabled-items.d.ts.map +1 -0
  136. package/dist/components/command-menu/examples/file-search.d.ts +5 -0
  137. package/dist/components/command-menu/examples/file-search.d.ts.map +1 -0
  138. package/dist/components/command-menu/examples/quick-actions.d.ts +5 -0
  139. package/dist/components/command-menu/examples/quick-actions.d.ts.map +1 -0
  140. package/dist/components/data-table/DataTable.d.ts +78 -0
  141. package/dist/components/data-table/DataTable.d.ts.map +1 -0
  142. package/dist/components/data-table/examples/canonical-orders.d.ts +6 -0
  143. package/dist/components/data-table/examples/canonical-orders.d.ts.map +1 -0
  144. package/dist/components/data-table/examples/controlled-sort-and-page.d.ts +5 -0
  145. package/dist/components/data-table/examples/controlled-sort-and-page.d.ts.map +1 -0
  146. package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts +6 -0
  147. package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts.map +1 -0
  148. package/dist/components/data-table/examples/row-selection.d.ts +6 -0
  149. package/dist/components/data-table/examples/row-selection.d.ts.map +1 -0
  150. package/dist/components/data-table/examples/sticky-header-first-column.d.ts +6 -0
  151. package/dist/components/data-table/examples/sticky-header-first-column.d.ts.map +1 -0
  152. package/dist/components/datepicker/Datepicker.d.ts +104 -0
  153. package/dist/components/datepicker/Datepicker.d.ts.map +1 -0
  154. package/dist/components/datepicker/examples/birthdate.d.ts +5 -0
  155. package/dist/components/datepicker/examples/birthdate.d.ts.map +1 -0
  156. package/dist/components/datepicker/examples/booking.d.ts +5 -0
  157. package/dist/components/datepicker/examples/booking.d.ts.map +1 -0
  158. package/dist/components/datepicker/examples/full-width-form.d.ts +5 -0
  159. package/dist/components/datepicker/examples/full-width-form.d.ts.map +1 -0
  160. package/dist/components/datepicker/examples/range-report.d.ts +5 -0
  161. package/dist/components/datepicker/examples/range-report.d.ts.map +1 -0
  162. package/dist/components/digit-input/DigitInput.d.ts +21 -0
  163. package/dist/components/digit-input/DigitInput.d.ts.map +1 -0
  164. package/dist/components/digit-input/examples/error-state.d.ts +3 -0
  165. package/dist/components/digit-input/examples/error-state.d.ts.map +1 -0
  166. package/dist/components/digit-input/examples/otp-login.d.ts +3 -0
  167. package/dist/components/digit-input/examples/otp-login.d.ts.map +1 -0
  168. package/dist/components/digit-input/examples/pin.d.ts +3 -0
  169. package/dist/components/digit-input/examples/pin.d.ts.map +1 -0
  170. package/dist/components/digit-input/examples/resend-and-clear.d.ts +3 -0
  171. package/dist/components/digit-input/examples/resend-and-clear.d.ts.map +1 -0
  172. package/dist/components/digit-input/examples/verification-step.d.ts +3 -0
  173. package/dist/components/digit-input/examples/verification-step.d.ts.map +1 -0
  174. package/dist/components/divider/Divider.d.ts +26 -0
  175. package/dist/components/divider/Divider.d.ts.map +1 -0
  176. package/dist/components/divider/examples/card-splits.d.ts +3 -0
  177. package/dist/components/divider/examples/card-splits.d.ts.map +1 -0
  178. package/dist/components/divider/examples/inset-stack.d.ts +6 -0
  179. package/dist/components/divider/examples/inset-stack.d.ts.map +1 -0
  180. package/dist/components/divider/examples/line-spacing-column.d.ts +6 -0
  181. package/dist/components/divider/examples/line-spacing-column.d.ts.map +1 -0
  182. package/dist/components/divider/examples/list-separators.d.ts +3 -0
  183. package/dist/components/divider/examples/list-separators.d.ts.map +1 -0
  184. package/dist/components/divider/examples/section-breaks.d.ts +3 -0
  185. package/dist/components/divider/examples/section-breaks.d.ts.map +1 -0
  186. package/dist/components/drawer/Drawer.d.ts +71 -0
  187. package/dist/components/drawer/Drawer.d.ts.map +1 -0
  188. package/dist/components/drawer/examples/cart-preview.d.ts +5 -0
  189. package/dist/components/drawer/examples/cart-preview.d.ts.map +1 -0
  190. package/dist/components/drawer/examples/explicit-panel.d.ts +5 -0
  191. package/dist/components/drawer/examples/explicit-panel.d.ts.map +1 -0
  192. package/dist/components/drawer/examples/filters-panel.d.ts +5 -0
  193. package/dist/components/drawer/examples/filters-panel.d.ts.map +1 -0
  194. package/dist/components/drawer/examples/mobile-nav-sheet.d.ts +5 -0
  195. package/dist/components/drawer/examples/mobile-nav-sheet.d.ts.map +1 -0
  196. package/dist/components/drawer/examples/settings-side.d.ts +5 -0
  197. package/dist/components/drawer/examples/settings-side.d.ts.map +1 -0
  198. package/dist/components/dropdown/Dropdown.d.ts +147 -0
  199. package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
  200. package/dist/components/dropdown/dropdownGeometry.d.ts +10 -0
  201. package/dist/components/dropdown/dropdownGeometry.d.ts.map +1 -0
  202. package/dist/components/dropdown/examples/account-menu.d.ts +3 -0
  203. package/dist/components/dropdown/examples/account-menu.d.ts.map +1 -0
  204. package/dist/components/dropdown/examples/actions-menu.d.ts +3 -0
  205. package/dist/components/dropdown/examples/actions-menu.d.ts.map +1 -0
  206. package/dist/components/dropdown/examples/placement-demo.d.ts +3 -0
  207. package/dist/components/dropdown/examples/placement-demo.d.ts.map +1 -0
  208. package/dist/components/dropdown/examples/select-like-list.d.ts +7 -0
  209. package/dist/components/dropdown/examples/select-like-list.d.ts.map +1 -0
  210. package/dist/components/dropdown/menuKeyboard.d.ts +4 -0
  211. package/dist/components/dropdown/menuKeyboard.d.ts.map +1 -0
  212. package/dist/components/dropdown/useDropdownPosition.d.ts +18 -0
  213. package/dist/components/dropdown/useDropdownPosition.d.ts.map +1 -0
  214. package/dist/components/example-frame/ExampleFrame.d.ts +53 -0
  215. package/dist/components/example-frame/ExampleFrame.d.ts.map +1 -0
  216. package/dist/components/file-upload/FileUpload.d.ts +176 -0
  217. package/dist/components/file-upload/FileUpload.d.ts.map +1 -0
  218. package/dist/components/file-upload/examples/avatar-upload.d.ts +6 -0
  219. package/dist/components/file-upload/examples/avatar-upload.d.ts.map +1 -0
  220. package/dist/components/file-upload/examples/controlled-list.d.ts +5 -0
  221. package/dist/components/file-upload/examples/controlled-list.d.ts.map +1 -0
  222. package/dist/components/file-upload/examples/document-attach.d.ts +5 -0
  223. package/dist/components/file-upload/examples/document-attach.d.ts.map +1 -0
  224. package/dist/components/file-upload/examples/drag-area.d.ts +5 -0
  225. package/dist/components/file-upload/examples/drag-area.d.ts.map +1 -0
  226. package/dist/components/hint/Hint.d.ts +27 -0
  227. package/dist/components/hint/Hint.d.ts.map +1 -0
  228. package/dist/components/hint/examples/error-hint.d.ts +3 -0
  229. package/dist/components/hint/examples/error-hint.d.ts.map +1 -0
  230. package/dist/components/hint/examples/field-help.d.ts +3 -0
  231. package/dist/components/hint/examples/field-help.d.ts.map +1 -0
  232. package/dist/components/hint/examples/inline-tip-form.d.ts +3 -0
  233. package/dist/components/hint/examples/inline-tip-form.d.ts.map +1 -0
  234. package/dist/components/hint/examples/success-confirmation.d.ts +6 -0
  235. package/dist/components/hint/examples/success-confirmation.d.ts.map +1 -0
  236. package/dist/components/hint/examples/with-icon.d.ts +3 -0
  237. package/dist/components/hint/examples/with-icon.d.ts.map +1 -0
  238. package/dist/components/index.css +6101 -5759
  239. package/dist/components/index.css.map +4 -4
  240. package/dist/components/index.d.ts +95 -2679
  241. package/dist/components/index.d.ts.map +1 -0
  242. package/dist/components/index.js +8510 -7659
  243. package/dist/components/index.js.map +4 -4
  244. package/dist/components/input/Input.d.ts +73 -0
  245. package/dist/components/input/Input.d.ts.map +1 -0
  246. package/dist/components/input/examples/checkout-full-width.d.ts +5 -0
  247. package/dist/components/input/examples/checkout-full-width.d.ts.map +1 -0
  248. package/dist/components/input/examples/login-email.d.ts +5 -0
  249. package/dist/components/input/examples/login-email.d.ts.map +1 -0
  250. package/dist/components/input/examples/password-with-hint.d.ts +5 -0
  251. package/dist/components/input/examples/password-with-hint.d.ts.map +1 -0
  252. package/dist/components/input/examples/search.d.ts +5 -0
  253. package/dist/components/input/examples/search.d.ts.map +1 -0
  254. package/dist/components/kbd/Kbd.d.ts +15 -0
  255. package/dist/components/kbd/Kbd.d.ts.map +1 -0
  256. package/dist/components/kbd/examples/combination-keys.d.ts +3 -0
  257. package/dist/components/kbd/examples/combination-keys.d.ts.map +1 -0
  258. package/dist/components/kbd/examples/docs-legend.d.ts +3 -0
  259. package/dist/components/kbd/examples/docs-legend.d.ts.map +1 -0
  260. package/dist/components/kbd/examples/inline-doc-hint.d.ts +3 -0
  261. package/dist/components/kbd/examples/inline-doc-hint.d.ts.map +1 -0
  262. package/dist/components/kbd/examples/shortcut-row.d.ts +3 -0
  263. package/dist/components/kbd/examples/shortcut-row.d.ts.map +1 -0
  264. package/dist/components/kbd/examples/toolbar-hints.d.ts +3 -0
  265. package/dist/components/kbd/examples/toolbar-hints.d.ts.map +1 -0
  266. package/dist/components/label/Label.d.ts +29 -0
  267. package/dist/components/label/Label.d.ts.map +1 -0
  268. package/dist/components/label/examples/accessibility-pattern.d.ts +6 -0
  269. package/dist/components/label/examples/accessibility-pattern.d.ts.map +1 -0
  270. package/dist/components/label/examples/grouped-labels.d.ts +6 -0
  271. package/dist/components/label/examples/grouped-labels.d.ts.map +1 -0
  272. package/dist/components/label/examples/optional-field.d.ts +3 -0
  273. package/dist/components/label/examples/optional-field.d.ts.map +1 -0
  274. package/dist/components/label/examples/required-field.d.ts +3 -0
  275. package/dist/components/label/examples/required-field.d.ts.map +1 -0
  276. package/dist/components/label/examples/with-icon.d.ts +3 -0
  277. package/dist/components/label/examples/with-icon.d.ts.map +1 -0
  278. package/dist/components/link-button/LinkButton.d.ts +18 -0
  279. package/dist/components/link-button/LinkButton.d.ts.map +1 -0
  280. package/dist/components/link-button/examples/disabled.d.ts +6 -0
  281. package/dist/components/link-button/examples/disabled.d.ts.map +1 -0
  282. package/dist/components/link-button/examples/external.d.ts +3 -0
  283. package/dist/components/link-button/examples/external.d.ts.map +1 -0
  284. package/dist/components/link-button/examples/footer-legal.d.ts +3 -0
  285. package/dist/components/link-button/examples/footer-legal.d.ts.map +1 -0
  286. package/dist/components/link-button/examples/inline-text-link.d.ts +3 -0
  287. package/dist/components/link-button/examples/inline-text-link.d.ts.map +1 -0
  288. package/dist/components/link-button/examples/navigation-cluster.d.ts +3 -0
  289. package/dist/components/link-button/examples/navigation-cluster.d.ts.map +1 -0
  290. package/dist/components/modal/Modal.d.ts +58 -0
  291. package/dist/components/modal/Modal.d.ts.map +1 -0
  292. package/dist/components/modal/examples/canonical-maximal.d.ts +6 -0
  293. package/dist/components/modal/examples/canonical-maximal.d.ts.map +1 -0
  294. package/dist/components/modal/examples/scenario-confirm-delete.d.ts +3 -0
  295. package/dist/components/modal/examples/scenario-confirm-delete.d.ts.map +1 -0
  296. package/dist/components/modal/examples/scenario-edit-entity.d.ts +3 -0
  297. package/dist/components/modal/examples/scenario-edit-entity.d.ts.map +1 -0
  298. package/dist/components/modal/examples/scenario-legal-consent.d.ts +3 -0
  299. package/dist/components/modal/examples/scenario-legal-consent.d.ts.map +1 -0
  300. package/dist/components/modal/examples/scenario-multi-field-form.d.ts +3 -0
  301. package/dist/components/modal/examples/scenario-multi-field-form.d.ts.map +1 -0
  302. package/dist/components/notification/Notification.d.ts +42 -0
  303. package/dist/components/notification/Notification.d.ts.map +1 -0
  304. package/dist/components/notification/NotificationStore.d.ts +18 -0
  305. package/dist/components/notification/NotificationStore.d.ts.map +1 -0
  306. package/dist/components/notification/examples/action-toast.d.ts +2 -0
  307. package/dist/components/notification/examples/action-toast.d.ts.map +1 -0
  308. package/dist/components/notification/examples/error-success.d.ts +2 -0
  309. package/dist/components/notification/examples/error-success.d.ts.map +1 -0
  310. package/dist/components/notification/examples/notification-store.d.ts +2 -0
  311. package/dist/components/notification/examples/notification-store.d.ts.map +1 -0
  312. package/dist/components/notification/examples/positions.d.ts +2 -0
  313. package/dist/components/notification/examples/positions.d.ts.map +1 -0
  314. package/dist/components/notification/examples/toast-queue.d.ts +2 -0
  315. package/dist/components/notification/examples/toast-queue.d.ts.map +1 -0
  316. package/dist/components/page-content/PageContent.d.ts +51 -0
  317. package/dist/components/page-content/PageContent.d.ts.map +1 -0
  318. package/dist/components/pagination/Pagination.d.ts +19 -0
  319. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  320. package/dist/components/pagination/examples/canonical-composition.d.ts +5 -0
  321. package/dist/components/pagination/examples/canonical-composition.d.ts.map +1 -0
  322. package/dist/components/pagination/examples/compact.d.ts +3 -0
  323. package/dist/components/pagination/examples/compact.d.ts.map +1 -0
  324. package/dist/components/pagination/examples/controlled-page.d.ts +3 -0
  325. package/dist/components/pagination/examples/controlled-page.d.ts.map +1 -0
  326. package/dist/components/pagination/examples/full-width-list.d.ts +3 -0
  327. package/dist/components/pagination/examples/full-width-list.d.ts.map +1 -0
  328. package/dist/components/pagination/examples/table-footer.d.ts +3 -0
  329. package/dist/components/pagination/examples/table-footer.d.ts.map +1 -0
  330. package/dist/components/popover/Popover.d.ts +48 -0
  331. package/dist/components/popover/Popover.d.ts.map +1 -0
  332. package/dist/components/popover/examples/canonical-panel.d.ts +5 -0
  333. package/dist/components/popover/examples/canonical-panel.d.ts.map +1 -0
  334. package/dist/components/popover/examples/date-trigger.d.ts +5 -0
  335. package/dist/components/popover/examples/date-trigger.d.ts.map +1 -0
  336. package/dist/components/popover/examples/form-in-popover.d.ts +5 -0
  337. package/dist/components/popover/examples/form-in-popover.d.ts.map +1 -0
  338. package/dist/components/popover/examples/placement.d.ts +5 -0
  339. package/dist/components/popover/examples/placement.d.ts.map +1 -0
  340. package/dist/components/popover/examples/rich-content.d.ts +5 -0
  341. package/dist/components/popover/examples/rich-content.d.ts.map +1 -0
  342. package/dist/components/popover/popoverGeometry.d.ts +6 -0
  343. package/dist/components/popover/popoverGeometry.d.ts.map +1 -0
  344. package/dist/components/popover/usePopoverPosition.d.ts +18 -0
  345. package/dist/components/popover/usePopoverPosition.d.ts.map +1 -0
  346. package/dist/components/progress-bar/ProgressBar.d.ts +14 -0
  347. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -0
  348. package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts +6 -0
  349. package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts.map +1 -0
  350. package/dist/components/progress-bar/examples/labeled.d.ts +3 -0
  351. package/dist/components/progress-bar/examples/labeled.d.ts.map +1 -0
  352. package/dist/components/progress-bar/examples/step-progress.d.ts +3 -0
  353. package/dist/components/progress-bar/examples/step-progress.d.ts.map +1 -0
  354. package/dist/components/progress-bar/examples/upload-progress.d.ts +3 -0
  355. package/dist/components/progress-bar/examples/upload-progress.d.ts.map +1 -0
  356. package/dist/components/progress-bar/examples/wizard-composition.d.ts +3 -0
  357. package/dist/components/progress-bar/examples/wizard-composition.d.ts.map +1 -0
  358. package/dist/components/progress-circle/ProgressCircle.d.ts +33 -0
  359. package/dist/components/progress-circle/ProgressCircle.d.ts.map +1 -0
  360. package/dist/components/progress-circle/examples/a11y-label.d.ts +6 -0
  361. package/dist/components/progress-circle/examples/a11y-label.d.ts.map +1 -0
  362. package/dist/components/progress-circle/examples/composition.d.ts +3 -0
  363. package/dist/components/progress-circle/examples/composition.d.ts.map +1 -0
  364. package/dist/components/progress-circle/examples/controlled.d.ts +3 -0
  365. package/dist/components/progress-circle/examples/controlled.d.ts.map +1 -0
  366. package/dist/components/progress-circle/examples/dashboard-ring.d.ts +3 -0
  367. package/dist/components/progress-circle/examples/dashboard-ring.d.ts.map +1 -0
  368. package/dist/components/progress-circle/examples/max-scale.d.ts +3 -0
  369. package/dist/components/progress-circle/examples/max-scale.d.ts.map +1 -0
  370. package/dist/components/radio/Radio.d.ts +40 -0
  371. package/dist/components/radio/Radio.d.ts.map +1 -0
  372. package/dist/components/radio/examples/notification-channel.d.ts +3 -0
  373. package/dist/components/radio/examples/notification-channel.d.ts.map +1 -0
  374. package/dist/components/radio/examples/plan-picker.d.ts +3 -0
  375. package/dist/components/radio/examples/plan-picker.d.ts.map +1 -0
  376. package/dist/components/radio/examples/settings-group.d.ts +3 -0
  377. package/dist/components/radio/examples/settings-group.d.ts.map +1 -0
  378. package/dist/components/radio/examples/shipping-method.d.ts +3 -0
  379. package/dist/components/radio/examples/shipping-method.d.ts.map +1 -0
  380. package/dist/components/scroll-container/ScrollContainer.d.ts +42 -0
  381. package/dist/components/scroll-container/ScrollContainer.d.ts.map +1 -0
  382. package/dist/components/segmented-control/SegmentedControl.d.ts +40 -0
  383. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -0
  384. package/dist/components/segmented-control/examples/canonical-composition.d.ts +5 -0
  385. package/dist/components/segmented-control/examples/canonical-composition.d.ts.map +1 -0
  386. package/dist/components/segmented-control/examples/catalog-filters.d.ts +5 -0
  387. package/dist/components/segmented-control/examples/catalog-filters.d.ts.map +1 -0
  388. package/dist/components/segmented-control/examples/pricing-toggle.d.ts +5 -0
  389. package/dist/components/segmented-control/examples/pricing-toggle.d.ts.map +1 -0
  390. package/dist/components/segmented-control/examples/view-mode.d.ts +5 -0
  391. package/dist/components/segmented-control/examples/view-mode.d.ts.map +1 -0
  392. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +22 -0
  393. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts.map +1 -0
  394. package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts +3 -0
  395. package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts.map +1 -0
  396. package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts +3 -0
  397. package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts.map +1 -0
  398. package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts +3 -0
  399. package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts.map +1 -0
  400. package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts +3 -0
  401. package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts.map +1 -0
  402. package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts +3 -0
  403. package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts.map +1 -0
  404. package/dist/components/select/Select.d.ts +84 -0
  405. package/dist/components/select/Select.d.ts.map +1 -0
  406. package/dist/components/select/examples/01-country.d.ts +6 -0
  407. package/dist/components/select/examples/01-country.d.ts.map +1 -0
  408. package/dist/components/select/examples/02-controlled.d.ts +5 -0
  409. package/dist/components/select/examples/02-controlled.d.ts.map +1 -0
  410. package/dist/components/select/examples/03-groups.d.ts +5 -0
  411. package/dist/components/select/examples/03-groups.d.ts.map +1 -0
  412. package/dist/components/select/examples/04-full-width-form.d.ts +6 -0
  413. package/dist/components/select/examples/04-full-width-form.d.ts.map +1 -0
  414. package/dist/components/select/selectListbox.d.ts +13 -0
  415. package/dist/components/select/selectListbox.d.ts.map +1 -0
  416. package/dist/components/slider/Slider.d.ts +23 -0
  417. package/dist/components/slider/Slider.d.ts.map +1 -0
  418. package/dist/components/slider/examples/01-volume.d.ts +5 -0
  419. package/dist/components/slider/examples/01-volume.d.ts.map +1 -0
  420. package/dist/components/slider/examples/02-price-range.d.ts +5 -0
  421. package/dist/components/slider/examples/02-price-range.d.ts.map +1 -0
  422. package/dist/components/slider/examples/03-controlled.d.ts +5 -0
  423. package/dist/components/slider/examples/03-controlled.d.ts.map +1 -0
  424. package/dist/components/slider/examples/04-disabled.d.ts +5 -0
  425. package/dist/components/slider/examples/04-disabled.d.ts.map +1 -0
  426. package/dist/components/stepper/HorizontalStepper.d.ts +41 -0
  427. package/dist/components/stepper/HorizontalStepper.d.ts.map +1 -0
  428. package/dist/components/stepper/Stepper.d.ts +77 -0
  429. package/dist/components/stepper/Stepper.d.ts.map +1 -0
  430. package/dist/components/stepper/VerticalStepper.d.ts +41 -0
  431. package/dist/components/stepper/VerticalStepper.d.ts.map +1 -0
  432. package/dist/components/stepper/examples/01-checkout-horizontal.d.ts +5 -0
  433. package/dist/components/stepper/examples/01-checkout-horizontal.d.ts.map +1 -0
  434. package/dist/components/stepper/examples/02-onboarding-vertical.d.ts +5 -0
  435. package/dist/components/stepper/examples/02-onboarding-vertical.d.ts.map +1 -0
  436. package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts +5 -0
  437. package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts.map +1 -0
  438. package/dist/components/stepper/examples/04-checkout-step-error.d.ts +6 -0
  439. package/dist/components/stepper/examples/04-checkout-step-error.d.ts.map +1 -0
  440. package/dist/components/stepper/examples/05-horizontal-primitive.d.ts +5 -0
  441. package/dist/components/stepper/examples/05-horizontal-primitive.d.ts.map +1 -0
  442. package/dist/components/stepper/stepperAlignContext.d.ts +11 -0
  443. package/dist/components/stepper/stepperAlignContext.d.ts.map +1 -0
  444. package/dist/components/switch/Switch.d.ts +48 -0
  445. package/dist/components/switch/Switch.d.ts.map +1 -0
  446. package/dist/components/switch/examples/canonical-maximal.d.ts +5 -0
  447. package/dist/components/switch/examples/canonical-maximal.d.ts.map +1 -0
  448. package/dist/components/switch/examples/scenario-billing-annual.d.ts +5 -0
  449. package/dist/components/switch/examples/scenario-billing-annual.d.ts.map +1 -0
  450. package/dist/components/switch/examples/scenario-feature-flag.d.ts +5 -0
  451. package/dist/components/switch/examples/scenario-feature-flag.d.ts.map +1 -0
  452. package/dist/components/switch/examples/scenario-form-consent.d.ts +5 -0
  453. package/dist/components/switch/examples/scenario-form-consent.d.ts.map +1 -0
  454. package/dist/components/switch/examples/scenario-settings-toggle.d.ts +5 -0
  455. package/dist/components/switch/examples/scenario-settings-toggle.d.ts.map +1 -0
  456. package/dist/components/tabs/Tabs.d.ts +69 -0
  457. package/dist/components/tabs/Tabs.d.ts.map +1 -0
  458. package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts +6 -0
  459. package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts.map +1 -0
  460. package/dist/components/tabs/examples/02-dashboard-subviews.d.ts +6 -0
  461. package/dist/components/tabs/examples/02-dashboard-subviews.d.ts.map +1 -0
  462. package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts +6 -0
  463. package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts.map +1 -0
  464. package/dist/components/tabs/examples/04-long-labels-narrow.d.ts +6 -0
  465. package/dist/components/tabs/examples/04-long-labels-narrow.d.ts.map +1 -0
  466. package/dist/components/tabs/examples/05-controlled-active-tab.d.ts +6 -0
  467. package/dist/components/tabs/examples/05-controlled-active-tab.d.ts.map +1 -0
  468. package/dist/components/tag/Tag.d.ts +29 -0
  469. package/dist/components/tag/Tag.d.ts.map +1 -0
  470. package/dist/components/tag/examples/01-filter-chips.d.ts +5 -0
  471. package/dist/components/tag/examples/01-filter-chips.d.ts.map +1 -0
  472. package/dist/components/tag/examples/02-removable-selected-values.d.ts +6 -0
  473. package/dist/components/tag/examples/02-removable-selected-values.d.ts.map +1 -0
  474. package/dist/components/tag/examples/03-status-metadata.d.ts +5 -0
  475. package/dist/components/tag/examples/03-status-metadata.d.ts.map +1 -0
  476. package/dist/components/tag/examples/04-tag-sizes.d.ts +3 -0
  477. package/dist/components/tag/examples/04-tag-sizes.d.ts.map +1 -0
  478. package/dist/components/textarea/Textarea.d.ts +43 -0
  479. package/dist/components/textarea/Textarea.d.ts.map +1 -0
  480. package/dist/components/textarea/examples/01-support-ticket.d.ts +5 -0
  481. package/dist/components/textarea/examples/01-support-ticket.d.ts.map +1 -0
  482. package/dist/components/textarea/examples/02-comment.d.ts +5 -0
  483. package/dist/components/textarea/examples/02-comment.d.ts.map +1 -0
  484. package/dist/components/textarea/examples/03-controlled.d.ts +5 -0
  485. package/dist/components/textarea/examples/03-controlled.d.ts.map +1 -0
  486. package/dist/components/textarea/examples/04-full-width.d.ts +5 -0
  487. package/dist/components/textarea/examples/04-full-width.d.ts.map +1 -0
  488. package/dist/components/tooltip/Tooltip.d.ts +47 -0
  489. package/dist/components/tooltip/Tooltip.d.ts.map +1 -0
  490. package/dist/components/tooltip/examples/canonical-icon-hint.d.ts +5 -0
  491. package/dist/components/tooltip/examples/canonical-icon-hint.d.ts.map +1 -0
  492. package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts +5 -0
  493. package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts.map +1 -0
  494. package/dist/components/tooltip/examples/scenario-delay-provider.d.ts +5 -0
  495. package/dist/components/tooltip/examples/scenario-delay-provider.d.ts.map +1 -0
  496. package/dist/components/tooltip/examples/scenario-long-content.d.ts +5 -0
  497. package/dist/components/tooltip/examples/scenario-long-content.d.ts.map +1 -0
  498. package/dist/components/tooltip/examples/scenario-side-bottom.d.ts +5 -0
  499. package/dist/components/tooltip/examples/scenario-side-bottom.d.ts.map +1 -0
  500. package/dist/components/typography/Typography.d.ts +30 -0
  501. package/dist/components/typography/Typography.d.ts.map +1 -0
  502. package/dist/components/typography/examples/01-article.d.ts +5 -0
  503. package/dist/components/typography/examples/01-article.d.ts.map +1 -0
  504. package/dist/components/typography/examples/02-form-labels-contrast.d.ts +6 -0
  505. package/dist/components/typography/examples/02-form-labels-contrast.d.ts.map +1 -0
  506. package/dist/components/typography/examples/03-marketing-hero.d.ts +3 -0
  507. package/dist/components/typography/examples/03-marketing-hero.d.ts.map +1 -0
  508. package/dist/components/typography/examples/04-reading-scale.d.ts +3 -0
  509. package/dist/components/typography/examples/04-reading-scale.d.ts.map +1 -0
  510. package/dist/components/typography/examples/05-inline-emphasis.d.ts +3 -0
  511. package/dist/components/typography/examples/05-inline-emphasis.d.ts.map +1 -0
  512. package/dist/hooks/useControllableState.d.ts +8 -0
  513. package/dist/hooks/useControllableState.d.ts.map +1 -0
  514. package/dist/hooks/useEscapeKey.d.ts +7 -0
  515. package/dist/hooks/useEscapeKey.d.ts.map +1 -0
  516. package/dist/hooks/useFieldIds.d.ts +17 -0
  517. package/dist/hooks/useFieldIds.d.ts.map +1 -0
  518. package/dist/hooks/useFocusTrap.d.ts +16 -0
  519. package/dist/hooks/useFocusTrap.d.ts.map +1 -0
  520. package/dist/hooks/useMergedRefs.d.ts +3 -0
  521. package/dist/hooks/useMergedRefs.d.ts.map +1 -0
  522. package/dist/hooks/useOutsideClick.d.ts +16 -0
  523. package/dist/hooks/useOutsideClick.d.ts.map +1 -0
  524. package/dist/hooks/useOverlayModal.d.ts +7 -0
  525. package/dist/hooks/useOverlayModal.d.ts.map +1 -0
  526. package/dist/hooks/usePosition.d.ts +41 -0
  527. package/dist/hooks/usePosition.d.ts.map +1 -0
  528. package/dist/hooks/useResponsiveMonths.d.ts +18 -0
  529. package/dist/hooks/useResponsiveMonths.d.ts.map +1 -0
  530. package/dist/hooks/useScrollLock.d.ts +8 -0
  531. package/dist/hooks/useScrollLock.d.ts.map +1 -0
  532. package/dist/icons/Icon.d.ts +13 -0
  533. package/dist/icons/Icon.d.ts.map +1 -0
  534. package/dist/icons/index.d.ts +40 -0
  535. package/dist/icons/index.d.ts.map +1 -0
  536. package/dist/index.css +6101 -5759
  537. package/dist/index.css.map +4 -4
  538. package/dist/index.d.ts +4 -8
  539. package/dist/index.d.ts.map +1 -0
  540. package/dist/index.js +8509 -7660
  541. package/dist/index.js.map +4 -4
  542. package/dist/internal/ControlSizeContext.d.ts +17 -0
  543. package/dist/internal/ControlSizeContext.d.ts.map +1 -0
  544. package/dist/internal/DividerContentContext.d.ts +4 -0
  545. package/dist/internal/DividerContentContext.d.ts.map +1 -0
  546. package/dist/internal/OverlayPortalLayerContext.d.ts +13 -0
  547. package/dist/internal/OverlayPortalLayerContext.d.ts.map +1 -0
  548. package/dist/internal/Portal.d.ts +8 -0
  549. package/dist/internal/Portal.d.ts.map +1 -0
  550. package/dist/internal/context.d.ts +11 -0
  551. package/dist/internal/context.d.ts.map +1 -0
  552. package/dist/internal/cx.d.ts +2 -0
  553. package/dist/internal/cx.d.ts.map +1 -0
  554. package/dist/internal/data-attributes.d.ts +6 -0
  555. package/dist/internal/data-attributes.d.ts.map +1 -0
  556. package/dist/internal/highlightTsxHtml.d.ts +3 -0
  557. package/dist/internal/highlightTsxHtml.d.ts.map +1 -0
  558. package/dist/internal/layoutPxFromPrimitives.d.ts +13 -0
  559. package/dist/internal/layoutPxFromPrimitives.d.ts.map +1 -0
  560. package/dist/internal/mergeRefs.d.ts +4 -0
  561. package/dist/internal/mergeRefs.d.ts.map +1 -0
  562. package/dist/internal/runtimeUnits.d.ts +3 -0
  563. package/dist/internal/runtimeUnits.d.ts.map +1 -0
  564. package/dist/internal/scrollAncestors.d.ts +3 -0
  565. package/dist/internal/scrollAncestors.d.ts.map +1 -0
  566. package/dist/internal/slot.d.ts +19 -0
  567. package/dist/internal/slot.d.ts.map +1 -0
  568. package/dist/internal/states.d.ts +87 -0
  569. package/dist/internal/states.d.ts.map +1 -0
  570. package/dist/layout/app-shell/AppShell.d.ts +54 -0
  571. package/dist/layout/app-shell/AppShell.d.ts.map +1 -0
  572. package/dist/layout/index.d.ts +7 -0
  573. package/dist/layout/index.d.ts.map +1 -0
  574. package/dist/layout/sidebar/Sidebar.d.ts +241 -0
  575. package/dist/layout/sidebar/Sidebar.d.ts.map +1 -0
  576. package/dist/layout/sidebar/SidebarRoot.d.ts +51 -0
  577. package/dist/layout/sidebar/SidebarRoot.d.ts.map +1 -0
  578. package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts +5 -0
  579. package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts.map +1 -0
  580. package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts +6 -0
  581. package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts.map +1 -0
  582. package/dist/layout/sidebar/examples/03-controlled-state.d.ts +5 -0
  583. package/dist/layout/sidebar/examples/03-controlled-state.d.ts.map +1 -0
  584. package/dist/layout/sidebar/examples/04-router-navigation.d.ts +6 -0
  585. package/dist/layout/sidebar/examples/04-router-navigation.d.ts.map +1 -0
  586. package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts +7 -0
  587. package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts.map +1 -0
  588. package/dist/layout/sidebar/sidebar-context.d.ts +19 -0
  589. package/dist/layout/sidebar/sidebar-context.d.ts.map +1 -0
  590. package/dist/layout/sidebar/sidebarLayout.d.ts +12 -0
  591. package/dist/layout/sidebar/sidebarLayout.d.ts.map +1 -0
  592. package/dist/tokens/primitives.d.ts +390 -0
  593. package/dist/tokens/primitives.d.ts.map +1 -0
  594. package/dist/tokens/semantic.d.ts +732 -0
  595. package/dist/tokens/semantic.d.ts.map +1 -0
  596. package/dist/tokens/themes/dark.d.ts +143 -0
  597. package/dist/tokens/themes/dark.d.ts.map +1 -0
  598. package/dist/tokens/themes/light.d.ts +16 -0
  599. package/dist/tokens/themes/light.d.ts.map +1 -0
  600. package/package.json +12 -4
  601. package/src/components/accordion/COMPONENT.md +190 -0
  602. package/src/components/accordion/examples/01-faq-marketing.tsx +62 -0
  603. package/src/components/accordion/examples/02-settings-panels.tsx +67 -0
  604. package/src/components/accordion/examples/03-checkout-order-summary.tsx +87 -0
  605. package/src/components/accordion/examples/04-api-docs-sections.tsx +86 -0
  606. package/src/components/accordion/examples/05-knowledge-base-categories.tsx +65 -0
  607. package/src/components/accordion/examples/examples.module.css +30 -0
  608. package/src/components/avatar/COMPONENT.md +152 -0
  609. package/src/components/avatar/examples/app-header-nav.tsx +41 -0
  610. package/src/components/avatar/examples/comment-thread.tsx +57 -0
  611. package/src/components/avatar/examples/examples.module.css +72 -0
  612. package/src/components/avatar/examples/fallback-variants.tsx +33 -0
  613. package/src/components/avatar/examples/group-overflow.tsx +32 -0
  614. package/src/components/avatar/examples/team-list.tsx +45 -0
  615. package/src/components/badge/COMPONENT.md +101 -0
  616. package/src/components/badge/examples/admin-tags.tsx +35 -0
  617. package/src/components/badge/examples/canonical.tsx +6 -0
  618. package/src/components/badge/examples/ecommerce-inventory.tsx +35 -0
  619. package/src/components/badge/examples/inbox-labels.tsx +36 -0
  620. package/src/components/badge/examples/status-presence.tsx +32 -0
  621. package/src/components/banner/COMPONENT.md +145 -0
  622. package/src/components/banner/examples/billing-alert.tsx +35 -0
  623. package/src/components/banner/examples/cookie-consent-row.tsx +36 -0
  624. package/src/components/banner/examples/feature-promo.tsx +36 -0
  625. package/src/components/banner/examples/maintenance.tsx +23 -0
  626. package/src/components/breadcrumb/COMPONENT.md +127 -0
  627. package/src/components/breadcrumb/examples/canonical.tsx +12 -0
  628. package/src/components/breadcrumb/examples/deep-documentation.tsx +16 -0
  629. package/src/components/breadcrumb/examples/ecommerce-product.tsx +18 -0
  630. package/src/components/breadcrumb/examples/long-path-ellipsis.tsx +21 -0
  631. package/src/components/breadcrumb/examples/saas-settings.tsx +16 -0
  632. package/src/components/button/COMPONENT.md +101 -0
  633. package/src/components/button/examples/canonical-composition.tsx +46 -0
  634. package/src/components/button/examples/destructive-confirm.tsx +36 -0
  635. package/src/components/button/examples/form-submit-row.tsx +33 -0
  636. package/src/components/button/examples/marketing-cta.tsx +26 -0
  637. package/src/components/button/examples/toolbar.tsx +38 -0
  638. package/src/components/button-group/COMPONENT.md +131 -0
  639. package/src/components/button-group/examples/editor-toolbar.tsx +46 -0
  640. package/src/components/button-group/examples/form-footer.tsx +19 -0
  641. package/src/components/button-group/examples/view-switcher.tsx +25 -0
  642. package/src/components/button-group/examples/wizard-actions.tsx +30 -0
  643. package/src/components/card/COMPONENT.md +307 -0
  644. package/src/components/card/examples/cover-banner.module.css +8 -0
  645. package/src/components/card/examples/cta-cover.tsx +44 -0
  646. package/src/components/card/examples/layout.module.css +7 -0
  647. package/src/components/card/examples/list-card.tsx +20 -0
  648. package/src/components/card/examples/media-mini.tsx +55 -0
  649. package/src/components/card/examples/metric-dashboard.tsx +60 -0
  650. package/src/components/card/examples/sparkline.module.css +10 -0
  651. package/src/components/card/examples/split-layout.tsx +29 -0
  652. package/src/components/checkbox/COMPONENT.md +129 -0
  653. package/src/components/checkbox/examples/bulk-select-rows.tsx +54 -0
  654. package/src/components/checkbox/examples/feature-flags-list.tsx +43 -0
  655. package/src/components/checkbox/examples/settings-panel.tsx +50 -0
  656. package/src/components/checkbox/examples/terms-acceptance.tsx +42 -0
  657. package/src/components/code-block/COMPONENT.md +88 -0
  658. package/src/components/code-block/examples/api-response-preview.tsx +21 -0
  659. package/src/components/code-block/examples/config-snippet.tsx +17 -0
  660. package/src/components/code-block/examples/error-stack.tsx +19 -0
  661. package/src/components/code-block/examples/minimal.tsx +6 -0
  662. package/src/components/code-block/examples/tutorial-step.tsx +28 -0
  663. package/src/components/color-picker/COMPONENT.md +171 -0
  664. package/src/components/color-picker/examples/brand-kit.tsx +48 -0
  665. package/src/components/color-picker/examples/controlled-form-field.tsx +40 -0
  666. package/src/components/color-picker/examples/minimal-popover.tsx +26 -0
  667. package/src/components/color-picker/examples/product-variant-swatch.tsx +42 -0
  668. package/src/components/color-picker/examples/theme-accent.tsx +46 -0
  669. package/src/components/command-menu/COMPONENT.md +195 -0
  670. package/src/components/command-menu/examples/app-palette.tsx +129 -0
  671. package/src/components/command-menu/examples/disabled-items.tsx +73 -0
  672. package/src/components/command-menu/examples/file-search.tsx +98 -0
  673. package/src/components/command-menu/examples/quick-actions.tsx +74 -0
  674. package/src/components/data-table/COMPONENT.md +114 -0
  675. package/src/components/data-table/examples/canonical-orders.tsx +107 -0
  676. package/src/components/data-table/examples/controlled-sort-and-page.tsx +66 -0
  677. package/src/components/data-table/examples/infinite-scroll-load-more.tsx +63 -0
  678. package/src/components/data-table/examples/row-selection.tsx +90 -0
  679. package/src/components/data-table/examples/sticky-header-first-column.tsx +55 -0
  680. package/src/components/datepicker/COMPONENT.md +169 -0
  681. package/src/components/datepicker/examples/birthdate.tsx +43 -0
  682. package/src/components/datepicker/examples/booking.tsx +71 -0
  683. package/src/components/datepicker/examples/full-width-form.tsx +59 -0
  684. package/src/components/datepicker/examples/range-report.tsx +54 -0
  685. package/src/components/digit-input/COMPONENT.md +100 -0
  686. package/src/components/digit-input/examples/error-state.tsx +14 -0
  687. package/src/components/digit-input/examples/otp-login.tsx +17 -0
  688. package/src/components/digit-input/examples/pin.tsx +11 -0
  689. package/src/components/digit-input/examples/resend-and-clear.tsx +23 -0
  690. package/src/components/digit-input/examples/verification-step.tsx +21 -0
  691. package/src/components/divider/COMPONENT.md +98 -0
  692. package/src/components/divider/examples/card-splits.tsx +27 -0
  693. package/src/components/divider/examples/divider-examples.module.css +137 -0
  694. package/src/components/divider/examples/inset-stack.tsx +33 -0
  695. package/src/components/divider/examples/line-spacing-column.tsx +27 -0
  696. package/src/components/divider/examples/list-separators.tsx +20 -0
  697. package/src/components/divider/examples/section-breaks.tsx +27 -0
  698. package/src/components/drawer/COMPONENT.md +149 -0
  699. package/src/components/drawer/examples/cart-preview.tsx +55 -0
  700. package/src/components/drawer/examples/examples-scenarios.module.css +79 -0
  701. package/src/components/drawer/examples/explicit-panel.tsx +40 -0
  702. package/src/components/drawer/examples/filters-panel.tsx +53 -0
  703. package/src/components/drawer/examples/mobile-nav-sheet.tsx +43 -0
  704. package/src/components/drawer/examples/settings-side.tsx +54 -0
  705. package/src/components/dropdown/COMPONENT.md +231 -0
  706. package/src/components/dropdown/examples/account-menu.tsx +52 -0
  707. package/src/components/dropdown/examples/actions-menu.tsx +37 -0
  708. package/src/components/dropdown/examples/placement-demo.tsx +59 -0
  709. package/src/components/dropdown/examples/select-like-list.tsx +31 -0
  710. package/src/components/file-upload/COMPONENT.md +229 -0
  711. package/src/components/file-upload/examples/avatar-upload.tsx +54 -0
  712. package/src/components/file-upload/examples/controlled-list.tsx +103 -0
  713. package/src/components/file-upload/examples/document-attach.tsx +70 -0
  714. package/src/components/file-upload/examples/drag-area.tsx +49 -0
  715. package/src/components/hint/COMPONENT.md +99 -0
  716. package/src/components/hint/examples/error-hint.tsx +22 -0
  717. package/src/components/hint/examples/field-help.tsx +27 -0
  718. package/src/components/hint/examples/inline-tip-form.tsx +44 -0
  719. package/src/components/hint/examples/success-confirmation.tsx +30 -0
  720. package/src/components/hint/examples/with-icon.tsx +13 -0
  721. package/src/components/input/COMPONENT.md +139 -0
  722. package/src/components/input/examples/checkout-full-width.module.css +8 -0
  723. package/src/components/input/examples/checkout-full-width.tsx +39 -0
  724. package/src/components/input/examples/login-email.tsx +33 -0
  725. package/src/components/input/examples/password-with-hint.tsx +28 -0
  726. package/src/components/input/examples/search.tsx +30 -0
  727. package/src/components/kbd/COMPONENT.md +87 -0
  728. package/src/components/kbd/examples/combination-keys.tsx +22 -0
  729. package/src/components/kbd/examples/docs-legend.tsx +44 -0
  730. package/src/components/kbd/examples/inline-doc-hint.tsx +18 -0
  731. package/src/components/kbd/examples/shortcut-row.tsx +21 -0
  732. package/src/components/kbd/examples/toolbar-hints.tsx +31 -0
  733. package/src/components/label/COMPONENT.md +125 -0
  734. package/src/components/label/examples/accessibility-pattern.tsx +28 -0
  735. package/src/components/label/examples/grouped-labels.tsx +30 -0
  736. package/src/components/label/examples/optional-field.tsx +14 -0
  737. package/src/components/label/examples/required-field.tsx +20 -0
  738. package/src/components/label/examples/with-icon.tsx +16 -0
  739. package/src/components/link-button/COMPONENT.md +79 -0
  740. package/src/components/link-button/examples/disabled.tsx +18 -0
  741. package/src/components/link-button/examples/external.tsx +18 -0
  742. package/src/components/link-button/examples/footer-legal.tsx +22 -0
  743. package/src/components/link-button/examples/inline-text-link.tsx +14 -0
  744. package/src/components/link-button/examples/navigation-cluster.tsx +24 -0
  745. package/src/components/modal/COMPONENT.md +176 -0
  746. package/src/components/modal/examples/canonical-maximal.tsx +43 -0
  747. package/src/components/modal/examples/examples.module.css +13 -0
  748. package/src/components/modal/examples/scenario-confirm-delete.tsx +38 -0
  749. package/src/components/modal/examples/scenario-edit-entity.tsx +50 -0
  750. package/src/components/modal/examples/scenario-legal-consent.tsx +36 -0
  751. package/src/components/modal/examples/scenario-multi-field-form.tsx +75 -0
  752. package/src/components/notification/COMPONENT.md +150 -0
  753. package/src/components/notification/examples/action-toast.tsx +84 -0
  754. package/src/components/notification/examples/error-success.tsx +70 -0
  755. package/src/components/notification/examples/notification-store.tsx +58 -0
  756. package/src/components/notification/examples/positions.tsx +73 -0
  757. package/src/components/notification/examples/toast-queue.tsx +63 -0
  758. package/src/components/pagination/COMPONENT.md +101 -0
  759. package/src/components/pagination/examples/canonical-composition.tsx +20 -0
  760. package/src/components/pagination/examples/compact.tsx +32 -0
  761. package/src/components/pagination/examples/controlled-page.tsx +57 -0
  762. package/src/components/pagination/examples/full-width-list.tsx +37 -0
  763. package/src/components/pagination/examples/table-footer.tsx +74 -0
  764. package/src/components/popover/COMPONENT.md +157 -0
  765. package/src/components/popover/examples/canonical-panel.tsx +24 -0
  766. package/src/components/popover/examples/date-trigger.tsx +33 -0
  767. package/src/components/popover/examples/form-in-popover.tsx +79 -0
  768. package/src/components/popover/examples/placement.tsx +42 -0
  769. package/src/components/popover/examples/rich-content.tsx +39 -0
  770. package/src/components/progress-bar/COMPONENT.md +84 -0
  771. package/src/components/progress-bar/examples/indeterminate-busy-state.tsx +21 -0
  772. package/src/components/progress-bar/examples/labeled.tsx +6 -0
  773. package/src/components/progress-bar/examples/progress-bar-examples.module.css +22 -0
  774. package/src/components/progress-bar/examples/step-progress.tsx +23 -0
  775. package/src/components/progress-bar/examples/upload-progress.tsx +27 -0
  776. package/src/components/progress-bar/examples/wizard-composition.tsx +18 -0
  777. package/src/components/progress-circle/COMPONENT.md +93 -0
  778. package/src/components/progress-circle/examples/a11y-label.tsx +32 -0
  779. package/src/components/progress-circle/examples/composition.tsx +66 -0
  780. package/src/components/progress-circle/examples/controlled.tsx +58 -0
  781. package/src/components/progress-circle/examples/dashboard-ring.tsx +36 -0
  782. package/src/components/progress-circle/examples/max-scale.tsx +61 -0
  783. package/src/components/radio/COMPONENT.md +123 -0
  784. package/src/components/radio/examples/notification-channel.tsx +29 -0
  785. package/src/components/radio/examples/plan-picker.tsx +53 -0
  786. package/src/components/radio/examples/radio-examples.module.css +31 -0
  787. package/src/components/radio/examples/settings-group.tsx +30 -0
  788. package/src/components/radio/examples/shipping-method.tsx +26 -0
  789. package/src/components/segmented-control/COMPONENT.md +108 -0
  790. package/src/components/segmented-control/examples/canonical-composition.tsx +70 -0
  791. package/src/components/segmented-control/examples/catalog-filters.tsx +41 -0
  792. package/src/components/segmented-control/examples/pricing-toggle.tsx +40 -0
  793. package/src/components/segmented-control/examples/segmented-examples.module.css +12 -0
  794. package/src/components/segmented-control/examples/view-mode.tsx +53 -0
  795. package/src/components/segmented-progress-bar/COMPONENT.md +104 -0
  796. package/src/components/segmented-progress-bar/examples/distribution-breakdown.tsx +16 -0
  797. package/src/components/segmented-progress-bar/examples/multi-phase-rollout.tsx +15 -0
  798. package/src/components/segmented-progress-bar/examples/segment-gaps.tsx +23 -0
  799. package/src/components/segmented-progress-bar/examples/size-ladder.tsx +19 -0
  800. package/src/components/segmented-progress-bar/examples/storage-mix.tsx +16 -0
  801. package/src/components/select/COMPONENT.md +202 -0
  802. package/src/components/select/examples/01-country.tsx +37 -0
  803. package/src/components/select/examples/02-controlled.tsx +35 -0
  804. package/src/components/select/examples/03-groups.tsx +45 -0
  805. package/src/components/select/examples/04-full-width-form.tsx +51 -0
  806. package/src/components/select/examples/examples.module.css +37 -0
  807. package/src/components/slider/COMPONENT.md +78 -0
  808. package/src/components/slider/examples/01-volume.tsx +17 -0
  809. package/src/components/slider/examples/02-price-range.tsx +18 -0
  810. package/src/components/slider/examples/03-controlled.tsx +30 -0
  811. package/src/components/slider/examples/04-disabled.tsx +25 -0
  812. package/src/components/slider/examples/examples.module.css +17 -0
  813. package/src/components/stepper/COMPONENT.md +211 -0
  814. package/src/components/stepper/examples/01-checkout-horizontal.tsx +32 -0
  815. package/src/components/stepper/examples/02-onboarding-vertical.tsx +51 -0
  816. package/src/components/stepper/examples/03-vertical-primitive-rail.tsx +36 -0
  817. package/src/components/stepper/examples/04-checkout-step-error.tsx +30 -0
  818. package/src/components/stepper/examples/05-horizontal-primitive.tsx +37 -0
  819. package/src/components/stepper/examples/examples.module.css +16 -0
  820. package/src/components/switch/COMPONENT.md +144 -0
  821. package/src/components/switch/examples/canonical-maximal.tsx +19 -0
  822. package/src/components/switch/examples/examples.module.css +56 -0
  823. package/src/components/switch/examples/scenario-billing-annual.tsx +27 -0
  824. package/src/components/switch/examples/scenario-feature-flag.tsx +30 -0
  825. package/src/components/switch/examples/scenario-form-consent.tsx +34 -0
  826. package/src/components/switch/examples/scenario-settings-toggle.tsx +26 -0
  827. package/src/components/tabs/COMPONENT.md +141 -0
  828. package/src/components/tabs/examples/01-settings-vertical-rail.tsx +49 -0
  829. package/src/components/tabs/examples/02-dashboard-subviews.tsx +42 -0
  830. package/src/components/tabs/examples/03-tab-triggers-with-icons.tsx +49 -0
  831. package/src/components/tabs/examples/04-long-labels-narrow.tsx +35 -0
  832. package/src/components/tabs/examples/05-controlled-active-tab.tsx +48 -0
  833. package/src/components/tabs/examples/examples.module.css +58 -0
  834. package/src/components/tag/COMPONENT.md +82 -0
  835. package/src/components/tag/examples/01-filter-chips.tsx +36 -0
  836. package/src/components/tag/examples/02-removable-selected-values.tsx +33 -0
  837. package/src/components/tag/examples/03-status-metadata.tsx +24 -0
  838. package/src/components/tag/examples/04-tag-sizes.tsx +18 -0
  839. package/src/components/tag/examples/examples.module.css +20 -0
  840. package/src/components/textarea/COMPONENT.md +120 -0
  841. package/src/components/textarea/examples/01-support-ticket.tsx +35 -0
  842. package/src/components/textarea/examples/02-comment.tsx +35 -0
  843. package/src/components/textarea/examples/03-controlled.tsx +27 -0
  844. package/src/components/textarea/examples/04-full-width.tsx +23 -0
  845. package/src/components/textarea/examples/examples.module.css +21 -0
  846. package/src/components/tooltip/COMPONENT.md +144 -0
  847. package/src/components/tooltip/examples/canonical-icon-hint.tsx +19 -0
  848. package/src/components/tooltip/examples/examples.module.css +6 -0
  849. package/src/components/tooltip/examples/scenario-controlled-programmatic.tsx +32 -0
  850. package/src/components/tooltip/examples/scenario-delay-provider.tsx +19 -0
  851. package/src/components/tooltip/examples/scenario-long-content.tsx +22 -0
  852. package/src/components/tooltip/examples/scenario-side-bottom.tsx +21 -0
  853. package/src/components/typography/COMPONENT.md +113 -0
  854. package/src/components/typography/examples/01-article.tsx +45 -0
  855. package/src/components/typography/examples/02-form-labels-contrast.tsx +61 -0
  856. package/src/components/typography/examples/03-marketing-hero.tsx +25 -0
  857. package/src/components/typography/examples/04-reading-scale.tsx +47 -0
  858. package/src/components/typography/examples/05-inline-emphasis.tsx +30 -0
  859. package/src/components/typography/examples/examples.module.css +30 -0
  860. package/src/layout/sidebar/COMPONENT.md +138 -0
  861. package/src/layout/sidebar/examples/01-app-shell-nav.tsx +79 -0
  862. package/src/layout/sidebar/examples/02-collapsible-desktop.tsx +64 -0
  863. package/src/layout/sidebar/examples/03-controlled-state.tsx +72 -0
  864. package/src/layout/sidebar/examples/04-router-navigation.tsx +70 -0
  865. package/src/layout/sidebar/examples/05-responsive-behavior.tsx +46 -0
  866. package/src/layout/sidebar/examples/examples.module.css +67 -0
  867. package/src/styles/theme-dark.css +43 -0
  868. package/src/styles/theme-light.css +43 -0
  869. package/src/styles/tokens.css +23 -4
  870. package/src/styles/tokens.test.ts +0 -27
@@ -0,0 +1,171 @@
1
+ # ColorPicker
2
+
3
+ **Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
4
+
5
+ ## Canonical
6
+
7
+ `ColorPicker` is a **react-aria-components** color surface: one shared `Color` flows through a 2D area, channel sliders, optional preset swatches, a kit **HexInput**, and a channel strip with an eyedropper slot. **`ColorPicker.Root`** owns state; **`FormatProvider`** is mandatory for **`FormatSelect`** and **`ChannelStrip`**. **`parseColor`** and **`onChange`** use RAC **`Color`**; persist with **`color.toString("hex")`**, **`"css"`**, or **`"hexa"`** as needed.
8
+
9
+ - **Use for:** theme/accent tuning, brand palettes, variant swatches, or any form field that stores a CSS-parseable color.
10
+ - **Do not use for:** hex-only entry with no visual benefit (prefer [Input](../input/COMPONENT.md)); full chrome always inline in dense UI (mount the panel in [Popover](../popover/COMPONENT.md), [Modal](../modal/COMPONENT.md), or [Drawer](../drawer/COMPONENT.md)); eyedropper as the only input path (it is absent without **`window.EyeDropper`**).
11
+
12
+ Runnable TSX scenarios live in **`examples/`** (same folder as this file): `theme-accent.tsx`, `brand-kit.tsx`, `product-variant-swatch.tsx`, `controlled-form-field.tsx`, `minimal-popover.tsx`.
13
+
14
+ ## Extended
15
+
16
+ ### About
17
+
18
+ The picker composes RAC primitives with kit styling (checkerboard for transparency on tracks/swatches). **`TriggerSwatch`** mirrors the live color for button triggers but is **`aria-hidden`**—name the control via visible label text or **`aria-label`**. Sliders are fixed at visual size **`m`**; only **`HexInput`** exposes the kit **`size`** axis (**`s`**–**`xl`**).
19
+
20
+ ### Scenarios
21
+
22
+ | Scenario | Intent | Example file |
23
+ |----------|--------|----------------|
24
+ | **Theme accent** | Controlled value synced to design tokens or backend; show readout + popover editor. | `examples/theme-accent.tsx` |
25
+ | **Brand kit** | Curated swatches plus free adjustment and hex field for design-system colors. | `examples/brand-kit.tsx` |
26
+ | **Product variant swatch** | Fast selection from discrete SKUs; optional fine tuning in the same **`Root`**. | `examples/product-variant-swatch.tsx` |
27
+ | **Controlled form field** | Parent owns **`value`/`onChange`**; label association + popover + **`HexInput`**. | `examples/controlled-form-field.tsx` |
28
+
29
+ See also **`examples/minimal-popover.tsx`** for the smallest valid **`Popover`** composition.
30
+
31
+ ### Composition
32
+
33
+ - **`ColorPicker.Root`** wraps every control that shares one color (trigger + panel). Keep **`TriggerSwatch`** under the same **`Root`** as the panel so the preview stays in sync.
34
+ - Put the interactive surface (area, sliders, swatches, **`HexInput`**, **`ChannelStrip`**) inside **`Popover.Content`** (or modal/drawer) in product layouts; pair with [Button](../button/COMPONENT.md) + **`TriggerSwatch`** or an accessible trigger.
35
+ - Wrap subtree that needs format switching or the strip in **`FormatProvider`** before **`FormatSelect`**, **`ChannelStrip`**, or strip-driven cells. **`FormatSelect`** returns **`null`** outside **`FormatProvider`**.
36
+ - Typical panel order: **`FormatProvider`** → optional **`FormatSelect`** → **`Area`** + **`AreaThumb`** → **`Slider`** trees (**`SliderMeta`** optional, then **`SliderTrack`** → **`Thumb`**) → **`ChannelStrip`** (**`pipetteIcon`** required) → optional **`SwatchPicker`** / **`SwatchPickerItem`** / **`Swatch`** → optional **`HexInput`** or RAC **`Field`**.
37
+ - **`EyeDropperButton`** is embedded in **`ChannelStrip`**; pass **`pipetteIcon`** (e.g. [Button.Icon](../button/COMPONENT.md) + icon). Standalone use is possible under the same **`Root`** with an explicit **`aria-label`** if needed.
38
+
39
+ ### Minimal example
40
+
41
+ ```tsx
42
+ import { Button, ColorPicker, Popover } from "prime-ui-kit";
43
+
44
+ export function MinimalColorField() {
45
+ return (
46
+ <ColorPicker.Root defaultValue="#3b82f6">
47
+ <Popover.Root>
48
+ <Popover.Trigger asChild>
49
+ <Button.Root mode="stroke" size="m" variant="neutral">
50
+ <ColorPicker.TriggerSwatch />
51
+ Color
52
+ </Button.Root>
53
+ </Popover.Trigger>
54
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
55
+ <ColorPicker.FormatProvider>
56
+ <ColorPicker.FormatSelect />
57
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
58
+ <ColorPicker.AreaThumb />
59
+ </ColorPicker.Area>
60
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
61
+ </ColorPicker.FormatProvider>
62
+ </Popover.Content>
63
+ </Popover.Root>
64
+ </ColorPicker.Root>
65
+ );
66
+ }
67
+ ```
68
+
69
+ ### Rules
70
+
71
+ - **Controlled:** **`value`** + **`onChange`** when the parent owns color; **`defaultValue`** when uncontrolled. **`onChange`** receives **`Color`**.
72
+ - Type with **`ColorPickerColorValue`** (re-export of RAC **`Color`**) or import **`Color`** from **`react-aria-components`**. Initialize **`useState`** from strings via **`parseColor`** from **`prime-ui-kit`** (**throws** on invalid strings).
73
+ - **`children`** on **`Root`** may be a render function receiving **`ColorPickerRenderProps`** (`{ color }`).
74
+ - There is **no** single **`isDisabled`** on **`Root`**—disable **`Area`**, **`Slider`**, **`SwatchPickerItem`**, or use a disabled **`fieldset`** where appropriate.
75
+ - **`ChannelStrip`** must receive **`pipetteIcon`**. Without **`EyeDropper`**, the control is disabled and **`aria-hidden`**—do not rely on it alone.
76
+ - **`FormatProvider`** sets initial strip mode via **`defaultFormat`**: **`"hsl"`** | **`"rgb"`** | **`"hex"`**.
77
+ - **`HexInput`** and strip hex cells **revert** invalid input on blur/Enter; numeric strip cells **ignore** non-numeric commits.
78
+ - **`SwatchPicker`** needs an accessible name (**`aria-label`** or associated label). Follow RAC for **`SwatchPicker`** / **`SwatchPickerItem`** selection props.
79
+ - **`Area`**, **`Slider`**, **`Swatch`**, etc. use RAC prop surfaces (e.g. **`Area`**: **`colorSpace`**, **`xChannel`**, **`yChannel`**; **`Slider`**: **`channel`**, optional **`colorSpace`**, **`orientation`**, **`isDisabled`**).
80
+
81
+ ### API
82
+
83
+ #### ColorPicker.Root
84
+
85
+ | Prop | Type | Default | Required | Description |
86
+ |------|------|---------|----------|-------------|
87
+ | value | `string \| Color` | — | No | Controlled color value |
88
+ | defaultValue | `string \| Color` | — | No | Initial color when uncontrolled |
89
+ | onChange | `(color: Color) => void` | — | No | Fires when any nested control changes the color |
90
+ | children | `ReactNode \| (props: ColorPickerRenderProps) => ReactNode` | — | Yes | Pickers, triggers, and panels sharing state |
91
+ | slot | `string \| null` | — | No | Slotted context name (RAC `SlotProps`) |
92
+ | className | `string \| (values) => string` | — | No | Root element classes (RAC render props) |
93
+ | …rest | RAC + DOM | — | No | Other **`ColorPickerRootProps`** / `AriaColorPickerProps` from react-aria-components |
94
+
95
+ #### ColorPicker.FormatProvider
96
+
97
+ | Prop | Type | Default | Required | Description |
98
+ |------|------|---------|----------|-------------|
99
+ | children | `ReactNode` | — | Yes | Subtree that may use `FormatSelect` and `ChannelStrip` |
100
+ | defaultFormat | `"hsl" \| "rgb" \| "hex"` | `"hsl"` | No | Initial format for the strip and format select |
101
+
102
+ #### ColorPicker.FormatSelect
103
+
104
+ | Prop | Type | Default | Required | Description |
105
+ |------|------|---------|----------|-------------|
106
+ | className | `string` | — | No | Class on the wrapper around the kit [Select](../select/COMPONENT.md) |
107
+
108
+ Renders `null` when not under `FormatProvider`.
109
+
110
+ #### ColorPicker.ChannelStrip
111
+
112
+ | Prop | Type | Default | Required | Description |
113
+ |------|------|---------|----------|-------------|
114
+ | pipetteIcon | `ReactNode` | — | Yes | Icon for the embedded eyedropper ([Button.Icon](../button/COMPONENT.md) + icon) |
115
+ | className | `string` | — | No | Class on the strip container |
116
+
117
+ #### ColorPicker.HexInput
118
+
119
+ | Prop | Type | Default | Required | Description |
120
+ |------|------|---------|----------|-------------|
121
+ | size | `"s" \| "m" \| "l" \| "xl"` | `"m"` | No | Passed to kit [Input](../input/COMPONENT.md) |
122
+ | label | `ReactNode` | `"Hex"` | No | Field label |
123
+ | className | `string` | — | No | Class on `Input.Root` |
124
+
125
+ #### ColorPicker.TriggerSwatch
126
+
127
+ | Prop | Type | Default | Required | Description |
128
+ |------|------|---------|----------|-------------|
129
+ | className | `string` | — | No | Class on the preview square |
130
+
131
+ #### ColorPicker.SliderMeta
132
+
133
+ | Prop | Type | Default | Required | Description |
134
+ |------|------|---------|----------|-------------|
135
+ | label | `ReactNode` | — | Yes | Left label; current channel value on the right via `Output` |
136
+
137
+ #### ColorPicker.EyeDropperButton
138
+
139
+ Same props as **`Button.Root`** except **`variant`**, **`mode`**, and **`size`** are fixed (`neutral`, `stroke`, `m`). Forwarded ref: **`HTMLButtonElement`**. Children are usually **`Button.Icon`**.
140
+
141
+ #### ColorPicker.Area, AreaThumb, Slider, SliderTrack, Thumb, Output, Field, SwatchPicker, SwatchPickerItem, Swatch
142
+
143
+ Styled wrappers around matching **react-aria-components** primitives; use their RAC APIs. **`Swatch`** and **`SliderTrack`** add checkerboard layering for transparency in kit styles.
144
+
145
+ #### `parseColor(value: string): Color`
146
+
147
+ Parses a CSS color string into **`Color`**. **Throws** if parsing fails.
148
+
149
+ Exported types: **`ColorPickerRootProps`**, **`ColorPickerHexInputProps`**, **`ColorPickerFormatProviderProps`**, **`ColorPickerTriggerSwatchProps`**, **`ColorValueFormat`**, **`ColorPickerRenderProps`**, **`ColorPickerColorValue`**.
150
+
151
+ ### Related
152
+
153
+ - [Popover](../popover/COMPONENT.md)
154
+ - [Button](../button/COMPONENT.md)
155
+ - [Input](../input/COMPONENT.md)
156
+ - [Select](../select/COMPONENT.md)
157
+ - [Modal](../modal/COMPONENT.md)
158
+ - [Drawer](../drawer/COMPONENT.md)
159
+ - [Label](../label/COMPONENT.md)
160
+ - [Typography](../typography/COMPONENT.md)
161
+
162
+ ## LLM note
163
+
164
+ - Always place **`FormatProvider`** above **`FormatSelect`**, **`ChannelStrip`**, or any code path that calls into strip format context—missing provider throws at runtime.
165
+ - **`ChannelStrip`** requires **`pipetteIcon`**; use a real icon node or a minimal **`<span aria-hidden />`** only for docs/tests.
166
+ - **`TriggerSwatch`** is **`aria-hidden`**; the trigger **Button** (or other control) must expose the purpose via visible text or **`aria-label`**.
167
+ - Controlled integration: **`value`** can be **`string | Color`**; **`onChange`** always yields **`Color`**—serialize with **`toString(...)`** for APIs expecting strings.
168
+ - **`parseColor`** throws on bad input; guard user paste if you cannot tolerate exceptions.
169
+ - Dense UIs: mount the picker body in **[Popover](../popover/COMPONENT.md)** / **[Modal](../modal/COMPONENT.md)** / **[Drawer](../drawer/COMPONENT.md)**, not inline in toolbars.
170
+ - Do not assume **`EyeDropper`** exists; provide sliders, hex, or swatches as primary input paths.
171
+ - For copy-paste recipes, start from **`examples/minimal-popover.tsx`** or the **Minimal example** above, then add sliders, **`SwatchPicker`**, or **`HexInput`** per scenario.
@@ -0,0 +1,48 @@
1
+ import { Button, ColorPicker, Popover, Typography } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ const BRAND_PRESETS = ["#0f172a", "#1d4ed8", "#0369a1", "#15803d", "#b45309", "#be123c"];
5
+
6
+ /** Brand kit: fixed palette plus free adjustment — map presets to design tokens or CMS entries. */
7
+ export function BrandKitExample() {
8
+ const [open, setOpen] = React.useState(false);
9
+
10
+ return (
11
+ <ColorPicker.Root defaultValue="#1d4ed8">
12
+ <Popover.Root onOpenChange={setOpen} open={open}>
13
+ <Popover.Trigger asChild>
14
+ <Button.Root mode="stroke" size="m" variant="neutral">
15
+ <ColorPicker.TriggerSwatch />
16
+ Brand color
17
+ </Button.Root>
18
+ </Popover.Trigger>
19
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
20
+ <ColorPicker.FormatProvider>
21
+ <ColorPicker.FormatSelect />
22
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
23
+ <ColorPicker.AreaThumb />
24
+ </ColorPicker.Area>
25
+ <ColorPicker.Slider channel="hue" colorSpace="hsl">
26
+ <ColorPicker.SliderMeta label="Hue" />
27
+ <ColorPicker.SliderTrack>
28
+ <ColorPicker.Thumb />
29
+ </ColorPicker.SliderTrack>
30
+ </ColorPicker.Slider>
31
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
32
+ <Typography.Root as="p" tone="muted" variant="body-small" weight="medium">
33
+ Brand presets
34
+ </Typography.Root>
35
+ <ColorPicker.SwatchPicker aria-label="Brand color presets">
36
+ {BRAND_PRESETS.map((c) => (
37
+ <ColorPicker.SwatchPickerItem color={c} key={c}>
38
+ <ColorPicker.Swatch />
39
+ </ColorPicker.SwatchPickerItem>
40
+ ))}
41
+ </ColorPicker.SwatchPicker>
42
+ <ColorPicker.HexInput label="Hex" size="m" />
43
+ </ColorPicker.FormatProvider>
44
+ </Popover.Content>
45
+ </Popover.Root>
46
+ </ColorPicker.Root>
47
+ );
48
+ }
@@ -0,0 +1,40 @@
1
+ import { Button, ColorPicker, Label, Popover, parseColor } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ /** Form-friendly: parent owns string/Color state; popover for visual pick, HexInput for exact entry. */
5
+ export function ControlledFormFieldExample() {
6
+ const [color, setColor] = React.useState(() => parseColor("#3b82f6"));
7
+ const [open, setOpen] = React.useState(false);
8
+
9
+ return (
10
+ <div>
11
+ <Label.Root htmlFor="product-color-trigger" size="m">
12
+ Product color
13
+ </Label.Root>
14
+ <ColorPicker.Root onChange={setColor} value={color}>
15
+ <Popover.Root onOpenChange={setOpen} open={open}>
16
+ <Popover.Trigger asChild>
17
+ <Button.Root id="product-color-trigger" mode="stroke" size="m" variant="neutral">
18
+ <ColorPicker.TriggerSwatch />
19
+ Pick
20
+ </Button.Root>
21
+ </Popover.Trigger>
22
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
23
+ <ColorPicker.FormatProvider>
24
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
25
+ <ColorPicker.AreaThumb />
26
+ </ColorPicker.Area>
27
+ <ColorPicker.Slider channel="hue" colorSpace="hsl">
28
+ <ColorPicker.SliderTrack>
29
+ <ColorPicker.Thumb />
30
+ </ColorPicker.SliderTrack>
31
+ </ColorPicker.Slider>
32
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
33
+ </ColorPicker.FormatProvider>
34
+ </Popover.Content>
35
+ </Popover.Root>
36
+ <ColorPicker.HexInput label="Hex value" size="m" />
37
+ </ColorPicker.Root>
38
+ </div>
39
+ );
40
+ }
@@ -0,0 +1,26 @@
1
+ import { Button, ColorPicker, Popover } from "prime-ui-kit";
2
+
3
+ /** Smallest valid popover field: matches the documented composition skeleton. */
4
+ export function MinimalPopoverExample() {
5
+ return (
6
+ <ColorPicker.Root defaultValue="#3b82f6">
7
+ <Popover.Root>
8
+ <Popover.Trigger asChild>
9
+ <Button.Root mode="stroke" size="m" variant="neutral">
10
+ <ColorPicker.TriggerSwatch />
11
+ Color
12
+ </Button.Root>
13
+ </Popover.Trigger>
14
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
15
+ <ColorPicker.FormatProvider>
16
+ <ColorPicker.FormatSelect />
17
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
18
+ <ColorPicker.AreaThumb />
19
+ </ColorPicker.Area>
20
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
21
+ </ColorPicker.FormatProvider>
22
+ </Popover.Content>
23
+ </Popover.Root>
24
+ </ColorPicker.Root>
25
+ );
26
+ }
@@ -0,0 +1,42 @@
1
+ import { Button, ColorPicker, Popover } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ const VARIANTS = [
5
+ { id: "midnight", color: "#0c0a09" },
6
+ { id: "clay", color: "#c2410c" },
7
+ { id: "sage", color: "#4d7c0f" },
8
+ { id: "mist", color: "#94a3b8" },
9
+ ];
10
+
11
+ /** E-commerce variant color: fast swatch selection; optional fine tuning in the same root. */
12
+ export function ProductVariantSwatchExample() {
13
+ const [open, setOpen] = React.useState(false);
14
+
15
+ return (
16
+ <ColorPicker.Root defaultValue={VARIANTS[0]?.color ?? "#000000"}>
17
+ <Popover.Root onOpenChange={setOpen} open={open}>
18
+ <Popover.Trigger asChild>
19
+ <Button.Root mode="stroke" size="m" variant="neutral">
20
+ <ColorPicker.TriggerSwatch />
21
+ Color
22
+ </Button.Root>
23
+ </Popover.Trigger>
24
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
25
+ <ColorPicker.FormatProvider defaultFormat="hex">
26
+ <ColorPicker.SwatchPicker aria-label="Product color">
27
+ {VARIANTS.map((v) => (
28
+ <ColorPicker.SwatchPickerItem color={v.color} key={v.id}>
29
+ <ColorPicker.Swatch />
30
+ </ColorPicker.SwatchPickerItem>
31
+ ))}
32
+ </ColorPicker.SwatchPicker>
33
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
34
+ <ColorPicker.AreaThumb />
35
+ </ColorPicker.Area>
36
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
37
+ </ColorPicker.FormatProvider>
38
+ </Popover.Content>
39
+ </Popover.Root>
40
+ </ColorPicker.Root>
41
+ );
42
+ }
@@ -0,0 +1,46 @@
1
+ import { Button, ColorPicker, Popover, parseColor, Typography } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ /** Controlled accent: persist `color.toString("hex")` / `"css"` to your theme layer or API. */
5
+ export function ThemeAccentExample() {
6
+ const [color, setColor] = React.useState(() => parseColor("hsl(220, 90%, 56%)"));
7
+ const [open, setOpen] = React.useState(false);
8
+
9
+ return (
10
+ <div>
11
+ <Typography.Root as="p" variant="body-small" tone="muted">
12
+ Accent (CSS): {color.toString("css")}
13
+ </Typography.Root>
14
+ <ColorPicker.Root value={color} onChange={setColor}>
15
+ <Popover.Root onOpenChange={setOpen} open={open}>
16
+ <Popover.Trigger asChild>
17
+ <Button.Root
18
+ aria-label="Choose theme accent color"
19
+ mode="stroke"
20
+ size="m"
21
+ variant="neutral"
22
+ >
23
+ <ColorPicker.TriggerSwatch />
24
+ Accent
25
+ </Button.Root>
26
+ </Popover.Trigger>
27
+ <Popover.Content align="start" insetGap="x3" insetPadding="x2" side="bottom">
28
+ <ColorPicker.FormatProvider>
29
+ <ColorPicker.FormatSelect />
30
+ <ColorPicker.Area colorSpace="hsl" xChannel="saturation" yChannel="lightness">
31
+ <ColorPicker.AreaThumb />
32
+ </ColorPicker.Area>
33
+ <ColorPicker.Slider channel="hue" colorSpace="hsl">
34
+ <ColorPicker.SliderMeta label="Hue" />
35
+ <ColorPicker.SliderTrack>
36
+ <ColorPicker.Thumb />
37
+ </ColorPicker.SliderTrack>
38
+ </ColorPicker.Slider>
39
+ <ColorPicker.ChannelStrip pipetteIcon={<span aria-hidden />} />
40
+ </ColorPicker.FormatProvider>
41
+ </Popover.Content>
42
+ </Popover.Root>
43
+ </ColorPicker.Root>
44
+ </div>
45
+ );
46
+ }
@@ -0,0 +1,195 @@
1
+ # CommandMenu
2
+
3
+ **Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
4
+
5
+ ## Canonical
6
+
7
+ - **Namespace:** `CommandMenu` from `prime-ui-kit` — `Dialog`, `DialogTitle`, `DialogDescription`, `InputRow`, `Input`, `List`, `Group`, `Item`, `ItemIcon`, `TagSection` (+ `TagSectionLabel`, `TagRow`), `Footer`, `FooterKeyBox`.
8
+ - **Shell:** `CommandMenu.Dialog` = [Modal](../modal/COMPONENT.md) + internal provider; controlled via **`open`** / **`onOpenChange`** (or **`defaultOpen`**).
9
+ - **Tree:** `Dialog` → optional title/description → **`InputRow`** (optional `leading` / `trailing`, `density`) → **`Input`** → optional tag block → **`List`** → optional **`Footer`**. **`Item`** must live under **`List`** (inside **`Group`** recommended).
10
+ - **Filtering:** case-insensitive match on **`Item`** **`value`** + **`keywords`**; empty query shows all non-disabled items. **`disabled`** items are **dropped from the visible list and keyboard order** (not grayed in-place).
11
+ - **Input:** uncontrolled by default; **`value`** / **`onChange`** for controlled. **`type`** is fixed to `search`. From the combobox: ArrowUp/Down, Home, End, Enter (activate), Escape closes via Modal.
12
+ - **Remount:** opening a fresh dialog subtree resets search, active id, and focuses the input on the next frame.
13
+ - **Examples (TSX):** [`examples/app-palette.tsx`](./examples/app-palette.tsx), [`examples/file-search.tsx`](./examples/file-search.tsx), [`examples/quick-actions.tsx`](./examples/quick-actions.tsx), [`examples/disabled-items.tsx`](./examples/disabled-items.tsx).
14
+
15
+ ## Extended
16
+
17
+ ### About
18
+
19
+ A modal command palette: search field plus a filterable list of actions. Typing narrows visible options; users pick with pointer or keyboard while focus stays on the combobox input.
20
+
21
+ **When to use**
22
+
23
+ - **Dense navigation** — jump to sections, records, or actions without opening full menus (dashboards, CRM, admin).
24
+ - **Power-user flows** — one surface for “go to…” and “do…” when labels map cleanly to filter strings and `keywords`.
25
+ - **Keyboard-first desktops** — pair with your own global shortcut; arrow keys, Home, End, and Enter are handled from the search field.
26
+ - **Grouped actions** — optional section headings and optional tag row under the search for scope chips.
27
+
28
+ **When not to use**
29
+
30
+ - **Multi-select or bulk pick** — only one active option; no built-in multi-value selection.
31
+ - **Server-only search without a client list** — filtering is synchronous over registered items; huge lists need virtualization or a different pattern.
32
+ - **Non-modal pickers** — use [Dropdown](../dropdown/COMPONENT.md) or [Select](../select/COMPONENT.md) for inline single choice.
33
+ - **Built-in “no results” UX** — empty matches hide groups/items; you supply messaging or empty state markup yourself.
34
+ - **Visible but non-clickable rows** — `disabled` removes items from the palette entirely; render a normal **`Item`** with explanation, or omit it, if you need a “locked” hint.
35
+
36
+ ### Composition
37
+
38
+ - **`CommandMenu.Dialog`** wraps content in [Modal](../modal/COMPONENT.md) (`role="dialog"`) and mounts **`CommandMenuRootProvider`**: search string, active option, and item registry live here. Open state is controlled (`open` / `onOpenChange`) or uncontrolled (`defaultOpen`).
39
+ - **Recommended top order:** optional **`DialogTitle`** / **`DialogDescription`** (same typography shell as modal headings) → **`InputRow`** (optional slots **`leading`** / **`trailing`**) → **`Input`** → optional **`TagSection`** → **`TagSectionLabel`** / **`TagRow`** → **`List`** → optional **`Footer`** (optional **`FooterKeyBox`** for key hints).
40
+ - **`List`** is the **`listbox`** (`id` wired to the input’s **`aria-controls`**). **`Group`** wraps **`Item`** nodes; groups with no visible items get **`hidden`**. **`Item`** registers for filtering and keyboard activation; put **`ItemIcon`** and label text inside **`Item`**.
41
+ - **`Input`** may sit directly under **`Dialog`** without **`InputRow`** (valid markup); **`InputRow`** is the styled search row when you need leading/trailing slots or density.
42
+
43
+ ### Minimal example
44
+
45
+ ```tsx
46
+ import * as React from "react";
47
+ import { CommandMenu } from "prime-ui-kit";
48
+
49
+ export function Example() {
50
+ const [open, setOpen] = React.useState(false);
51
+ return (
52
+ <CommandMenu.Dialog open={open} onOpenChange={setOpen}>
53
+ <CommandMenu.InputRow>
54
+ <CommandMenu.Input placeholder="Search" aria-label="Search commands" />
55
+ </CommandMenu.InputRow>
56
+ <CommandMenu.List>
57
+ <CommandMenu.Item value="action" onSelect={() => setOpen(false)}>
58
+ Action
59
+ </CommandMenu.Item>
60
+ </CommandMenu.List>
61
+ </CommandMenu.Dialog>
62
+ );
63
+ }
64
+ ```
65
+
66
+ ### Scenario examples (source)
67
+
68
+ | File | Scenario |
69
+ |------|----------|
70
+ | [examples/app-palette.tsx](./examples/app-palette.tsx) | Global app palette (pages + settings), ⌘K, footer key hints |
71
+ | [examples/file-search.tsx](./examples/file-search.tsx) | File list: **`value`** / **`keywords`** for paths and tokens, **`ItemIcon`** |
72
+ | [examples/quick-actions.tsx](./examples/quick-actions.tsx) | Contextual quick actions (clipboard, people) in groups |
73
+ | [examples/disabled-items.tsx](./examples/disabled-items.tsx) | **`disabled`** excludes items from the list (not inactive rows) |
74
+
75
+ Playground mirrors: `playground/snippets/command-menu/*`.
76
+
77
+ ### Rules
78
+
79
+ - **Open state:** **`open`** + **`onOpenChange`** for controlled mode; **`defaultOpen`** (defaults to `false` via `Modal.Root`) for uncontrolled. Escape and overlay click close according to **`closeOnEscape`** and **`closeOnOverlayClick`** (both default `true`).
80
+ - **Search state:** **`Input`** is uncontrolled by default (internal `search` drives filtering). Pass **`value`** / **`onChange`** for controlled input; when **`value`** is set, internal state tracks it via an effect. **`type`** is always **`search`**; **`size`** is not a valid prop on **`Input`**.
81
+ - **Remount reset:** when the dialog content tree mounts, search and active item reset and the input is focused on the next animation frame—do not assume text persists across unmount.
82
+ - **Filtering:** matches run against normalized **`value`** and **`keywords`** together. **`disabled`** items are **not** included in **`visibleIds`** (they do not appear in the listbox and cannot be focused via keyboard). **`Item`** **`value`** is required (use empty string only when you intentionally want a row always visible for any query—see Rules in code comments in snippets).
83
+ - **Selection:** Enter activates the active option; click and pointer move on an enabled, visible item updates the active option and can fire **`onSelect`**. **`Item`** renders **`type="button"`**; do not rely on **`type`** override.
84
+ - **Panel styling:** **`className`** and **`contentClassName`** merge onto the dialog panel; width/height helpers (e.g. `dialogContentWide`, `dialogContentNarrow`, `dialogContentTight`) live in the component CSS module—import those classes in your app if you need them.
85
+ - **Accessibility:** set **`aria-labelledby`** (and **`DialogTitle`** with a matching **`id`**) or an appropriate **`aria-label`** on the dialog surface; **`Input`** exposes **`role="combobox"`**, **`aria-controls`**, and **`aria-activedescendant`**; **`List`** is **`listbox`**, **`Item`** is **`option`** with **`aria-selected`**. Modal focus trap and scroll lock follow [Modal](../modal/COMPONENT.md) behavior.
86
+ - **FooterKeyBox** wraps [Badge](../badge/COMPONENT.md) (`size="s"`, `color="gray"`); **`tone="muted"`** maps to badge variant **`lighter`**, default maps to **`stroke`**.
87
+
88
+ ## API
89
+
90
+ ### CommandMenu.Dialog
91
+
92
+ | Prop | Type | Default | Required | Description |
93
+ |------|------|---------|----------|-------------|
94
+ | children | `React.ReactNode` | — | no | Palette markup (provider runs inside the panel) |
95
+ | open | `boolean` | — | no | Controlled open state |
96
+ | defaultOpen | `boolean` | `false` | no | Initial open when uncontrolled |
97
+ | onOpenChange | `(open: boolean) => void` | — | no | Open state change callback |
98
+ | closeOnEscape | `boolean` | `true` | no | Close when Escape is pressed |
99
+ | closeOnOverlayClick | `boolean` | `true` | no | Close when the overlay is clicked |
100
+ | overlayClassName | `string` | — | no | Overlay wrapper class |
101
+ | className | `string` | — | no | Panel class (merged with internal dialog layout) |
102
+ | contentClassName | `string` | — | no | Additional panel class merged before `className` |
103
+ | aria-labelledby | `string` | — | no | IDs of labelling element(s) |
104
+ | aria-describedby | `string` | — | no | IDs of description element(s) |
105
+
106
+ ### CommandMenu.DialogTitle / CommandMenu.DialogDescription
107
+
108
+ | Part | Element | Notes |
109
+ |------|---------|--------|
110
+ | DialogTitle | `h2` | `React.HTMLAttributes<HTMLHeadingElement>` and `className`; same title class stack as modal shell |
111
+ | DialogDescription | `p` | `React.HTMLAttributes<HTMLParagraphElement>` and `className`; same description class stack as modal shell |
112
+
113
+ ### CommandMenu.InputRow
114
+
115
+ | Prop | Type | Default | Required | Description |
116
+ |------|------|---------|----------|-------------|
117
+ | children | `React.ReactNode` | — | no | Typically **`Input`** |
118
+ | leading | `React.ReactNode` | — | no | Start slot |
119
+ | trailing | `React.ReactNode` | — | no | End slot |
120
+ | density | `"compact" \| "comfortable"` | `"compact"` | no | Search row vertical padding |
121
+ | className | `string` | — | no | Wrapper class |
122
+ | …rest | `React.HTMLAttributes<HTMLDivElement>` | — | no | Forwarded to the row `div` |
123
+
124
+ ### CommandMenu.Input
125
+
126
+ | Prop | Type | Default | Required | Description |
127
+ |------|------|---------|----------|-------------|
128
+ | value | `string` (and other input value types) | — | no | Controlled value; when set, filters sync from this value |
129
+ | onChange | `React.ChangeEventHandler<HTMLInputElement>` | — | no | Standard change handler; internal state updates when uncontrolled |
130
+ | className | `string` | — | no | Input class |
131
+ | …rest | `Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" \| "type">` | — | no | Other attributes except `size` and `type` (`type` is fixed to `search`) |
132
+
133
+ ### CommandMenu.List
134
+
135
+ | Prop | Type | Default | Required | Description |
136
+ |------|------|---------|----------|-------------|
137
+ | children | `React.ReactNode` | — | no | Groups and/or items |
138
+ | className | `string` | — | no | List surface class |
139
+ | …rest | `React.HTMLAttributes<HTMLDivElement>` | — | no | Passed through to the scroll container root (`role="listbox"`, stable `id` for `aria-controls`) |
140
+
141
+ ### CommandMenu.Group
142
+
143
+ | Prop | Type | Default | Required | Description |
144
+ |------|------|---------|----------|-------------|
145
+ | heading | `React.ReactNode` | — | no | Section label (string vs node pick different heading wrappers) |
146
+ | children | `React.ReactNode` | — | no | **`Item`** elements |
147
+ | className | `string` | — | no | Group container class |
148
+ | …rest | `React.HTMLAttributes<HTMLDivElement>` | — | no | Forwarded to the group `div`; container is **`hidden`** when no visible items belong to the group |
149
+
150
+ ### CommandMenu.Item
151
+
152
+ | Prop | Type | Default | Required | Description |
153
+ |------|------|---------|----------|-------------|
154
+ | value | `string` | — | yes | Text participating in filter matching |
155
+ | keywords | `string` | `""` | no | Extra space for matching (not shown as the label) |
156
+ | size | `CommandMenuItemSize` (`"s"` \| `"m"`) | `"s"` | no | Row density / type scale |
157
+ | onSelect | `() => void` | — | no | Called when the item is chosen (click or keyboard activate) |
158
+ | disabled | `boolean` | — | no | Excluded from the visible list and activation (not shown as a dimmed option) |
159
+ | className | `string` | — | no | Button class |
160
+ | …rest | `Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" \| "onSelect">` | — | no | Other button props; `type` is always `button` |
161
+
162
+ ### CommandMenu.ItemIcon
163
+
164
+ Polymorphic icon slot: `as` (element type, default `"span"`), `className`, and remaining props forwarded to the chosen component (see `CommandMenuItemIconProps`).
165
+
166
+ ### CommandMenu.TagSection / TagSectionLabel / TagRow
167
+
168
+ `React.HTMLAttributes<HTMLDivElement>` with `className` and `children` for the optional block between search and list.
169
+
170
+ ### CommandMenu.Footer
171
+
172
+ `React.HTMLAttributes<HTMLDivElement>` with `className` and `children`; base styles from the module (e.g. footer layout tokens). Optional module classes such as `footerMuted` apply via `className` when you import the stylesheet.
173
+
174
+ ### CommandMenu.FooterKeyBox
175
+
176
+ | Prop | Type | Default | Required | Description |
177
+ |------|------|---------|----------|-------------|
178
+ | children | `React.ReactNode` | — | no | Key cap or icon (rendered inside `Badge.Icon`) |
179
+ | tone | `"default" \| "muted"` | `"default"` | no | Badge visual variant (`stroke` vs `lighter`) |
180
+ | className | `string` | — | no | Extra class on the badge root |
181
+ | …rest | `Omit<React.HTMLAttributes<HTMLDivElement>, "color">` | — | no | Additional attributes except `color` |
182
+
183
+ ## Related
184
+
185
+ - [Modal](../modal/COMPONENT.md) — dialog shell, focus trap, portal
186
+ - [Badge](../badge/COMPONENT.md) — used inside **`FooterKeyBox`**
187
+ - [Button](../button/COMPONENT.md), [LinkButton](../link-button/COMPONENT.md) — triggers and links outside the palette
188
+ - [Tag](../tag/COMPONENT.md) — common companion for **`TagRow`**
189
+ - [Kbd](../kbd/COMPONENT.md) — shortcut hints in **`InputRow`** trailing slot
190
+ - [Typography](../typography/COMPONENT.md) — titles, hints, footer copy
191
+ - [Dropdown](../dropdown/COMPONENT.md), [Select](../select/COMPONENT.md) — non-modal single-choice lists
192
+
193
+ ## LLM note
194
+
195
+ When generating or refactoring CommandMenu usage: import **`CommandMenu`** from **`prime-ui-kit`** only; do not reimplement modal, listbox, or filter logic. Always pass **`open`** / **`onOpenChange`** (or **`defaultOpen`**) on **`Dialog`**, put **`Input`** inside **`InputRow`** for standard chrome, and give **`Input`** an **`aria-label`** (or associated label). Every **`Item`** needs a **`value`** string; add **`keywords`** for synonyms and path segments. Do not set **`disabled`** expecting a visible inactive row—those entries are removed from the palette; use conditional JSX or a non-**`Item`** hint if the UX must mention unavailable actions. For global palettes, document **`aria-labelledby`** + **`DialogTitle`** **`id`**. Prefer the four **`examples/*.tsx`** files as structural templates (app routes, file picker, actions, disabled semantics).