prime-ui-kit 0.9.0 → 0.9.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 (982) hide show
  1. package/README.md +61 -47
  2. package/dist/chunks/chunk-IQELQNMR.js +379 -0
  3. package/dist/chunks/chunk-LXGRKN34.js +13260 -0
  4. package/dist/chunks/chunk-ZEFCDEEQ.js +3493 -0
  5. package/dist/color-picker.d.ts +7 -0
  6. package/dist/color-picker.js +9 -0
  7. package/dist/components/accordion/Accordion.d.ts +44 -32
  8. package/dist/components/avatar/Avatar.d.ts +36 -53
  9. package/dist/components/badge/Badge.d.ts +50 -13
  10. package/dist/components/badge/edgeIcons.d.ts +13 -0
  11. package/dist/components/badge/tier.d.ts +0 -1
  12. package/dist/components/banner/Banner.d.ts +29 -60
  13. package/dist/components/breadcrumb/Breadcrumb.d.ts +11 -23
  14. package/dist/components/button/Button.d.ts +22 -36
  15. package/dist/components/button-group/ButtonGroup.d.ts +17 -17
  16. package/dist/components/card/Card.d.ts +75 -202
  17. package/dist/components/checkbox/Checkbox.d.ts +37 -38
  18. package/dist/components/code-block/CodeBlock.d.ts +5 -13
  19. package/dist/components/color-picker/ColorPicker.d.ts +76 -52
  20. package/dist/components/color-picker/ColorPresets.d.ts +18 -30
  21. package/dist/components/color-swatches/ColorSwatches.d.ts +40 -0
  22. package/dist/components/command-menu/CommandMenu.d.ts +138 -78
  23. package/dist/components/crossfade/Crossfade.d.ts +14 -0
  24. package/dist/components/data-table/DataTable.d.ts +35 -81
  25. package/dist/components/data-table/Footer.d.ts +16 -0
  26. package/dist/components/data-table/Head.d.ts +21 -0
  27. package/dist/components/data-table/Row.d.ts +56 -0
  28. package/dist/components/data-table/StateRows.d.ts +18 -0
  29. package/dist/components/data-table/rows.d.ts +60 -0
  30. package/dist/components/data-table/types.d.ts +40 -0
  31. package/dist/components/data-table/useColumnHover.d.ts +9 -0
  32. package/dist/components/data-table/useFrozenColumns.d.ts +16 -0
  33. package/dist/components/data-table/useInfiniteRows.d.ts +24 -0
  34. package/dist/components/data-table/useRowSelection.d.ts +35 -0
  35. package/dist/components/datepicker/Datepicker.d.ts +9 -126
  36. package/dist/components/datepicker/DatepickerPanel.d.ts +113 -0
  37. package/dist/components/datepicker/datepickerModel.d.ts +16 -22
  38. package/dist/components/datepicker/panelLayout.d.ts +50 -0
  39. package/dist/components/digit-input/DigitInput.d.ts +24 -19
  40. package/dist/components/divider/Divider.d.ts +7 -15
  41. package/dist/components/dnd/Dnd.d.ts +135 -0
  42. package/dist/components/dnd/DragOverlay.d.ts +6 -0
  43. package/dist/components/dnd/autoScroll.d.ts +5 -0
  44. package/dist/components/dnd/context.d.ts +5 -0
  45. package/dist/components/dnd/dragSession.d.ts +102 -0
  46. package/dist/components/dnd/geometry.d.ts +30 -0
  47. package/dist/components/dnd/labels.d.ts +18 -0
  48. package/dist/components/dnd/store.d.ts +9 -0
  49. package/dist/components/dnd/useDragSource.d.ts +36 -0
  50. package/dist/components/dnd/useDropTarget.d.ts +44 -0
  51. package/dist/components/dnd/useFlipList.d.ts +11 -0
  52. package/dist/components/dnd/useSortableList.d.ts +62 -0
  53. package/dist/components/drawer/Drawer.d.ts +13 -21
  54. package/dist/components/dropdown/Dropdown.d.ts +78 -84
  55. package/dist/components/empty-page/EmptyPage.d.ts +48 -48
  56. package/dist/components/example-frame/ExampleFrame.d.ts +20 -27
  57. package/dist/components/file-upload/FileUpload.d.ts +79 -134
  58. package/dist/components/hint/Hint.d.ts +10 -11
  59. package/dist/components/index.d.ts +58 -42
  60. package/dist/components/input/Input.d.ts +35 -37
  61. package/dist/components/kanban/Kanban.d.ts +129 -0
  62. package/dist/components/kbd/Kbd.d.ts +6 -12
  63. package/dist/components/label/Label.d.ts +18 -15
  64. package/dist/components/link-button/LinkButton.d.ts +14 -15
  65. package/dist/components/login-form/LoginForm.d.ts +115 -0
  66. package/dist/components/modal/DialogParts.d.ts +57 -16
  67. package/dist/components/modal/Modal.d.ts +9 -20
  68. package/dist/components/native-select/NativeSelect.d.ts +28 -0
  69. package/dist/components/notification/Notification.d.ts +50 -16
  70. package/dist/components/notification/NotificationStore.d.ts +2 -6
  71. package/dist/components/page-content/PageContent.d.ts +43 -52
  72. package/dist/components/page-toolbar/PageToolbar.d.ts +53 -0
  73. package/dist/components/pagination/Pagination.d.ts +11 -23
  74. package/dist/components/popover/Popover.d.ts +62 -26
  75. package/dist/components/progress-bar/ProgressBar.d.ts +17 -13
  76. package/dist/components/progress-circle/ProgressCircle.d.ts +14 -15
  77. package/dist/components/radio/Radio.d.ts +46 -54
  78. package/dist/components/scroll-container/ScrollContainer.d.ts +10 -13
  79. package/dist/components/segmented-control/SegmentedControl.d.ts +20 -29
  80. package/dist/components/select/Select.d.ts +54 -135
  81. package/dist/components/select/SelectItem.d.ts +68 -0
  82. package/dist/components/select/selectContext.d.ts +61 -0
  83. package/dist/components/skeleton/Skeleton.d.ts +22 -0
  84. package/dist/components/slider/Slider.d.ts +24 -16
  85. package/dist/components/smart-filter/SmartFilter.d.ts +105 -0
  86. package/dist/components/smart-filter/model.d.ts +33 -0
  87. package/dist/components/spinner/Spinner.d.ts +22 -0
  88. package/dist/components/stepper/Stepper.d.ts +32 -42
  89. package/dist/components/switch/Switch.d.ts +19 -37
  90. package/dist/components/tabs/Tabs.d.ts +65 -38
  91. package/dist/components/tag-select/TagOptionMenu.d.ts +29 -0
  92. package/dist/components/tag-select/TagSelect.d.ts +15 -16
  93. package/dist/components/tag-select/useChipOverflow.d.ts +19 -0
  94. package/dist/components/textarea/Textarea.d.ts +16 -31
  95. package/dist/components/thumbnail/Thumbnail.d.ts +41 -0
  96. package/dist/components/timeline/Timeline.d.ts +46 -61
  97. package/dist/components/tooltip/Tooltip.d.ts +21 -17
  98. package/dist/components/typography/Typography.d.ts +5 -21
  99. package/dist/hooks/useControllableState.d.ts +0 -1
  100. package/dist/hooks/useEdgeOverflow.d.ts +12 -0
  101. package/dist/hooks/useEnterConfirm.d.ts +15 -0
  102. package/dist/hooks/useImageStatus.d.ts +19 -0
  103. package/dist/hooks/useInertSiblings.d.ts +9 -0
  104. package/dist/hooks/useMediaQuery.d.ts +7 -0
  105. package/dist/hooks/useMergedRefs.d.ts +6 -2
  106. package/dist/hooks/useModalLayer.d.ts +22 -0
  107. package/dist/hooks/usePosition.d.ts +46 -40
  108. package/dist/hooks/usePresence.d.ts +0 -1
  109. package/dist/hooks/useScrollLock.d.ts +3 -5
  110. package/dist/hooks/useStateSwap.d.ts +8 -0
  111. package/dist/hooks/useSwipeDismiss.d.ts +34 -0
  112. package/dist/icons/Icon.d.ts +24 -7
  113. package/dist/icons/index.d.ts +2 -44
  114. package/dist/icons/registry.d.ts +85 -0
  115. package/dist/index.css +7053 -6846
  116. package/dist/index.d.ts +0 -1
  117. package/dist/index.js +106 -13830
  118. package/dist/internal/AnchorRectContext.d.ts +12 -0
  119. package/dist/internal/ChoiceField.d.ts +34 -0
  120. package/dist/internal/ControlSizeContext.d.ts +6 -2
  121. package/dist/internal/FieldFrame.d.ts +47 -8
  122. package/dist/internal/HighlightMatch.d.ts +13 -0
  123. package/dist/internal/MenuGroup.d.ts +8 -0
  124. package/dist/internal/Portal.d.ts +0 -1
  125. package/dist/internal/VisuallyHidden.d.ts +11 -0
  126. package/dist/internal/context.d.ts +0 -1
  127. package/dist/internal/cx.d.ts +0 -1
  128. package/dist/internal/data-attributes.d.ts +0 -1
  129. package/dist/internal/fieldClasses.d.ts +9 -0
  130. package/dist/internal/formatLabel.d.ts +6 -0
  131. package/dist/internal/highlightTsxHtml.d.ts +1 -2
  132. package/dist/internal/iconBox.d.ts +9 -0
  133. package/dist/internal/iconLayout.d.ts +15 -0
  134. package/dist/internal/imageSlot.d.ts +29 -0
  135. package/dist/internal/layoutPxFromPrimitives.d.ts +2 -3
  136. package/dist/internal/listbox.d.ts +40 -0
  137. package/dist/internal/mergeRefs.d.ts +4 -2
  138. package/dist/internal/overlay/FloatingPanel.d.ts +36 -0
  139. package/dist/internal/overlay/focus.d.ts +14 -0
  140. package/dist/internal/overlay/layerStack.d.ts +41 -0
  141. package/dist/internal/overlay/useFloatingLayer.d.ts +70 -0
  142. package/dist/internal/polymorphic.d.ts +9 -0
  143. package/dist/internal/progressSegments.d.ts +63 -0
  144. package/dist/internal/rovingFocus.d.ts +18 -0
  145. package/dist/internal/scrollAncestors.d.ts +1 -2
  146. package/dist/internal/slot.d.ts +11 -5
  147. package/dist/internal/states.d.ts +3 -2
  148. package/dist/internal/swatch.d.ts +56 -0
  149. package/dist/internal/touchTarget.d.ts +4 -0
  150. package/dist/layout/app-header/AppHeader.d.ts +110 -0
  151. package/dist/layout/app-shell/AppShell.d.ts +47 -22
  152. package/dist/layout/bottom-nav/BottomNav.d.ts +80 -0
  153. package/dist/layout/index.d.ts +6 -3
  154. package/dist/layout/sidebar/Sidebar.d.ts +206 -35
  155. package/dist/theme/applyTheme.d.ts +0 -1
  156. package/dist/tokens/naming.d.ts +6 -0
  157. package/dist/tokens/primitives.d.ts +26 -80
  158. package/dist/tokens/semantic.d.ts +122 -25
  159. package/dist/tokens/themes/dark.d.ts +7 -1
  160. package/package.json +30 -24
  161. package/src/components/accordion/COMPONENT.md +91 -101
  162. package/src/components/accordion/examples/collapsible.tsx +27 -0
  163. package/src/components/accordion/examples/controlled.tsx +36 -0
  164. package/src/components/accordion/examples/examples.module.css +6 -39
  165. package/src/components/accordion/examples/multiple.tsx +31 -0
  166. package/src/components/accordion/examples/overview.tsx +39 -0
  167. package/src/components/accordion/examples/sizes.tsx +14 -25
  168. package/src/components/accordion/examples/states.tsx +23 -48
  169. package/src/components/accordion/examples/variants.tsx +35 -0
  170. package/src/components/accordion/examples/with-icon.tsx +47 -0
  171. package/src/components/avatar/COMPONENT.md +88 -153
  172. package/src/components/avatar/examples/examples.module.css +6 -44
  173. package/src/components/avatar/examples/overview.tsx +18 -0
  174. package/src/components/avatar/examples/presence.tsx +20 -17
  175. package/src/components/avatar/examples/sizes.tsx +8 -10
  176. package/src/components/avatar/examples/src-from-state.tsx +4 -5
  177. package/src/components/avatar/examples/states.tsx +17 -27
  178. package/src/components/avatar/examples/team-group.tsx +21 -0
  179. package/src/components/avatar/examples/variants.tsx +40 -0
  180. package/src/components/badge/COMPONENT.md +113 -122
  181. package/src/components/{tag → badge}/examples/applied-filters.tsx +10 -11
  182. package/src/components/badge/examples/examples.module.css +14 -59
  183. package/src/components/badge/examples/filter-values.tsx +39 -0
  184. package/src/components/badge/examples/in-controls.tsx +14 -26
  185. package/src/components/badge/examples/overview.tsx +13 -0
  186. package/src/components/badge/examples/sizes.tsx +8 -10
  187. package/src/components/badge/examples/states.tsx +35 -29
  188. package/src/components/badge/examples/variants.tsx +27 -36
  189. package/src/components/badge/examples/with-icon.tsx +50 -0
  190. package/src/components/banner/COMPONENT.md +89 -94
  191. package/src/components/banner/examples/dismissible.tsx +38 -0
  192. package/src/components/banner/examples/examples.module.css +6 -22
  193. package/src/components/banner/examples/narrow.tsx +23 -0
  194. package/src/components/banner/examples/overview.tsx +18 -0
  195. package/src/components/banner/examples/page-strip.tsx +53 -0
  196. package/src/components/banner/examples/sizes.tsx +22 -21
  197. package/src/components/banner/examples/structure.tsx +45 -0
  198. package/src/components/banner/examples/variants.tsx +28 -55
  199. package/src/components/breadcrumb/COMPONENT.md +55 -59
  200. package/src/components/breadcrumb/examples/ellipsis.tsx +12 -0
  201. package/src/components/breadcrumb/examples/examples.module.css +3 -52
  202. package/src/components/breadcrumb/examples/overflow.tsx +26 -0
  203. package/src/components/breadcrumb/examples/overview.tsx +12 -0
  204. package/src/components/breadcrumb/examples/sizes.tsx +11 -14
  205. package/src/components/breadcrumb/examples/with-icon.tsx +14 -0
  206. package/src/components/button/COMPONENT.md +65 -66
  207. package/src/components/button/examples/as-child.tsx +8 -32
  208. package/src/components/button/examples/examples.module.css +18 -76
  209. package/src/components/button/examples/in-form.tsx +20 -14
  210. package/src/components/button/examples/on-colored-host.tsx +29 -0
  211. package/src/components/button/examples/overview.tsx +13 -0
  212. package/src/components/button/examples/sizes.tsx +7 -9
  213. package/src/components/button/examples/states.tsx +18 -28
  214. package/src/components/button/examples/variants.tsx +31 -0
  215. package/src/components/button/examples/with-icon.tsx +35 -23
  216. package/src/components/button-group/COMPONENT.md +64 -55
  217. package/src/components/button-group/examples/controlled.tsx +3 -3
  218. package/src/components/button-group/examples/examples.module.css +4 -39
  219. package/src/components/button-group/examples/full-width.tsx +10 -14
  220. package/src/components/button-group/examples/in-form.tsx +3 -3
  221. package/src/components/button-group/examples/orientation.tsx +6 -8
  222. package/src/components/button-group/examples/overview.tsx +12 -0
  223. package/src/components/button-group/examples/sizes.tsx +8 -10
  224. package/src/components/button-group/examples/states.tsx +28 -7
  225. package/src/components/button-group/examples/with-icon.tsx +45 -0
  226. package/src/components/card/COMPONENT.md +99 -298
  227. package/src/components/card/examples/{content.tsx → content-templates.tsx} +23 -29
  228. package/src/components/card/examples/examples.module.css +0 -8
  229. package/src/components/card/examples/flat.tsx +9 -14
  230. package/src/components/card/examples/kpi-media.tsx +42 -0
  231. package/src/components/card/examples/narrow.tsx +47 -0
  232. package/src/components/card/examples/{settings.tsx → overview.tsx} +7 -8
  233. package/src/components/card/examples/panel-chart.tsx +26 -34
  234. package/src/components/card/examples/{metrics.tsx → variants.tsx} +12 -18
  235. package/src/components/checkbox/COMPONENT.md +92 -96
  236. package/src/components/checkbox/examples/controlled.tsx +41 -0
  237. package/src/components/checkbox/examples/examples.module.css +47 -43
  238. package/src/components/checkbox/examples/in-form.tsx +34 -0
  239. package/src/components/checkbox/examples/indicator.tsx +54 -0
  240. package/src/components/checkbox/examples/overview.tsx +10 -0
  241. package/src/components/checkbox/examples/sizes.tsx +5 -10
  242. package/src/components/checkbox/examples/states.tsx +42 -23
  243. package/src/components/checkbox/examples/without-label.tsx +3 -7
  244. package/src/components/code-block/COMPONENT.md +55 -57
  245. package/src/components/code-block/examples/color-scheme.tsx +4 -15
  246. package/src/components/code-block/examples/examples.module.css +9 -40
  247. package/src/components/code-block/examples/{long-lines.tsx → narrow.tsx} +3 -4
  248. package/src/components/code-block/examples/overview.tsx +19 -0
  249. package/src/components/code-block/examples/variants.tsx +12 -21
  250. package/src/components/color-picker/COMPONENT.md +196 -165
  251. package/src/components/color-picker/examples/controlled.tsx +37 -0
  252. package/src/components/color-picker/examples/examples.module.css +19 -88
  253. package/src/components/color-picker/examples/formats.tsx +13 -18
  254. package/src/components/color-picker/examples/in-form.tsx +44 -0
  255. package/src/components/color-picker/examples/overview.tsx +37 -0
  256. package/src/components/color-picker/examples/panel.tsx +12 -13
  257. package/src/components/color-picker/examples/presets-sizes.tsx +15 -20
  258. package/src/components/color-picker/examples/presets.tsx +33 -0
  259. package/src/components/color-picker/examples/sizes.tsx +26 -0
  260. package/src/components/color-picker/examples/states.tsx +4 -14
  261. package/src/components/color-picker/examples/validation.tsx +18 -0
  262. package/src/components/color-swatches/COMPONENT.md +145 -0
  263. package/src/components/color-swatches/examples/controlled.tsx +22 -0
  264. package/src/components/color-swatches/examples/examples.module.css +19 -0
  265. package/src/components/color-swatches/examples/in-form.tsx +35 -0
  266. package/src/components/color-swatches/examples/overview.tsx +6 -0
  267. package/src/components/color-swatches/examples/sizes.tsx +19 -0
  268. package/src/components/color-swatches/examples/states.tsx +20 -0
  269. package/src/components/color-swatches/examples/wrapping.tsx +12 -0
  270. package/src/components/command-menu/COMPONENT.md +117 -180
  271. package/src/components/command-menu/examples/controlled-open.tsx +29 -0
  272. package/src/components/command-menu/examples/controlled.tsx +19 -26
  273. package/src/components/command-menu/examples/dismiss.tsx +39 -0
  274. package/src/components/command-menu/examples/overview.tsx +61 -0
  275. package/src/components/command-menu/examples/sizes.tsx +30 -51
  276. package/src/components/command-menu/examples/states.tsx +6 -16
  277. package/src/components/command-menu/examples/structure.tsx +54 -0
  278. package/src/components/crossfade/COMPONENT.md +104 -0
  279. package/src/components/crossfade/examples/examples.module.css +65 -0
  280. package/src/components/crossfade/examples/overview.tsx +102 -0
  281. package/src/components/crossfade/examples/record-switch.tsx +67 -0
  282. package/src/components/data-table/COMPONENT.md +181 -182
  283. package/src/components/data-table/examples/appearance.tsx +31 -34
  284. package/src/components/data-table/examples/columns-visibility.tsx +167 -0
  285. package/src/components/data-table/examples/content-width.tsx +46 -26
  286. package/src/components/data-table/examples/controlled.tsx +56 -0
  287. package/src/components/data-table/examples/detail-panel.tsx +23 -28
  288. package/src/components/data-table/examples/examples.module.css +20 -91
  289. package/src/components/data-table/examples/infinite-scroll.tsx +17 -18
  290. package/src/components/data-table/examples/narrow.tsx +28 -38
  291. package/src/components/data-table/examples/nested-rows.tsx +32 -54
  292. package/src/components/data-table/examples/numeric.tsx +10 -19
  293. package/src/components/data-table/examples/overview.tsx +54 -0
  294. package/src/components/data-table/examples/selection.tsx +11 -15
  295. package/src/components/data-table/examples/sizes.tsx +22 -33
  296. package/src/components/data-table/examples/states.tsx +23 -24
  297. package/src/components/data-table/examples/sticky.tsx +17 -24
  298. package/src/components/data-table/examples/toolbar.tsx +21 -23
  299. package/src/components/datepicker/COMPONENT.md +152 -164
  300. package/src/components/datepicker/examples/controlled-open.tsx +32 -0
  301. package/src/components/datepicker/examples/controlled.tsx +39 -0
  302. package/src/components/datepicker/examples/examples.module.css +9 -23
  303. package/src/components/datepicker/examples/in-form.tsx +32 -45
  304. package/src/components/datepicker/examples/inline-panel.tsx +3 -3
  305. package/src/components/datepicker/examples/narrow.tsx +1 -1
  306. package/src/components/datepicker/examples/overview.tsx +6 -0
  307. package/src/components/datepicker/examples/range-presets.tsx +6 -5
  308. package/src/components/datepicker/examples/sizes.tsx +7 -10
  309. package/src/components/datepicker/examples/states.tsx +9 -30
  310. package/src/components/datepicker/examples/validation.tsx +26 -0
  311. package/src/components/datepicker/examples/yearless.tsx +9 -8
  312. package/src/components/digit-input/COMPONENT.md +96 -58
  313. package/src/components/digit-input/examples/controlled.tsx +6 -15
  314. package/src/components/digit-input/examples/examples.module.css +13 -38
  315. package/src/components/digit-input/examples/full-width.tsx +13 -0
  316. package/src/components/digit-input/examples/grouped.tsx +11 -0
  317. package/src/components/digit-input/examples/in-form.tsx +32 -0
  318. package/src/components/digit-input/examples/on-complete.tsx +20 -0
  319. package/src/components/digit-input/examples/overview.tsx +6 -0
  320. package/src/components/digit-input/examples/sizes.tsx +5 -17
  321. package/src/components/digit-input/examples/states.tsx +6 -50
  322. package/src/components/digit-input/examples/validation.tsx +17 -0
  323. package/src/components/divider/COMPONENT.md +62 -53
  324. package/src/components/divider/examples/align.tsx +14 -0
  325. package/src/components/divider/examples/examples.module.css +6 -20
  326. package/src/components/divider/examples/or-separator.tsx +19 -0
  327. package/src/components/divider/examples/overview.tsx +30 -0
  328. package/src/components/divider/examples/sizes.tsx +11 -10
  329. package/src/components/divider/examples/vertical.tsx +21 -0
  330. package/src/components/divider/examples/with-icon.tsx +26 -0
  331. package/src/components/dnd/COMPONENT.md +197 -0
  332. package/src/components/dnd/examples/board.tsx +83 -0
  333. package/src/components/dnd/examples/drop-zones.tsx +82 -0
  334. package/src/components/dnd/examples/examples.module.css +89 -0
  335. package/src/components/dnd/examples/handle.tsx +53 -0
  336. package/src/components/dnd/examples/narrow.tsx +42 -0
  337. package/src/components/dnd/examples/overview.tsx +45 -0
  338. package/src/components/drawer/COMPONENT.md +114 -105
  339. package/src/components/drawer/examples/controlled-open.tsx +33 -0
  340. package/src/components/drawer/examples/date-sheet.tsx +41 -0
  341. package/src/components/drawer/examples/dismiss.tsx +55 -0
  342. package/src/components/drawer/examples/examples.module.css +8 -24
  343. package/src/components/drawer/examples/in-form.tsx +82 -0
  344. package/src/components/drawer/examples/long-content.tsx +40 -0
  345. package/src/components/drawer/examples/overview.tsx +48 -0
  346. package/src/components/drawer/examples/{variants-sides.tsx → placement.tsx} +13 -14
  347. package/src/components/drawer/examples/sizes.tsx +9 -15
  348. package/src/components/drawer/examples/structure.tsx +35 -0
  349. package/src/components/dropdown/COMPONENT.md +119 -148
  350. package/src/components/dropdown/examples/checkbox-items.tsx +48 -0
  351. package/src/components/dropdown/examples/controlled-open.tsx +32 -0
  352. package/src/components/dropdown/examples/dismiss.tsx +17 -0
  353. package/src/components/dropdown/examples/examples.module.css +11 -45
  354. package/src/components/dropdown/examples/long-list.tsx +42 -0
  355. package/src/components/dropdown/examples/{full-width.tsx → match-trigger-width.tsx} +5 -4
  356. package/src/components/dropdown/examples/overview.tsx +41 -0
  357. package/src/components/dropdown/examples/placement.tsx +16 -13
  358. package/src/components/dropdown/examples/sizes.tsx +18 -15
  359. package/src/components/dropdown/examples/states.tsx +21 -29
  360. package/src/components/dropdown/examples/structure.tsx +56 -0
  361. package/src/components/empty-page/COMPONENT.md +72 -76
  362. package/src/components/empty-page/examples/compact.tsx +23 -0
  363. package/src/components/empty-page/examples/data-region.tsx +8 -11
  364. package/src/components/empty-page/examples/examples.module.css +22 -25
  365. package/src/components/empty-page/examples/icon-tones.tsx +5 -6
  366. package/src/components/empty-page/examples/narrow.tsx +26 -0
  367. package/src/components/empty-page/examples/{no-results.tsx → overview.tsx} +4 -5
  368. package/src/components/empty-page/examples/sizes.tsx +14 -20
  369. package/src/components/example-frame/COMPONENT.md +64 -66
  370. package/src/components/example-frame/examples/controlled.tsx +42 -0
  371. package/src/components/example-frame/examples/overview.tsx +16 -0
  372. package/src/components/file-upload/COMPONENT.md +128 -186
  373. package/src/components/file-upload/examples/avatar-upload.tsx +7 -12
  374. package/src/components/file-upload/examples/custom-body.tsx +44 -0
  375. package/src/components/file-upload/examples/examples.module.css +46 -64
  376. package/src/components/file-upload/examples/in-form.tsx +76 -0
  377. package/src/components/file-upload/examples/narrow.tsx +17 -0
  378. package/src/components/file-upload/examples/overview.tsx +52 -0
  379. package/src/components/file-upload/examples/sizes.tsx +16 -37
  380. package/src/components/file-upload/examples/states.tsx +6 -98
  381. package/src/components/file-upload/examples/upload-progress.tsx +39 -0
  382. package/src/components/file-upload/examples/validation.tsx +19 -0
  383. package/src/components/file-upload/examples/variants.tsx +5 -18
  384. package/src/components/hint/COMPONENT.md +42 -48
  385. package/src/components/hint/examples/examples.module.css +3 -45
  386. package/src/components/hint/examples/hint-or-error.tsx +5 -5
  387. package/src/components/hint/examples/overview.tsx +34 -0
  388. package/src/components/hint/examples/sizes.tsx +8 -10
  389. package/src/components/hint/examples/states.tsx +21 -14
  390. package/src/components/hint/examples/with-icon.tsx +31 -0
  391. package/src/components/input/COMPONENT.md +70 -88
  392. package/src/components/input/examples/affixes.tsx +22 -0
  393. package/src/components/input/examples/controlled.tsx +9 -10
  394. package/src/components/input/examples/examples.module.css +3 -116
  395. package/src/components/input/examples/in-form.tsx +35 -14
  396. package/src/components/input/examples/overview.tsx +12 -0
  397. package/src/components/input/examples/sizes.tsx +6 -11
  398. package/src/components/input/examples/states.tsx +6 -23
  399. package/src/components/input/examples/validation.tsx +35 -0
  400. package/src/components/input/examples/with-icon.tsx +25 -0
  401. package/src/components/input/examples/{search-without-focus-ring.tsx → without-focus-ring.tsx} +5 -5
  402. package/src/components/kanban/COMPONENT.md +181 -0
  403. package/src/components/kanban/examples/controlled.tsx +78 -0
  404. package/src/components/kanban/examples/examples.module.css +31 -0
  405. package/src/components/kanban/examples/limits.tsx +58 -0
  406. package/src/components/kanban/examples/narrow.tsx +76 -0
  407. package/src/components/kanban/examples/overview.tsx +130 -0
  408. package/src/components/kanban/examples/states.tsx +75 -0
  409. package/src/components/kanban/examples/structure.tsx +76 -0
  410. package/src/components/kbd/COMPONENT.md +50 -65
  411. package/src/components/kbd/examples/examples.module.css +11 -41
  412. package/src/components/kbd/examples/in-controls.tsx +25 -31
  413. package/src/components/kbd/examples/overview.tsx +24 -0
  414. package/src/components/kbd/examples/shortcut-list.tsx +12 -12
  415. package/src/components/kbd/examples/sizes.tsx +8 -13
  416. package/src/components/label/COMPONENT.md +45 -44
  417. package/src/components/label/examples/examples.module.css +8 -29
  418. package/src/components/label/examples/overview.tsx +17 -0
  419. package/src/components/label/examples/sizes.tsx +9 -13
  420. package/src/components/label/examples/states.tsx +17 -14
  421. package/src/components/label/examples/structure.tsx +32 -0
  422. package/src/components/label/examples/with-icon.tsx +25 -17
  423. package/src/components/link-button/COMPONENT.md +56 -39
  424. package/src/components/link-button/examples/as-child.tsx +18 -0
  425. package/src/components/link-button/examples/external-link.tsx +6 -6
  426. package/src/components/link-button/examples/overview.tsx +11 -0
  427. package/src/components/link-button/examples/sizes.tsx +9 -11
  428. package/src/components/link-button/examples/states.tsx +25 -12
  429. package/src/components/link-button/examples/variants.tsx +21 -0
  430. package/src/components/link-button/examples/with-icon.tsx +21 -13
  431. package/src/components/login-form/COMPONENT.md +162 -0
  432. package/src/components/login-form/examples/examples.module.css +39 -0
  433. package/src/components/login-form/examples/forgot-password.tsx +39 -0
  434. package/src/components/login-form/examples/narrow.tsx +32 -0
  435. package/src/components/login-form/examples/overview.tsx +58 -0
  436. package/src/components/login-form/examples/register.tsx +85 -0
  437. package/src/components/login-form/examples/reset-password.tsx +60 -0
  438. package/src/components/login-form/examples/sizes.tsx +38 -0
  439. package/src/components/login-form/examples/states.tsx +75 -0
  440. package/src/components/login-form/examples/structure.tsx +28 -0
  441. package/src/components/login-form/examples/verification-code.tsx +57 -0
  442. package/src/components/modal/COMPONENT.md +71 -88
  443. package/src/components/modal/examples/{controlled.tsx → controlled-open.tsx} +6 -12
  444. package/src/components/modal/examples/custom-container.tsx +29 -0
  445. package/src/components/modal/examples/dismiss.tsx +54 -0
  446. package/src/components/modal/examples/examples.module.css +4 -20
  447. package/src/components/modal/examples/in-form.tsx +78 -0
  448. package/src/components/modal/examples/long-content.tsx +52 -0
  449. package/src/components/modal/examples/overview.tsx +35 -0
  450. package/src/components/modal/examples/sizes.tsx +7 -9
  451. package/src/components/modal/examples/structure.tsx +53 -0
  452. package/src/components/native-select/COMPONENT.md +132 -0
  453. package/src/components/native-select/examples/controlled.tsx +26 -0
  454. package/src/components/native-select/examples/examples.module.css +14 -0
  455. package/src/components/native-select/examples/in-form.tsx +43 -0
  456. package/src/components/native-select/examples/option-groups.tsx +17 -0
  457. package/src/components/native-select/examples/overview.tsx +16 -0
  458. package/src/components/native-select/examples/sizes.tsx +18 -0
  459. package/src/components/native-select/examples/states.tsx +21 -0
  460. package/src/components/native-select/examples/validation.tsx +26 -0
  461. package/src/components/notification/COMPONENT.md +108 -122
  462. package/src/components/notification/examples/dismiss.tsx +50 -0
  463. package/src/components/notification/examples/examples.module.css +10 -23
  464. package/src/components/notification/examples/in-form.tsx +64 -0
  465. package/src/components/notification/examples/overview.tsx +24 -0
  466. package/src/components/notification/examples/placement.tsx +66 -0
  467. package/src/components/notification/examples/sizes.tsx +11 -18
  468. package/src/components/notification/examples/stacking.tsx +45 -0
  469. package/src/components/notification/examples/structure.tsx +20 -0
  470. package/src/components/notification/examples/tones.tsx +14 -26
  471. package/src/components/page-content/COMPONENT.md +50 -75
  472. package/src/components/page-content/examples/examples.module.css +4 -8
  473. package/src/components/page-content/examples/narrow.tsx +25 -0
  474. package/src/components/page-content/examples/overview.tsx +41 -0
  475. package/src/components/page-content/examples/variants.tsx +39 -0
  476. package/src/components/page-toolbar/COMPONENT.md +142 -0
  477. package/src/components/page-toolbar/examples/examples.module.css +16 -0
  478. package/src/components/page-toolbar/examples/narrow.tsx +103 -0
  479. package/src/components/page-toolbar/examples/overview.tsx +113 -0
  480. package/src/components/page-toolbar/examples/save-changes.tsx +40 -0
  481. package/src/components/page-toolbar/examples/without-search.tsx +60 -0
  482. package/src/components/pagination/COMPONENT.md +73 -64
  483. package/src/components/pagination/examples/controlled.tsx +51 -0
  484. package/src/components/pagination/examples/examples.module.css +6 -55
  485. package/src/components/pagination/examples/narrow.tsx +25 -0
  486. package/src/components/pagination/examples/overflow.tsx +23 -0
  487. package/src/components/pagination/examples/overview.tsx +6 -0
  488. package/src/components/pagination/examples/sizes.tsx +10 -18
  489. package/src/components/popover/COMPONENT.md +89 -99
  490. package/src/components/popover/examples/controlled-open.tsx +32 -0
  491. package/src/components/popover/examples/dismiss.tsx +49 -0
  492. package/src/components/popover/examples/examples.module.css +21 -41
  493. package/src/components/popover/examples/flush.tsx +47 -0
  494. package/src/components/popover/examples/in-form.tsx +54 -0
  495. package/src/components/popover/examples/{full-width.tsx → match-trigger-width.tsx} +7 -7
  496. package/src/components/popover/examples/overview.tsx +43 -0
  497. package/src/components/popover/examples/placement.tsx +17 -15
  498. package/src/components/popover/examples/sizes.tsx +12 -9
  499. package/src/components/popover/examples/structure.tsx +50 -0
  500. package/src/components/progress-bar/COMPONENT.md +103 -62
  501. package/src/components/progress-bar/examples/custom-max.tsx +12 -0
  502. package/src/components/progress-bar/examples/examples.module.css +4 -34
  503. package/src/components/progress-bar/examples/overview.tsx +12 -0
  504. package/src/components/progress-bar/examples/segments.tsx +32 -0
  505. package/src/components/progress-bar/examples/sizes.tsx +11 -8
  506. package/src/components/progress-bar/examples/variants.tsx +34 -0
  507. package/src/components/progress-circle/COMPONENT.md +102 -61
  508. package/src/components/progress-circle/examples/examples.module.css +2 -39
  509. package/src/components/progress-circle/examples/inner-content.tsx +35 -0
  510. package/src/components/progress-circle/examples/overview.tsx +10 -0
  511. package/src/components/progress-circle/examples/segments.tsx +64 -0
  512. package/src/components/progress-circle/examples/sizes.tsx +10 -12
  513. package/src/components/progress-circle/examples/variants.tsx +28 -0
  514. package/src/components/radio/COMPONENT.md +93 -114
  515. package/src/components/radio/examples/controlled.tsx +30 -0
  516. package/src/components/radio/examples/group.tsx +23 -0
  517. package/src/components/radio/examples/orientation.tsx +34 -0
  518. package/src/components/radio/examples/overview.tsx +18 -0
  519. package/src/components/radio/examples/sizes.tsx +7 -12
  520. package/src/components/radio/examples/states.tsx +42 -30
  521. package/src/components/scroll-container/COMPONENT.md +57 -29
  522. package/src/components/scroll-container/examples/edge-fade.tsx +53 -0
  523. package/src/components/scroll-container/examples/examples.module.css +7 -7
  524. package/src/components/scroll-container/examples/overscroll.tsx +27 -0
  525. package/src/components/scroll-container/examples/overview.tsx +27 -0
  526. package/src/components/scroll-container/examples/variants.tsx +54 -0
  527. package/src/components/segmented-control/COMPONENT.md +93 -107
  528. package/src/components/segmented-control/examples/colors.tsx +8 -13
  529. package/src/components/segmented-control/examples/controlled.tsx +10 -6
  530. package/src/components/segmented-control/examples/examples.module.css +2 -88
  531. package/src/components/segmented-control/examples/full-width.tsx +7 -44
  532. package/src/components/segmented-control/examples/overview.tsx +12 -0
  533. package/src/components/segmented-control/examples/scroll.tsx +16 -0
  534. package/src/components/segmented-control/examples/sizes.tsx +8 -20
  535. package/src/components/segmented-control/examples/states.tsx +28 -34
  536. package/src/components/segmented-control/examples/two-line.tsx +17 -104
  537. package/src/components/segmented-control/examples/with-icon.tsx +52 -0
  538. package/src/components/select/COMPONENT.md +155 -208
  539. package/src/components/select/examples/clearable.tsx +23 -0
  540. package/src/components/select/examples/controlled-open.tsx +30 -0
  541. package/src/components/select/examples/controlled.tsx +17 -10
  542. package/src/components/select/examples/examples.module.css +18 -38
  543. package/src/components/select/examples/in-form.tsx +59 -70
  544. package/src/components/select/examples/multiple.tsx +21 -33
  545. package/src/components/select/examples/overview.tsx +17 -0
  546. package/src/components/select/examples/rich-options.tsx +43 -69
  547. package/src/components/select/examples/searchable.tsx +42 -0
  548. package/src/components/select/examples/sizes.tsx +13 -17
  549. package/src/components/select/examples/states.tsx +34 -48
  550. package/src/components/select/examples/validation.tsx +41 -0
  551. package/src/components/select/examples/with-icon.tsx +35 -0
  552. package/src/components/skeleton/COMPONENT.md +104 -0
  553. package/src/components/skeleton/examples/examples.module.css +89 -0
  554. package/src/components/skeleton/examples/form.tsx +20 -0
  555. package/src/components/skeleton/examples/overview.tsx +21 -0
  556. package/src/components/skeleton/examples/sizes.tsx +24 -0
  557. package/src/components/skeleton/examples/with-crossfade.tsx +68 -0
  558. package/src/components/slider/COMPONENT.md +105 -68
  559. package/src/components/slider/examples/controlled.tsx +26 -30
  560. package/src/components/slider/examples/examples.module.css +8 -32
  561. package/src/components/slider/examples/hint-and-error.tsx +33 -0
  562. package/src/components/slider/examples/overview.tsx +6 -0
  563. package/src/components/slider/examples/range-step.tsx +7 -17
  564. package/src/components/slider/examples/sizes.tsx +8 -6
  565. package/src/components/slider/examples/states.tsx +11 -8
  566. package/src/components/slider/examples/value-format.tsx +13 -25
  567. package/src/components/slider/examples/variants.tsx +23 -0
  568. package/src/components/smart-filter/COMPONENT.md +184 -0
  569. package/src/components/smart-filter/examples/controlled.tsx +48 -0
  570. package/src/components/smart-filter/examples/examples.module.css +56 -0
  571. package/src/components/smart-filter/examples/many-values.tsx +53 -0
  572. package/src/components/smart-filter/examples/narrow.tsx +38 -0
  573. package/src/components/smart-filter/examples/overview.tsx +109 -0
  574. package/src/components/smart-filter/examples/sizes.tsx +33 -0
  575. package/src/components/spinner/COMPONENT.md +112 -0
  576. package/src/components/spinner/examples/examples.module.css +20 -0
  577. package/src/components/spinner/examples/loading-region.tsx +22 -0
  578. package/src/components/spinner/examples/overview.tsx +15 -0
  579. package/src/components/spinner/examples/sizes.tsx +19 -0
  580. package/src/components/spinner/examples/variants.tsx +19 -0
  581. package/src/components/stepper/COMPONENT.md +83 -78
  582. package/src/components/stepper/examples/controlled.tsx +46 -0
  583. package/src/components/stepper/examples/examples.module.css +9 -40
  584. package/src/components/stepper/examples/narrow.tsx +11 -19
  585. package/src/components/stepper/examples/orientation.tsx +21 -59
  586. package/src/components/stepper/examples/overview.tsx +28 -0
  587. package/src/components/stepper/examples/sizes.tsx +19 -28
  588. package/src/components/stepper/examples/states.tsx +20 -21
  589. package/src/components/stepper/examples/with-icon.tsx +29 -0
  590. package/src/components/switch/COMPONENT.md +75 -94
  591. package/src/components/switch/examples/controlled.tsx +8 -6
  592. package/src/components/switch/examples/examples.module.css +13 -45
  593. package/src/components/switch/examples/in-form.tsx +20 -24
  594. package/src/components/switch/examples/overview.tsx +10 -0
  595. package/src/components/switch/examples/settings-row.tsx +14 -22
  596. package/src/components/switch/examples/sizes.tsx +5 -10
  597. package/src/components/switch/examples/states.tsx +37 -25
  598. package/src/components/tabs/COMPONENT.md +156 -86
  599. package/src/components/tabs/examples/closable.tsx +48 -0
  600. package/src/components/tabs/examples/controlled.tsx +14 -20
  601. package/src/components/tabs/examples/examples.module.css +13 -93
  602. package/src/components/tabs/examples/orientation.tsx +40 -0
  603. package/src/components/tabs/examples/overflow.tsx +60 -0
  604. package/src/components/tabs/examples/overview.tsx +30 -0
  605. package/src/components/tabs/examples/sizes.tsx +19 -19
  606. package/src/components/tabs/examples/states.tsx +20 -55
  607. package/src/components/tabs/examples/two-line.tsx +22 -29
  608. package/src/components/tabs/examples/variants.tsx +40 -0
  609. package/src/components/tabs/examples/with-icon.tsx +44 -0
  610. package/src/components/tag-select/COMPONENT.md +119 -122
  611. package/src/components/tag-select/examples/controlled-open.tsx +29 -0
  612. package/src/components/tag-select/examples/controlled.tsx +26 -0
  613. package/src/components/tag-select/examples/creatable.tsx +28 -0
  614. package/src/components/tag-select/examples/examples.module.css +3 -22
  615. package/src/components/tag-select/examples/in-form.tsx +44 -41
  616. package/src/components/tag-select/examples/manage-tags.tsx +20 -39
  617. package/src/components/tag-select/examples/many-tags.tsx +20 -0
  618. package/src/components/tag-select/examples/overview.tsx +21 -0
  619. package/src/components/tag-select/examples/sizes.tsx +7 -10
  620. package/src/components/tag-select/examples/states.tsx +11 -36
  621. package/src/components/tag-select/examples/validation.tsx +35 -0
  622. package/src/components/textarea/COMPONENT.md +50 -50
  623. package/src/components/textarea/examples/auto-resize.tsx +21 -0
  624. package/src/components/textarea/examples/controlled.tsx +12 -16
  625. package/src/components/textarea/examples/examples.module.css +15 -48
  626. package/src/components/textarea/examples/in-form.tsx +52 -48
  627. package/src/components/textarea/examples/overview.tsx +12 -0
  628. package/src/components/textarea/examples/sizes.tsx +6 -7
  629. package/src/components/textarea/examples/states.tsx +9 -13
  630. package/src/components/textarea/examples/validation.tsx +34 -0
  631. package/src/components/textarea/examples/without-focus-ring.tsx +12 -0
  632. package/src/components/thumbnail/COMPONENT.md +150 -0
  633. package/src/components/thumbnail/examples/examples.module.css +45 -0
  634. package/src/components/thumbnail/examples/full-width.tsx +48 -0
  635. package/src/components/thumbnail/examples/overview.tsx +31 -0
  636. package/src/components/thumbnail/examples/ratios.tsx +25 -0
  637. package/src/components/thumbnail/examples/ring.tsx +29 -0
  638. package/src/components/thumbnail/examples/sizes.tsx +23 -0
  639. package/src/components/thumbnail/examples/states.tsx +38 -0
  640. package/src/components/thumbnail/examples/variants.tsx +28 -0
  641. package/src/components/timeline/COMPONENT.md +92 -203
  642. package/src/components/timeline/examples/examples.module.css +5 -20
  643. package/src/components/timeline/examples/links.tsx +28 -0
  644. package/src/components/timeline/examples/narrow.tsx +30 -38
  645. package/src/components/timeline/examples/{activity-feed.tsx → overview.tsx} +9 -17
  646. package/src/components/timeline/examples/sizes.tsx +22 -28
  647. package/src/components/timeline/examples/{service-history.tsx → structure.tsx} +10 -8
  648. package/src/components/timeline/examples/{colors-and-tones.tsx → variants.tsx} +11 -16
  649. package/src/components/tooltip/COMPONENT.md +74 -62
  650. package/src/components/tooltip/examples/{controlled.tsx → controlled-open.tsx} +5 -7
  651. package/src/components/tooltip/examples/delay.tsx +19 -28
  652. package/src/components/tooltip/examples/disabled-trigger.tsx +18 -0
  653. package/src/components/tooltip/examples/examples.module.css +3 -33
  654. package/src/components/tooltip/examples/long-content.tsx +12 -15
  655. package/src/components/tooltip/examples/overview.tsx +17 -0
  656. package/src/components/tooltip/examples/placement.tsx +30 -0
  657. package/src/components/tooltip/examples/sizes.tsx +12 -15
  658. package/src/components/tooltip/examples/toolbar.tsx +35 -0
  659. package/src/components/typography/COMPONENT.md +68 -99
  660. package/src/components/typography/examples/article.tsx +23 -36
  661. package/src/components/typography/examples/examples.module.css +20 -54
  662. package/src/components/typography/examples/inline-emphasis.tsx +20 -0
  663. package/src/components/typography/examples/overview.tsx +20 -0
  664. package/src/components/typography/examples/semantic-tag.tsx +17 -0
  665. package/src/components/typography/examples/truncate.tsx +7 -7
  666. package/src/components/typography/examples/variants.tsx +43 -42
  667. package/src/components/typography/examples/weights.tsx +31 -0
  668. package/src/layout/app-header/COMPONENT.md +178 -0
  669. package/src/layout/app-header/examples/breadcrumbs.tsx +36 -0
  670. package/src/layout/app-header/examples/examples.module.css +47 -0
  671. package/src/layout/app-header/examples/in-app-shell.tsx +70 -0
  672. package/src/layout/app-header/examples/narrow.tsx +29 -0
  673. package/src/layout/app-header/examples/overview.tsx +36 -0
  674. package/src/layout/app-shell/COMPONENT.md +63 -63
  675. package/src/layout/app-shell/examples/contained.tsx +5 -5
  676. package/src/layout/app-shell/examples/examples.module.css +24 -0
  677. package/src/layout/app-shell/examples/footer.tsx +59 -0
  678. package/src/layout/app-shell/examples/overview.tsx +83 -0
  679. package/src/layout/app-shell/examples/template.tsx +54 -0
  680. package/src/layout/bottom-nav/COMPONENT.md +153 -0
  681. package/src/layout/bottom-nav/examples/examples.module.css +39 -0
  682. package/src/layout/bottom-nav/examples/floating.tsx +89 -0
  683. package/src/layout/bottom-nav/examples/icon-only.tsx +41 -0
  684. package/src/layout/bottom-nav/examples/in-app-shell.tsx +64 -0
  685. package/src/layout/bottom-nav/examples/overview.tsx +44 -0
  686. package/src/layout/bottom-nav/examples/router.tsx +31 -0
  687. package/src/layout/bottom-nav/examples/structure.tsx +47 -0
  688. package/src/layout/sidebar/COMPONENT.md +304 -111
  689. package/src/layout/sidebar/examples/account.tsx +88 -0
  690. package/src/layout/sidebar/examples/brand-header.tsx +45 -0
  691. package/src/layout/sidebar/examples/collapsible-groups.tsx +77 -0
  692. package/src/layout/sidebar/examples/controlled-open.tsx +55 -0
  693. package/src/layout/sidebar/examples/controlled.tsx +68 -0
  694. package/src/layout/sidebar/examples/examples.module.css +17 -3
  695. package/src/layout/sidebar/examples/nested-items.tsx +74 -0
  696. package/src/layout/sidebar/examples/overview.tsx +126 -0
  697. package/src/layout/sidebar/examples/router.tsx +19 -13
  698. package/src/layout/sidebar/examples/sizes.tsx +17 -12
  699. package/src/layout/sidebar/examples/structure.tsx +81 -0
  700. package/src/styles/fonts.css +4 -0
  701. package/src/styles/globals.css +18 -29
  702. package/src/styles/reset.css +2 -0
  703. package/src/styles/theme-dark.css +6 -0
  704. package/src/styles/theme-light.css +58 -23
  705. package/src/styles/tokens.css +11 -77
  706. package/dist/components/accordion/Accordion.d.ts.map +0 -1
  707. package/dist/components/avatar/Avatar.d.ts.map +0 -1
  708. package/dist/components/badge/Badge.d.ts.map +0 -1
  709. package/dist/components/badge/tier.d.ts.map +0 -1
  710. package/dist/components/banner/Banner.d.ts.map +0 -1
  711. package/dist/components/breadcrumb/Breadcrumb.d.ts.map +0 -1
  712. package/dist/components/button/Button.d.ts.map +0 -1
  713. package/dist/components/button-group/ButtonGroup.d.ts.map +0 -1
  714. package/dist/components/card/Card.d.ts.map +0 -1
  715. package/dist/components/checkbox/Checkbox.d.ts.map +0 -1
  716. package/dist/components/code-block/CodeBlock.d.ts.map +0 -1
  717. package/dist/components/color-picker/ColorPicker.d.ts.map +0 -1
  718. package/dist/components/color-picker/ColorPresets.d.ts.map +0 -1
  719. package/dist/components/command-menu/CommandMenu.d.ts.map +0 -1
  720. package/dist/components/data-table/DataTable.d.ts.map +0 -1
  721. package/dist/components/datepicker/Datepicker.d.ts.map +0 -1
  722. package/dist/components/datepicker/datepickerModel.d.ts.map +0 -1
  723. package/dist/components/digit-input/DigitInput.d.ts.map +0 -1
  724. package/dist/components/divider/Divider.d.ts.map +0 -1
  725. package/dist/components/drawer/Drawer.d.ts.map +0 -1
  726. package/dist/components/dropdown/Dropdown.d.ts.map +0 -1
  727. package/dist/components/dropdown/dropdownGeometry.d.ts +0 -10
  728. package/dist/components/dropdown/dropdownGeometry.d.ts.map +0 -1
  729. package/dist/components/dropdown/menuKeyboard.d.ts +0 -4
  730. package/dist/components/dropdown/menuKeyboard.d.ts.map +0 -1
  731. package/dist/components/dropdown/useDropdownPosition.d.ts +0 -18
  732. package/dist/components/dropdown/useDropdownPosition.d.ts.map +0 -1
  733. package/dist/components/empty-page/EmptyPage.d.ts.map +0 -1
  734. package/dist/components/example-frame/ExampleFrame.d.ts.map +0 -1
  735. package/dist/components/file-upload/FileUpload.d.ts.map +0 -1
  736. package/dist/components/hint/Hint.d.ts.map +0 -1
  737. package/dist/components/index.css +0 -11181
  738. package/dist/components/index.css.map +0 -7
  739. package/dist/components/index.d.ts.map +0 -1
  740. package/dist/components/index.js +0 -13833
  741. package/dist/components/index.js.map +0 -7
  742. package/dist/components/input/Input.d.ts.map +0 -1
  743. package/dist/components/kbd/Kbd.d.ts.map +0 -1
  744. package/dist/components/label/Label.d.ts.map +0 -1
  745. package/dist/components/link-button/LinkButton.d.ts.map +0 -1
  746. package/dist/components/modal/DialogParts.d.ts.map +0 -1
  747. package/dist/components/modal/Modal.d.ts.map +0 -1
  748. package/dist/components/modal/useInertSiblings.d.ts +0 -7
  749. package/dist/components/modal/useInertSiblings.d.ts.map +0 -1
  750. package/dist/components/notification/Notification.d.ts.map +0 -1
  751. package/dist/components/notification/NotificationStore.d.ts.map +0 -1
  752. package/dist/components/page-content/PageContent.d.ts.map +0 -1
  753. package/dist/components/pagination/Pagination.d.ts.map +0 -1
  754. package/dist/components/popover/Popover.d.ts.map +0 -1
  755. package/dist/components/popover/popoverGeometry.d.ts +0 -6
  756. package/dist/components/popover/popoverGeometry.d.ts.map +0 -1
  757. package/dist/components/popover/usePopoverPosition.d.ts +0 -18
  758. package/dist/components/popover/usePopoverPosition.d.ts.map +0 -1
  759. package/dist/components/progress-bar/ProgressBar.d.ts.map +0 -1
  760. package/dist/components/progress-circle/ProgressCircle.d.ts.map +0 -1
  761. package/dist/components/radio/Radio.d.ts.map +0 -1
  762. package/dist/components/scroll-container/ScrollContainer.d.ts.map +0 -1
  763. package/dist/components/segmented-control/SegmentedControl.d.ts.map +0 -1
  764. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts +0 -29
  765. package/dist/components/segmented-progress-bar/SegmentedProgressBar.d.ts.map +0 -1
  766. package/dist/components/select/Select.d.ts.map +0 -1
  767. package/dist/components/select/selectIcons.d.ts +0 -15
  768. package/dist/components/select/selectIcons.d.ts.map +0 -1
  769. package/dist/components/select/selectListbox.d.ts +0 -13
  770. package/dist/components/select/selectListbox.d.ts.map +0 -1
  771. package/dist/components/slider/Slider.d.ts.map +0 -1
  772. package/dist/components/stepper/Stepper.d.ts.map +0 -1
  773. package/dist/components/switch/Switch.d.ts.map +0 -1
  774. package/dist/components/tabs/Tabs.d.ts.map +0 -1
  775. package/dist/components/tag/Tag.d.ts +0 -47
  776. package/dist/components/tag/Tag.d.ts.map +0 -1
  777. package/dist/components/tag-select/TagSelect.d.ts.map +0 -1
  778. package/dist/components/textarea/Textarea.d.ts.map +0 -1
  779. package/dist/components/timeline/Timeline.d.ts.map +0 -1
  780. package/dist/components/tooltip/Tooltip.d.ts.map +0 -1
  781. package/dist/components/typography/Typography.d.ts.map +0 -1
  782. package/dist/hooks/useControllableState.d.ts.map +0 -1
  783. package/dist/hooks/useEscapeKey.d.ts +0 -7
  784. package/dist/hooks/useEscapeKey.d.ts.map +0 -1
  785. package/dist/hooks/useFieldIds.d.ts +0 -17
  786. package/dist/hooks/useFieldIds.d.ts.map +0 -1
  787. package/dist/hooks/useFocusTrap.d.ts +0 -20
  788. package/dist/hooks/useFocusTrap.d.ts.map +0 -1
  789. package/dist/hooks/useMergedRefs.d.ts.map +0 -1
  790. package/dist/hooks/useModalKeyboard.d.ts +0 -14
  791. package/dist/hooks/useModalKeyboard.d.ts.map +0 -1
  792. package/dist/hooks/useOutsideClick.d.ts +0 -26
  793. package/dist/hooks/useOutsideClick.d.ts.map +0 -1
  794. package/dist/hooks/useOverlayModal.d.ts +0 -7
  795. package/dist/hooks/useOverlayModal.d.ts.map +0 -1
  796. package/dist/hooks/usePosition.d.ts.map +0 -1
  797. package/dist/hooks/usePresence.d.ts.map +0 -1
  798. package/dist/hooks/useResponsiveMonths.d.ts +0 -18
  799. package/dist/hooks/useResponsiveMonths.d.ts.map +0 -1
  800. package/dist/hooks/useScrollLock.d.ts.map +0 -1
  801. package/dist/icons/Icon.d.ts.map +0 -1
  802. package/dist/icons/index.d.ts.map +0 -1
  803. package/dist/index.css.map +0 -7
  804. package/dist/index.d.ts.map +0 -1
  805. package/dist/index.js.map +0 -7
  806. package/dist/internal/ControlSizeContext.d.ts.map +0 -1
  807. package/dist/internal/DividerContentContext.d.ts +0 -4
  808. package/dist/internal/DividerContentContext.d.ts.map +0 -1
  809. package/dist/internal/FieldFrame.d.ts.map +0 -1
  810. package/dist/internal/OverlayPortalLayerContext.d.ts +0 -13
  811. package/dist/internal/OverlayPortalLayerContext.d.ts.map +0 -1
  812. package/dist/internal/Portal.d.ts.map +0 -1
  813. package/dist/internal/context.d.ts.map +0 -1
  814. package/dist/internal/cx.d.ts.map +0 -1
  815. package/dist/internal/data-attributes.d.ts.map +0 -1
  816. package/dist/internal/highlightTsxHtml.d.ts.map +0 -1
  817. package/dist/internal/layoutPxFromPrimitives.d.ts.map +0 -1
  818. package/dist/internal/mergeRefs.d.ts.map +0 -1
  819. package/dist/internal/runtimeUnits.d.ts +0 -3
  820. package/dist/internal/runtimeUnits.d.ts.map +0 -1
  821. package/dist/internal/scrollAncestors.d.ts.map +0 -1
  822. package/dist/internal/slot.d.ts.map +0 -1
  823. package/dist/internal/states.d.ts.map +0 -1
  824. package/dist/internal/useFieldDescriptions.d.ts +0 -18
  825. package/dist/internal/useFieldDescriptions.d.ts.map +0 -1
  826. package/dist/layout/app-shell/AppShell.d.ts.map +0 -1
  827. package/dist/layout/index.d.ts.map +0 -1
  828. package/dist/layout/sidebar/Sidebar.d.ts.map +0 -1
  829. package/dist/theme/applyTheme.d.ts.map +0 -1
  830. package/dist/tokens/primitives.d.ts.map +0 -1
  831. package/dist/tokens/semantic.d.ts.map +0 -1
  832. package/dist/tokens/themes/dark.d.ts.map +0 -1
  833. package/dist/tokens/themes/light.d.ts +0 -3
  834. package/dist/tokens/themes/light.d.ts.map +0 -1
  835. package/src/components/accordion/examples/checkout.tsx +0 -73
  836. package/src/components/accordion/examples/layouts.tsx +0 -58
  837. package/src/components/avatar/examples/colors.tsx +0 -29
  838. package/src/components/avatar/examples/group.tsx +0 -35
  839. package/src/components/avatar/examples/team-card.tsx +0 -70
  840. package/src/components/badge/examples/icons.tsx +0 -37
  841. package/src/components/badge/examples/order-list.tsx +0 -48
  842. package/src/components/badge/examples/palette.tsx +0 -44
  843. package/src/components/badge/examples/surfaces.tsx +0 -21
  844. package/src/components/banner/examples/dismiss.tsx +0 -48
  845. package/src/components/banner/examples/placement.tsx +0 -92
  846. package/src/components/breadcrumb/examples/collapse.tsx +0 -56
  847. package/src/components/breadcrumb/examples/page-header.tsx +0 -31
  848. package/src/components/button/examples/composition.tsx +0 -46
  849. package/src/components/button/examples/controlled.tsx +0 -18
  850. package/src/components/button/examples/full-width.tsx +0 -15
  851. package/src/components/button/examples/icon-only.tsx +0 -42
  852. package/src/components/button/examples/surfaces.tsx +0 -18
  853. package/src/components/button/examples/variants-tones.tsx +0 -39
  854. package/src/components/button-group/examples/composition.tsx +0 -99
  855. package/src/components/card/examples/mini-media.tsx +0 -55
  856. package/src/components/card/examples/responsive.tsx +0 -72
  857. package/src/components/checkbox/examples/hint-error.tsx +0 -22
  858. package/src/components/checkbox/examples/select-all.tsx +0 -40
  859. package/src/components/checkbox/examples/settings-card.tsx +0 -76
  860. package/src/components/code-block/examples/api-docs.tsx +0 -31
  861. package/src/components/code-block/examples/controlled.tsx +0 -38
  862. package/src/components/code-block/examples/surfaces.tsx +0 -7
  863. package/src/components/color-picker/examples/brand-color.tsx +0 -73
  864. package/src/components/color-picker/examples/hex-input-sizes.tsx +0 -54
  865. package/src/components/color-picker/examples/presets-quick.tsx +0 -57
  866. package/src/components/color-picker/examples/presets-tags.tsx +0 -52
  867. package/src/components/command-menu/examples/composition.tsx +0 -91
  868. package/src/components/command-menu/examples/examples.module.css +0 -9
  869. package/src/components/command-menu/examples/keyboard-search.tsx +0 -94
  870. package/src/components/data-table/examples/dashboard.tsx +0 -205
  871. package/src/components/data-table/examples/sorting-pagination.tsx +0 -66
  872. package/src/components/datepicker/examples/badge.tsx +0 -19
  873. package/src/components/datepicker/examples/single.tsx +0 -16
  874. package/src/components/digit-input/examples/length-and-complete.tsx +0 -30
  875. package/src/components/digit-input/examples/surfaces.tsx +0 -6
  876. package/src/components/digit-input/examples/verification-step.tsx +0 -62
  877. package/src/components/divider/examples/composition.tsx +0 -49
  878. package/src/components/divider/examples/variants.tsx +0 -62
  879. package/src/components/drawer/examples/composition.tsx +0 -94
  880. package/src/components/drawer/examples/controlled.tsx +0 -42
  881. package/src/components/drawer/examples/features.tsx +0 -48
  882. package/src/components/drawer/examples/states.tsx +0 -54
  883. package/src/components/dropdown/examples/as-child.tsx +0 -23
  884. package/src/components/dropdown/examples/composition.tsx +0 -91
  885. package/src/components/dropdown/examples/controlled.tsx +0 -32
  886. package/src/components/dropdown/examples/row-actions.tsx +0 -56
  887. package/src/components/dropdown/examples/variants.tsx +0 -52
  888. package/src/components/example-frame/examples/basic.tsx +0 -18
  889. package/src/components/file-upload/examples/file-list.tsx +0 -67
  890. package/src/components/file-upload/examples/in-card.tsx +0 -84
  891. package/src/components/hint/examples/field-states.tsx +0 -60
  892. package/src/components/hint/examples/in-form.tsx +0 -45
  893. package/src/components/input/examples/anatomy.tsx +0 -70
  894. package/src/components/input/examples/control-alignment.tsx +0 -57
  895. package/src/components/input/examples/full-width.tsx +0 -23
  896. package/src/components/input/examples/icons-and-affixes.tsx +0 -32
  897. package/src/components/input/examples/reserved-support-row.tsx +0 -33
  898. package/src/components/input/examples/surfaces.tsx +0 -12
  899. package/src/components/input/examples/with-badge.tsx +0 -40
  900. package/src/components/kbd/examples/modifier-keys.tsx +0 -24
  901. package/src/components/label/examples/in-form.tsx +0 -39
  902. package/src/components/label/examples/markers.tsx +0 -27
  903. package/src/components/link-button/examples/composition.tsx +0 -30
  904. package/src/components/link-button/examples/examples.module.css +0 -46
  905. package/src/components/link-button/examples/tones.tsx +0 -15
  906. package/src/components/modal/examples/composition.tsx +0 -87
  907. package/src/components/modal/examples/features.tsx +0 -68
  908. package/src/components/modal/examples/link.tsx +0 -79
  909. package/src/components/modal/examples/states.tsx +0 -73
  910. package/src/components/notification/examples/features.tsx +0 -42
  911. package/src/components/notification/examples/live.tsx +0 -128
  912. package/src/components/notification/examples/save-form.tsx +0 -59
  913. package/src/components/page-content/examples/readable.tsx +0 -24
  914. package/src/components/page-content/examples/settings-page.tsx +0 -49
  915. package/src/components/page-content/examples/widths.tsx +0 -39
  916. package/src/components/pagination/examples/compact.tsx +0 -36
  917. package/src/components/pagination/examples/list-footer.tsx +0 -50
  918. package/src/components/pagination/examples/states.tsx +0 -44
  919. package/src/components/popover/examples/as-child.tsx +0 -29
  920. package/src/components/popover/examples/composition.tsx +0 -45
  921. package/src/components/popover/examples/controlled.tsx +0 -39
  922. package/src/components/popover/examples/features.tsx +0 -56
  923. package/src/components/popover/examples/inset-variants.tsx +0 -58
  924. package/src/components/popover/examples/states.tsx +0 -48
  925. package/src/components/progress-bar/examples/file-upload.tsx +0 -52
  926. package/src/components/progress-bar/examples/values-and-tones.tsx +0 -17
  927. package/src/components/progress-circle/examples/goals-card.tsx +0 -37
  928. package/src/components/progress-circle/examples/values-and-tones.tsx +0 -56
  929. package/src/components/radio/examples/examples.module.css +0 -43
  930. package/src/components/radio/examples/hint-error.tsx +0 -28
  931. package/src/components/radio/examples/horizontal.tsx +0 -33
  932. package/src/components/radio/examples/plan-picker.tsx +0 -55
  933. package/src/components/scroll-container/examples/both-axes.tsx +0 -57
  934. package/src/components/scroll-container/examples/list.tsx +0 -44
  935. package/src/components/segmented-control/examples/item-content.tsx +0 -78
  936. package/src/components/segmented-control/examples/surfaces.tsx +0 -82
  937. package/src/components/segmented-control/examples/toolbar.tsx +0 -56
  938. package/src/components/segmented-progress-bar/COMPONENT.md +0 -128
  939. package/src/components/segmented-progress-bar/examples/examples.module.css +0 -68
  940. package/src/components/segmented-progress-bar/examples/segment-gap.tsx +0 -24
  941. package/src/components/segmented-progress-bar/examples/sizes.tsx +0 -31
  942. package/src/components/segmented-progress-bar/examples/storage-distribution.tsx +0 -41
  943. package/src/components/select/examples/native.tsx +0 -21
  944. package/src/components/select/examples/search-groups.tsx +0 -61
  945. package/src/components/select/examples/with-badge.tsx +0 -47
  946. package/src/components/slider/examples/basic.tsx +0 -6
  947. package/src/components/slider/examples/display-settings.tsx +0 -41
  948. package/src/components/stepper/examples/wizard.tsx +0 -62
  949. package/src/components/switch/examples/notification-settings.tsx +0 -37
  950. package/src/components/switch/examples/on-off.tsx +0 -15
  951. package/src/components/switch/examples/validation.tsx +0 -19
  952. package/src/components/tabs/examples/horizontal.tsx +0 -30
  953. package/src/components/tabs/examples/vertical.tsx +0 -101
  954. package/src/components/tag/COMPONENT.md +0 -179
  955. package/src/components/tag/examples/colors.tsx +0 -49
  956. package/src/components/tag/examples/examples.module.css +0 -47
  957. package/src/components/tag/examples/sizes.tsx +0 -23
  958. package/src/components/tag/examples/states.tsx +0 -19
  959. package/src/components/tag/examples/surfaces.tsx +0 -16
  960. package/src/components/tag/examples/with-icon.tsx +0 -29
  961. package/src/components/textarea/examples/height-and-limits.tsx +0 -45
  962. package/src/components/textarea/examples/hint-and-error.tsx +0 -21
  963. package/src/components/textarea/examples/reserved-support-row.tsx +0 -37
  964. package/src/components/textarea/examples/surfaces.tsx +0 -11
  965. package/src/components/textarea/examples/with-label.tsx +0 -22
  966. package/src/components/timeline/examples/hover-highlight.tsx +0 -48
  967. package/src/components/timeline/examples/in-card.tsx +0 -48
  968. package/src/components/timeline/examples/selectable.tsx +0 -58
  969. package/src/components/tooltip/examples/composition.tsx +0 -37
  970. package/src/components/tooltip/examples/side.tsx +0 -29
  971. package/src/components/tooltip/examples/states.tsx +0 -45
  972. package/src/components/typography/examples/as-prop.tsx +0 -25
  973. package/src/components/typography/examples/composition.tsx +0 -23
  974. package/src/components/typography/examples/full-width.tsx +0 -29
  975. package/src/components/typography/examples/reading-and-form.tsx +0 -35
  976. package/src/components/typography/examples/states.tsx +0 -23
  977. package/src/components/typography/examples/tones.tsx +0 -34
  978. package/src/components/typography/examples/variant-catalog.tsx +0 -41
  979. package/src/layout/app-shell/examples/with-sidebar.tsx +0 -63
  980. package/src/layout/sidebar/examples/modes.tsx +0 -55
  981. package/src/layout/sidebar/examples/responsive.tsx +0 -44
  982. package/src/layout/sidebar/examples/states.tsx +0 -34
