prime-ui-kit 0.3.1 → 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 (669) hide show
  1. package/README.md +6 -2
  2. package/dist/components/accordion/examples/01-faq-marketing.d.ts +5 -0
  3. package/dist/components/accordion/examples/01-faq-marketing.d.ts.map +1 -0
  4. package/dist/components/accordion/examples/02-settings-panels.d.ts +6 -0
  5. package/dist/components/accordion/examples/02-settings-panels.d.ts.map +1 -0
  6. package/dist/components/accordion/examples/03-checkout-order-summary.d.ts +5 -0
  7. package/dist/components/accordion/examples/03-checkout-order-summary.d.ts.map +1 -0
  8. package/dist/components/accordion/examples/04-api-docs-sections.d.ts +6 -0
  9. package/dist/components/accordion/examples/04-api-docs-sections.d.ts.map +1 -0
  10. package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts +6 -0
  11. package/dist/components/accordion/examples/05-knowledge-base-categories.d.ts.map +1 -0
  12. package/dist/components/avatar/examples/app-header-nav.d.ts +5 -0
  13. package/dist/components/avatar/examples/app-header-nav.d.ts.map +1 -0
  14. package/dist/components/avatar/examples/comment-thread.d.ts +5 -0
  15. package/dist/components/avatar/examples/comment-thread.d.ts.map +1 -0
  16. package/dist/components/avatar/examples/fallback-variants.d.ts +5 -0
  17. package/dist/components/avatar/examples/fallback-variants.d.ts.map +1 -0
  18. package/dist/components/avatar/examples/group-overflow.d.ts +5 -0
  19. package/dist/components/avatar/examples/group-overflow.d.ts.map +1 -0
  20. package/dist/components/avatar/examples/team-list.d.ts +5 -0
  21. package/dist/components/avatar/examples/team-list.d.ts.map +1 -0
  22. package/dist/components/badge/examples/admin-tags.d.ts +3 -0
  23. package/dist/components/badge/examples/admin-tags.d.ts.map +1 -0
  24. package/dist/components/badge/examples/canonical.d.ts +3 -0
  25. package/dist/components/badge/examples/canonical.d.ts.map +1 -0
  26. package/dist/components/badge/examples/ecommerce-inventory.d.ts +3 -0
  27. package/dist/components/badge/examples/ecommerce-inventory.d.ts.map +1 -0
  28. package/dist/components/badge/examples/inbox-labels.d.ts +3 -0
  29. package/dist/components/badge/examples/inbox-labels.d.ts.map +1 -0
  30. package/dist/components/badge/examples/status-presence.d.ts +6 -0
  31. package/dist/components/badge/examples/status-presence.d.ts.map +1 -0
  32. package/dist/components/banner/examples/billing-alert.d.ts +3 -0
  33. package/dist/components/banner/examples/billing-alert.d.ts.map +1 -0
  34. package/dist/components/banner/examples/cookie-consent-row.d.ts +3 -0
  35. package/dist/components/banner/examples/cookie-consent-row.d.ts.map +1 -0
  36. package/dist/components/banner/examples/feature-promo.d.ts +3 -0
  37. package/dist/components/banner/examples/feature-promo.d.ts.map +1 -0
  38. package/dist/components/banner/examples/maintenance.d.ts +3 -0
  39. package/dist/components/banner/examples/maintenance.d.ts.map +1 -0
  40. package/dist/components/breadcrumb/examples/canonical.d.ts +3 -0
  41. package/dist/components/breadcrumb/examples/canonical.d.ts.map +1 -0
  42. package/dist/components/breadcrumb/examples/deep-documentation.d.ts +3 -0
  43. package/dist/components/breadcrumb/examples/deep-documentation.d.ts.map +1 -0
  44. package/dist/components/breadcrumb/examples/ecommerce-product.d.ts +3 -0
  45. package/dist/components/breadcrumb/examples/ecommerce-product.d.ts.map +1 -0
  46. package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts +6 -0
  47. package/dist/components/breadcrumb/examples/long-path-ellipsis.d.ts.map +1 -0
  48. package/dist/components/breadcrumb/examples/saas-settings.d.ts +3 -0
  49. package/dist/components/breadcrumb/examples/saas-settings.d.ts.map +1 -0
  50. package/dist/components/button/examples/canonical-composition.d.ts +5 -0
  51. package/dist/components/button/examples/canonical-composition.d.ts.map +1 -0
  52. package/dist/components/button/examples/destructive-confirm.d.ts +5 -0
  53. package/dist/components/button/examples/destructive-confirm.d.ts.map +1 -0
  54. package/dist/components/button/examples/form-submit-row.d.ts +5 -0
  55. package/dist/components/button/examples/form-submit-row.d.ts.map +1 -0
  56. package/dist/components/button/examples/marketing-cta.d.ts +5 -0
  57. package/dist/components/button/examples/marketing-cta.d.ts.map +1 -0
  58. package/dist/components/button/examples/toolbar.d.ts +5 -0
  59. package/dist/components/button/examples/toolbar.d.ts.map +1 -0
  60. package/dist/components/button-group/examples/editor-toolbar.d.ts +6 -0
  61. package/dist/components/button-group/examples/editor-toolbar.d.ts.map +1 -0
  62. package/dist/components/button-group/examples/form-footer.d.ts +5 -0
  63. package/dist/components/button-group/examples/form-footer.d.ts.map +1 -0
  64. package/dist/components/button-group/examples/view-switcher.d.ts +5 -0
  65. package/dist/components/button-group/examples/view-switcher.d.ts.map +1 -0
  66. package/dist/components/button-group/examples/wizard-actions.d.ts +5 -0
  67. package/dist/components/button-group/examples/wizard-actions.d.ts.map +1 -0
  68. package/dist/components/card/examples/cta-cover.d.ts +5 -0
  69. package/dist/components/card/examples/cta-cover.d.ts.map +1 -0
  70. package/dist/components/card/examples/list-card.d.ts +3 -0
  71. package/dist/components/card/examples/list-card.d.ts.map +1 -0
  72. package/dist/components/card/examples/media-mini.d.ts +3 -0
  73. package/dist/components/card/examples/media-mini.d.ts.map +1 -0
  74. package/dist/components/card/examples/metric-dashboard.d.ts +3 -0
  75. package/dist/components/card/examples/metric-dashboard.d.ts.map +1 -0
  76. package/dist/components/card/examples/split-layout.d.ts +3 -0
  77. package/dist/components/card/examples/split-layout.d.ts.map +1 -0
  78. package/dist/components/checkbox/examples/bulk-select-rows.d.ts +5 -0
  79. package/dist/components/checkbox/examples/bulk-select-rows.d.ts.map +1 -0
  80. package/dist/components/checkbox/examples/feature-flags-list.d.ts +5 -0
  81. package/dist/components/checkbox/examples/feature-flags-list.d.ts.map +1 -0
  82. package/dist/components/checkbox/examples/settings-panel.d.ts +5 -0
  83. package/dist/components/checkbox/examples/settings-panel.d.ts.map +1 -0
  84. package/dist/components/checkbox/examples/terms-acceptance.d.ts +5 -0
  85. package/dist/components/checkbox/examples/terms-acceptance.d.ts.map +1 -0
  86. package/dist/components/code-block/examples/api-response-preview.d.ts +3 -0
  87. package/dist/components/code-block/examples/api-response-preview.d.ts.map +1 -0
  88. package/dist/components/code-block/examples/config-snippet.d.ts +3 -0
  89. package/dist/components/code-block/examples/config-snippet.d.ts.map +1 -0
  90. package/dist/components/code-block/examples/error-stack.d.ts +3 -0
  91. package/dist/components/code-block/examples/error-stack.d.ts.map +1 -0
  92. package/dist/components/code-block/examples/minimal.d.ts +3 -0
  93. package/dist/components/code-block/examples/minimal.d.ts.map +1 -0
  94. package/dist/components/code-block/examples/tutorial-step.d.ts +3 -0
  95. package/dist/components/code-block/examples/tutorial-step.d.ts.map +1 -0
  96. package/dist/components/color-picker/examples/brand-kit.d.ts +3 -0
  97. package/dist/components/color-picker/examples/brand-kit.d.ts.map +1 -0
  98. package/dist/components/color-picker/examples/controlled-form-field.d.ts +3 -0
  99. package/dist/components/color-picker/examples/controlled-form-field.d.ts.map +1 -0
  100. package/dist/components/color-picker/examples/minimal-popover.d.ts +3 -0
  101. package/dist/components/color-picker/examples/minimal-popover.d.ts.map +1 -0
  102. package/dist/components/color-picker/examples/product-variant-swatch.d.ts +3 -0
  103. package/dist/components/color-picker/examples/product-variant-swatch.d.ts.map +1 -0
  104. package/dist/components/color-picker/examples/theme-accent.d.ts +3 -0
  105. package/dist/components/color-picker/examples/theme-accent.d.ts.map +1 -0
  106. package/dist/components/command-menu/examples/app-palette.d.ts +5 -0
  107. package/dist/components/command-menu/examples/app-palette.d.ts.map +1 -0
  108. package/dist/components/command-menu/examples/disabled-items.d.ts +6 -0
  109. package/dist/components/command-menu/examples/disabled-items.d.ts.map +1 -0
  110. package/dist/components/command-menu/examples/file-search.d.ts +5 -0
  111. package/dist/components/command-menu/examples/file-search.d.ts.map +1 -0
  112. package/dist/components/command-menu/examples/quick-actions.d.ts +5 -0
  113. package/dist/components/command-menu/examples/quick-actions.d.ts.map +1 -0
  114. package/dist/components/data-table/examples/canonical-orders.d.ts +6 -0
  115. package/dist/components/data-table/examples/canonical-orders.d.ts.map +1 -0
  116. package/dist/components/data-table/examples/controlled-sort-and-page.d.ts +5 -0
  117. package/dist/components/data-table/examples/controlled-sort-and-page.d.ts.map +1 -0
  118. package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts +6 -0
  119. package/dist/components/data-table/examples/infinite-scroll-load-more.d.ts.map +1 -0
  120. package/dist/components/data-table/examples/row-selection.d.ts +6 -0
  121. package/dist/components/data-table/examples/row-selection.d.ts.map +1 -0
  122. package/dist/components/data-table/examples/sticky-header-first-column.d.ts +6 -0
  123. package/dist/components/data-table/examples/sticky-header-first-column.d.ts.map +1 -0
  124. package/dist/components/datepicker/examples/birthdate.d.ts +5 -0
  125. package/dist/components/datepicker/examples/birthdate.d.ts.map +1 -0
  126. package/dist/components/datepicker/examples/booking.d.ts +5 -0
  127. package/dist/components/datepicker/examples/booking.d.ts.map +1 -0
  128. package/dist/components/datepicker/examples/full-width-form.d.ts +5 -0
  129. package/dist/components/datepicker/examples/full-width-form.d.ts.map +1 -0
  130. package/dist/components/datepicker/examples/range-report.d.ts +5 -0
  131. package/dist/components/datepicker/examples/range-report.d.ts.map +1 -0
  132. package/dist/components/digit-input/examples/error-state.d.ts +3 -0
  133. package/dist/components/digit-input/examples/error-state.d.ts.map +1 -0
  134. package/dist/components/digit-input/examples/otp-login.d.ts +3 -0
  135. package/dist/components/digit-input/examples/otp-login.d.ts.map +1 -0
  136. package/dist/components/digit-input/examples/pin.d.ts +3 -0
  137. package/dist/components/digit-input/examples/pin.d.ts.map +1 -0
  138. package/dist/components/digit-input/examples/resend-and-clear.d.ts +3 -0
  139. package/dist/components/digit-input/examples/resend-and-clear.d.ts.map +1 -0
  140. package/dist/components/digit-input/examples/verification-step.d.ts +3 -0
  141. package/dist/components/digit-input/examples/verification-step.d.ts.map +1 -0
  142. package/dist/components/divider/examples/card-splits.d.ts +3 -0
  143. package/dist/components/divider/examples/card-splits.d.ts.map +1 -0
  144. package/dist/components/divider/examples/inset-stack.d.ts +6 -0
  145. package/dist/components/divider/examples/inset-stack.d.ts.map +1 -0
  146. package/dist/components/divider/examples/line-spacing-column.d.ts +6 -0
  147. package/dist/components/divider/examples/line-spacing-column.d.ts.map +1 -0
  148. package/dist/components/divider/examples/list-separators.d.ts +3 -0
  149. package/dist/components/divider/examples/list-separators.d.ts.map +1 -0
  150. package/dist/components/divider/examples/section-breaks.d.ts +3 -0
  151. package/dist/components/divider/examples/section-breaks.d.ts.map +1 -0
  152. package/dist/components/drawer/examples/cart-preview.d.ts +5 -0
  153. package/dist/components/drawer/examples/cart-preview.d.ts.map +1 -0
  154. package/dist/components/drawer/examples/explicit-panel.d.ts +5 -0
  155. package/dist/components/drawer/examples/explicit-panel.d.ts.map +1 -0
  156. package/dist/components/drawer/examples/filters-panel.d.ts +5 -0
  157. package/dist/components/drawer/examples/filters-panel.d.ts.map +1 -0
  158. package/dist/components/drawer/examples/mobile-nav-sheet.d.ts +5 -0
  159. package/dist/components/drawer/examples/mobile-nav-sheet.d.ts.map +1 -0
  160. package/dist/components/drawer/examples/settings-side.d.ts +5 -0
  161. package/dist/components/drawer/examples/settings-side.d.ts.map +1 -0
  162. package/dist/components/dropdown/examples/account-menu.d.ts +3 -0
  163. package/dist/components/dropdown/examples/account-menu.d.ts.map +1 -0
  164. package/dist/components/dropdown/examples/actions-menu.d.ts +3 -0
  165. package/dist/components/dropdown/examples/actions-menu.d.ts.map +1 -0
  166. package/dist/components/dropdown/examples/placement-demo.d.ts +3 -0
  167. package/dist/components/dropdown/examples/placement-demo.d.ts.map +1 -0
  168. package/dist/components/dropdown/examples/select-like-list.d.ts +7 -0
  169. package/dist/components/dropdown/examples/select-like-list.d.ts.map +1 -0
  170. package/dist/components/file-upload/examples/avatar-upload.d.ts +6 -0
  171. package/dist/components/file-upload/examples/avatar-upload.d.ts.map +1 -0
  172. package/dist/components/file-upload/examples/controlled-list.d.ts +5 -0
  173. package/dist/components/file-upload/examples/controlled-list.d.ts.map +1 -0
  174. package/dist/components/file-upload/examples/document-attach.d.ts +5 -0
  175. package/dist/components/file-upload/examples/document-attach.d.ts.map +1 -0
  176. package/dist/components/file-upload/examples/drag-area.d.ts +5 -0
  177. package/dist/components/file-upload/examples/drag-area.d.ts.map +1 -0
  178. package/dist/components/hint/examples/error-hint.d.ts +3 -0
  179. package/dist/components/hint/examples/error-hint.d.ts.map +1 -0
  180. package/dist/components/hint/examples/field-help.d.ts +3 -0
  181. package/dist/components/hint/examples/field-help.d.ts.map +1 -0
  182. package/dist/components/hint/examples/inline-tip-form.d.ts +3 -0
  183. package/dist/components/hint/examples/inline-tip-form.d.ts.map +1 -0
  184. package/dist/components/hint/examples/success-confirmation.d.ts +6 -0
  185. package/dist/components/hint/examples/success-confirmation.d.ts.map +1 -0
  186. package/dist/components/hint/examples/with-icon.d.ts +3 -0
  187. package/dist/components/hint/examples/with-icon.d.ts.map +1 -0
  188. package/dist/components/input/examples/checkout-full-width.d.ts +5 -0
  189. package/dist/components/input/examples/checkout-full-width.d.ts.map +1 -0
  190. package/dist/components/input/examples/login-email.d.ts +5 -0
  191. package/dist/components/input/examples/login-email.d.ts.map +1 -0
  192. package/dist/components/input/examples/password-with-hint.d.ts +5 -0
  193. package/dist/components/input/examples/password-with-hint.d.ts.map +1 -0
  194. package/dist/components/input/examples/search.d.ts +5 -0
  195. package/dist/components/input/examples/search.d.ts.map +1 -0
  196. package/dist/components/kbd/examples/combination-keys.d.ts +3 -0
  197. package/dist/components/kbd/examples/combination-keys.d.ts.map +1 -0
  198. package/dist/components/kbd/examples/docs-legend.d.ts +3 -0
  199. package/dist/components/kbd/examples/docs-legend.d.ts.map +1 -0
  200. package/dist/components/kbd/examples/inline-doc-hint.d.ts +3 -0
  201. package/dist/components/kbd/examples/inline-doc-hint.d.ts.map +1 -0
  202. package/dist/components/kbd/examples/shortcut-row.d.ts +3 -0
  203. package/dist/components/kbd/examples/shortcut-row.d.ts.map +1 -0
  204. package/dist/components/kbd/examples/toolbar-hints.d.ts +3 -0
  205. package/dist/components/kbd/examples/toolbar-hints.d.ts.map +1 -0
  206. package/dist/components/label/examples/accessibility-pattern.d.ts +6 -0
  207. package/dist/components/label/examples/accessibility-pattern.d.ts.map +1 -0
  208. package/dist/components/label/examples/grouped-labels.d.ts +6 -0
  209. package/dist/components/label/examples/grouped-labels.d.ts.map +1 -0
  210. package/dist/components/label/examples/optional-field.d.ts +3 -0
  211. package/dist/components/label/examples/optional-field.d.ts.map +1 -0
  212. package/dist/components/label/examples/required-field.d.ts +3 -0
  213. package/dist/components/label/examples/required-field.d.ts.map +1 -0
  214. package/dist/components/label/examples/with-icon.d.ts +3 -0
  215. package/dist/components/label/examples/with-icon.d.ts.map +1 -0
  216. package/dist/components/link-button/examples/disabled.d.ts +6 -0
  217. package/dist/components/link-button/examples/disabled.d.ts.map +1 -0
  218. package/dist/components/link-button/examples/external.d.ts +3 -0
  219. package/dist/components/link-button/examples/external.d.ts.map +1 -0
  220. package/dist/components/link-button/examples/footer-legal.d.ts +3 -0
  221. package/dist/components/link-button/examples/footer-legal.d.ts.map +1 -0
  222. package/dist/components/link-button/examples/inline-text-link.d.ts +3 -0
  223. package/dist/components/link-button/examples/inline-text-link.d.ts.map +1 -0
  224. package/dist/components/link-button/examples/navigation-cluster.d.ts +3 -0
  225. package/dist/components/link-button/examples/navigation-cluster.d.ts.map +1 -0
  226. package/dist/components/modal/examples/canonical-maximal.d.ts +6 -0
  227. package/dist/components/modal/examples/canonical-maximal.d.ts.map +1 -0
  228. package/dist/components/modal/examples/scenario-confirm-delete.d.ts +3 -0
  229. package/dist/components/modal/examples/scenario-confirm-delete.d.ts.map +1 -0
  230. package/dist/components/modal/examples/scenario-edit-entity.d.ts +3 -0
  231. package/dist/components/modal/examples/scenario-edit-entity.d.ts.map +1 -0
  232. package/dist/components/modal/examples/scenario-legal-consent.d.ts +3 -0
  233. package/dist/components/modal/examples/scenario-legal-consent.d.ts.map +1 -0
  234. package/dist/components/modal/examples/scenario-multi-field-form.d.ts +3 -0
  235. package/dist/components/modal/examples/scenario-multi-field-form.d.ts.map +1 -0
  236. package/dist/components/notification/examples/action-toast.d.ts +2 -0
  237. package/dist/components/notification/examples/action-toast.d.ts.map +1 -0
  238. package/dist/components/notification/examples/error-success.d.ts +2 -0
  239. package/dist/components/notification/examples/error-success.d.ts.map +1 -0
  240. package/dist/components/notification/examples/notification-store.d.ts +2 -0
  241. package/dist/components/notification/examples/notification-store.d.ts.map +1 -0
  242. package/dist/components/notification/examples/positions.d.ts +2 -0
  243. package/dist/components/notification/examples/positions.d.ts.map +1 -0
  244. package/dist/components/notification/examples/toast-queue.d.ts +2 -0
  245. package/dist/components/notification/examples/toast-queue.d.ts.map +1 -0
  246. package/dist/components/pagination/examples/canonical-composition.d.ts +5 -0
  247. package/dist/components/pagination/examples/canonical-composition.d.ts.map +1 -0
  248. package/dist/components/pagination/examples/compact.d.ts +3 -0
  249. package/dist/components/pagination/examples/compact.d.ts.map +1 -0
  250. package/dist/components/pagination/examples/controlled-page.d.ts +3 -0
  251. package/dist/components/pagination/examples/controlled-page.d.ts.map +1 -0
  252. package/dist/components/pagination/examples/full-width-list.d.ts +3 -0
  253. package/dist/components/pagination/examples/full-width-list.d.ts.map +1 -0
  254. package/dist/components/pagination/examples/table-footer.d.ts +3 -0
  255. package/dist/components/pagination/examples/table-footer.d.ts.map +1 -0
  256. package/dist/components/popover/examples/canonical-panel.d.ts +5 -0
  257. package/dist/components/popover/examples/canonical-panel.d.ts.map +1 -0
  258. package/dist/components/popover/examples/date-trigger.d.ts +5 -0
  259. package/dist/components/popover/examples/date-trigger.d.ts.map +1 -0
  260. package/dist/components/popover/examples/form-in-popover.d.ts +5 -0
  261. package/dist/components/popover/examples/form-in-popover.d.ts.map +1 -0
  262. package/dist/components/popover/examples/placement.d.ts +5 -0
  263. package/dist/components/popover/examples/placement.d.ts.map +1 -0
  264. package/dist/components/popover/examples/rich-content.d.ts +5 -0
  265. package/dist/components/popover/examples/rich-content.d.ts.map +1 -0
  266. package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts +6 -0
  267. package/dist/components/progress-bar/examples/indeterminate-busy-state.d.ts.map +1 -0
  268. package/dist/components/progress-bar/examples/labeled.d.ts +3 -0
  269. package/dist/components/progress-bar/examples/labeled.d.ts.map +1 -0
  270. package/dist/components/progress-bar/examples/step-progress.d.ts +3 -0
  271. package/dist/components/progress-bar/examples/step-progress.d.ts.map +1 -0
  272. package/dist/components/progress-bar/examples/upload-progress.d.ts +3 -0
  273. package/dist/components/progress-bar/examples/upload-progress.d.ts.map +1 -0
  274. package/dist/components/progress-bar/examples/wizard-composition.d.ts +3 -0
  275. package/dist/components/progress-bar/examples/wizard-composition.d.ts.map +1 -0
  276. package/dist/components/progress-circle/examples/a11y-label.d.ts +6 -0
  277. package/dist/components/progress-circle/examples/a11y-label.d.ts.map +1 -0
  278. package/dist/components/progress-circle/examples/composition.d.ts +3 -0
  279. package/dist/components/progress-circle/examples/composition.d.ts.map +1 -0
  280. package/dist/components/progress-circle/examples/controlled.d.ts +3 -0
  281. package/dist/components/progress-circle/examples/controlled.d.ts.map +1 -0
  282. package/dist/components/progress-circle/examples/dashboard-ring.d.ts +3 -0
  283. package/dist/components/progress-circle/examples/dashboard-ring.d.ts.map +1 -0
  284. package/dist/components/progress-circle/examples/max-scale.d.ts +3 -0
  285. package/dist/components/progress-circle/examples/max-scale.d.ts.map +1 -0
  286. package/dist/components/radio/examples/notification-channel.d.ts +3 -0
  287. package/dist/components/radio/examples/notification-channel.d.ts.map +1 -0
  288. package/dist/components/radio/examples/plan-picker.d.ts +3 -0
  289. package/dist/components/radio/examples/plan-picker.d.ts.map +1 -0
  290. package/dist/components/radio/examples/settings-group.d.ts +3 -0
  291. package/dist/components/radio/examples/settings-group.d.ts.map +1 -0
  292. package/dist/components/radio/examples/shipping-method.d.ts +3 -0
  293. package/dist/components/radio/examples/shipping-method.d.ts.map +1 -0
  294. package/dist/components/segmented-control/examples/canonical-composition.d.ts +5 -0
  295. package/dist/components/segmented-control/examples/canonical-composition.d.ts.map +1 -0
  296. package/dist/components/segmented-control/examples/catalog-filters.d.ts +5 -0
  297. package/dist/components/segmented-control/examples/catalog-filters.d.ts.map +1 -0
  298. package/dist/components/segmented-control/examples/pricing-toggle.d.ts +5 -0
  299. package/dist/components/segmented-control/examples/pricing-toggle.d.ts.map +1 -0
  300. package/dist/components/segmented-control/examples/view-mode.d.ts +5 -0
  301. package/dist/components/segmented-control/examples/view-mode.d.ts.map +1 -0
  302. package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts +3 -0
  303. package/dist/components/segmented-progress-bar/examples/distribution-breakdown.d.ts.map +1 -0
  304. package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts +3 -0
  305. package/dist/components/segmented-progress-bar/examples/multi-phase-rollout.d.ts.map +1 -0
  306. package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts +3 -0
  307. package/dist/components/segmented-progress-bar/examples/segment-gaps.d.ts.map +1 -0
  308. package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts +3 -0
  309. package/dist/components/segmented-progress-bar/examples/size-ladder.d.ts.map +1 -0
  310. package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts +3 -0
  311. package/dist/components/segmented-progress-bar/examples/storage-mix.d.ts.map +1 -0
  312. package/dist/components/select/examples/01-country.d.ts +6 -0
  313. package/dist/components/select/examples/01-country.d.ts.map +1 -0
  314. package/dist/components/select/examples/02-controlled.d.ts +5 -0
  315. package/dist/components/select/examples/02-controlled.d.ts.map +1 -0
  316. package/dist/components/select/examples/03-groups.d.ts +5 -0
  317. package/dist/components/select/examples/03-groups.d.ts.map +1 -0
  318. package/dist/components/select/examples/04-full-width-form.d.ts +6 -0
  319. package/dist/components/select/examples/04-full-width-form.d.ts.map +1 -0
  320. package/dist/components/slider/examples/01-volume.d.ts +5 -0
  321. package/dist/components/slider/examples/01-volume.d.ts.map +1 -0
  322. package/dist/components/slider/examples/02-price-range.d.ts +5 -0
  323. package/dist/components/slider/examples/02-price-range.d.ts.map +1 -0
  324. package/dist/components/slider/examples/03-controlled.d.ts +5 -0
  325. package/dist/components/slider/examples/03-controlled.d.ts.map +1 -0
  326. package/dist/components/slider/examples/04-disabled.d.ts +5 -0
  327. package/dist/components/slider/examples/04-disabled.d.ts.map +1 -0
  328. package/dist/components/stepper/examples/01-checkout-horizontal.d.ts +5 -0
  329. package/dist/components/stepper/examples/01-checkout-horizontal.d.ts.map +1 -0
  330. package/dist/components/stepper/examples/02-onboarding-vertical.d.ts +5 -0
  331. package/dist/components/stepper/examples/02-onboarding-vertical.d.ts.map +1 -0
  332. package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts +5 -0
  333. package/dist/components/stepper/examples/03-vertical-primitive-rail.d.ts.map +1 -0
  334. package/dist/components/stepper/examples/04-checkout-step-error.d.ts +6 -0
  335. package/dist/components/stepper/examples/04-checkout-step-error.d.ts.map +1 -0
  336. package/dist/components/stepper/examples/05-horizontal-primitive.d.ts +5 -0
  337. package/dist/components/stepper/examples/05-horizontal-primitive.d.ts.map +1 -0
  338. package/dist/components/switch/examples/canonical-maximal.d.ts +5 -0
  339. package/dist/components/switch/examples/canonical-maximal.d.ts.map +1 -0
  340. package/dist/components/switch/examples/scenario-billing-annual.d.ts +5 -0
  341. package/dist/components/switch/examples/scenario-billing-annual.d.ts.map +1 -0
  342. package/dist/components/switch/examples/scenario-feature-flag.d.ts +5 -0
  343. package/dist/components/switch/examples/scenario-feature-flag.d.ts.map +1 -0
  344. package/dist/components/switch/examples/scenario-form-consent.d.ts +5 -0
  345. package/dist/components/switch/examples/scenario-form-consent.d.ts.map +1 -0
  346. package/dist/components/switch/examples/scenario-settings-toggle.d.ts +5 -0
  347. package/dist/components/switch/examples/scenario-settings-toggle.d.ts.map +1 -0
  348. package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts +6 -0
  349. package/dist/components/tabs/examples/01-settings-vertical-rail.d.ts.map +1 -0
  350. package/dist/components/tabs/examples/02-dashboard-subviews.d.ts +6 -0
  351. package/dist/components/tabs/examples/02-dashboard-subviews.d.ts.map +1 -0
  352. package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts +6 -0
  353. package/dist/components/tabs/examples/03-tab-triggers-with-icons.d.ts.map +1 -0
  354. package/dist/components/tabs/examples/04-long-labels-narrow.d.ts +6 -0
  355. package/dist/components/tabs/examples/04-long-labels-narrow.d.ts.map +1 -0
  356. package/dist/components/tabs/examples/05-controlled-active-tab.d.ts +6 -0
  357. package/dist/components/tabs/examples/05-controlled-active-tab.d.ts.map +1 -0
  358. package/dist/components/tag/examples/01-filter-chips.d.ts +5 -0
  359. package/dist/components/tag/examples/01-filter-chips.d.ts.map +1 -0
  360. package/dist/components/tag/examples/02-removable-selected-values.d.ts +6 -0
  361. package/dist/components/tag/examples/02-removable-selected-values.d.ts.map +1 -0
  362. package/dist/components/tag/examples/03-status-metadata.d.ts +5 -0
  363. package/dist/components/tag/examples/03-status-metadata.d.ts.map +1 -0
  364. package/dist/components/tag/examples/04-tag-sizes.d.ts +3 -0
  365. package/dist/components/tag/examples/04-tag-sizes.d.ts.map +1 -0
  366. package/dist/components/textarea/examples/01-support-ticket.d.ts +5 -0
  367. package/dist/components/textarea/examples/01-support-ticket.d.ts.map +1 -0
  368. package/dist/components/textarea/examples/02-comment.d.ts +5 -0
  369. package/dist/components/textarea/examples/02-comment.d.ts.map +1 -0
  370. package/dist/components/textarea/examples/03-controlled.d.ts +5 -0
  371. package/dist/components/textarea/examples/03-controlled.d.ts.map +1 -0
  372. package/dist/components/textarea/examples/04-full-width.d.ts +5 -0
  373. package/dist/components/textarea/examples/04-full-width.d.ts.map +1 -0
  374. package/dist/components/tooltip/examples/canonical-icon-hint.d.ts +5 -0
  375. package/dist/components/tooltip/examples/canonical-icon-hint.d.ts.map +1 -0
  376. package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts +5 -0
  377. package/dist/components/tooltip/examples/scenario-controlled-programmatic.d.ts.map +1 -0
  378. package/dist/components/tooltip/examples/scenario-delay-provider.d.ts +5 -0
  379. package/dist/components/tooltip/examples/scenario-delay-provider.d.ts.map +1 -0
  380. package/dist/components/tooltip/examples/scenario-long-content.d.ts +5 -0
  381. package/dist/components/tooltip/examples/scenario-long-content.d.ts.map +1 -0
  382. package/dist/components/tooltip/examples/scenario-side-bottom.d.ts +5 -0
  383. package/dist/components/tooltip/examples/scenario-side-bottom.d.ts.map +1 -0
  384. package/dist/components/typography/examples/01-article.d.ts +5 -0
  385. package/dist/components/typography/examples/01-article.d.ts.map +1 -0
  386. package/dist/components/typography/examples/02-form-labels-contrast.d.ts +6 -0
  387. package/dist/components/typography/examples/02-form-labels-contrast.d.ts.map +1 -0
  388. package/dist/components/typography/examples/03-marketing-hero.d.ts +3 -0
  389. package/dist/components/typography/examples/03-marketing-hero.d.ts.map +1 -0
  390. package/dist/components/typography/examples/04-reading-scale.d.ts +3 -0
  391. package/dist/components/typography/examples/04-reading-scale.d.ts.map +1 -0
  392. package/dist/components/typography/examples/05-inline-emphasis.d.ts +3 -0
  393. package/dist/components/typography/examples/05-inline-emphasis.d.ts.map +1 -0
  394. package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts +5 -0
  395. package/dist/layout/sidebar/examples/01-app-shell-nav.d.ts.map +1 -0
  396. package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts +6 -0
  397. package/dist/layout/sidebar/examples/02-collapsible-desktop.d.ts.map +1 -0
  398. package/dist/layout/sidebar/examples/03-controlled-state.d.ts +5 -0
  399. package/dist/layout/sidebar/examples/03-controlled-state.d.ts.map +1 -0
  400. package/dist/layout/sidebar/examples/04-router-navigation.d.ts +6 -0
  401. package/dist/layout/sidebar/examples/04-router-navigation.d.ts.map +1 -0
  402. package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts +7 -0
  403. package/dist/layout/sidebar/examples/05-responsive-behavior.d.ts.map +1 -0
  404. package/package.json +4 -1
  405. package/src/components/accordion/COMPONENT.md +60 -7
  406. package/src/components/accordion/examples/01-faq-marketing.tsx +62 -0
  407. package/src/components/accordion/examples/02-settings-panels.tsx +67 -0
  408. package/src/components/accordion/examples/03-checkout-order-summary.tsx +87 -0
  409. package/src/components/accordion/examples/04-api-docs-sections.tsx +86 -0
  410. package/src/components/accordion/examples/05-knowledge-base-categories.tsx +65 -0
  411. package/src/components/accordion/examples/examples.module.css +30 -0
  412. package/src/components/avatar/COMPONENT.md +59 -7
  413. package/src/components/avatar/examples/app-header-nav.tsx +41 -0
  414. package/src/components/avatar/examples/comment-thread.tsx +57 -0
  415. package/src/components/avatar/examples/examples.module.css +72 -0
  416. package/src/components/avatar/examples/fallback-variants.tsx +33 -0
  417. package/src/components/avatar/examples/group-overflow.tsx +32 -0
  418. package/src/components/avatar/examples/team-list.tsx +45 -0
  419. package/src/components/badge/COMPONENT.md +35 -12
  420. package/src/components/badge/examples/admin-tags.tsx +35 -0
  421. package/src/components/badge/examples/canonical.tsx +6 -0
  422. package/src/components/badge/examples/ecommerce-inventory.tsx +35 -0
  423. package/src/components/badge/examples/inbox-labels.tsx +36 -0
  424. package/src/components/badge/examples/status-presence.tsx +32 -0
  425. package/src/components/banner/COMPONENT.md +56 -29
  426. package/src/components/banner/examples/billing-alert.tsx +35 -0
  427. package/src/components/banner/examples/cookie-consent-row.tsx +36 -0
  428. package/src/components/banner/examples/feature-promo.tsx +36 -0
  429. package/src/components/banner/examples/maintenance.tsx +23 -0
  430. package/src/components/breadcrumb/COMPONENT.md +71 -38
  431. package/src/components/breadcrumb/examples/canonical.tsx +12 -0
  432. package/src/components/breadcrumb/examples/deep-documentation.tsx +16 -0
  433. package/src/components/breadcrumb/examples/ecommerce-product.tsx +18 -0
  434. package/src/components/breadcrumb/examples/long-path-ellipsis.tsx +21 -0
  435. package/src/components/breadcrumb/examples/saas-settings.tsx +16 -0
  436. package/src/components/button/COMPONENT.md +33 -12
  437. package/src/components/button/examples/canonical-composition.tsx +46 -0
  438. package/src/components/button/examples/destructive-confirm.tsx +36 -0
  439. package/src/components/button/examples/form-submit-row.tsx +33 -0
  440. package/src/components/button/examples/marketing-cta.tsx +26 -0
  441. package/src/components/button/examples/toolbar.tsx +38 -0
  442. package/src/components/button-group/COMPONENT.md +56 -8
  443. package/src/components/button-group/examples/editor-toolbar.tsx +46 -0
  444. package/src/components/button-group/examples/form-footer.tsx +19 -0
  445. package/src/components/button-group/examples/view-switcher.tsx +25 -0
  446. package/src/components/button-group/examples/wizard-actions.tsx +30 -0
  447. package/src/components/card/COMPONENT.md +61 -243
  448. package/src/components/card/examples/cover-banner.module.css +8 -0
  449. package/src/components/card/examples/cta-cover.tsx +44 -0
  450. package/src/components/card/examples/layout.module.css +7 -0
  451. package/src/components/card/examples/list-card.tsx +20 -0
  452. package/src/components/card/examples/media-mini.tsx +55 -0
  453. package/src/components/card/examples/metric-dashboard.tsx +60 -0
  454. package/src/components/card/examples/sparkline.module.css +10 -0
  455. package/src/components/card/examples/split-layout.tsx +29 -0
  456. package/src/components/checkbox/COMPONENT.md +41 -10
  457. package/src/components/checkbox/examples/bulk-select-rows.tsx +54 -0
  458. package/src/components/checkbox/examples/feature-flags-list.tsx +43 -0
  459. package/src/components/checkbox/examples/settings-panel.tsx +50 -0
  460. package/src/components/checkbox/examples/terms-acceptance.tsx +42 -0
  461. package/src/components/code-block/COMPONENT.md +60 -30
  462. package/src/components/code-block/examples/api-response-preview.tsx +21 -0
  463. package/src/components/code-block/examples/config-snippet.tsx +17 -0
  464. package/src/components/code-block/examples/error-stack.tsx +19 -0
  465. package/src/components/code-block/examples/minimal.tsx +6 -0
  466. package/src/components/code-block/examples/tutorial-step.tsx +28 -0
  467. package/src/components/color-picker/COMPONENT.md +74 -52
  468. package/src/components/color-picker/examples/brand-kit.tsx +48 -0
  469. package/src/components/color-picker/examples/controlled-form-field.tsx +40 -0
  470. package/src/components/color-picker/examples/minimal-popover.tsx +26 -0
  471. package/src/components/color-picker/examples/product-variant-swatch.tsx +42 -0
  472. package/src/components/color-picker/examples/theme-accent.tsx +46 -0
  473. package/src/components/command-menu/COMPONENT.md +33 -5
  474. package/src/components/command-menu/examples/app-palette.tsx +129 -0
  475. package/src/components/command-menu/examples/disabled-items.tsx +73 -0
  476. package/src/components/command-menu/examples/file-search.tsx +98 -0
  477. package/src/components/command-menu/examples/quick-actions.tsx +74 -0
  478. package/src/components/data-table/COMPONENT.md +1 -0
  479. package/src/components/data-table/examples/canonical-orders.tsx +107 -0
  480. package/src/components/data-table/examples/controlled-sort-and-page.tsx +66 -0
  481. package/src/components/data-table/examples/infinite-scroll-load-more.tsx +63 -0
  482. package/src/components/data-table/examples/row-selection.tsx +90 -0
  483. package/src/components/data-table/examples/sticky-header-first-column.tsx +55 -0
  484. package/src/components/datepicker/COMPONENT.md +32 -0
  485. package/src/components/datepicker/examples/birthdate.tsx +43 -0
  486. package/src/components/datepicker/examples/booking.tsx +71 -0
  487. package/src/components/datepicker/examples/full-width-form.tsx +59 -0
  488. package/src/components/datepicker/examples/range-report.tsx +54 -0
  489. package/src/components/digit-input/COMPONENT.md +36 -4
  490. package/src/components/digit-input/examples/error-state.tsx +14 -0
  491. package/src/components/digit-input/examples/otp-login.tsx +17 -0
  492. package/src/components/digit-input/examples/pin.tsx +11 -0
  493. package/src/components/digit-input/examples/resend-and-clear.tsx +23 -0
  494. package/src/components/digit-input/examples/verification-step.tsx +21 -0
  495. package/src/components/divider/COMPONENT.md +74 -46
  496. package/src/components/divider/examples/card-splits.tsx +27 -0
  497. package/src/components/divider/examples/divider-examples.module.css +137 -0
  498. package/src/components/divider/examples/inset-stack.tsx +33 -0
  499. package/src/components/divider/examples/line-spacing-column.tsx +27 -0
  500. package/src/components/divider/examples/list-separators.tsx +20 -0
  501. package/src/components/divider/examples/section-breaks.tsx +27 -0
  502. package/src/components/drawer/examples/cart-preview.tsx +55 -0
  503. package/src/components/drawer/examples/examples-scenarios.module.css +79 -0
  504. package/src/components/drawer/examples/explicit-panel.tsx +40 -0
  505. package/src/components/drawer/examples/filters-panel.tsx +53 -0
  506. package/src/components/drawer/examples/mobile-nav-sheet.tsx +43 -0
  507. package/src/components/drawer/examples/settings-side.tsx +54 -0
  508. package/src/components/dropdown/COMPONENT.md +77 -38
  509. package/src/components/dropdown/examples/account-menu.tsx +52 -0
  510. package/src/components/dropdown/examples/actions-menu.tsx +37 -0
  511. package/src/components/dropdown/examples/placement-demo.tsx +59 -0
  512. package/src/components/dropdown/examples/select-like-list.tsx +31 -0
  513. package/src/components/file-upload/COMPONENT.md +32 -3
  514. package/src/components/file-upload/examples/avatar-upload.tsx +54 -0
  515. package/src/components/file-upload/examples/controlled-list.tsx +103 -0
  516. package/src/components/file-upload/examples/document-attach.tsx +70 -0
  517. package/src/components/file-upload/examples/drag-area.tsx +49 -0
  518. package/src/components/hint/COMPONENT.md +54 -22
  519. package/src/components/hint/examples/error-hint.tsx +22 -0
  520. package/src/components/hint/examples/field-help.tsx +27 -0
  521. package/src/components/hint/examples/inline-tip-form.tsx +44 -0
  522. package/src/components/hint/examples/success-confirmation.tsx +30 -0
  523. package/src/components/hint/examples/with-icon.tsx +13 -0
  524. package/src/components/input/COMPONENT.md +48 -28
  525. package/src/components/input/examples/checkout-full-width.module.css +8 -0
  526. package/src/components/input/examples/checkout-full-width.tsx +39 -0
  527. package/src/components/input/examples/login-email.tsx +33 -0
  528. package/src/components/input/examples/password-with-hint.tsx +28 -0
  529. package/src/components/input/examples/search.tsx +30 -0
  530. package/src/components/kbd/COMPONENT.md +61 -33
  531. package/src/components/kbd/examples/combination-keys.tsx +22 -0
  532. package/src/components/kbd/examples/docs-legend.tsx +44 -0
  533. package/src/components/kbd/examples/inline-doc-hint.tsx +18 -0
  534. package/src/components/kbd/examples/shortcut-row.tsx +21 -0
  535. package/src/components/kbd/examples/toolbar-hints.tsx +31 -0
  536. package/src/components/label/COMPONENT.md +40 -9
  537. package/src/components/label/examples/accessibility-pattern.tsx +28 -0
  538. package/src/components/label/examples/grouped-labels.tsx +30 -0
  539. package/src/components/label/examples/optional-field.tsx +14 -0
  540. package/src/components/label/examples/required-field.tsx +20 -0
  541. package/src/components/label/examples/with-icon.tsx +16 -0
  542. package/src/components/link-button/COMPONENT.md +43 -24
  543. package/src/components/link-button/examples/disabled.tsx +18 -0
  544. package/src/components/link-button/examples/external.tsx +18 -0
  545. package/src/components/link-button/examples/footer-legal.tsx +22 -0
  546. package/src/components/link-button/examples/inline-text-link.tsx +14 -0
  547. package/src/components/link-button/examples/navigation-cluster.tsx +24 -0
  548. package/src/components/modal/COMPONENT.md +72 -1
  549. package/src/components/modal/examples/canonical-maximal.tsx +43 -0
  550. package/src/components/modal/examples/examples.module.css +13 -0
  551. package/src/components/modal/examples/scenario-confirm-delete.tsx +38 -0
  552. package/src/components/modal/examples/scenario-edit-entity.tsx +50 -0
  553. package/src/components/modal/examples/scenario-legal-consent.tsx +36 -0
  554. package/src/components/modal/examples/scenario-multi-field-form.tsx +75 -0
  555. package/src/components/notification/COMPONENT.md +45 -15
  556. package/src/components/notification/examples/action-toast.tsx +84 -0
  557. package/src/components/notification/examples/error-success.tsx +70 -0
  558. package/src/components/notification/examples/notification-store.tsx +58 -0
  559. package/src/components/notification/examples/positions.tsx +73 -0
  560. package/src/components/notification/examples/toast-queue.tsx +63 -0
  561. package/src/components/pagination/COMPONENT.md +63 -23
  562. package/src/components/pagination/examples/canonical-composition.tsx +20 -0
  563. package/src/components/pagination/examples/compact.tsx +32 -0
  564. package/src/components/pagination/examples/controlled-page.tsx +57 -0
  565. package/src/components/pagination/examples/full-width-list.tsx +37 -0
  566. package/src/components/pagination/examples/table-footer.tsx +74 -0
  567. package/src/components/popover/COMPONENT.md +67 -3
  568. package/src/components/popover/examples/canonical-panel.tsx +24 -0
  569. package/src/components/popover/examples/date-trigger.tsx +33 -0
  570. package/src/components/popover/examples/form-in-popover.tsx +79 -0
  571. package/src/components/popover/examples/placement.tsx +42 -0
  572. package/src/components/popover/examples/rich-content.tsx +39 -0
  573. package/src/components/progress-bar/COMPONENT.md +49 -24
  574. package/src/components/progress-bar/examples/indeterminate-busy-state.tsx +21 -0
  575. package/src/components/progress-bar/examples/labeled.tsx +6 -0
  576. package/src/components/progress-bar/examples/progress-bar-examples.module.css +22 -0
  577. package/src/components/progress-bar/examples/step-progress.tsx +23 -0
  578. package/src/components/progress-bar/examples/upload-progress.tsx +27 -0
  579. package/src/components/progress-bar/examples/wizard-composition.tsx +18 -0
  580. package/src/components/progress-circle/COMPONENT.md +58 -28
  581. package/src/components/progress-circle/examples/a11y-label.tsx +32 -0
  582. package/src/components/progress-circle/examples/composition.tsx +66 -0
  583. package/src/components/progress-circle/examples/controlled.tsx +58 -0
  584. package/src/components/progress-circle/examples/dashboard-ring.tsx +36 -0
  585. package/src/components/progress-circle/examples/max-scale.tsx +61 -0
  586. package/src/components/radio/COMPONENT.md +49 -21
  587. package/src/components/radio/examples/notification-channel.tsx +29 -0
  588. package/src/components/radio/examples/plan-picker.tsx +53 -0
  589. package/src/components/radio/examples/radio-examples.module.css +31 -0
  590. package/src/components/radio/examples/settings-group.tsx +30 -0
  591. package/src/components/radio/examples/shipping-method.tsx +26 -0
  592. package/src/components/segmented-control/COMPONENT.md +22 -0
  593. package/src/components/segmented-control/examples/canonical-composition.tsx +70 -0
  594. package/src/components/segmented-control/examples/catalog-filters.tsx +41 -0
  595. package/src/components/segmented-control/examples/pricing-toggle.tsx +40 -0
  596. package/src/components/segmented-control/examples/segmented-examples.module.css +12 -0
  597. package/src/components/segmented-control/examples/view-mode.tsx +53 -0
  598. package/src/components/segmented-progress-bar/COMPONENT.md +54 -25
  599. package/src/components/segmented-progress-bar/examples/distribution-breakdown.tsx +16 -0
  600. package/src/components/segmented-progress-bar/examples/multi-phase-rollout.tsx +15 -0
  601. package/src/components/segmented-progress-bar/examples/segment-gaps.tsx +23 -0
  602. package/src/components/segmented-progress-bar/examples/size-ladder.tsx +19 -0
  603. package/src/components/segmented-progress-bar/examples/storage-mix.tsx +16 -0
  604. package/src/components/select/COMPONENT.md +46 -19
  605. package/src/components/select/examples/01-country.tsx +37 -0
  606. package/src/components/select/examples/02-controlled.tsx +35 -0
  607. package/src/components/select/examples/03-groups.tsx +45 -0
  608. package/src/components/select/examples/04-full-width-form.tsx +51 -0
  609. package/src/components/select/examples/examples.module.css +37 -0
  610. package/src/components/slider/COMPONENT.md +30 -14
  611. package/src/components/slider/examples/01-volume.tsx +17 -0
  612. package/src/components/slider/examples/02-price-range.tsx +18 -0
  613. package/src/components/slider/examples/03-controlled.tsx +30 -0
  614. package/src/components/slider/examples/04-disabled.tsx +25 -0
  615. package/src/components/slider/examples/examples.module.css +17 -0
  616. package/src/components/stepper/COMPONENT.md +40 -15
  617. package/src/components/stepper/examples/01-checkout-horizontal.tsx +32 -0
  618. package/src/components/stepper/examples/02-onboarding-vertical.tsx +51 -0
  619. package/src/components/stepper/examples/03-vertical-primitive-rail.tsx +36 -0
  620. package/src/components/stepper/examples/04-checkout-step-error.tsx +30 -0
  621. package/src/components/stepper/examples/05-horizontal-primitive.tsx +37 -0
  622. package/src/components/stepper/examples/examples.module.css +16 -0
  623. package/src/components/switch/COMPONENT.md +61 -15
  624. package/src/components/switch/examples/canonical-maximal.tsx +19 -0
  625. package/src/components/switch/examples/examples.module.css +56 -0
  626. package/src/components/switch/examples/scenario-billing-annual.tsx +27 -0
  627. package/src/components/switch/examples/scenario-feature-flag.tsx +30 -0
  628. package/src/components/switch/examples/scenario-form-consent.tsx +34 -0
  629. package/src/components/switch/examples/scenario-settings-toggle.tsx +26 -0
  630. package/src/components/tabs/COMPONENT.md +44 -17
  631. package/src/components/tabs/examples/01-settings-vertical-rail.tsx +49 -0
  632. package/src/components/tabs/examples/02-dashboard-subviews.tsx +42 -0
  633. package/src/components/tabs/examples/03-tab-triggers-with-icons.tsx +49 -0
  634. package/src/components/tabs/examples/04-long-labels-narrow.tsx +35 -0
  635. package/src/components/tabs/examples/05-controlled-active-tab.tsx +48 -0
  636. package/src/components/tabs/examples/examples.module.css +58 -0
  637. package/src/components/tag/COMPONENT.md +25 -10
  638. package/src/components/tag/examples/01-filter-chips.tsx +36 -0
  639. package/src/components/tag/examples/02-removable-selected-values.tsx +33 -0
  640. package/src/components/tag/examples/03-status-metadata.tsx +24 -0
  641. package/src/components/tag/examples/04-tag-sizes.tsx +18 -0
  642. package/src/components/tag/examples/examples.module.css +20 -0
  643. package/src/components/textarea/COMPONENT.md +41 -19
  644. package/src/components/textarea/examples/01-support-ticket.tsx +35 -0
  645. package/src/components/textarea/examples/02-comment.tsx +35 -0
  646. package/src/components/textarea/examples/03-controlled.tsx +27 -0
  647. package/src/components/textarea/examples/04-full-width.tsx +23 -0
  648. package/src/components/textarea/examples/examples.module.css +21 -0
  649. package/src/components/tooltip/COMPONENT.md +57 -0
  650. package/src/components/tooltip/examples/canonical-icon-hint.tsx +19 -0
  651. package/src/components/tooltip/examples/examples.module.css +6 -0
  652. package/src/components/tooltip/examples/scenario-controlled-programmatic.tsx +32 -0
  653. package/src/components/tooltip/examples/scenario-delay-provider.tsx +19 -0
  654. package/src/components/tooltip/examples/scenario-long-content.tsx +22 -0
  655. package/src/components/tooltip/examples/scenario-side-bottom.tsx +21 -0
  656. package/src/components/typography/COMPONENT.md +63 -39
  657. package/src/components/typography/examples/01-article.tsx +45 -0
  658. package/src/components/typography/examples/02-form-labels-contrast.tsx +61 -0
  659. package/src/components/typography/examples/03-marketing-hero.tsx +25 -0
  660. package/src/components/typography/examples/04-reading-scale.tsx +47 -0
  661. package/src/components/typography/examples/05-inline-emphasis.tsx +30 -0
  662. package/src/components/typography/examples/examples.module.css +30 -0
  663. package/src/layout/sidebar/COMPONENT.md +138 -0
  664. package/src/layout/sidebar/examples/01-app-shell-nav.tsx +79 -0
  665. package/src/layout/sidebar/examples/02-collapsible-desktop.tsx +64 -0
  666. package/src/layout/sidebar/examples/03-controlled-state.tsx +72 -0
  667. package/src/layout/sidebar/examples/04-router-navigation.tsx +70 -0
  668. package/src/layout/sidebar/examples/05-responsive-behavior.tsx +46 -0
  669. package/src/layout/sidebar/examples/examples.module.css +67 -0
