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,33 @@
1
+ import { Tag } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ /**
7
+ * Selected values (skills, recipients): removable chips in a named group so the fixed
8
+ * remove control `aria-label` has context from the page.
9
+ */
10
+ export default function TagExampleRemovableSelectedValues() {
11
+ const [skills, setSkills] = React.useState<string[]>([
12
+ "Design systems",
13
+ "React",
14
+ "Accessibility",
15
+ ]);
16
+
17
+ const removeSkill = (label: string) => {
18
+ setSkills((prev) => prev.filter((s) => s !== label));
19
+ };
20
+
21
+ return (
22
+ <fieldset className={styles.fieldsetPlain}>
23
+ <legend className={styles.legend}>Required skills</legend>
24
+ <div className={styles.chipRow}>
25
+ {skills.map((label) => (
26
+ <Tag.Root key={label} size="m" onRemove={() => removeSkill(label)}>
27
+ {label}
28
+ </Tag.Root>
29
+ ))}
30
+ </div>
31
+ </fieldset>
32
+ );
33
+ }
@@ -0,0 +1,24 @@
1
+ import { Icon, Tag } from "prime-ui-kit";
2
+
3
+ import styles from "./examples.module.css";
4
+
5
+ /**
6
+ * Read-only metadata and status: no `onRemove`, optional leading icon via `Tag.Icon`.
7
+ */
8
+ export default function TagExampleStatusMetadata() {
9
+ return (
10
+ <fieldset className={styles.fieldsetPlain}>
11
+ <legend className={styles.legend}>Release</legend>
12
+ <div className={styles.chipRow}>
13
+ <Tag.Root size="m">
14
+ <Tag.Icon>
15
+ <Icon name="status.locked" aria-hidden />
16
+ </Tag.Icon>
17
+ <span>Production</span>
18
+ </Tag.Root>
19
+ <Tag.Root size="m">v2.4.1</Tag.Root>
20
+ <Tag.Root size="m">Stable</Tag.Root>
21
+ </div>
22
+ </fieldset>
23
+ );
24
+ }
@@ -0,0 +1,18 @@
1
+ import { Tag } from "prime-ui-kit";
2
+
3
+ import styles from "./examples.module.css";
4
+
5
+ /** Size ladder `s` → `xl` for dense toolbars vs prominent filter rows. */
6
+ export default function TagExampleSizes() {
7
+ return (
8
+ <fieldset className={styles.fieldsetPlain}>
9
+ <legend className={styles.legend}>Size scale</legend>
10
+ <div className={styles.chipRow}>
11
+ <Tag.Root size="s">Small</Tag.Root>
12
+ <Tag.Root size="m">Medium</Tag.Root>
13
+ <Tag.Root size="l">Large</Tag.Root>
14
+ <Tag.Root size="xl">Extra large</Tag.Root>
15
+ </div>
16
+ </fieldset>
17
+ );
18
+ }
@@ -0,0 +1,20 @@
1
+ .fieldsetPlain {
2
+ margin: 0;
3
+ padding: 0;
4
+ border: none;
5
+ min-width: 0;
6
+ }
7
+
8
+ .legend {
9
+ margin: 0 0 var(--prime-sys-spacing-s);
10
+ padding: 0;
11
+ font-size: var(--prime-sys-typography-sizeScale-s);
12
+ color: var(--prime-sys-color-content-secondary);
13
+ }
14
+
15
+ .chipRow {
16
+ display: flex;
17
+ flex-wrap: wrap;
18
+ gap: var(--prime-sys-spacing-s);
19
+ align-items: center;
20
+ }
@@ -0,0 +1,120 @@
1
+ # Textarea
2
+
3
+ **Default sizing:** when designing screens and examples, start with **`m`** for `size` wherever a size axis exists unless the scenario explicitly needs another value.
4
+
5
+ ## Canonical
6
+
7
+ - **Purpose:** multiline text with optional in-control **character counter**, and optional **hint** or **error** below, wired through **`aria-describedby`** on the native **`textarea`**.
8
+ - **Skeleton vs Input:** unlike [Input](../input/COMPONENT.md) (`Root` → `Wrapper` → **`Field`**), **Textarea** uses a single **`Textarea.Root`**: an outer **`.field`** stack wraps a bordered **`label`** (the field chrome) that owns the native **`<textarea>`**—there is **no** separate `Textarea.Field` export; pass standard textarea attributes on **`Root`**.
9
+ - **Children:** **`Textarea.CharCounter`** only as a **direct** child of **`Root`** (footer inside the chrome). **`Textarea.Hint`** / **`Textarea.Error`** as direct children **after** that chrome (siblings of the inner `label`, not wrapped around `CharCounter`).
10
+ - **Size:** `size` ∈ `s | m | l | xl` only on **`Textarea.Root`**; the HTML **`size`** attribute is omitted from the public typing (reserved).
11
+ - **Scenario examples (source):** [`./examples/01-support-ticket.tsx`](./examples/01-support-ticket.tsx), [`./examples/02-comment.tsx`](./examples/02-comment.tsx), [`./examples/03-controlled.tsx`](./examples/03-controlled.tsx), [`./examples/04-full-width.tsx`](./examples/04-full-width.tsx).
12
+
13
+ ```tsx
14
+ import { Textarea } from "prime-ui-kit";
15
+
16
+ export function Example() {
17
+ return (
18
+ <Textarea.Root placeholder="Notes" name="notes">
19
+ <Textarea.Hint>Optional hint below the field.</Textarea.Hint>
20
+ </Textarea.Root>
21
+ );
22
+ }
23
+ ```
24
+
25
+ ## Extended
26
+
27
+ ### About
28
+
29
+ A composite multiline field: native `textarea` inside bordered field chrome, optional footer for a character counter, and optional hint or error lines below wired through `aria-describedby`.
30
+
31
+ **When to use**
32
+
33
+ - Long or growing text in forms, feedback, notes, descriptions, and comments where a single line is not enough.
34
+ - Flows that need a built-in counter, hint, or error message aligned with the same sizing scale as other controls.
35
+ - Layouts where auto-growing height (`autoResize`) should track content without manual `rows` tuning.
36
+
37
+ **When not to use**
38
+
39
+ - Single-line values — use [Input](../input/COMPONENT.md).
40
+ - Rich text or embedded formatting — use a dedicated editor component.
41
+ - When the visible label must sit only above the chrome — pair [Label](../label/COMPONENT.md) with a stable **`id`** on **`Textarea.Root`** (see [`./examples/02-comment.tsx`](./examples/02-comment.tsx)); do not nest a second `label` around the control.
42
+
43
+ ### Composition
44
+
45
+ - **`Textarea.Root`** — outer `div` (`.field`) with `data-size`, `TextareaProvider`, and `ControlSizeProvider`. The native `textarea` sits inside a `label` (`htmlFor` → input id) with bordered `.control` styling; when `autoResize` is true, the textarea is wrapped so `data-value` can drive height.
46
+ - **`Textarea.CharCounter`** — must be a **direct** child of `Root`; implementation partitions children by reference equality to `Textarea.CharCounter` and renders matching nodes in the control footer.
47
+ - **`Textarea.Hint`** / **`Textarea.Error`** — direct children of `Root`, **not** passed as `CharCounter`; they render after the `label` and register ids merged into the textarea’s `aria-describedby`.
48
+
49
+ ### Extended examples
50
+
51
+ - [`./examples/01-support-ticket.tsx`](./examples/01-support-ticket.tsx) — Support form: description with counter, hint, and `maxLength`.
52
+ - [`./examples/02-comment.tsx`](./examples/02-comment.tsx) — Order comment: **Label** + **`Textarea.Root`** with shared **`id`**, counter, and logistics hint.
53
+ - [`./examples/03-controlled.tsx`](./examples/03-controlled.tsx) — Controlled value in React state with **`onChange`**.
54
+ - [`./examples/04-full-width.tsx`](./examples/04-full-width.tsx) — Filling a card column: root is already **`width: 100%`**; parent sets the track width.
55
+
56
+ **LLM note:** Prefer reading the runnable files under `./examples/*.tsx` for full scenarios, prop combinations, and composition patterns; this page keeps the contract (rules + API tables) authoritative.
57
+
58
+ ### Rules
59
+
60
+ - **Controlled vs uncontrolled:** pass **`value`** with **`onChange`** / **`onInput`** as needed for controlled text; omit **`value`** and optionally set **`defaultValue`** for uncontrolled usage.
61
+ - **`autoResize`** defaults to **`true`**: input events update a wrapper `data-value` mirror; set **`autoResize={false}`** to rely on fixed height / native resize behavior.
62
+ - **`variant="error"`** or mounting **`Textarea.Error`** sets invalid styling; **`aria-invalid`** defaults from that unless overridden.
63
+ - **`aria-describedby`** you pass is **merged** with auto-added hint and error ids (your ids first, then hint and error when those parts mount).
64
+ - **`disabled`** / **`readOnly`** on `Root` flow to the native textarea; **`Textarea.Hint`** switches to a disabled visual variant when either is true.
65
+ - Do not pass **`size`** as a DOM attribute on the textarea — it is omitted from the element API and reserved for **`Textarea.Root`** (`"s"` \| `"m"` \| `"l"` \| `"xl"`).
66
+ - **`Textarea.CharCounter`** is only recognized as an immediate child of **`Root`**; arbitrary wrappers around it will not land in the footer.
67
+ - Counter overflow (**`current` > `max`**) sets **`data-overflow="true"`** on the counter for styling; it does not block typing by itself (pair with **`maxLength`** if you need a hard cap).
68
+ - The counter uses **`aria-live="polite"`** so count updates do not interrupt typing.
69
+ - **Full width:** the `.field` root uses **`width: 100%`** and **`min-width: 0`** (same idea as Input). Place **`Textarea.Root`** inside a parent that spans the desired column or card width.
70
+ - There is no **`asChild`** or polymorphic root — structure is fixed.
71
+
72
+ ### API
73
+
74
+ #### Textarea.Root
75
+
76
+ | Prop | Type | Default | Required | Description |
77
+ |------|------|---------|----------|-------------|
78
+ | variant | `"default" \| "error"` | `"default"` | no | Visual invalid emphasis; combines with `aria-invalid` and `Textarea.Error` registration. |
79
+ | size | `"s" \| "m" \| "l" \| "xl"` | `"m"` | no | Control scale (padding, type, min height). |
80
+ | autoResize | `boolean` | `true` | no | When true, height follows content via wrapper `data-value`; when false, no auto-grow wrapper. |
81
+ | id | `string` | from `useId()` | no | Stable id for the textarea; `label` uses `htmlFor` pointing here. |
82
+ | className | `string` | — | no | Class on the bordered `label` (`control`). |
83
+ | disabled | `boolean` | — | no | Native disabled state. |
84
+ | readOnly | `boolean` | — | no | Native read-only state. |
85
+ | value | `string` | — | no | Controlled value. |
86
+ | defaultValue | `string` | — | no | Uncontrolled initial value. |
87
+ | onInput | `React.FormEventHandler<HTMLTextAreaElement>` | — | no | Fires after internal `data-value` sync when `autoResize` is on. |
88
+ | aria-describedby | `string` | — | no | Merged with hint/error ids when those parts mount. |
89
+ | aria-invalid | `Booleanish` | from variant / error | no | Explicit invalidity over heuristics. |
90
+ | children | `React.ReactNode` | — | no | `CharCounter` in the footer; `Hint` / `Error` after the `label`. |
91
+ | …rest | `Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, "size">` | — | no | Standard textarea attributes (`placeholder`, `rows`, `maxLength`, `required`, `onChange`, `name`, etc.). |
92
+
93
+ #### Textarea.CharCounter
94
+
95
+ | Prop | Type | Default | Required | Description |
96
+ |------|------|---------|----------|-------------|
97
+ | current | `number` | — | yes | Current character count. |
98
+ | max | `number` | — | yes | Displayed limit; overflow when `current > max` sets `data-overflow="true"`. |
99
+
100
+ #### Textarea.Hint
101
+
102
+ | Prop | Type | Default | Required | Description |
103
+ |------|------|---------|----------|-------------|
104
+ | children | `React.ReactNode` | — | yes | Hint copy. |
105
+ | className | `string` | — | no | Extra class on the underlying `Hint.Root`. |
106
+ | …rest | `Omit<React.HTMLAttributes<HTMLParagraphElement>, "id">` | — | no | Paragraph attributes; `id` comes from context. |
107
+
108
+ #### Textarea.Error
109
+
110
+ | Prop | Type | Default | Required | Description |
111
+ |------|------|---------|----------|-------------|
112
+ | children | `React.ReactNode` | — | yes | Error copy. |
113
+ | className | `string` | — | no | Extra class on the underlying `Hint.Root`. |
114
+ | …rest | `Omit<React.HTMLAttributes<HTMLParagraphElement>, "id">` | — | no | Paragraph attributes; `id` comes from context. |
115
+
116
+ ## Related
117
+
118
+ - [Input](../input/COMPONENT.md)
119
+ - [Label](../label/COMPONENT.md)
120
+ - [Hint](../hint/COMPONENT.md)
@@ -0,0 +1,35 @@
1
+ import { Textarea } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ const MAX = 2000;
7
+
8
+ /**
9
+ * Support ticket: long description with counter, hint, and a hard cap via maxLength.
10
+ */
11
+ export default function TextareaExampleSupportTicket() {
12
+ const [text, setText] = React.useState("");
13
+
14
+ return (
15
+ <div className={styles.stack}>
16
+ <Textarea.Root
17
+ id="support-description"
18
+ name="description"
19
+ size="m"
20
+ value={text}
21
+ onChange={(e) => setText(e.target.value)}
22
+ maxLength={MAX}
23
+ placeholder="Describe what happened, steps to reproduce, and what you expected instead."
24
+ rows={4}
25
+ required
26
+ aria-label="Support ticket description"
27
+ >
28
+ <Textarea.CharCounter current={text.length} max={MAX} />
29
+ <Textarea.Hint>
30
+ We typically reply within one business day. Avoid sharing passwords or full card numbers.
31
+ </Textarea.Hint>
32
+ </Textarea.Root>
33
+ </div>
34
+ );
35
+ }
@@ -0,0 +1,35 @@
1
+ import { Label, Textarea } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ const FIELD_ID = "order-comment";
7
+ const MAX = 240;
8
+
9
+ /**
10
+ * Order comment: caption above the field chrome via Label + shared id on Textarea.Root.
11
+ */
12
+ export default function TextareaExampleComment() {
13
+ const [comment, setComment] = React.useState("");
14
+
15
+ return (
16
+ <div className={styles.labelBlock}>
17
+ <Label.Root htmlFor={FIELD_ID} size="m">
18
+ Comment for the courier
19
+ <Label.Sub>Optional — visible to logistics until the order ships.</Label.Sub>
20
+ </Label.Root>
21
+ <Textarea.Root
22
+ id={FIELD_ID}
23
+ name="courierComment"
24
+ size="m"
25
+ value={comment}
26
+ onChange={(e) => setComment(e.target.value)}
27
+ maxLength={MAX}
28
+ placeholder="Gate code, safe drop spot, or delivery window"
29
+ >
30
+ <Textarea.CharCounter current={comment.length} max={MAX} />
31
+ <Textarea.Hint>Keep it short; the driver sees this on the handheld.</Textarea.Hint>
32
+ </Textarea.Root>
33
+ </div>
34
+ );
35
+ }
@@ -0,0 +1,27 @@
1
+ import { Textarea } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ /**
7
+ * Controlled textarea: value lives in parent state; hint reflects live length.
8
+ */
9
+ export default function TextareaExampleControlled() {
10
+ const [draft, setDraft] = React.useState(
11
+ "Draft text is owned by React state and updates on every change event.",
12
+ );
13
+
14
+ return (
15
+ <div className={styles.stack}>
16
+ <Textarea.Root
17
+ size="m"
18
+ value={draft}
19
+ onChange={(e) => setDraft(e.target.value)}
20
+ placeholder="Type here…"
21
+ name="draft"
22
+ >
23
+ <Textarea.Hint>Characters in state: {draft.length}</Textarea.Hint>
24
+ </Textarea.Root>
25
+ </div>
26
+ );
27
+ }
@@ -0,0 +1,23 @@
1
+ import { Textarea } from "prime-ui-kit";
2
+
3
+ import styles from "./examples.module.css";
4
+
5
+ /**
6
+ * Full width within a parent: Textarea.Root already stretches to 100% of its container.
7
+ */
8
+ export default function TextareaExampleFullWidth() {
9
+ return (
10
+ <div className={styles.fullWidthCard}>
11
+ <Textarea.Root
12
+ size="m"
13
+ name="cardNote"
14
+ placeholder="This field spans the full width of the card column."
15
+ >
16
+ <Textarea.Hint>
17
+ Widen or narrow the parent; the control follows the track (min-width: 0 avoids grid
18
+ blowout).
19
+ </Textarea.Hint>
20
+ </Textarea.Root>
21
+ </div>
22
+ );
23
+ }
@@ -0,0 +1,21 @@
1
+ .stack {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--prime-sys-spacing-m);
5
+ }
6
+
7
+ .labelBlock {
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: var(--prime-sys-spacing-s);
11
+ }
12
+
13
+ .fullWidthCard {
14
+ box-sizing: border-box;
15
+ width: 100%;
16
+ max-width: min(100%, 22rem);
17
+ padding: var(--prime-sys-spacing-x3);
18
+ border-radius: var(--prime-sys-radius-m);
19
+ border: 1px dashed var(--prime-sys-color-border-subtle);
20
+ background: var(--prime-sys-color-surface-raised);
21
+ }
@@ -0,0 +1,144 @@
1
+ # Tooltip
2
+
3
+ **Проектирование по умолчанию:** при проектировании экранов и примеров изначально выбирай **`m`** для `size` (где есть ось размера), если явно не оговорено иное.
4
+
5
+ ## About
6
+
7
+ A composite tooltip: optional delay provider, root with open state, trigger that wraps a single element, and content rendered in a portal and positioned relative to the trigger.
8
+
9
+ - **Use** to clarify icon-only controls, abbreviated labels, dense table cells, or non-obvious metrics on hover or keyboard focus.
10
+ - **Use** when the extra text is short and supplementary; keep the trigger’s visible label or `aria-label` as the primary affordance where possible.
11
+ - **Do not use** for long explanations or content that should stay visible without hover—prefer inline help, a hint, or a dedicated panel.
12
+ - **Do not use** for interactive content inside the layer (links, buttons, inputs); tooltip content is non-interactive and uses `pointer-events: none` in styles.
13
+ - **Do not use** one root for multiple anchors—each trigger needs its own `Tooltip.Root` (or separate instances).
14
+ - **Do not rely** on tooltips opening for natively `disabled` controls; disabled elements often do not receive hover/focus—wrap or use a different focusable pattern if a tooltip is required.
15
+
16
+ ## Composition
17
+
18
+ - **`Tooltip.Provider`** (optional) — wraps a subtree to share **`delayDuration`** (default **400** ms) for nested **`Tooltip.Root`** instances. Omit it when the default delay is fine.
19
+ - **`Tooltip.Root`** — holds open state (controlled or uncontrolled). Children must include **`Tooltip.Trigger`** and **`Tooltip.Content`** (order in the tree is conventional; both participate via context).
20
+ - **`Tooltip.Trigger`** — accepts **exactly one** **`React.ReactElement`** child. The implementation **`cloneElement`s** it: merges **`ref`**, **`className`**, **`aria-describedby`**, and pointer/focus handlers. The child must forward refs and accept standard DOM props.
21
+ - **`Tooltip.Content`** — tooltip body; rendered through **`Portal`** as a **`div`** with **`role="tooltip"`** and **`id`** matching the trigger’s **`aria-describedby`**. Sets **`data-size`** and **`data-side`** for styling (including the arrow). Wraps children in **`ControlSizeProvider`** for the chosen **`size`**.
22
+
23
+ ### Minimal example
24
+
25
+ ```tsx
26
+ import { Tooltip } from "prime-ui-kit";
27
+
28
+ export function Example() {
29
+ return (
30
+ <Tooltip.Root>
31
+ <Tooltip.Trigger>
32
+ <button type="button">Hover</button>
33
+ </Tooltip.Trigger>
34
+ <Tooltip.Content>Help text</Tooltip.Content>
35
+ </Tooltip.Root>
36
+ );
37
+ }
38
+ ```
39
+
40
+ ### Canonical example (icon-only control)
41
+
42
+ Use this as the default copy-paste shell: **`aria-label`** (or another accessible name) on the **focusable** trigger, **`Button.Icon`** + **`Icon`**, and a short **`Tooltip.Content`** (often **`size="s"`** next to a **`size="m"`** control).
43
+
44
+ ```tsx
45
+ import { Button, Icon, Tooltip } from "prime-ui-kit";
46
+
47
+ export function CopyLinkHint() {
48
+ return (
49
+ <Tooltip.Root>
50
+ <Tooltip.Trigger>
51
+ <Button.Root
52
+ type="button"
53
+ variant="neutral"
54
+ mode="ghost"
55
+ size="m"
56
+ aria-label="Copy link"
57
+ >
58
+ <Button.Icon>
59
+ <Icon name="action.copy" size="s" tone="subtle" />
60
+ </Button.Icon>
61
+ </Button.Root>
62
+ </Tooltip.Trigger>
63
+ <Tooltip.Content size="s">Copy page link to clipboard</Tooltip.Content>
64
+ </Tooltip.Root>
65
+ );
66
+ }
67
+ ```
68
+
69
+ Source of truth (stays in sync with the snippet above): `examples/canonical-icon-hint.tsx`.
70
+
71
+ ### Examples (source)
72
+
73
+ Runnable demos live next to this file (workspace imports use `@/`; published consumers use `prime-ui-kit`):
74
+
75
+ | File | Intent |
76
+ |------|--------|
77
+ | `examples/canonical-icon-hint.tsx` | Icon-only button, **`aria-label`**, short hint |
78
+ | `examples/scenario-delay-provider.tsx` | **`Tooltip.Provider`** with **`delayDuration={800}`** |
79
+ | `examples/scenario-long-content.tsx` | Long wrapped copy; **`size="m"`** |
80
+ | `examples/scenario-side-bottom.tsx` | **`side="bottom"`** when default placement clips |
81
+ | `examples/scenario-controlled-programmatic.tsx` | **`open`** / **`onOpenChange`** with **`delayDuration={0}`** for demos |
82
+
83
+ Playground snippets (broader variants, including Russian copy): `playground/snippets/tooltip/`.
84
+
85
+ ### Extended usage
86
+
87
+ - **Delay:** wrap a subtree in **`Tooltip.Provider`** and set **`delayDuration`** (ms). Default is **400**; use a longer value to reduce accidental flashes, or **`0`** for tests and controlled demos.
88
+ - **Long text:** rely on the built-in **`max-width`** and **`word-break`** on the content surface; prefer shorter copy when possible—if users must read a paragraph, use inline help, **Hint**, or **Popover** instead.
89
+ - **Placement:** set **`side`** on **`Tooltip.Content`** when **top** clips; coordinates are **viewport-clamped** (**8px** inset) but the kit does **not** auto-flip to the opposite side.
90
+ - **Controlled:** pass **`open`** and **`onOpenChange`** on **`Tooltip.Root`**; pointer/focus on the trigger still updates the same state. Pair with **`delayDuration={0}`** when an external control should show the tooltip immediately.
91
+ - **Disabled triggers:** native **`disabled`** elements often skip hover/focus—wrap with a focusable container or use **`aria-disabled`** + custom styling if a tooltip on a “disabled” control is required.
92
+
93
+ ### Note for LLMs
94
+
95
+ When generating **Tooltip** markup for this library: (1) **`Tooltip.Trigger`** takes **exactly one** **`ReactElement`** child (the implementation uses **`cloneElement`**). (2) Put the **accessible name** on the trigger (**`aria-label`**, visible text, or **`aria-labelledby`**)—the tooltip supplements it; do not rely on the tooltip alone for the control’s name. (3) Do not put **links, buttons, or inputs** inside **`Tooltip.Content`** (non-interactive layer, **`pointer-events: none`**). (4) Use **one** **`Tooltip.Root`** per anchor; do not attach one root to multiple triggers. (5) For starting points, mirror **`examples/canonical-icon-hint.tsx`**, then adapt **`scenario-*.tsx`** files.
96
+
97
+ ## Rules
98
+
99
+ - **Uncontrolled:** omit **`open`**; optional **`defaultOpen`** (defaults to **`false`**). **Controlled:** pass **`open`** and **`onOpenChange`**; the same open state drives visibility together with hover/focus on the trigger.
100
+ - Opening is **delayed** by **`Tooltip.Provider`**’s **`delayDuration`** after **`mouseenter`** or **`focus`**; leaving or **blur** clears the timer and closes. Cleanup runs on unmount.
101
+ - **Position:** **`side`** is **`top`** \| **`bottom`** \| **`left`** \| **`right`** (default **`top`**). Coordinates are **clamped** to the viewport (**8px** inset); there is **no automatic flip** to the opposite side when space is tight—choose **`side`** explicitly if needed.
102
+ - **Accessibility:** trigger gets **`aria-describedby`** pointing at the content **`id`**; content uses **`role="tooltip"`**. For inline glossary-style terms, prefer **`button type="button"`** as the trigger so keyboard focus is predictable.
103
+ - **Portal:** content does not sit in the trigger’s DOM subtree; it won’t inherit layout/CSS from ancestors of the trigger (only what you pass as children and classes on **`Tooltip.Content`**).
104
+ - **`Tooltip.Content`** defaults **`size`** to **`m`** and **`side`** to **`top`**; visual scale and arrow follow **`data-size`** / **`data-side`** and theme tokens—there is no separate **`variant`** prop.
105
+
106
+ ## API
107
+
108
+ The package exports the **`Tooltip`** namespace object and types **`TooltipSize`**, **`TooltipSide`**, **`TooltipProviderProps`**, **`TooltipRootProps`**, **`TooltipTriggerProps`**, **`TooltipContentProps`**.
109
+
110
+ ### Tooltip.Provider
111
+
112
+ | Prop | Type | Default | Required | Description |
113
+ |------|------|---------|----------|-------------|
114
+ | delayDuration | `number` | `400` | No | Milliseconds to wait before opening after pointer enters or the trigger receives focus |
115
+ | children | `React.ReactNode` | — | Yes | Subtree whose tooltips use this delay |
116
+
117
+ ### Tooltip.Root
118
+
119
+ | Prop | Type | Default | Required | Description |
120
+ |------|------|---------|----------|-------------|
121
+ | children | `React.ReactNode` | — | Yes | Typically `Tooltip.Trigger` and `Tooltip.Content` |
122
+ | open | `boolean` | — | No | Controlled open state |
123
+ | defaultOpen | `boolean` | `false` | No | Initial open state when uncontrolled |
124
+ | onOpenChange | `(open: boolean) => void` | — | No | Called when open state changes |
125
+
126
+ ### Tooltip.Trigger
127
+
128
+ | Prop | Type | Default | Required | Description |
129
+ |------|------|---------|----------|-------------|
130
+ | children | `React.ReactElement` | — | Yes | Single element; receives ref, `aria-describedby`, and open/close handlers |
131
+ | className | `string` | — | No | Merged with the child’s `className` via `cx()` |
132
+
133
+ ### Tooltip.Content
134
+
135
+ | Prop | Type | Default | Required | Description |
136
+ |------|------|---------|----------|-------------|
137
+ | children | `React.ReactNode` | — | Yes | Tooltip body; wrapped in `ControlSizeProvider` for nested controls that read control size |
138
+ | size | `TooltipSize` (`"s"` \| `"m"` \| `"l"` \| `"xl"`) | `"m"` | No | Padding, typography, and arrow scale |
139
+ | side | `TooltipSide` (`"top"` \| `"bottom"` \| `"left"` \| `"right"`) | `"top"` | No | Placement relative to the trigger before viewport clamping |
140
+ | className | `string` | — | No | Additional class on the portal root |
141
+
142
+ ## Related
143
+
144
+ [Button](../button/COMPONENT.md) — typical focusable trigger; [Label](../label/COMPONENT.md) and [Hint](../hint/COMPONENT.md) — persistent field labeling and helper text; [Popover](../popover/COMPONENT.md) — focusable, interactive overlay content.
@@ -0,0 +1,19 @@
1
+ import { Button, Icon, Tooltip } from "prime-ui-kit";
2
+
3
+ /**
4
+ * Icon-only control: accessible name on the trigger plus a short tooltip on hover/focus.
5
+ */
6
+ export default function TooltipCanonicalIconHint() {
7
+ return (
8
+ <Tooltip.Root>
9
+ <Tooltip.Trigger>
10
+ <Button.Root type="button" variant="neutral" mode="ghost" size="m" aria-label="Copy link">
11
+ <Button.Icon>
12
+ <Icon name="action.copy" size="s" tone="subtle" />
13
+ </Button.Icon>
14
+ </Button.Root>
15
+ </Tooltip.Trigger>
16
+ <Tooltip.Content size="s">Copy page link to clipboard</Tooltip.Content>
17
+ </Tooltip.Root>
18
+ );
19
+ }
@@ -0,0 +1,6 @@
1
+ .stack {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--prime-sys-spacing-m);
5
+ align-items: flex-start;
6
+ }
@@ -0,0 +1,32 @@
1
+ import { Button, Switch, Tooltip } from "prime-ui-kit";
2
+ import * as React from "react";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ /**
7
+ * Controlled open state: drive the same boolean from UI and Tooltip.Root.
8
+ */
9
+ export default function TooltipScenarioControlledProgrammatic() {
10
+ const [open, setOpen] = React.useState(false);
11
+
12
+ return (
13
+ <div className={styles.stack}>
14
+ <Switch.Root size="m" checked={open} onCheckedChange={setOpen}>
15
+ <Switch.Label>Show tooltip programmatically</Switch.Label>
16
+ <Switch.Hint>
17
+ Hover or focus the button still updates <code>open</code> via <code>onOpenChange</code>.
18
+ </Switch.Hint>
19
+ </Switch.Root>
20
+ <Tooltip.Provider delayDuration={0}>
21
+ <Tooltip.Root open={open} onOpenChange={setOpen}>
22
+ <Tooltip.Trigger>
23
+ <Button.Root type="button" variant="neutral" mode="stroke" size="m">
24
+ Trigger
25
+ </Button.Root>
26
+ </Tooltip.Trigger>
27
+ <Tooltip.Content>Controlled tooltip</Tooltip.Content>
28
+ </Tooltip.Root>
29
+ </Tooltip.Provider>
30
+ </div>
31
+ );
32
+ }
@@ -0,0 +1,19 @@
1
+ import { Button, Tooltip } from "prime-ui-kit";
2
+
3
+ /**
4
+ * Shared hover/focus delay via Tooltip.Provider (default is 400ms).
5
+ */
6
+ export default function TooltipScenarioDelayProvider() {
7
+ return (
8
+ <Tooltip.Provider delayDuration={800}>
9
+ <Tooltip.Root>
10
+ <Tooltip.Trigger>
11
+ <Button.Root type="button" variant="neutral" mode="stroke" size="m">
12
+ Hover slowly
13
+ </Button.Root>
14
+ </Tooltip.Trigger>
15
+ <Tooltip.Content>This tooltip opens after 800ms on hover or focus</Tooltip.Content>
16
+ </Tooltip.Root>
17
+ </Tooltip.Provider>
18
+ );
19
+ }
@@ -0,0 +1,22 @@
1
+ import { Button, Tooltip } from "prime-ui-kit";
2
+
3
+ /**
4
+ * Long supplementary copy: tooltip content is clamped by theme max-width and wraps.
5
+ */
6
+ export default function TooltipScenarioLongContent() {
7
+ return (
8
+ <Tooltip.Provider delayDuration={200}>
9
+ <Tooltip.Root>
10
+ <Tooltip.Trigger>
11
+ <Button.Root type="button" variant="neutral" mode="stroke" size="m">
12
+ Password rules
13
+ </Button.Root>
14
+ </Tooltip.Trigger>
15
+ <Tooltip.Content size="m">
16
+ Use at least 12 characters with upper and lower case letters and numbers. Do not reuse
17
+ passwords from other sites; use a unique passphrase for this account.
18
+ </Tooltip.Content>
19
+ </Tooltip.Root>
20
+ </Tooltip.Provider>
21
+ );
22
+ }
@@ -0,0 +1,21 @@
1
+ import { Button, Tooltip } from "prime-ui-kit";
2
+
3
+ /**
4
+ * Explicit placement: no automatic flip—pick side when the default clips.
5
+ */
6
+ export default function TooltipScenarioSideBottom() {
7
+ return (
8
+ <Tooltip.Provider delayDuration={200}>
9
+ <Tooltip.Root>
10
+ <Tooltip.Trigger>
11
+ <Button.Root type="button" variant="neutral" mode="stroke" size="m">
12
+ Anchor near top
13
+ </Button.Root>
14
+ </Tooltip.Trigger>
15
+ <Tooltip.Content side="bottom" size="m">
16
+ Shown below the trigger; position is clamped to the viewport inset.
17
+ </Tooltip.Content>
18
+ </Tooltip.Root>
19
+ </Tooltip.Provider>
20
+ );
21
+ }