@@ -0,0 +1,45 @@
1
+ /** Toasts of one position and tone stack; hover expands the stack and pauses the timers — `max`, `items`, `dismissAll`. */
2
+ import { Button, NotificationProvider, Typography, useNotifications } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ function StackControls() {
7
+ const { notify, dismissAll, items } = useNotifications();
8
+ return (
9
+ <div className={styles.row}>
10
+ <Button.Root
11
+ variant="outline"
12
+ tone="neutral"
13
+ onClick={() =>
14
+ notify({
15
+ tone: "success",
16
+ title: "Заказ оформлен",
17
+ description: `№ ${48_213 + items.length}, доставка завтра.`,
18
+ })
19
+ }
20
+ >
21
+ Оформить заказ
22
+ </Button.Root>
23
+ <Button.Root
24
+ variant="ghost"
25
+ tone="neutral"
26
+ disabled={items.length === 0}
27
+ onClick={dismissAll}
28
+ >
29
+ Закрыть все
30
+ </Button.Root>
31
+ <Typography as="span" variant="body-s" tone="secondary">
32
+ Активных: {items.length}
33
+ </Typography>
34
+ </div>
35
+ );
36
+ }
37
+
38
+ export default function NotificationStackingExample() {
39
+ // In an app NotificationProvider wraps the root once; here it keeps the example self-contained.
40
+ return (
41
+ <NotificationProvider max={4}>
42
+ <StackControls />
43
+ </NotificationProvider>
44
+ );
45
+ }
@@ -0,0 +1,20 @@
1
+ /** Optional parts on static cards: a custom icon, a counter, an action and a close button, or a title alone — `icon`, `badge`, `action`, `onDismiss`. */
2
+ import { Icon, NotificationCard } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ export default function NotificationStructureExample() {
7
+ return (
8
+ <div className={styles.cards}>
9
+ <NotificationCard
10
+ title="Новые ответы в обсуждении"
11
+ description="Мария и ещё двое ответили на ваш комментарий."
12
+ icon={<Icon name="object.message" />}
13
+ badge={3}
14
+ action={{ label: "Открыть", onClick: () => undefined }}
15
+ onDismiss={() => undefined}
16
+ />
17
+ <NotificationCard tone="success" title="Ссылка скопирована" />
18
+ </div>
19
+ );
20
+ }
@@ -1,36 +1,24 @@
1
- /** The four tones as static `NotificationCard`s: the tone icon carries the meaning, the card is a raised surface without a border. Use static cards for docs and mockups; in an app toasts come from `notify()`. */
2
- import { NotificationCard, type NotificationRecord } from "prime-ui-kit";
1
+ /** The four tones: the icon carries the meaning; danger and warning are announced at once — `tone`. */
2
+ import { NotificationCard } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
5
5
 