@@ -0,0 +1,18 @@
1
+ import { LinkButton } from "prime-ui-kit";
2
+
3
+ /**
4
+ * Disabled link is a <code>span</code> with <code>role="link"</code> — no <code>href</code>, anchor props are not applied.
5
+ * Do not use for “still focusable”; use <code>aria-disabled</code> on a real control pattern if that is required.
6
+ */
7
+ export default function LinkButtonDisabledExample() {
8
+ return (
9
+ <div>
10
+ <LinkButton.Root href="/available" size="m">
11
+ Available route
12
+ </LinkButton.Root>
13
+ <LinkButton.Root href="/ignored-when-disabled" size="m" disabled>
14
+ Coming soon
15
+ </LinkButton.Root>
16
+ </div>
17
+ );
18
+ }
@@ -0,0 +1,18 @@
1
+ import { LinkButton } from "prime-ui-kit";
2
+
3
+ /** External URL opened in a new tab: always set <code>rel="noopener noreferrer"</code> with <code>target="_blank"</code>. */
4
+ export default function LinkButtonExternalExample() {
5
+ return (
6
+ <p>
7
+ Documentation in a separate tab:{" "}
8
+ <LinkButton.Root
9
+ href="https://example.com/docs"
10
+ target="_blank"
11
+ rel="noopener noreferrer"
12
+ size="m"
13
+ >
14
+ Open help
15
+ </LinkButton.Root>
16
+ </p>
17
+ );
18
+ }
@@ -0,0 +1,22 @@
1
+ import { LinkButton } from "prime-ui-kit";
2
+
3
+ /** Dense footer legal row: smaller control tier keeps the strip compact. */
4
+ export default function LinkButtonFooterLegalExample() {
5
+ return (
6
+ <footer>
7
+ <nav aria-label="Legal">
8
+ <LinkButton.Root href="/privacy" size="s">
9
+ Privacy
10
+ </LinkButton.Root>
11
+ <span aria-hidden> · </span>
12
+ <LinkButton.Root href="/terms" size="s">
13
+ Terms
14
+ </LinkButton.Root>
15
+ <span aria-hidden> · </span>
16
+ <LinkButton.Root href="/cookies" size="s">
17
+ Cookie policy
18
+ </LinkButton.Root>
19
+ </nav>
20
+ </footer>
21
+ );
22
+ }
@@ -0,0 +1,14 @@
1
+ import { LinkButton } from "prime-ui-kit";
2
+
3
+ /** Inline link inside body copy: same line as surrounding text, default control tier. */
4
+ export default function LinkButtonInlineTextLinkExample() {
5
+ return (
6
+ <p>
7
+ Need more detail? See{" "}
8
+ <LinkButton.Root href="/docs/billing" size="m">
9
+ billing documentation
10
+ </LinkButton.Root>{" "}
11
+ for proration rules.
12
+ </p>
13
+ );
14
+ }
@@ -0,0 +1,24 @@
1
+ import { LinkButton } from "prime-ui-kit";
2
+
3
+ /** Horizontal cluster of primary nav targets; named <code>nav</code> + text separators (layout can move to page grid/flex). */
4
+ export default function LinkButtonNavigationClusterExample() {
5
+ return (
6
+ <nav aria-label="Product sections">
7
+ <LinkButton.Root href="/product/overview" size="m">
8
+ Overview
9
+ </LinkButton.Root>
10
+ <span aria-hidden> · </span>
11
+ <LinkButton.Root href="/product/pricing" size="m">
12
+ Pricing
13
+ </LinkButton.Root>
14
+ <span aria-hidden> · </span>
15
+ <LinkButton.Root href="/product/security" size="m">
16
+ Security
17
+ </LinkButton.Root>
18
+ <span aria-hidden> · </span>
19
+ <LinkButton.Root href="/product/changelog" size="m">
20
+ Changelog
21
+ </LinkButton.Root>
22
+ </nav>
23
+ );
24
+ }
@@ -15,7 +15,7 @@ Centered overlay dialog with a portal, backdrop, focus trap, scroll lock, and op
15
15
  - **`Modal.Root`** — holds open state (controlled via **`open`** / **`onOpenChange`** or uncontrolled via **`defaultOpen`**), and options **`closeOnEscape`** / **`closeOnOverlayClick`**. Renders **`children`** only (no DOM wrapper).