6
- const copy: Record<NotificationRecord["tone"], [string, string]> = {
7
- success: ["Изменения сохранены", "Профиль компании обновлён."],
8
- info: ["Обновление ночью", "Сервис будет недоступен с 02:00 до 03:00."],
9
- warning: ["Заканчивается подписка", "Через 3 дня закончится оплаченный период."],
10
- danger: ["Не удалось отправить", "Проверьте соединение и повторите попытку."],
11
- };
12
-
13
- function card(tone: NotificationRecord["tone"]): NotificationRecord {
14
- const [title, description] = copy[tone];
15
- return {
16
- id: `tones-${tone}`,
17
- tone,
18
- title,
19
- description,
20
- position: "top-right",
21
- size: "m",
22
- duration: 0,
23
- persistent: true,
24
- closable: true,
25
- createdAt: 0,
26
- };
27
- }
6
+ const TONES = [
7
+ { tone: "success", title: "Изменения сохранены", description: "Профиль компании обновлён." },
8
+ { tone: "info", title: "Обновление ночью", description: "Сервис недоступен с 02:00 до 03:00." },
9
+ {
10
+ tone: "warning",
11
+ title: "Заканчивается подписка",
12
+ description: "Оплата закончится через 3 дня.",
13
+ },
14
+ { tone: "danger", title: "Не удалось отправить", description: "Проверьте соединение." },
15
+ ] as const;
28
16
 