16
16
  - **`Modal.Trigger`** — optional; **`React.Children.only`**: pass **exactly one** React element; its **`onClick`** is merged to call **`onOpen`** when the event is not **`defaultPrevented`**.
17
17
  - **`Modal.Panel`** — when open: **`createPortal`** (default container `document.body`), fullscreen **`role="presentation"`** overlay, then **`role="dialog"`** with **`aria-modal="true"`**. If **`title`** is set, renders an internal header (**`h2`**, optional description, optional built-in close icon button), wraps **`children`** in an internal body, and optional **`footer`**. Without **`title`**, **`children`** render directly inside the dialog surface—supply **`aria-label`** or **`aria-labelledby`** (and **`aria-describedby`** when needed).
18
- - **`Modal.Close`** — same single-child contract as **`Trigger`**; merges **`onClick`** to **`onClose`** when not **`defaultPrevented`**. Typical placement: a control inside **`footer`**.
18
+ - **`Modal.Close`** — same single-child contract as **`Trigger`**; merges **`onClick`** to **`onClose`** when not **`defaultPrevented`**. Typical placement: a control inside **`footer`** (for example **Cancel** or **Save** when saving should dismiss the dialog).
19
19
  - **Order:** **`Modal.Root`** → **`Modal.Trigger`** (if any) and **`Modal.Panel`** as siblings (or only **`Modal.Panel`** in controlled flows).
20
20
 
21
21
  ### Minimal example
@@ -37,6 +37,77 @@ export function Example() {
37
37
  }
38
38
  ```
39
39
 
40
+ ### Canonical example (full shell)
41
+
42
+ Use this when you want the complete header row (**`title`**, **`description`**, **`icon`**), a form field in the body, and a **`footer`** where at least one control is wrapped in **`Modal.Close`** (here: **Cancel**). The header still shows the built-in icon close button by default (`showClose`).
43
+
44
+ ```tsx
45
+ import { Button, Icon, Input, Modal } from "prime-ui-kit";
46
+
47
+ export function InviteTeammateModal() {
48
+ return (
49
+ <Modal.Root>
50
+ <Modal.Trigger>
51
+ <Button.Root size="m" variant="neutral" mode="stroke">
52
+ Open workspace invite
53
+ </Button.Root>
54
+ </Modal.Trigger>
55
+ <Modal.Panel
56
+ title="Invite teammate"
57
+ description="We will send one invitation email. The recipient can accept or decline."
58
+ icon={<Icon name="field.email" tone="subtle" />}
59
+ footer={
60
+ <>
61
+ <Modal.Close>
62
+ <Button.Root size="m" variant="neutral" mode="stroke">
63
+ Cancel
64
+ </Button.Root>
65
+ </Modal.Close>
66
+ <Button.Root size="m" variant="primary" type="button">
67
+ Send invite
68
+ </Button.Root>
69
+ </>
70
+ }
71
+ >
72
+ <Input.Root label="Email address" size="m" hint="Work email preferred">
73
+ <Input.Wrapper>
74
+ <Input.Field autoComplete="email" placeholder="name@company.com" type="email" />
75
+ </Input.Wrapper>
76
+ </Input.Root>
77
+ </Modal.Panel>
78
+ </Modal.Root>
79
+ );
80
+ }
81
+ ```
82
+
83
+ Source of truth (stays in sync with the snippet above): `examples/canonical-maximal.tsx`.
84
+
85
+ ### Examples (source)
86
+
87
+ Runnable demos live next to this file (workspace imports use `@/`; published consumers use `prime-ui-kit`):
88
+
89
+ | File | Intent |
90
+ |------|--------|
91
+ | `examples/canonical-maximal.tsx` | Full shell: title, description, icon, one field, footer with **`Modal.Close`** + primary |
92
+ | `examples/scenario-confirm-delete.tsx` | Destructive confirmation; **`variant="error"`** on primary action |
93
+ | `examples/scenario-edit-entity.tsx` | Rename / edit field; **Save** wrapped in **`Modal.Close`** to dismiss after save |
94
+ | `examples/scenario-legal-consent.tsx` | Terms-style copy; **`closeOnOverlayClick={false}`**; single **I agree** closes via **`Modal.Close`** |
95
+ | `examples/scenario-multi-field-form.tsx` | **`Input`**, **`Select`**, **`Textarea`** in the body; submit button uses **`form`** |
96
+
97
+ Playground composition demos (Russian copy, broader variants): `playground/snippets/modal/composition.tsx`.
98
+
99
+ ### Extended usage
100
+
101
+ - **Controlled dialogs:** omit **`Modal.Trigger`**; pass **`open`** and **`onOpenChange`** to **`Modal.Root`**. Keep **`Modal.Panel`** as a sibling; it portals only when **`open`** is true.
102
+ - **Dismiss on primary action:** wrap the confirming button in **`Modal.Close`** when the action should close the dialog immediately (see **edit entity** example). If you must await an API call, keep the dialog open until success, then call **`onOpenChange(false)`** from the parent.
103
+ - **Consent / wizard steps:** set **`closeOnOverlayClick={false}`** (and optionally **`closeOnEscape={false}`**) when accidental dismiss would lose legal or multi-step state; still provide an explicit **`Modal.Close`** (or header close) path where appropriate.
104
+ - **Long body content:** constrain scroll to the body via **`bodyStyle`** / **`bodyClassName`** (see `playground/snippets/modal/features.tsx`); overlay scroll lock remains active.
105
+ - **Headless dialog surface:** omit **`title`** on **`Modal.Panel`** and supply **`aria-label`** or **`aria-labelledby`** / **`aria-describedby`** yourself; inner body wrapper is not used, so **`bodyClassName`** / **`bodyStyle`** do not apply.
106
+
107
+ ### Note for LLMs
108
+
109
+ When generating **Modal** markup for this library: (1) **`Modal.Trigger`** and **`Modal.Close`** each require **exactly one** child element—no fragments or multiple nodes. (2) Prefer **`Modal.Panel`** with **`title`** (and usually **`description`**) so **`aria-labelledby`** / **`aria-describedby`** are wired automatically. (3) Put **Cancel** / **Dismiss** in **`footer`** inside **`Modal.Close`** unless the design relies only on the header icon. (4) Do not wrap kit components to restyle them; use **`size`**, **`variant`**, **`mode`**, and documented props only. (5) For copy-paste starting points, mirror **`examples/canonical-maximal.tsx`** first, then adapt from the scenario files.
110
+
40
111
  ## Rules
41
112
 
42
113
  - **Shell tokens:** overlay padding, panel padding, gaps between header/body/footer, and max width use **`--prime-sys-size-modal-*`** (semantic `size.modal` in `tokens/semantic.ts`). Title/description text tiers may still follow control typography tokens where the chrome matches **`size`** `m`.
@@ -0,0 +1,43 @@
1
+ import { Button } from "@/components/button/Button";
2
+ import { Input } from "@/components/input/Input";
3
+ import { Modal } from "@/components/modal/Modal";
4
+ import { Icon } from "@/icons";
5
+
6
+ /**
7
+ * Maximal shell: `title`, `description`, `icon`, body field, `footer` with `Modal.Close` plus primary action.
8
+ * Copy this structure when you need the full header/body/footer pattern.
9
+ */
10
+ export default function ModalCanonicalMaximalExample() {
11
+ return (
12
+ <Modal.Root>
13
+ <Modal.Trigger>
14
+ <Button.Root size="m" variant="neutral" mode="stroke">
15
+ Open workspace invite
16
+ </Button.Root>
17
+ </Modal.Trigger>
18
+ <Modal.Panel
19
+ description="We will send one invitation email. The recipient can accept or decline."
20
+ footer={
21
+ <>
22
+ <Modal.Close>
23
+ <Button.Root size="m" variant="neutral" mode="stroke">
24
+ Cancel
25
+ </Button.Root>
26
+ </Modal.Close>
27
+ <Button.Root size="m" variant="primary" type="button">
28
+ Send invite
29
+ </Button.Root>
30
+ </>
31
+ }
32
+ icon={<Icon name="field.email" tone="subtle" />}
33
+ title="Invite teammate"
34
+ >
35
+ <Input.Root label="Email address" size="m" hint="Work email preferred">
36
+ <Input.Wrapper>
37
+ <Input.Field autoComplete="email" placeholder="name@company.com" type="email" />
38
+ </Input.Wrapper>
39
+ </Input.Root>
40
+ </Modal.Panel>
41
+ </Modal.Root>
42
+ );
43
+ }
@@ -0,0 +1,13 @@
1
+ .fieldStack {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--prime-sys-spacing-m);
5
+ width: 100%;
6
+ }
7
+
8
+ .labeledControl {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: var(--prime-sys-spacing-s);
12
+ width: 100%;
13
+ }
@@ -0,0 +1,38 @@
1
+ import { Button } from "@/components/button/Button";
2
+ import { Modal } from "@/components/modal/Modal";
3
+ import { Typography } from "@/components/typography/Typography";
4
+ import { Icon } from "@/icons";
5
+
6
+ /** Blocking confirmation before destructive action; dismiss via header, overlay, Escape, or Cancel. */
7
+ export default function ModalConfirmDeleteExample() {
8
+ return (
9
+ <Modal.Root>
10
+ <Modal.Trigger>
11
+ <Button.Root size="m" variant="error" mode="stroke">
12
+ Delete project
13
+ </Button.Root>
14
+ </Modal.Trigger>
15
+ <Modal.Panel
16
+ description="This removes the project, its boards, and history. Connected integrations will stop receiving events."
17
+ footer={
18
+ <>
19
+ <Modal.Close>
20
+ <Button.Root size="m" variant="neutral" mode="stroke">
21
+ Cancel
22
+ </Button.Root>
23
+ </Modal.Close>
24
+ <Button.Root size="m" variant="error" type="button">
25
+ Delete permanently
26
+ </Button.Root>
27
+ </>
28
+ }
29
+ icon={<Icon name="action.close" tone="subtle" />}
30
+ title="Delete “Northwind rollout”?"
31
+ >
32
+ <Typography.Root as="p" variant="body-default">
33
+ You can export an archive first from Project settings. This action cannot be undone.
34
+ </Typography.Root>
35
+ </Modal.Panel>
36
+ </Modal.Root>
37
+ );
38
+ }
@@ -0,0 +1,50 @@
1
+ import * as React from "react";
2
+
3
+ import { Button } from "@/components/button/Button";
4
+ import { Input } from "@/components/input/Input";
5
+ import { Modal } from "@/components/modal/Modal";
6
+ import { Icon } from "@/icons";
7
+
8
+ /** Short edit flow: pre-filled field, save keeps the dialog open only if you handle state (here: close on save click). */
9
+ export default function ModalEditEntityExample() {
10
+ const [name, setName] = React.useState("Acme Corp");
11
+
12
+ return (
13
+ <Modal.Root>
14
+ <Modal.Trigger>
15
+ <Button.Root size="m" variant="neutral" mode="stroke">
16
+ Rename account
17
+ </Button.Root>
18
+ </Modal.Trigger>
19
+ <Modal.Panel
20
+ description="The new name appears on invoices and in the member directory."
21
+ footer={
22
+ <>
23
+ <Modal.Close>
24
+ <Button.Root size="m" variant="neutral" mode="stroke">
25
+ Cancel
26
+ </Button.Root>
27
+ </Modal.Close>
28
+ <Modal.Close>
29
+ <Button.Root size="m" variant="primary" type="button">
30
+ Save changes
31
+ </Button.Root>
32
+ </Modal.Close>
33
+ </>
34
+ }
35
+ icon={<Icon name="nav.layoutGrid" tone="subtle" />}
36
+ title="Edit account name"
37
+ >
38
+ <Input.Root label="Account name" size="m">
39
+ <Input.Wrapper>
40
+ <Input.Field
41
+ onChange={(e) => setName(e.target.value)}
42
+ value={name}
43
+ autoComplete="organization"
44
+ />
45
+ </Input.Wrapper>
46
+ </Input.Root>
47
+ </Modal.Panel>
48
+ </Modal.Root>
49
+ );
50
+ }
@@ -0,0 +1,36 @@
1
+ import { Button } from "@/components/button/Button";
2
+ import { Modal } from "@/components/modal/Modal";
3
+ import { Typography } from "@/components/typography/Typography";
4
+ import { Icon } from "@/icons";
5
+
6
+ /** Disclosure + explicit accept; primary action is wrapped in `Modal.Close` so accepting dismisses the dialog. */
7
+ export default function ModalLegalConsentExample() {
8
+ return (
9
+ <Modal.Root closeOnOverlayClick={false}>
10
+ <Modal.Trigger>
11
+ <Button.Root size="m" variant="neutral" mode="stroke">
12
+ Review terms
13
+ </Button.Root>
14
+ </Modal.Trigger>
15
+ <Modal.Panel
16
+ description="Please read the following before continuing to use the service."
17
+ footer={
18
+ <Modal.Close>
19
+ <Button.Root size="m" variant="primary" type="button">
20
+ I agree
21
+ </Button.Root>
22
+ </Modal.Close>
23
+ }
24
+ icon={<Icon name="status.locked" tone="subtle" />}
25
+ title="Terms and data processing"
26
+ >
27
+ <Typography.Root as="p" variant="body-default">
28
+ By continuing, you agree to our Terms of Service and acknowledge our Privacy Policy. We
29
+ process account data to provide the product, send essential notices, and improve
30
+ reliability. You may withdraw consent where applicable by contacting support or adjusting
31
+ settings.
32
+ </Typography.Root>
33
+ </Modal.Panel>
34
+ </Modal.Root>
35
+ );
36
+ }
@@ -0,0 +1,75 @@
1
+ import * as React from "react";
2
+
3
+ import { Button } from "@/components/button/Button";
4
+ import { Input } from "@/components/input/Input";
5
+ import { Label } from "@/components/label/Label";
6
+ import { Modal } from "@/components/modal/Modal";
7
+ import { Select } from "@/components/select/Select";
8
+ import { Textarea } from "@/components/textarea/Textarea";
9
+ import { Icon } from "@/icons";
10
+
11
+ import styles from "./examples.module.css";
12
+
13
+ /** Several fields in the modal body; footer mirrors the canonical pattern (cancel + submit). */
14
+ export default function ModalMultiFieldFormExample() {
15
+ const messageId = React.useId();
16
+
17
+ return (
18
+ <Modal.Root>
19
+ <Modal.Trigger>
20
+ <Button.Root size="m" variant="neutral" mode="stroke">
21
+ New support ticket
22
+ </Button.Root>
23
+ </Modal.Trigger>
24
+ <Modal.Panel
25
+ description="Include enough detail for our team to reproduce or route the issue."
26
+ footer={
27
+ <>
28
+ <Modal.Close>
29
+ <Button.Root size="m" variant="neutral" mode="stroke">
30
+ Cancel
31
+ </Button.Root>
32
+ </Modal.Close>
33
+ <Button.Root size="m" variant="primary" type="submit" form="modal-ticket-form">
34
+ Submit ticket
35
+ </Button.Root>
36
+ </>
37
+ }
38
+ icon={<Icon name="nav.itemDot" tone="subtle" />}
39
+ title="Contact support"
40
+ >
41
+ <form
42
+ className={styles.fieldStack}
43
+ id="modal-ticket-form"
44
+ onSubmit={(e) => e.preventDefault()}
45
+ >
46
+ <Input.Root label="Subject" size="m">
47
+ <Input.Wrapper>
48
+ <Input.Field name="subject" placeholder="Short summary" />
49
+ </Input.Wrapper>
50
+ </Input.Root>
51
+ <Select.Root placeholder="Area" size="m">
52
+ <Select.Trigger>
53
+ <Select.Value />
54
+ </Select.Trigger>
55
+ <Select.Content>
56
+ <Select.Item value="billing">Billing</Select.Item>
57
+ <Select.Item value="product">Product bug</Select.Item>
58
+ <Select.Item value="account">Account access</Select.Item>
59
+ </Select.Content>
60
+ </Select.Root>
61
+ <div className={styles.labeledControl}>
62
+ <Label.Root htmlFor={messageId} size="m">
63
+ Message
64
+ </Label.Root>
65
+ <Textarea.Root
66
+ id={messageId}
67
+ placeholder="Steps, expected result, actual result"
68
+ size="m"
69
+ />
70
+ </div>
71
+ </form>
72
+ </Modal.Panel>
73
+ </Modal.Root>
74
+ );
75
+ }
@@ -1,23 +1,42 @@
1
1
  # Notification
2
2
 
3
- **Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
3
+ **Default `size`:** use **`m`** for the notification card size unless the surface explicitly needs **`s`** or **`l`**.
4
4
 
5
- ## About
5
+ ## Canonical
6
6
 
7
- Toast notifications: `NotificationProvider` keeps a queue, hooks expose `notify` / `dismiss` / `dismissAll`, and cards render in a portal with stacked groups per corner and semantic type.
7
+ - **`NotificationProvider`** wraps the tree that calls hooks; mounts a **portal** with fixed **zones** per viewport corner/edge. Each **`notify`** item is grouped by **`position`** and **`type`** into separate stacks (**`max`** per stack, default **`5`**).
8
+ - **`useNotifications`** — **`notify`**, **`dismiss`**, **`dismissAll`** only; throws outside the provider.
9
+ - **`useNotificationStore`** — same methods plus **`items`** (**`NotificationRecord[]`**, active only, no exit-animation rows).
10
+ - **`NotificationCard`** — **`article`** with live region semantics, icon, title, optional badge/description/**`action`** (neutral stroke **`Button.Root`**), optional close, progress track unless **`persistent`**.
11
+ - **Stacks** — Framer Motion list; hover expands stack and **pauses** countdowns until collapse. **`error`** / **`warning`** → **`role="alert"`**, **`aria-live="assertive"`**; **`success`** / **`info`** → **`status`**, **`polite`**.
8
12
 
9
- - **Use** for short, non-blocking feedback after actions (save, send, background job finished) when you do not need to trap focus.
10
- - **Use** when the message should appear above the page chrome and auto-dismiss or offer a single secondary action.
11
- - **Use** `useNotificationStore` when the UI must read `items` (e.g. custom lists or bulk dismiss).
12
- - **Use** `NotificationCard` alone only for static previews or fully custom wiring; live toasts go through the provider and `notify`.
13
- - **Do not use** for errors that require a blocking decision, long forms, or primary workflow inside the toast—prefer [Modal](../modal/COMPONENT.md), [Drawer](../drawer/COMPONENT.md), or [Banner](../banner/COMPONENT.md).
14
- - **Do not use** multiple nested `NotificationProvider`s unless you intentionally want several portals and duplicate zones.
13
+ ## Extended
15
14
 
16
- ## Composition
15
+ ### About
17
16
 
18
- - **`NotificationProvider`** wraps the tree that calls hooks; provides context and mounts a **portal** with a fixed viewport. Each screen **position** gets a **zone**; inside a zone, notifications are split into **stacks by `type`** (`success`, `error`, `warning`, `info`).
19
- - **`NotificationStack` / `NotificationStackItem`** (internal) — ordered list with Framer Motion; hovering expands the stack and sets **`paused`** on cards so countdown timers stop until collapse.
20
- - **`NotificationCard`** root is an `article` with a live region role, leading icon, title row (optional **badge**), optional description, optional **action** (`Button.Root`), optional close control, and a progress track unless **`persistent`**.
17
+ Toast notifications for short, non-blocking feedback after actions (save, send, job finished) when focus must not be trapped.
18
+
19
+ - **When to use** confirmations or lightweight errors that do not need a blocking dialog.
20
+ - **When to use** — one optional secondary **`action`** (e.g. undo, open detail) alongside auto-dismiss.
21
+ - **When to use** — **`useNotificationStore`** when the UI must reflect **`items`** (counters, bulk dismiss, custom chrome).
22
+ - **When not to use** — blocking decisions, long forms, or primary workflow inside the toast; prefer [Modal](../modal/COMPONENT.md), [Drawer](../drawer/COMPONENT.md), or [Banner](../banner/COMPONENT.md).
23
+ - **When not to use** — multiple nested **`NotificationProvider`**s unless you intentionally want several portals.
24
+
25
+ ### Composition
26
+
27
+ - **`NotificationProvider`** → context + **`NotificationToaster`** (portal, zones, **`NotificationStack`** per **`position`** + **`type`**).
28
+ - **`NotificationStack` / `NotificationStackItem`** (internal) — ordered list; peek/collapse behavior and **`paused`** passed to **`NotificationCard`**.
29
+ - **`NotificationCard`** — public for static previews or fully custom wiring; live toasts should use **`notify`**.
30
+
31
+ ### Scenarios (see `examples/`)
32
+
33
+ | Scenario | Approach |
34
+ |----------|----------|
35
+ | Toast queue / stack cap | Same **`position`** + **`type`** share one stack; **`max`** drops oldest; stagger **`notify`** with timeouts. Hover expands stack and pauses timers. → [`examples/toast-queue.tsx`](examples/toast-queue.tsx) |
36
+ | Positions | Set **`NotificationProvider`** default **`position`** or pass **`position`** per **`notify`**. Six anchors: **`top-*`** / **`bottom-*`** × **`left` \| `center` \| `right`**. → [`examples/positions.tsx`](examples/positions.tsx) |
37
+ | Action button | **`action: { label, onClick }`** — rendered as kit **`Button.Root`** (neutral stroke). → [`examples/action-toast.tsx`](examples/action-toast.tsx) |
38
+ | Error / success semantics | **`type: "error"`** / **`"warning"`** vs **`"success"`** / **`"info"`** — icons, grouping, and live-region assertiveness differ. → [`examples/error-success.tsx`](examples/error-success.tsx) |
39
+ | Reading the store | **`useNotificationStore`** — **`items`**, **`notify`**, **`dismiss`**, **`dismissAll`** for UI tied to queue length. → [`examples/notification-store.tsx`](examples/notification-store.tsx) |
21
40
 
22
41
  ### Minimal example
23
42
 
@@ -42,11 +61,11 @@ function Notifier() {
42
61
  }
43
62
  ```