29
17
  export default function NotificationTonesExample() {
30
18
  return (
31
19
  <div className={styles.cards}>
32
- {(["success", "info", "warning", "danger"] as const).map((tone) => (
33
- <NotificationCard key={tone} item={card(tone)} paused onDismiss={() => {}} />
20
+ {TONES.map((item) => (
21
+ <NotificationCard key={item.tone} {...item} onDismiss={() => undefined} />
34
22
  ))}
35
23
  </div>
36
24
  );
@@ -1,6 +1,7 @@
1
1
  # PageContent
2
2
 
3
- **Category:** layout
3
+ **Category:** page
4
+ **Kind:** layout
4
5
 
5
6
  > Page structure inside the main column: title, description, page actions and content sections.
6
7
 
@@ -23,86 +24,67 @@ import { PageContent } from "prime-ui-kit";
23
24
  ## Anatomy
24
25
  ```
25
26
  PageContent.Root | PageContent.Section column; Root adds maxWidth, Section renders <section>
26
- ├── PageContent.Header heading column + actions in one wrapping row
27
- │ ├── PageContent.Title <h1>, heading-m
28
- │ ├── PageContent.Description <p>, secondary body-m
29
- │ └── PageContent.Actions page buttons (moved to the end of the header row)
30
- └── PageContent.Body page content, blocks 40 apart
27
+ ├─ PageContent.Header heading column + actions in one wrapping row
28
+ │ ├─ PageContent.Title <h1>, heading-m
29
+ │ ├─ PageContent.Description <p>, secondary body-m
30
+ │ └─ PageContent.Actions page buttons (moved to the end of the header row)
31
+ └─ PageContent.Body page content, blocks 40 apart
31
32
  ```
32
33
 
33
34
  ## API
34
35
 
36
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
37
+
35
38
  ### PageContent.Root
36
- `forwardRef` to `<div>`.
39
+ `ref` → `HTMLDivElement`. The page column inside `main`: header → body 32 apart, centred under its cap.
37
40
 
38
41
  | Prop | Type | Default | Description |
39
42
  |---|---|---|---|
40
- | `maxWidth` | `"full" \| "readable" \| "wide"` | `"full"` | Max width of the column (centred with `margin-inline: auto`). |
41
- | `className` | `string` | — | Extra class. |
42
- | `children` | `ReactNode` | — | Header, Body. |
43
-
44
- + native `<div>` props.
43
+ | `maxWidth` | `"full" \| "readable" \| "wide"` | `"full"` | Cap of the column: the whole main, `--prime-layout-content-max-width`, or a ~65ch reading measure. |
44
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children` (Header, Body), `className` and the other div attributes. |
45
45
 
46
46
  ### PageContent.Section
47
- `forwardRef` to `<section>`. Same column and rhythm as Root, without `maxWidth`.
47
+ `ref` → `HTMLElement`. The same column as a `<section>`, without a cap; name it with `aria-labelledby` → the Title `id`.
48
48
 
49
49
  | Prop | Type | Default | Description |
50
50
  |---|---|---|---|
51
- | `className` | `string` | — | Extra class. |
52
- | `children` | `ReactNode` | — | Header, Body. |
53
-
54
- + native `<section>` props (`HTMLAttributes<HTMLElement>`; use `aria-labelledby` pointing at the Title `id`).
51
+ | `…rest` | `HTMLAttributes<HTMLElement>` | — | `children`, `aria-labelledby`, `className` and the other section attributes. |
55
52
 
56
53
  ### PageContent.Header
57
- Plain function component (no ref). Children of type `PageContent.Actions` are moved after the heading column; all other children go into the heading column.
54
+ `ref` → `HTMLDivElement`. Heading column and page actions in one wrapping row; `PageContent.Actions` children move to the end.
58
55
 
59
56
  | Prop | Type | Default | Description |
60
57
  |---|---|---|---|
61
- | `className` | `string` | — | Extra class. |
62
- | `children` | `ReactNode` | — | Title, Description, Actions. |
63
-
64
- + native `<div>` props.
58
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children` (Title, Description, Actions), `className` and the other div attributes. |
65
59
 
66
60
  ### PageContent.Title
67
- `forwardRef` to `<h1>`.
61
+ `ref` → `HTMLHeadingElement`. The page `<h1>` in heading-m.
68
62
 
69
63
  | Prop | Type | Default | Description |
70
64
  |---|---|---|---|
71
- | `className` | `string` | — | Extra class. |
72
- | `children` | `ReactNode` | — | Page title. |
73
-
74
- + native `<h1>` props.
65
+ | `…rest` | `HTMLAttributes<HTMLHeadingElement>` | — | `children`, `id`, `className` and the other heading attributes. |
75
66
 
76
67
  ### PageContent.Description
77
- `forwardRef` to `<p>`.
68
+ `ref` → `HTMLParagraphElement`. Intro `<p>` in secondary body-m.
78
69
 
79
70
  | Prop | Type | Default | Description |
80
71
  |---|---|---|---|
81
- | `measure` | `"readable" \| "full"` | `"readable"` | `readable` caps the line at the reading width; `full` uses the full width of the parent. |
82
- | `className` | `string` | — | Extra class. |
83
- | `children` | `ReactNode` | — | Intro text. |
84
-
85
- + native `<p>` props.
72
+ | `measure` | `"readable" \| "full"` | `"readable"` | `readable` — max ~65ch; `full` — the full width of the parent. |
73
+ | `…rest` | `HTMLAttributes<HTMLParagraphElement>` | — | `children`, `className` and the other paragraph attributes. |
86
74
 
87
75
  ### PageContent.Actions
88
- Plain function component (no ref).
76
+ `ref` → `HTMLDivElement`. Page-level buttons next to the title; they wrap under the heading on narrow columns.
89
77
 
90
78
  | Prop | Type | Default | Description |
91
79
  |---|---|---|---|
92
- | `className` | `string` | — | Extra class. |
93
- | `children` | `ReactNode` | — | Page buttons. |
94
-
95
- + native `<div>` props.
80
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children` (Buttons), `className` and the other div attributes. |
96
81
 
97
82
  ### PageContent.Body
98
- Plain function component (no ref).
83
+ `ref` → `HTMLDivElement`. The page content; blocks 40 apart.
99
84
 
100
85
  | Prop | Type | Default | Description |
101
86
  |---|---|---|---|
102
- | `className` | `string` | — | Extra class. |
103
- | `children` | `ReactNode` | — | Page content blocks. |
104
-
105
- + native `<div>` props.
87
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
106
88
 
107
89
  ## Variants
108
90
 
@@ -117,51 +99,43 @@ Plain function component (no ref).
117
99
  | Value | Looks like | Use when | Default |
118
100
  |---|---|---|---|
119
101
  | `readable` | Intro line wraps at the reading width | Default, most pages | yes |
120
- | `full` | Intro uses the full header width | The column is already narrow, or the intro sits next to actions | |
121
-
122
- **Combinations** — `Root maxWidth="readable"` with the default Description measure for text pages; `Section` + `measure="full"` + `Actions` for app pages. `Description measure="full"` inside `Root maxWidth="readable"` changes nothing visible.
102
+ | `full` | Intro uses the full header width | The column is already narrow | |
123
103
 
124
- **Hierarchy** — one `PageContent.Title` (`<h1>`) per page; sub-sections inside Body use `title-s` / `title-m` headings (`h2`). One primary button in Actions, the rest `soft`/`ghost` neutral.
104
+ One `PageContent.Title` (`<h1>`) per page; sub-sections inside Body use `title-s` / `title-m` headings (`h2`). One primary button in Actions, the rest `soft` / `ghost` neutral.
125
105
 
126
106
  ## States
127
- Static layout. DOM: `data-max-width="readable" | "wide"` on Root (absent for `full`), `data-measure="full"` on Description (absent for `readable`), `data-has-actions="true"` on Header when it contains Actions.
107
+ | State | Driven by | DOM |
108
+ |---|---|---|
109
+ | capped column | `maxWidth` | `data-max-width="readable" \| "wide"` on Root (absent for `full`) |
110
+ | full-width intro | `measure="full"` | `data-measure="full"` on Description |
111
+ | with actions | `PageContent.Actions` child | `data-has-actions="true"` on Header |
128
112
 
129
113
  ## Layout & spacing
130
114
  - No outer padding: edge gutters come from `AppShell.Main`.
131
115
  - Header → Body `--prime-space-8` (32); blocks inside Body `--prime-space-10` (40); Title → Description `--prime-space-2` (8); buttons in Actions `--prime-space-2`.
132
- - Header is a wrapping row (`gap: --prime-space-4` / `--prime-space-6`): actions stay to the right of the title while the heading keeps half a reading measure, otherwise wrap below it — no breakpoint needed, works from 320px.
116
+ - Header is a wrapping row: actions stay to the right of the title while the heading keeps half a reading measure, otherwise they wrap below it — no breakpoint needed, works from 320px.
133
117
  - Title and Description wrap long words (`overflow-wrap: anywhere`).
134
118
 
135
119
  ## Accessibility
120
+
121
+ ### Keyboard
122
+ No keyboard interaction.
123
+
124
+ ### ARIA
136
125
  - Title is an `<h1>`; use one per page.
137
126
  - Give `PageContent.Section` an `aria-labelledby` that points at the Title `id` to name the region.
138
- - No keyboard behaviour, no `labels`.
139
127
 
140
- ## Examples
141
- | File | Scenario | When to use this pattern |
142
- |---|---|---|
143
- | [settings-page.tsx](examples/settings-page.tsx) | Section with title, description, actions and panel cards in Body | App pages with page-level actions |
144
- | [readable.tsx](examples/readable.tsx) | `Root maxWidth="readable"` with reading text | Terms, articles, help pages |
145
- | [widths.tsx](examples/widths.tsx) | `Root maxWidth` full · wide · readable side by side | Choosing the column cap |
128
+ ### Labels
129
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
146
130
 
147
- ```tsx
148
- import { Button, PageContent } from "prime-ui-kit";
149
-
150
- export function Example() {
151
- return (
152
- <PageContent.Section>
153
- <PageContent.Header>
154
- <PageContent.Title>Заказы</PageContent.Title>
155
- <PageContent.Description>Все заказы за последний месяц.</PageContent.Description>
156
- <PageContent.Actions>
157
- <Button.Root>Создать заказ</Button.Root>
158
- </PageContent.Actions>
159
- </PageContent.Header>
160
- <PageContent.Body>…</PageContent.Body>
161
- </PageContent.Section>
162
- );
163
- }
164
- ```
131
+ No `labels`.
132
+
133
+ ## Examples
134
+ | Example | Shows |
135
+ |---|---|
136
+ | [overview.tsx](examples/overview.tsx) | A page in the main column: title, description and page actions, then the body blocks — `PageContent.Actions`. |
137
+ | [variants.tsx](examples/variants.tsx) | The same page column at three caps: the whole main, a wide dashboard column, a reading column — `maxWidth`. |
138
+ | [narrow.tsx](examples/narrow.tsx) | In a phone-width column the page actions wrap under the heading instead of squeezing it. |
165
139
 
166
140
  ## Mistakes
167
141
  - Padding on `PageContent.Root` to imitate gutters → gutters come from `AppShell.Main`.
@@ -170,4 +144,5 @@ export function Example() {
170
144
  - Margins between blocks in Body → Body already sets the 40 gap.
171
145
 
172
146
  ## Related
173
- [AppShell](../../layout/app-shell/COMPONENT.md) · [Sidebar](../../layout/sidebar/COMPONENT.md) · [Card](../card/COMPONENT.md) · [EmptyPage](../empty-page/COMPONENT.md)
147
+ - **Built from:** —
148
+ - **See also:** [AppShell](../../layout/app-shell/COMPONENT.md), [Sidebar](../../layout/sidebar/COMPONENT.md), [Card](../card/COMPONENT.md), [EmptyPage](../empty-page/COMPONENT.md)
@@ -1,4 +1,4 @@
1
- /* Layout for the PageContent examples: the frame imitates AppShell.Main (canvas + gutter). */
1
+ /* Layout of the PageContent scenarios: the frame imitates AppShell.Main (canvas + gutter). */
2
2
 
3
3
  .main {
4
4
  box-sizing: border-box;
@@ -16,11 +16,7 @@
16
16
  gap: var(--prime-space-10);
17
17
  }
18
18
 
19
- /* A visible block so the column width can be read at a glance. */
20
- .block {
21
- box-sizing: border-box;
22
- padding: var(--prime-space-4);
23
- border-radius: var(--prime-card-radius);
24
- background: var(--prime-color-card-bg);
25
- box-shadow: var(--prime-card-shadow);
19
+ /* A phone-width main column (360px). */
20
+ .narrow {
21
+ width: min(100%, calc(var(--prime-space-24) * 3.75));
26
22
  }
@@ -0,0 +1,25 @@
1
+ /** In a phone-width column the page actions wrap under the heading instead of squeezing it. */
2
+ import { Button, PageContent } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ export default function PageContentNarrowExample() {
7
+ return (
8
+ <div className={styles.narrow}>
9
+ <div className={styles.main}>
10
+ <PageContent.Root>
11
+ <PageContent.Header>
12
+ <PageContent.Title>Счета</PageContent.Title>
13
+ <PageContent.Description>Выставленные и оплаченные за квартал.</PageContent.Description>
14
+ <PageContent.Actions>
15
+ <Button.Root variant="soft" tone="neutral">
16
+ Экспорт
17
+ </Button.Root>
18
+ <Button.Root>Новый счёт</Button.Root>
19
+ </PageContent.Actions>
20
+ </PageContent.Header>
21
+ </PageContent.Root>
22
+ </div>
23
+ </div>
24
+ );
25
+ }
@@ -0,0 +1,41 @@
1
+ /** A page in the main column: title, description and page actions, then the body blocks — `PageContent.Actions`. */
2
+ import { Button, Card, PageContent, Typography } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ export default function PageContentOverviewExample() {
7
+ return (
8
+ <div className={styles.main}>
9
+ <PageContent.Section aria-labelledby="settings-heading">
10
+ <PageContent.Header>
11
+ <PageContent.Title id="settings-heading">Настройки</PageContent.Title>
12
+ <PageContent.Description>
13
+ Профиль рабочего пространства и уведомления.
14
+ </PageContent.Description>
15
+ <PageContent.Actions>
16
+ <Button.Root variant="soft" tone="neutral">
17
+ Экспорт
18
+ </Button.Root>
19
+ <Button.Root>Сохранить</Button.Root>
20
+ </PageContent.Actions>
21
+ </PageContent.Header>
22
+ <PageContent.Body>
23
+ <Card.Root variant="panel">
24
+ <Card.Body>
25
+ <Typography variant="body-m" tone="secondary">
26
+ Компания «Прайм Софт», часовой пояс Москва (UTC+3), валюта — рубль.
27
+ </Typography>
28
+ </Card.Body>
29
+ </Card.Root>
30
+ <Card.Root variant="panel">
31
+ <Card.Body>
32
+ <Typography variant="body-m" tone="secondary">
33
+ Письма о новых заказах и сводка по понедельникам включены.
34
+ </Typography>
35
+ </Card.Body>
36
+ </Card.Root>
37
+ </PageContent.Body>
38
+ </PageContent.Section>
39
+ </div>
40
+ );
41
+ }
@@ -0,0 +1,39 @@
1
+ /** The same page column at three caps: the whole main, a wide dashboard column, a reading column — `maxWidth`. */
2
+ import { Card, PageContent, Typography } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ const WIDTHS = [
7
+ { value: "full", title: "Сделки", text: "Колонка занимает всю ширину main." },
8
+ { value: "wide", title: "Дашборд продаж", text: "Не шире ширины контента, по центру." },
9
+ {
10
+ value: "readable",
11
+ title: "Условия использования",
12
+ text: "Около 65 знаков в строке, по центру.",
13
+ },
14
+ ] as const;
15
+
16
+ export default function PageContentVariantsExample() {
17
+ return (
18
+ <div className={styles.main}>
19
+ <div className={styles.stack}>
20
+ {WIDTHS.map(({ value, title, text }) => (
21
+ <PageContent.Root key={value} maxWidth={value}>
22
+ <PageContent.Header>
23
+ <PageContent.Title>{title}</PageContent.Title>
24
+ </PageContent.Header>
25
+ <PageContent.Body>
26
+ <Card.Root>
27
+ <Card.Body>
28
+ <Typography variant="body-s" tone="secondary">
29
+ {value} — {text}
30
+ </Typography>
31
+ </Card.Body>
32
+ </Card.Root>
33
+ </PageContent.Body>
34
+ </PageContent.Root>
35
+ ))}
36
+ </div>
37
+ </div>
38
+ );
39
+ }
@@ -0,0 +1,142 @@
1
+ # PageToolbar
2
+
3
+ **Category:** page
4
+ **Kind:** layout
5
+
6
+ > The panel at the top of a page — sections, filter and search, view options and the primary action — laid out from its own width: one row when wide, exactly two rows when narrow, every slot in a fixed place.
7
+
8
+ ## When to use
9
+ - A list, registry or dashboard page whose top holds several of: sections with counts, a filter and search, a period or view switch, the primary action.
10
+ - A settings page with sections and a «Сохранить N изменений» action that must stay reachable on a phone.
11
+ - Any page that has to work from 320px with the same controls as on desktop — nothing is hidden, the slots only move.
12
+
13
+ ## When not to use
14
+ - A page with a title, a description and one or two buttons → [PageContent](../page-content/COMPONENT.md) `Header` with `Actions`.
15
+ - Tools that belong to one table → the DataTable `toolbar` slot.
16
+ - Switching panels inside a card or a section → [Tabs](../tabs/COMPONENT.md).
17
+ - App-level navigation → [Sidebar](../../layout/sidebar/COMPONENT.md).
18
+
19
+ ## Import
20
+ ```tsx
21
+ import { PageToolbar } from "prime-ui-kit";
22
+ ```
23
+
24
+ ## Anatomy
25
+ ```
26
+ PageToolbar.Root container: its own width picks the layout
27
+ ├─ PageToolbar.Sections sections of the page: a fullWidth SegmentedControl with counts
28
+ ├─ PageToolbar.Tools filter button + search: SmartFilter.Toolbar
29
+ ├─ PageToolbar.View period, table / cards, columns
30
+ ├─ PageToolbar.Actions the primary action (and its secondary twin, e.g. «Отменить»)
31
+ ├─ PageToolbar.Chips active filters: SmartFilter.Chips, a row under the panel
32
+ └─ break hidden line break of the two-row layout (rendered by Root)
33
+ ```
34
+
35
+ ## API
36
+
37
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
38
+
39
+ ### PageToolbar.Root
40
+ `ref` → `HTMLDivElement`. The page panel: lays its slots out from its own width — one row from a 56rem container, exactly two rows below it. Parts may be left out; JSX order is the Tab order.
41
+
42
+ | Prop | Type | Default | Description |
43
+ |---|---|---|---|
44
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
45
+
46
+ ### PageToolbar.Sections
47
+ `ref` → `HTMLDivElement`. Sections of the page — a `fullWidth` SegmentedControl with counts. Top row; sized by content when wide, stretches when narrow and scrolls inside when it does not fit.
48
+
49
+ | Prop | Type | Default | Description |
50
+ |---|---|---|---|
51
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
52
+
53
+ ### PageToolbar.Tools
54
+ `ref` → `HTMLDivElement`. Filter button and search (`SmartFilter.Toolbar`): the stretchy item of its row; gives way down to 18rem (the button and a 9rem search on one line), then the View wraps instead.
55
+
56
+ | Prop | Type | Default | Description |
57
+ |---|---|---|---|
58
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
59
+
60
+ ### PageToolbar.View
61
+ `ref` → `HTMLDivElement`. How the data is shown: period, table / cards, columns. Sized by content next to the Tools; alone in its row it stretches and its controls share the row equally.
62
+
63
+ | Prop | Type | Default | Description |
64
+ |---|---|---|---|
65
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
66
+
67
+ ### PageToolbar.Actions
68
+ `ref` → `HTMLDivElement`. The primary action of the page: at the end of the top row at every width, never wraps down.
69
+
70
+ | Prop | Type | Default | Description |
71
+ |---|---|---|---|
72
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
73
+
74
+ ### PageToolbar.Chips
75
+ `ref` → `HTMLDivElement`. Active filters (`SmartFilter.Chips`) in their own row under the panel; the row takes no space while it is empty.
76
+
77
+ | Prop | Type | Default | Description |
78
+ |---|---|---|---|
79
+ | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
80
+
81
+ ## Variants
82
+ PageToolbar has no variants: the layout follows the toolbar's width.
83
+
84
+ ### Layout by width
85
+ | Toolbar width | Looks like | Default |
86
+ |---|---|---|
87
+ | `≥ 56rem` | one row that never wraps: Sections (content width) · Tools (stretch, at least 18rem) · View (content width) · Actions; short of room the Sections shrink and scroll inside | |
88
+ | `< 56rem` | two rows: Sections (stretch) + Actions on top; Tools (stretch) + View below | yes (mobile first) |
89
+ | any | Chips in their own row under the panel, only while there are chips | |
90
+
91
+ ## States
92
+ | State | Driven by | DOM |
93
+ |---|---|---|
94
+ | wide | container ≥ 56rem | one row, no wrapping, break hidden; Chips rendered under the bar |
95
+ | narrow | container < 56rem | `order` moves Actions to the top row, the break forces the second row |
96
+ | one row empty | a row has no slot | break hidden, no empty gap |
97
+ | alone in a row | Sections without Actions, Tools without View, View without Tools | that slot stretches to the full row; the View's controls share it equally |
98
+ | tight row | Tools would go under 18rem (the filter button and a 9rem search) | the View wraps whole onto its own row and stretches there; the tools stay one line |
99
+ | no chips | `PageToolbar.Chips` empty (`SmartFilter.Chips` renders nothing) | the chips row takes no space |
100
+
101
+ ## Layout & spacing
102
+ - 12 between slots and between rows, 8 inside a slot. No padding or fill of its own: it sits at the top of `PageContent.Body` (or replaces `PageContent.Header` on dense pages that keep their `h1` in the shell).
103
+ - One stretchy item per row: Sections on top, Tools below. The primary action is at the end of the top row at every width and never wraps down; with no sections it is still pushed to the end.
104
+ - Sections take a `fullWidth` SegmentedControl: the toolbar decides when it stretches (content width when wide, the full row when narrow), its items tend to equal width and it scrolls inside itself when they do not fit.
105
+ - All controls share one tier, so they share one height and wrapped rows stay level: leave `size` off the controls (default `m`); for a denser page wrap the toolbar in `<ControlSizeProvider value="s">`.
106
+ - On a phone the primary action may drop its text and keep the icon with `aria-label`; never remove it.
107
+ - The toolbar breaks by its own width, so it behaves the same with the sidebar open or closed.
108
+
109
+ ## Accessibility
110
+
111
+ ### Keyboard
112
+ No keyboard interaction.
113
+
114
+ ### ARIA
115
+ - A plain `<div>`: name it with `aria-label` when a page has more than one panel.
116
+ - Slots move only visually (`order`); the Tab order is the JSX order. Write the slots in the reading order of the wide layout — Sections, Tools, View, Actions, Chips. In the narrow layout the action is shown before the tools but reached after them.
117
+ - An icon-only primary action on a narrow page carries `aria-label`.
118
+
119
+ ### Labels
120
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
121
+
122
+ No `labels`.
123
+
124
+ ## Examples
125
+ | Example | Shows |
126
+ |---|---|
127
+ | [overview.tsx](examples/overview.tsx) | The panel of an orders page: sections with counts, filter and search, the period and the primary action in one row; active filters in a row under it — `PageToolbar.Sections`, `PageToolbar.Tools`, `PageToolbar.View`, `PageToolbar.Actions`, `PageToolbar.Chips`. |
128
+ | [without-search.tsx](examples/without-search.tsx) | A dashboard panel without search on a tablet-width column: the sections fill the top row, the period selector alone in the bottom row stretches to the full width — `PageToolbar.Sections`, `PageToolbar.View`. |
129
+ | [save-changes.tsx](examples/save-changes.tsx) | A settings page: sections of the form on the left, the save action with the number of changes at the end of the top row — never a sticky bar at the bottom of a phone screen — `PageToolbar.Actions`. |
130
+ | [narrow.tsx](examples/narrow.tsx) | A phone-width column: exactly two rows — sections and the primary action on top, filter, search and the period below; each row has one stretchy item — `PageToolbar.Root`. |
131
+
132
+ ## Mistakes
133
+ - A hand-built flex row of tabs, search and buttons with `flex-wrap` → rows wrap «as they come», the action drifts down; use `PageToolbar`.
134
+ - `size="s"` on one control inside → a step in the row; one tier for all, through `ControlSizeProvider` around the toolbar.
135
+ - A SegmentedControl without `fullWidth` in Sections → it never stretches on narrow widths.
136
+ - Stat cards above a table for the section totals → counts inside the sections (`SegmentedControl.Count`).
137
+ - Hiding the search or the action on phones → they move, they never disappear.
138
+ - A sticky «Сохранить» bar at the bottom of a phone → the save action with its count in `PageToolbar.Actions`.
139
+
140
+ ## Related
141
+ - **Built from:** —
142
+ - **See also:** [SegmentedControl](../segmented-control/COMPONENT.md), [SmartFilter](../smart-filter/COMPONENT.md), [PageContent](../page-content/COMPONENT.md), [DataTable](../data-table/COMPONENT.md), [Select](../select/COMPONENT.md)
@@ -0,0 +1,16 @@
1
+ /* Layout of the PageToolbar scenarios: page columns of a capped width, so the toolbar shows its
2
+ two-row form. A cap (`max-width`), not a width: the column is as wide as the stage allows. */
3
+
4
+ /* A phone-width page column (360px). */
5
+ .phone {
6
+ width: 100%;
7
+ max-width: calc(var(--prime-space-24) * 3.75);
8
+ margin-inline: auto;
9
+ }
10
+
11
+ /* A tablet-width page column (600px). */
12
+ .tablet {
13
+ width: 100%;
14
+ max-width: calc(var(--prime-space-24) * 6.25);
15
+ margin-inline: auto;
16
+ }