44
63
 
45
- ## Rules
64
+ ### Rules
46
65
 
47
66
  - Call **`useNotifications`** or **`useNotificationStore`** only under **`NotificationProvider`**; both hooks throw if context is missing.
48
67
  - **`notify`** returns a string **`id`**; pass it to **`dismiss`** or use **`dismissAll`** for every active toast.
49
- - **`useNotificationStore`** exposes the same methods plus **`items`**: `NotificationRecord[]` of non-dismissing entries only (no internal closing-animation flag).
68
+ - **`useNotificationStore`** exposes the same methods plus **`items`**: **`NotificationRecord[]`** of non-dismissing entries only (no internal closing-animation flag).
50
69
  - Options passed to **`notify`** are merged with defaults: **`size`** `"m"`, **`position`** from the provider, **`duration`** `5000` ms, **`persistent`** `false`, **`closable`** `true`.
51
70
  - With **`persistent`**, there is no auto-dismiss, no progress bar, and duration does not drive closing; users or **`dismiss`** / **`dismissAll`** must close the card. Visually, **`persistent`** also turns on the accent-tinted **border** and (unless **`prefers-reduced-motion`**) the **`notification-glow`** shadow pulse — default **`notify()`** uses **`persistent: false`**, so live toasts look flatter unless you opt in.
52
71
  - If **`duration <= 0`**, the countdown effect does not run—time-based auto-dismiss does not occur; close via **`dismiss`** or the close button when **`closable`**.
@@ -118,3 +137,14 @@ Same **`notify`**, **`dismiss`**, and **`dismissAll`** as above, plus **`items`*
118
137
  - [Button](../button/COMPONENT.md)
119
138
  - [Drawer](../drawer/COMPONENT.md)
120
139
  - [Modal](../modal/COMPONENT.md)
140
+
141
+ ## LLM note
142
+
143
+ - Imports: **`NotificationProvider`**, **`useNotifications`**, **`useNotificationStore`**, **`NotificationCard`**, types **`NotificationOptions`**, **`NotificationRecord`**, **`NotificationPosition`**, **`NotificationType`**, **`NotificationSize`**, **`NotificationAction`** from **`"prime-ui-kit"`**.
144
+ - **`notify`** requires **`type`** and **`title`**; optional **`description`**, **`size`**, **`position`**, **`duration`**, **`persistent`**, **`icon`**, **`badge`**, **`closable`**, **`action`**.
145
+ - **`action`** is not a React node — it is **`{ label: string; onClick: () => void }`**; the kit renders **`Button.Root`** (neutral stroke) inside the card.
146
+ - Stack key = **`position` + `type`**; **`max`** applies per stack, not globally.
147
+ - **`persistent: true`** removes the progress bar and auto-dismiss; closing is manual or via **`dismiss`** / **`dismissAll`**.
148
+ - **`duration <= 0`** disables timer-based dismissal (still closable if **`closable`**).
149
+ - Do not nest **`NotificationProvider`** without a reason; one app root is typical.
150
+ - For static **`NotificationCard`**, build a full **`NotificationRecord`** (including **`id`**, **`position`**, **`size`**, **`duration`**, **`persistent`**, **`closable`**, **`createdAt`**) and wire **`onDismiss`** yourself.
@@ -0,0 +1,84 @@
1
+ import {
2
+ Button,
3
+ LinkButton,
4
+ NotificationProvider,
5
+ Typography,
6
+ useNotifications,
7
+ } from "prime-ui-kit";
8
+
9
+ /**
10
+ * action uses kit Button.Root inside the card; page triggers may use Button or LinkButton.
11
+ */
12
+ function ActionToastDemo() {
13
+ const { notify } = useNotifications();
14
+
15
+ return (
16
+ <div
17
+ style={{
18
+ display: "flex",
19
+ flexDirection: "column",
20
+ gap: "var(--prime-sys-spacing-m)",
21
+ alignItems: "flex-start",
22
+ }}
23
+ >
24
+ <Typography.Root variant="body-small" tone="muted">
25
+ Secondary action in the toast is always neutral stroke Button.Root from the kit.
26
+ </Typography.Root>
27
+ <div
28
+ style={{
29
+ display: "flex",
30
+ flexWrap: "wrap",
31
+ gap: "var(--prime-sys-spacing-s)",
32
+ alignItems: "center",
33
+ }}
34
+ >
35
+ <Button.Root
36
+ type="button"
37
+ variant="primary"
38
+ mode="filled"
39
+ size="m"
40
+ onClick={() =>
41
+ notify({
42
+ type: "info",
43
+ title: "Export ready",
44
+ description: "Your CSV is prepared.",
45
+ action: {
46
+ label: "Download",
47
+ onClick: () =>
48
+ notify({
49
+ type: "success",
50
+ title: "Started",
51
+ description: "In a real app, the file would download.",
52
+ }),
53
+ },
54
+ })
55
+ }
56
+ >
57
+ Toast with action
58
+ </Button.Root>
59
+ <LinkButton.Root
60
+ href="#"
61
+ size="m"
62
+ onClick={(event) => {
63
+ event.preventDefault();
64
+ notify({
65
+ type: "info",
66
+ title: "From LinkButton",
67
+ description: "Any control can call notify under the provider.",
68
+ });
69
+ }}
70
+ >
71
+ Fire via LinkButton
72
+ </LinkButton.Root>
73
+ </div>
74
+ </div>
75
+ );
76
+ }
77
+
78
+ export default function ActionToastExample() {
79
+ return (
80
+ <NotificationProvider>
81
+ <ActionToastDemo />
82
+ </NotificationProvider>
83
+ );
84
+ }