prime-ui-kit 0.14.0 → 0.16.0

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 (1276) hide show
  1. package/README.md +79 -71
  2. package/dist/chunks/{chunk-WXKRUVSE.js → chunk-4PSQ64S4.js} +3145 -1800
  3. package/dist/chunks/{chunk-SYEX7OVT.js → chunk-6TPHKCUJ.js} +9424 -9244
  4. package/dist/chunks/{chunk-6TI4DSM5.js → chunk-A7OQWH6R.js} +1 -1
  5. package/dist/chunks/{chunk-P6ZO37JM.js → chunk-HDBQICPW.js} +170 -138
  6. package/dist/chunks/{chunk-Q3BFRQHZ.js → chunk-U3Q2I3MY.js} +169 -10
  7. package/dist/color-picker.js +3 -3
  8. package/dist/components/accordion/Accordion.d.ts +52 -5
  9. package/dist/components/avatar/Avatar.d.ts +31 -8
  10. package/dist/components/badge/Badge.d.ts +93 -25
  11. package/dist/components/banner/Banner.d.ts +17 -10
  12. package/dist/components/breadcrumb/Breadcrumb.d.ts +18 -5
  13. package/dist/components/button/Button.d.ts +102 -43
  14. package/dist/components/button-group/ButtonGroup.d.ts +32 -8
  15. package/dist/components/card/Card.d.ts +15 -9
  16. package/dist/components/chart-frame/ChartFrame.d.ts +58 -51
  17. package/dist/components/chat/Chat.d.ts +77 -38
  18. package/dist/components/chat/ChatPinned.d.ts +20 -8
  19. package/dist/components/chat/ChatRows.d.ts +3 -0
  20. package/dist/components/chat/MessageList.d.ts +14 -19
  21. package/dist/components/chat/chatContext.d.ts +3 -3
  22. package/dist/components/chat/messageFlow.d.ts +1 -1
  23. package/dist/components/chat-list/ChatList.d.ts +88 -34
  24. package/dist/components/checkbox/Checkbox.d.ts +61 -12
  25. package/dist/components/code-block/CodeBlock.d.ts +11 -5
  26. package/dist/components/color-field/ColorField.d.ts +54 -14
  27. package/dist/components/color-picker/ColorPicker.d.ts +64 -30
  28. package/dist/components/color-picker/ColorPresets.d.ts +68 -13
  29. package/dist/components/color-swatches/ColorSwatches.d.ts +90 -18
  30. package/dist/components/command-menu/CommandMenu.d.ts +86 -27
  31. package/dist/components/composer/Composer.d.ts +82 -41
  32. package/dist/components/composer/useRecorder.d.ts +0 -2
  33. package/dist/components/confirm-dialog/ConfirmDialog.d.ts +40 -16
  34. package/dist/components/crossfade/Crossfade.d.ts +5 -8
  35. package/dist/components/data-table/ColumnsMenu.d.ts +6 -2
  36. package/dist/components/data-table/DataTable.d.ts +157 -58
  37. package/dist/components/data-table/Footer.d.ts +2 -4
  38. package/dist/components/data-table/Row.d.ts +1 -1
  39. package/dist/components/data-table/StateRows.d.ts +2 -2
  40. package/dist/components/data-table/reorder.d.ts +10 -10
  41. package/dist/components/data-table/types.d.ts +5 -0
  42. package/dist/components/data-table/useInfiniteRows.d.ts +3 -3
  43. package/dist/components/datepicker/Datepicker.d.ts +61 -12
  44. package/dist/components/datepicker/DatepickerPanel.d.ts +76 -16
  45. package/dist/components/datepicker/panelLayout.d.ts +6 -11
  46. package/dist/components/description-list/DescriptionList.d.ts +40 -11
  47. package/dist/components/digit-input/DigitInput.d.ts +50 -19
  48. package/dist/components/divider/Divider.d.ts +15 -5
  49. package/dist/components/dnd/Dnd.d.ts +153 -42
  50. package/dist/components/dnd/geometry.d.ts +0 -8
  51. package/dist/components/dnd/labels.d.ts +1 -1
  52. package/dist/components/dnd/useDropTarget.d.ts +0 -2
  53. package/dist/components/dnd/useSortableList.d.ts +6 -1
  54. package/dist/components/drawer/Drawer.d.ts +39 -18
  55. package/dist/components/dropdown/Dropdown.d.ts +90 -19
  56. package/dist/components/empty-page/EmptyPage.d.ts +14 -15
  57. package/dist/components/example-frame/ExampleFrame.d.ts +38 -8
  58. package/dist/components/field-list/FieldList.d.ts +57 -19
  59. package/dist/components/fieldset/Fieldset.d.ts +12 -7
  60. package/dist/components/file-upload/FileUpload.d.ts +119 -42
  61. package/dist/components/gallery/Gallery.d.ts +44 -16
  62. package/dist/components/gallery/layout.d.ts +4 -1
  63. package/dist/components/gantt/Gantt.d.ts +69 -34
  64. package/dist/components/gantt/GanttRow.d.ts +2 -2
  65. package/dist/components/hint/Hint.d.ts +10 -4
  66. package/dist/components/index.d.ts +19 -18
  67. package/dist/components/input/Input.d.ts +78 -25
  68. package/dist/components/kanban/Kanban.d.ts +64 -36
  69. package/dist/components/kbd/Kbd.d.ts +3 -1
  70. package/dist/components/label/Label.d.ts +33 -4
  71. package/dist/components/link-button/LinkButton.d.ts +40 -10
  72. package/dist/components/list/List.d.ts +48 -26
  73. package/dist/components/login-form/LoginForm.d.ts +71 -8
  74. package/dist/components/media-viewer/MediaViewer.d.ts +46 -18
  75. package/dist/components/media-viewer/physics.d.ts +0 -2
  76. package/dist/components/media-viewer/viewerEngine.d.ts +0 -1
  77. package/dist/components/message/Message.d.ts +27 -16
  78. package/dist/components/message/MessageCards.d.ts +49 -10
  79. package/dist/components/message/MessageFile.d.ts +19 -5
  80. package/dist/components/message/MessageParts.d.ts +44 -18
  81. package/dist/components/message/MessageReactionBar.d.ts +3 -1
  82. package/dist/components/message/MessageTyping.d.ts +10 -6
  83. package/dist/components/message/bubbleMorph.d.ts +2 -0
  84. package/dist/components/modal/Modal.d.ts +6 -6
  85. package/dist/components/native-select/NativeSelect.d.ts +22 -7
  86. package/dist/components/notification/Notification.d.ts +35 -11
  87. package/dist/components/notification/NotificationStore.d.ts +12 -3
  88. package/dist/components/page-content/PageContent.d.ts +56 -37
  89. package/dist/components/page-toolbar/PageToolbar.d.ts +7 -6
  90. package/dist/components/pagination/Pagination.d.ts +25 -6
  91. package/dist/components/popover/Popover.d.ts +54 -31
  92. package/dist/components/progress-bar/ProgressBar.d.ts +37 -12
  93. package/dist/components/progress-circle/ProgressCircle.d.ts +32 -13
  94. package/dist/components/radio/Radio.d.ts +58 -15
  95. package/dist/components/scroll-container/ScrollContainer.d.ts +28 -14
  96. package/dist/components/scroll-container/useScrollEdges.d.ts +1 -24
  97. package/dist/components/segmented-control/SegmentedControl.d.ts +73 -15
  98. package/dist/components/select/Select.d.ts +104 -30
  99. package/dist/components/select/SelectItem.d.ts +35 -8
  100. package/dist/components/select/selectContext.d.ts +7 -19
  101. package/dist/components/sheet/Sheet.d.ts +32 -15
  102. package/dist/components/skeleton/Skeleton.d.ts +9 -3
  103. package/dist/components/slider/Slider.d.ts +55 -15
  104. package/dist/components/smart-filter/SmartFilter.d.ts +39 -12
  105. package/dist/components/sparkline/Sparkline.d.ts +42 -19
  106. package/dist/components/spinner/Spinner.d.ts +11 -5
  107. package/dist/components/stepper/Stepper.d.ts +41 -19
  108. package/dist/components/switch/Switch.d.ts +37 -12
  109. package/dist/components/tabs/Tabs.d.ts +61 -18
  110. package/dist/components/tag-select/TagSelect.d.ts +74 -20
  111. package/dist/components/textarea/Textarea.d.ts +52 -25
  112. package/dist/components/thumbnail/Thumbnail.d.ts +50 -20
  113. package/dist/components/timeline/Timeline.d.ts +85 -66
  114. package/dist/components/tooltip/Tooltip.d.ts +47 -17
  115. package/dist/components/typography/Typography.d.ts +32 -6
  116. package/dist/components/video-note/VideoNote.d.ts +7 -1
  117. package/dist/{internal → components/visually-hidden}/VisuallyHidden.d.ts +5 -5
  118. package/dist/components/voice-player/VoicePlayer.d.ts +16 -3
  119. package/dist/hooks/breakpoints.d.ts +10 -0
  120. package/dist/hooks/floatingPosition.d.ts +42 -0
  121. package/dist/hooks/useDraft.d.ts +12 -0
  122. package/dist/hooks/useEdgeOverflow.d.ts +5 -3
  123. package/dist/hooks/useElementSize.d.ts +31 -0
  124. package/dist/hooks/useEnterConfirm.d.ts +2 -1
  125. package/dist/hooks/useImageStatus.d.ts +12 -5
  126. package/dist/hooks/useLoadMore.d.ts +28 -0
  127. package/dist/hooks/useMediaQuery.d.ts +1 -3
  128. package/dist/hooks/useMergedRefs.d.ts +10 -4
  129. package/dist/hooks/useModalLayer.d.ts +13 -7
  130. package/dist/hooks/usePosition.d.ts +4 -42
  131. package/dist/hooks/usePresence.d.ts +4 -7
  132. package/dist/hooks/useScrollRegion.d.ts +28 -0
  133. package/dist/hooks/useStableValue.d.ts +6 -0
  134. package/dist/hooks/useSwipeDismiss.d.ts +38 -17
  135. package/dist/hooks/useVirtualRows.d.ts +9 -3
  136. package/dist/icon-set.js +2 -2
  137. package/dist/icons/Icon.d.ts +1 -1
  138. package/dist/icons/glyph.d.ts +9 -2
  139. package/dist/index.css +1 -1
  140. package/dist/index.js +13 -3
  141. package/dist/internal/AnchorRectContext.d.ts +2 -1
  142. package/dist/internal/ChartTooltip.d.ts +1 -1
  143. package/dist/internal/CheckMark.d.ts +2 -2
  144. package/dist/internal/ChoiceField.d.ts +29 -10
  145. package/dist/internal/ControlSizeContext.d.ts +16 -0
  146. package/dist/internal/Disclosure.d.ts +38 -9
  147. package/dist/internal/FieldAction.d.ts +20 -12
  148. package/dist/internal/FieldCommit.d.ts +8 -11
  149. package/dist/internal/FieldFrame.d.ts +100 -21
  150. package/dist/internal/MenuGroup.d.ts +3 -1
  151. package/dist/internal/MorphText.d.ts +2 -1
  152. package/dist/internal/ProgressLegend.d.ts +3 -2
  153. package/dist/internal/RegionSwap.d.ts +41 -0
  154. package/dist/internal/RollingNumber.d.ts +10 -1
  155. package/dist/internal/RowAction.d.ts +26 -0
  156. package/dist/internal/SwitcherScroller.d.ts +11 -0
  157. package/dist/internal/attachmentTile.d.ts +1 -1
  158. package/dist/internal/audio.d.ts +13 -0
  159. package/dist/{components/badge/tier.d.ts → internal/chipTier.d.ts} +7 -5
  160. package/dist/internal/context.d.ts +10 -1
  161. package/dist/internal/controlValue.d.ts +7 -0
  162. package/dist/internal/edgeAutoScroll.d.ts +43 -25
  163. package/dist/internal/fieldCell.d.ts +4 -3
  164. package/dist/internal/fieldClasses.d.ts +15 -2
  165. package/dist/internal/fileSize.d.ts +5 -1
  166. package/dist/internal/formatClock.d.ts +2 -0
  167. package/dist/internal/formatNumber.d.ts +6 -0
  168. package/dist/internal/glyphSwap.d.ts +5 -9
  169. package/dist/internal/hasContent.d.ts +6 -0
  170. package/dist/internal/highlightTsx.d.ts +12 -0
  171. package/dist/internal/iconBox.d.ts +6 -0
  172. package/dist/internal/iconLayout.d.ts +2 -1
  173. package/dist/internal/imageSlot.d.ts +6 -1
  174. package/dist/internal/interactiveElement.d.ts +41 -0
  175. package/dist/internal/labels.d.ts +6 -0
  176. package/dist/internal/leaveInPlace.d.ts +6 -5
  177. package/dist/internal/listPresence.d.ts +32 -0
  178. package/dist/internal/listbox.d.ts +71 -31
  179. package/dist/internal/longPress.d.ts +42 -0
  180. package/dist/internal/mediaDisk.d.ts +7 -4
  181. package/dist/internal/mediaPlayer.d.ts +91 -27
  182. package/dist/internal/mediaSession.d.ts +0 -6
  183. package/dist/internal/messageList.d.ts +4 -3
  184. package/dist/internal/motionTiming.d.ts +34 -0
  185. package/dist/internal/namedRole.d.ts +13 -0
  186. package/dist/internal/nodeText.d.ts +6 -0
  187. package/dist/{components/modal → internal/overlay}/DialogGuard.d.ts +3 -5
  188. package/dist/{components/modal → internal/overlay}/DialogParts.d.ts +86 -89
  189. package/dist/internal/overlay/FloatingPanel.d.ts +27 -5
  190. package/dist/internal/overlay/ModalDialog.d.ts +59 -0
  191. package/dist/internal/overlay/focus.d.ts +29 -5
  192. package/dist/internal/overlay/layerStack.d.ts +8 -5
  193. package/dist/internal/overlay/useAnchorName.d.ts +14 -0
  194. package/dist/internal/overlay/useContainScroll.d.ts +7 -0
  195. package/dist/internal/overlay/useFloatingLayer.d.ts +43 -14
  196. package/dist/internal/overlay/useOpenState.d.ts +22 -0
  197. package/dist/internal/partPresence.d.ts +31 -0
  198. package/dist/internal/parts.d.ts +39 -0
  199. package/dist/internal/progressSegments.d.ts +52 -12
  200. package/dist/internal/richText.d.ts +6 -34
  201. package/dist/internal/ring.d.ts +18 -8
  202. package/dist/internal/rovingFocus.d.ts +10 -5
  203. package/dist/{components/data-table/rowEvents.d.ts → internal/rowLink.d.ts} +0 -5
  204. package/dist/internal/scrollAncestors.d.ts +14 -0
  205. package/dist/internal/selectionIndicator.d.ts +27 -0
  206. package/dist/internal/slot.d.ts +53 -5
  207. package/dist/internal/states.d.ts +61 -0
  208. package/dist/internal/sticky.d.ts +5 -1
  209. package/dist/internal/swallowNextClick.d.ts +9 -0
  210. package/dist/internal/swatch.d.ts +63 -15
  211. package/dist/internal/textFormatting.d.ts +2 -1
  212. package/dist/internal/textFormattingToolbar.d.ts +3 -2
  213. package/dist/internal/tokenDefaults.d.ts +21 -0
  214. package/dist/internal/touchTarget.d.ts +5 -0
  215. package/dist/internal/transcript.d.ts +19 -18
  216. package/dist/internal/transfer.d.ts +22 -8
  217. package/dist/internal/transferDisk.d.ts +2 -3
  218. package/dist/internal/useFlipList.d.ts +44 -0
  219. package/dist/internal/useNearView.d.ts +4 -3
  220. package/dist/internal/usePendingChanges.d.ts +23 -0
  221. package/dist/internal/useRangeSelection.d.ts +2 -1
  222. package/dist/layout/app-header/AppHeader.d.ts +34 -44
  223. package/dist/layout/app-shell/AppShell.d.ts +72 -8
  224. package/dist/layout/bottom-nav/BottomNav.d.ts +58 -22
  225. package/dist/layout/index.d.ts +3 -3
  226. package/dist/layout/sidebar/Sidebar.d.ts +232 -101
  227. package/dist/skill/SKILL.md +17 -15
  228. package/dist/skill/anti-slop.md +105 -24
  229. package/dist/skill/api-contract.md +117 -37
  230. package/dist/skill/cheatsheet.md +45 -38
  231. package/dist/skill/checklist.md +57 -85
  232. package/dist/skill/choosing.md +24 -28
  233. package/dist/skill/components.md +52 -57
  234. package/dist/skill/composition.md +321 -84
  235. package/dist/skill/foundations.md +32 -25
  236. package/dist/skill/layouts.md +104 -73
  237. package/dist/skill/motion.md +26 -31
  238. package/dist/skill/reference/components/accordion/COMPONENT.md +16 -9
  239. package/dist/skill/reference/components/accordion/examples/overview.tsx +2 -2
  240. package/dist/skill/reference/components/accordion/examples/sizes.tsx +6 -8
  241. package/dist/skill/reference/components/accordion/examples/states.tsx +27 -24
  242. package/dist/skill/reference/components/accordion/examples/variants.tsx +6 -8
  243. package/dist/skill/reference/components/accordion/examples/with-icon.tsx +22 -19
  244. package/dist/skill/reference/components/avatar/COMPONENT.md +23 -16
  245. package/dist/skill/reference/components/avatar/examples/examples.module.css +1 -4
  246. package/dist/skill/reference/components/avatar/examples/overview.tsx +3 -3
  247. package/dist/skill/reference/components/avatar/examples/presence.tsx +4 -4
  248. package/dist/skill/reference/components/avatar/examples/src-from-state.tsx +3 -3
  249. package/dist/skill/reference/components/avatar/examples/states.tsx +6 -6
  250. package/dist/skill/reference/components/avatar/examples/team-group.tsx +2 -2
  251. package/dist/skill/reference/components/badge/COMPONENT.md +66 -34
  252. package/dist/skill/reference/components/badge/examples/applied-filters.tsx +13 -19
  253. package/dist/skill/reference/components/badge/examples/controlled.tsx +32 -0
  254. package/dist/skill/reference/components/badge/examples/examples.module.css +3 -10
  255. package/dist/skill/reference/components/badge/examples/filter-values.tsx +4 -6
  256. package/dist/skill/reference/components/badge/examples/in-controls.tsx +1 -1
  257. package/dist/skill/reference/components/badge/examples/overview.tsx +6 -5
  258. package/dist/skill/reference/components/badge/examples/server-tags.tsx +2 -6
  259. package/dist/skill/reference/components/badge/examples/square.tsx +21 -0
  260. package/dist/skill/reference/components/badge/examples/states.tsx +4 -4
  261. package/dist/skill/reference/components/badge/examples/with-icon.tsx +10 -1
  262. package/dist/skill/reference/components/banner/COMPONENT.md +9 -5
  263. package/dist/skill/reference/components/banner/examples/dismissible.tsx +3 -19
  264. package/dist/skill/reference/components/banner/examples/examples.module.css +1 -5
  265. package/dist/skill/reference/components/banner/examples/overview.tsx +1 -1
  266. package/dist/skill/reference/components/banner/examples/page-strip.tsx +16 -22
  267. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +21 -14
  268. package/dist/skill/reference/components/breadcrumb/examples/ellipsis.tsx +2 -2
  269. package/dist/skill/reference/components/breadcrumb/examples/examples.module.css +1 -1
  270. package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +1 -1
  271. package/dist/skill/reference/components/breadcrumb/examples/sizes.tsx +6 -8
  272. package/dist/skill/reference/components/breadcrumb/examples/with-icon.tsx +15 -8
  273. package/dist/skill/reference/components/button/COMPONENT.md +66 -30
  274. package/dist/skill/reference/components/button/examples/align.tsx +25 -0
  275. package/dist/skill/reference/components/button/examples/controlled.tsx +21 -0
  276. package/dist/skill/reference/components/button/examples/density.tsx +45 -0
  277. package/dist/skill/reference/components/button/examples/examples.module.css +14 -25
  278. package/dist/skill/reference/components/button/examples/label-morph.tsx +1 -1
  279. package/dist/skill/reference/components/button/examples/on-colored-host.tsx +19 -19
  280. package/dist/skill/reference/components/button/examples/over-media.tsx +7 -1
  281. package/dist/skill/reference/components/button/examples/toggle.tsx +2 -10
  282. package/dist/skill/reference/components/button-group/COMPONENT.md +23 -17
  283. package/dist/skill/reference/components/button-group/examples/controlled.tsx +1 -1
  284. package/dist/skill/reference/components/button-group/examples/in-form.tsx +22 -2
  285. package/dist/skill/reference/components/button-group/examples/states.tsx +10 -1
  286. package/dist/skill/reference/components/card/COMPONENT.md +18 -6
  287. package/dist/skill/reference/components/card/examples/content-templates.tsx +8 -2
  288. package/dist/skill/reference/components/card/examples/examples.module.css +4 -16
  289. package/dist/skill/reference/components/card/examples/overview.tsx +11 -11
  290. package/dist/skill/reference/components/card/examples/screen.tsx +363 -0
  291. package/dist/skill/reference/components/card/examples/variants.tsx +75 -34
  292. package/dist/skill/reference/components/chart-frame/COMPONENT.md +25 -28
  293. package/dist/skill/reference/components/chart-frame/examples/controlled.tsx +9 -7
  294. package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +117 -0
  295. package/dist/skill/reference/components/chart-frame/examples/narrow.tsx +24 -5
  296. package/dist/skill/reference/components/chart-frame/examples/overview.tsx +5 -2
  297. package/dist/skill/reference/components/chart-frame/examples/states.tsx +72 -62
  298. package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +27 -26
  299. package/dist/skill/reference/components/chat/COMPONENT.md +37 -22
  300. package/dist/skill/reference/components/chat/examples/group-chat.tsx +16 -3
  301. package/dist/skill/reference/components/chat/examples/overview.tsx +119 -130
  302. package/dist/skill/reference/components/chat/examples/reactions.tsx +116 -0
  303. package/dist/skill/reference/components/chat/examples/screen.module.css +9 -0
  304. package/dist/skill/reference/components/chat/examples/screen.tsx +695 -0
  305. package/dist/skill/reference/components/chat/examples/states.tsx +23 -22
  306. package/dist/skill/reference/components/chat-list/COMPONENT.md +11 -5
  307. package/dist/skill/reference/components/chat-list/examples/examples.module.css +0 -8
  308. package/dist/skill/reference/components/chat-list/examples/links.tsx +72 -0
  309. package/dist/skill/reference/components/chat-list/examples/live.tsx +29 -22
  310. package/dist/skill/reference/components/chat-list/examples/sizes.tsx +6 -8
  311. package/dist/skill/reference/components/chat-list/examples/states.tsx +42 -38
  312. package/dist/skill/reference/components/checkbox/COMPONENT.md +27 -14
  313. package/dist/skill/reference/components/checkbox/examples/controlled.tsx +18 -16
  314. package/dist/skill/reference/components/checkbox/examples/examples.module.css +14 -52
  315. package/dist/skill/reference/components/checkbox/examples/in-form.tsx +16 -16
  316. package/dist/skill/reference/components/checkbox/examples/indicator.tsx +17 -56
  317. package/dist/skill/reference/components/checkbox/examples/overview.tsx +1 -1
  318. package/dist/skill/reference/components/checkbox/examples/states.tsx +6 -1
  319. package/dist/skill/reference/components/checkbox/examples/without-label.tsx +1 -1
  320. package/dist/skill/reference/components/code-block/COMPONENT.md +16 -12
  321. package/dist/skill/reference/components/code-block/examples/examples.module.css +5 -2
  322. package/dist/skill/reference/components/code-block/examples/narrow.tsx +1 -1
  323. package/dist/skill/reference/components/color-field/COMPONENT.md +16 -10
  324. package/dist/skill/reference/components/color-field/examples/examples.module.css +4 -5
  325. package/dist/skill/reference/components/color-field/examples/in-form.tsx +15 -13
  326. package/dist/skill/reference/components/color-field/examples/sizes.tsx +5 -1
  327. package/dist/skill/reference/components/color-field/examples/states.tsx +15 -3
  328. package/dist/skill/reference/components/color-picker/COMPONENT.md +58 -21
  329. package/dist/skill/reference/components/color-picker/examples/controlled-open.tsx +37 -0
  330. package/dist/skill/reference/components/color-picker/examples/controlled.tsx +16 -5
  331. package/dist/skill/reference/components/color-picker/examples/examples.module.css +6 -7
  332. package/dist/skill/reference/components/color-picker/examples/in-form.tsx +24 -22
  333. package/dist/skill/reference/components/color-picker/examples/overview.tsx +1 -1
  334. package/dist/skill/reference/components/color-picker/examples/panel.tsx +1 -1
  335. package/dist/skill/reference/components/color-picker/examples/presets.tsx +2 -2
  336. package/dist/skill/reference/components/color-picker/examples/sizes.tsx +9 -11
  337. package/dist/skill/reference/components/color-picker/examples/states.tsx +30 -16
  338. package/dist/skill/reference/components/color-swatches/COMPONENT.md +22 -8
  339. package/dist/skill/reference/components/color-swatches/examples/examples.module.css +3 -4
  340. package/dist/skill/reference/components/color-swatches/examples/in-form.tsx +19 -17
  341. package/dist/skill/reference/components/color-swatches/examples/palette.tsx +24 -0
  342. package/dist/skill/reference/components/color-swatches/examples/wrapping.tsx +17 -2
  343. package/dist/skill/reference/components/command-menu/COMPONENT.md +60 -20
  344. package/dist/skill/reference/components/command-menu/examples/sizes.tsx +20 -15
  345. package/dist/skill/reference/components/command-menu/examples/states.tsx +46 -24
  346. package/dist/skill/reference/components/composer/COMPONENT.md +44 -25
  347. package/dist/skill/reference/components/composer/examples/attach-menu.tsx +78 -0
  348. package/dist/skill/reference/components/composer/examples/attachments.tsx +2 -2
  349. package/dist/skill/reference/components/composer/examples/examples.module.css +0 -9
  350. package/dist/skill/reference/components/composer/examples/narrow.tsx +1 -1
  351. package/dist/skill/reference/components/composer/examples/reply-edit.tsx +3 -3
  352. package/dist/skill/reference/components/composer/examples/sizes.tsx +3 -5
  353. package/dist/skill/reference/components/composer/examples/states.tsx +4 -6
  354. package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +26 -13
  355. package/dist/skill/reference/components/confirm-dialog/examples/dismiss.tsx +27 -0
  356. package/dist/skill/reference/components/confirm-dialog/examples/failure.tsx +9 -16
  357. package/dist/skill/reference/components/crossfade/COMPONENT.md +12 -5
  358. package/dist/skill/reference/components/crossfade/examples/examples.module.css +1 -40
  359. package/dist/skill/reference/components/crossfade/examples/fill.tsx +16 -19
  360. package/dist/skill/reference/components/crossfade/examples/overview.tsx +14 -16
  361. package/dist/skill/reference/components/crossfade/examples/record-switch.tsx +6 -11
  362. package/dist/skill/{patterns/screen-states.module.css → reference/components/crossfade/examples/screen.module.css} +1 -24
  363. package/dist/skill/reference/components/crossfade/examples/screen.tsx +186 -0
  364. package/dist/skill/reference/components/data-table/COMPONENT.md +34 -23
  365. package/dist/skill/reference/components/data-table/examples/controlled.tsx +14 -2
  366. package/dist/skill/reference/components/data-table/examples/detail-panel.tsx +36 -37
  367. package/dist/skill/reference/components/data-table/examples/examples.module.css +1 -21
  368. package/dist/skill/reference/components/data-table/examples/narrow.tsx +5 -1
  369. package/dist/skill/reference/components/data-table/examples/numeric.tsx +36 -4
  370. package/dist/skill/reference/components/data-table/examples/overview.tsx +1 -0
  371. package/dist/skill/reference/components/data-table/examples/row-link.tsx +2 -1
  372. package/dist/skill/reference/components/data-table/examples/row-open.tsx +7 -36
  373. package/dist/skill/reference/components/data-table/examples/screen.module.css +13 -0
  374. package/dist/skill/{patterns/list-page.tsx → reference/components/data-table/examples/screen.tsx} +95 -74
  375. package/dist/skill/reference/components/data-table/examples/sizes.tsx +17 -17
  376. package/dist/skill/reference/components/data-table/examples/states.tsx +37 -29
  377. package/dist/skill/reference/components/datepicker/COMPONENT.md +57 -25
  378. package/dist/skill/reference/components/datepicker/examples/dismiss.tsx +15 -0
  379. package/dist/skill/reference/components/datepicker/examples/examples.module.css +4 -7
  380. package/dist/skill/reference/components/datepicker/examples/in-form.tsx +29 -29
  381. package/dist/skill/reference/components/datepicker/examples/locale.tsx +35 -0
  382. package/dist/skill/reference/components/datepicker/examples/range-presets.tsx +11 -2
  383. package/dist/skill/reference/components/datepicker/examples/sizes.tsx +2 -2
  384. package/dist/skill/reference/components/datepicker/examples/states.tsx +11 -3
  385. package/dist/skill/reference/components/datepicker/examples/validation.tsx +3 -3
  386. package/dist/skill/reference/components/description-list/COMPONENT.md +24 -8
  387. package/dist/skill/reference/components/description-list/examples/examples.module.css +4 -24
  388. package/dist/skill/reference/components/description-list/examples/narrow.tsx +1 -1
  389. package/dist/skill/{patterns/detail-page.module.css → reference/components/description-list/examples/screen.module.css} +2 -27
  390. package/dist/skill/reference/components/description-list/examples/screen.tsx +206 -0
  391. package/dist/skill/reference/components/description-list/examples/sizes.tsx +2 -4
  392. package/dist/skill/reference/components/description-list/examples/structure.tsx +7 -8
  393. package/dist/skill/reference/components/description-list/examples/totals.tsx +40 -0
  394. package/dist/skill/reference/components/digit-input/COMPONENT.md +15 -7
  395. package/dist/skill/reference/components/digit-input/examples/examples.module.css +2 -2
  396. package/dist/skill/reference/components/digit-input/examples/in-form.tsx +1 -1
  397. package/dist/skill/reference/components/digit-input/examples/sizes.tsx +5 -3
  398. package/dist/skill/reference/components/digit-input/examples/states.tsx +15 -5
  399. package/dist/skill/reference/components/digit-input/examples/without-focus-ring.tsx +13 -0
  400. package/dist/skill/reference/components/divider/COMPONENT.md +26 -12
  401. package/dist/skill/reference/components/divider/examples/align.tsx +2 -4
  402. package/dist/skill/reference/components/divider/examples/examples.module.css +13 -17
  403. package/dist/skill/reference/components/divider/examples/or-separator.tsx +3 -5
  404. package/dist/skill/reference/components/divider/examples/overview.tsx +18 -16
  405. package/dist/skill/reference/components/divider/examples/vertical.tsx +5 -1
  406. package/dist/skill/reference/components/divider/examples/with-icon.tsx +3 -3
  407. package/dist/skill/reference/components/dnd/COMPONENT.md +56 -36
  408. package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +82 -49
  409. package/dist/skill/reference/components/dnd/examples/examples.module.css +54 -6
  410. package/dist/skill/reference/components/dnd/examples/states.tsx +60 -0
  411. package/dist/skill/reference/components/dnd/examples/table.tsx +113 -0
  412. package/dist/skill/reference/components/drawer/COMPONENT.md +38 -14
  413. package/dist/skill/reference/components/drawer/examples/dismiss.tsx +5 -3
  414. package/dist/skill/reference/components/drawer/examples/guard.tsx +1 -3
  415. package/dist/skill/reference/components/drawer/examples/header-actions.tsx +6 -10
  416. package/dist/skill/reference/components/drawer/examples/in-form.tsx +31 -31
  417. package/dist/skill/reference/components/drawer/examples/overview.tsx +6 -18
  418. package/dist/skill/reference/components/drawer/examples/placement.tsx +31 -26
  419. package/dist/skill/reference/components/drawer/examples/screen.tsx +298 -0
  420. package/dist/skill/reference/components/drawer/examples/sizes.tsx +32 -27
  421. package/dist/skill/reference/components/dropdown/COMPONENT.md +58 -23
  422. package/dist/skill/reference/components/dropdown/examples/context-menu.tsx +75 -0
  423. package/dist/skill/reference/components/dropdown/examples/examples.module.css +2 -6
  424. package/dist/skill/reference/components/dropdown/examples/sizes.tsx +39 -34
  425. package/dist/skill/reference/components/dropdown/examples/states.tsx +37 -29
  426. package/dist/skill/reference/components/empty-page/COMPONENT.md +21 -10
  427. package/dist/skill/reference/components/empty-page/examples/compact.tsx +28 -18
  428. package/dist/skill/reference/components/empty-page/examples/examples.module.css +0 -43
  429. package/dist/skill/reference/components/empty-page/examples/narrow.tsx +3 -3
  430. package/dist/skill/reference/components/empty-page/examples/region-error.tsx +14 -13
  431. package/dist/skill/reference/components/empty-page/examples/sizes.tsx +13 -13
  432. package/dist/skill/reference/components/empty-page/examples/variants.tsx +34 -30
  433. package/dist/skill/reference/components/example-frame/COMPONENT.md +23 -10
  434. package/dist/skill/reference/components/example-frame/examples/controlled.tsx +3 -3
  435. package/dist/skill/reference/components/example-frame/examples/initial-view.tsx +44 -0
  436. package/dist/skill/reference/components/field-list/COMPONENT.md +16 -9
  437. package/dist/skill/reference/components/field-list/examples/errors.tsx +5 -2
  438. package/dist/skill/{patterns/record-editor.tsx → reference/components/field-list/examples/screen.tsx} +3 -43
  439. package/dist/skill/reference/components/field-list/examples/sizes.tsx +32 -26
  440. package/dist/skill/reference/components/field-list/examples/states.tsx +37 -31
  441. package/dist/skill/reference/components/fieldset/COMPONENT.md +10 -5
  442. package/dist/skill/reference/components/fieldset/examples/examples.module.css +1 -1
  443. package/dist/skill/reference/components/file-upload/COMPONENT.md +73 -34
  444. package/dist/skill/reference/components/file-upload/examples/avatar-upload.tsx +5 -5
  445. package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +13 -7
  446. package/dist/skill/reference/components/file-upload/examples/examples.module.css +5 -11
  447. package/dist/skill/reference/components/file-upload/examples/file-cards.tsx +10 -1
  448. package/dist/skill/reference/components/file-upload/examples/gallery.tsx +2 -2
  449. package/dist/skill/reference/components/file-upload/examples/in-form.tsx +4 -9
  450. package/dist/skill/reference/components/file-upload/examples/narrow.tsx +1 -1
  451. package/dist/skill/reference/components/file-upload/examples/overview.tsx +5 -1
  452. package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +27 -4
  453. package/dist/skill/{patterns/media-library.module.css → reference/components/file-upload/examples/screen.module.css} +4 -3
  454. package/dist/skill/reference/components/file-upload/examples/screen.tsx +648 -0
  455. package/dist/skill/reference/components/file-upload/examples/sizes.tsx +1 -3
  456. package/dist/skill/reference/components/file-upload/examples/states.tsx +6 -4
  457. package/dist/skill/reference/components/file-upload/examples/validation.tsx +11 -2
  458. package/dist/skill/reference/components/file-upload/examples/variants.tsx +15 -26
  459. package/dist/skill/reference/components/gallery/COMPONENT.md +16 -7
  460. package/dist/skill/reference/components/gallery/examples/album-sizes.tsx +52 -0
  461. package/dist/skill/reference/components/gallery/examples/controlled.tsx +40 -0
  462. package/dist/skill/reference/components/gallery/examples/examples.module.css +1 -1
  463. package/dist/skill/reference/components/gallery/examples/overview.tsx +15 -43
  464. package/dist/skill/reference/components/gallery/examples/transfer.tsx +22 -13
  465. package/dist/skill/reference/components/gantt/COMPONENT.md +22 -15
  466. package/dist/skill/reference/components/gantt/examples/examples.module.css +0 -16
  467. package/dist/skill/reference/components/gantt/examples/occupancy.tsx +2 -2
  468. package/dist/skill/reference/components/gantt/examples/screen.module.css +14 -0
  469. package/dist/skill/{patterns/schedule.tsx → reference/components/gantt/examples/screen.tsx} +175 -171
  470. package/dist/skill/reference/components/gantt/examples/sizes.tsx +16 -16
  471. package/dist/skill/reference/components/gantt/examples/states.tsx +38 -30
  472. package/dist/skill/reference/components/gantt/examples/variants.tsx +27 -25
  473. package/dist/skill/reference/components/hint/COMPONENT.md +24 -14
  474. package/dist/skill/reference/components/hint/examples/examples.module.css +1 -1
  475. package/dist/skill/reference/components/hint/examples/hint-or-error.tsx +2 -2
  476. package/dist/skill/reference/components/hint/examples/overview.tsx +9 -10
  477. package/dist/skill/reference/components/hint/examples/sizes.tsx +1 -1
  478. package/dist/skill/reference/components/input/COMPONENT.md +12 -8
  479. package/dist/skill/reference/components/input/examples/affixes.tsx +2 -2
  480. package/dist/skill/reference/components/input/examples/examples.module.css +1 -7
  481. package/dist/skill/reference/components/input/examples/in-form.tsx +1 -9
  482. package/dist/skill/reference/components/input/examples/password-strength.tsx +34 -8
  483. package/dist/skill/reference/components/input/examples/sizes.tsx +9 -5
  484. package/dist/skill/reference/components/input/examples/states.tsx +40 -19
  485. package/dist/skill/reference/components/input/examples/with-icon.tsx +24 -16
  486. package/dist/skill/reference/components/kanban/COMPONENT.md +31 -24
  487. package/dist/skill/reference/components/kanban/examples/columns.tsx +22 -24
  488. package/dist/skill/reference/components/kanban/examples/item-link.tsx +2 -2
  489. package/dist/skill/reference/components/kanban/examples/limits.tsx +1 -1
  490. package/dist/skill/reference/components/kanban/examples/narrow.tsx +1 -1
  491. package/dist/skill/reference/components/kanban/examples/screen.module.css +15 -0
  492. package/dist/skill/{patterns/kanban-board.tsx → reference/components/kanban/examples/screen.tsx} +133 -173
  493. package/dist/skill/reference/components/kanban/examples/states.tsx +46 -56
  494. package/dist/skill/reference/components/kanban/examples/variants.tsx +0 -3
  495. package/dist/skill/reference/components/kbd/COMPONENT.md +10 -6
  496. package/dist/skill/reference/components/kbd/examples/examples.module.css +1 -20
  497. package/dist/skill/reference/components/kbd/examples/in-controls.tsx +2 -2
  498. package/dist/skill/reference/components/kbd/examples/shortcut-list.tsx +14 -26
  499. package/dist/skill/reference/components/label/COMPONENT.md +26 -11
  500. package/dist/skill/reference/components/label/examples/examples.module.css +3 -11
  501. package/dist/skill/reference/components/label/examples/overview.tsx +5 -9
  502. package/dist/skill/reference/components/label/examples/structure.tsx +2 -2
  503. package/dist/skill/reference/components/link-button/COMPONENT.md +33 -20
  504. package/dist/skill/reference/components/link-button/examples/as-child.tsx +1 -1
  505. package/dist/skill/reference/components/link-button/examples/external-link.tsx +1 -1
  506. package/dist/skill/reference/components/link-button/examples/overview.tsx +4 -2
  507. package/dist/skill/reference/components/link-button/examples/variants.tsx +2 -2
  508. package/dist/skill/reference/components/list/COMPONENT.md +24 -16
  509. package/dist/skill/reference/components/list/examples/examples.module.css +0 -8
  510. package/dist/skill/reference/components/list/examples/overflow.tsx +1 -1
  511. package/dist/skill/reference/components/list/examples/overview.tsx +31 -30
  512. package/dist/skill/reference/components/list/examples/sizes.tsx +23 -23
  513. package/dist/skill/reference/components/list/examples/states.tsx +38 -21
  514. package/dist/skill/reference/components/list/examples/with-icon.tsx +16 -14
  515. package/dist/skill/reference/components/login-form/COMPONENT.md +74 -20
  516. package/dist/skill/reference/components/login-form/examples/examples.module.css +2 -21
  517. package/dist/skill/reference/components/login-form/examples/forgot-password.tsx +28 -32
  518. package/dist/skill/reference/components/login-form/examples/narrow.tsx +2 -2
  519. package/dist/skill/reference/components/login-form/examples/overview.tsx +45 -47
  520. package/dist/skill/reference/components/login-form/examples/register.tsx +65 -69
  521. package/dist/skill/reference/components/login-form/examples/reset-password.tsx +50 -47
  522. package/dist/skill/reference/components/login-form/examples/sizes.tsx +4 -6
  523. package/dist/skill/reference/components/login-form/examples/states.tsx +53 -57
  524. package/dist/skill/reference/components/login-form/examples/structure.tsx +18 -22
  525. package/dist/skill/reference/components/login-form/examples/verification-code.tsx +41 -45
  526. package/dist/skill/reference/components/media-viewer/COMPONENT.md +13 -9
  527. package/dist/skill/reference/components/media-viewer/examples/dismiss.tsx +5 -1
  528. package/dist/skill/reference/components/media-viewer/examples/examples.module.css +2 -2
  529. package/dist/skill/reference/components/media-viewer/examples/video.tsx +1 -1
  530. package/dist/skill/reference/components/message/COMPONENT.md +106 -49
  531. package/dist/skill/reference/components/message/examples/file.tsx +5 -1
  532. package/dist/skill/reference/components/message/examples/media-open.tsx +48 -0
  533. package/dist/skill/reference/components/message/examples/status.tsx +21 -3
  534. package/dist/skill/reference/components/message/examples/text-formatting.tsx +7 -1
  535. package/dist/skill/reference/components/message/examples/typing.tsx +5 -5
  536. package/dist/skill/reference/components/modal/COMPONENT.md +71 -36
  537. package/dist/skill/reference/components/modal/examples/custom-container.tsx +20 -20
  538. package/dist/skill/reference/components/modal/examples/dismiss.tsx +38 -28
  539. package/dist/skill/reference/components/modal/examples/enter-key.tsx +113 -0
  540. package/dist/skill/reference/components/modal/examples/examples.module.css +4 -17
  541. package/dist/skill/reference/components/modal/examples/guard.tsx +2 -4
  542. package/dist/skill/reference/components/modal/examples/in-form.tsx +28 -28
  543. package/dist/skill/reference/components/modal/examples/long-content.tsx +6 -4
  544. package/dist/skill/reference/components/modal/examples/sizes.tsx +36 -31
  545. package/dist/skill/reference/components/modal/examples/structure.tsx +5 -2
  546. package/dist/skill/reference/components/native-select/COMPONENT.md +8 -4
  547. package/dist/skill/reference/components/native-select/examples/examples.module.css +3 -3
  548. package/dist/skill/reference/components/native-select/examples/in-form.tsx +28 -29
  549. package/dist/skill/reference/components/native-select/examples/sizes.tsx +2 -2
  550. package/dist/skill/reference/components/native-select/examples/states.tsx +7 -3
  551. package/dist/skill/reference/components/notification/COMPONENT.md +37 -32
  552. package/dist/skill/reference/components/notification/examples/dismiss.tsx +2 -2
  553. package/dist/skill/reference/components/notification/examples/examples.module.css +1 -2
  554. package/dist/skill/reference/components/notification/examples/in-form.tsx +28 -20
  555. package/dist/skill/reference/components/notification/examples/sizes.tsx +16 -12
  556. package/dist/skill/reference/components/notification/examples/undo.tsx +7 -15
  557. package/dist/skill/reference/components/page-content/COMPONENT.md +22 -29
  558. package/dist/skill/reference/components/page-content/examples/examples.module.css +3 -16
  559. package/dist/skill/reference/components/page-content/examples/grid.tsx +3 -1
  560. package/dist/skill/reference/components/page-content/examples/list-detail.tsx +55 -52
  561. package/dist/skill/reference/components/page-content/examples/narrow.tsx +1 -1
  562. package/dist/skill/reference/components/page-content/examples/overview.tsx +2 -2
  563. package/dist/skill/{patterns/settings-page.tsx → reference/components/page-content/examples/screen.tsx} +3 -3
  564. package/dist/skill/reference/components/page-content/examples/variants.tsx +10 -17
  565. package/dist/skill/reference/components/page-toolbar/COMPONENT.md +27 -21
  566. package/dist/skill/reference/components/page-toolbar/examples/narrow.tsx +6 -3
  567. package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +1 -1
  568. package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +25 -22
  569. package/dist/skill/reference/components/pagination/COMPONENT.md +20 -17
  570. package/dist/skill/reference/components/pagination/examples/controlled.tsx +29 -29
  571. package/dist/skill/reference/components/pagination/examples/examples.module.css +0 -2
  572. package/dist/skill/reference/components/pagination/examples/narrow.tsx +5 -5
  573. package/dist/skill/reference/components/popover/COMPONENT.md +43 -20
  574. package/dist/skill/reference/components/popover/examples/controlled-open.tsx +6 -4
  575. package/dist/skill/reference/components/popover/examples/dismiss.tsx +37 -28
  576. package/dist/skill/reference/components/popover/examples/examples.module.css +2 -2
  577. package/dist/skill/reference/components/popover/examples/sizes.tsx +32 -27
  578. package/dist/skill/reference/components/popover/examples/width.tsx +45 -0
  579. package/dist/skill/reference/components/progress-bar/COMPONENT.md +22 -30
  580. package/dist/skill/reference/components/progress-bar/examples/examples.module.css +1 -1
  581. package/dist/skill/reference/components/progress-bar/examples/segments.tsx +2 -2
  582. package/dist/skill/reference/components/progress-circle/COMPONENT.md +22 -30
  583. package/dist/skill/reference/components/progress-circle/examples/examples.module.css +1 -1
  584. package/dist/skill/reference/components/progress-circle/examples/on-color.tsx +16 -0
  585. package/dist/skill/reference/components/progress-circle/examples/segments.tsx +8 -3
  586. package/dist/skill/reference/components/progress-circle/examples/variants.tsx +1 -0
  587. package/dist/skill/reference/components/radio/COMPONENT.md +14 -4
  588. package/dist/skill/reference/components/radio/examples/examples.module.css +14 -0
  589. package/dist/skill/reference/components/radio/examples/in-form.tsx +45 -0
  590. package/dist/skill/reference/components/scroll-container/COMPONENT.md +19 -12
  591. package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +11 -7
  592. package/dist/skill/reference/components/scroll-container/examples/edges.tsx +10 -7
  593. package/dist/skill/reference/components/scroll-container/examples/examples.module.css +10 -67
  594. package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +51 -0
  595. package/dist/skill/reference/components/scroll-container/examples/lock.tsx +7 -9
  596. package/dist/skill/reference/components/scroll-container/examples/log.tsx +97 -0
  597. package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +7 -7
  598. package/dist/skill/reference/components/scroll-container/examples/overview.tsx +8 -8
  599. package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +17 -11
  600. package/dist/skill/reference/components/scroll-container/examples/snap.tsx +2 -2
  601. package/dist/skill/reference/components/scroll-container/examples/variants.tsx +14 -7
  602. package/dist/skill/reference/components/segmented-control/COMPONENT.md +26 -14
  603. package/dist/skill/reference/components/segmented-control/examples/controlled.tsx +2 -4
  604. package/dist/skill/reference/components/segmented-control/examples/examples.module.css +0 -8
  605. package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +5 -1
  606. package/dist/skill/reference/components/segmented-control/examples/scroll.tsx +1 -1
  607. package/dist/skill/reference/components/segmented-control/examples/states.tsx +10 -1
  608. package/dist/skill/reference/components/select/COMPONENT.md +34 -10
  609. package/dist/skill/reference/components/select/examples/dismiss.tsx +26 -0
  610. package/dist/skill/reference/components/select/examples/examples.module.css +3 -8
  611. package/dist/skill/reference/components/select/examples/server-search.tsx +6 -2
  612. package/dist/skill/reference/components/select/examples/sizes.tsx +2 -2
  613. package/dist/skill/reference/components/select/examples/states.tsx +15 -3
  614. package/dist/skill/reference/components/select/examples/with-icon.tsx +20 -18
  615. package/dist/skill/reference/components/sheet/COMPONENT.md +46 -21
  616. package/dist/skill/reference/components/sheet/examples/guard.tsx +72 -0
  617. package/dist/skill/reference/components/sheet/examples/header-actions.tsx +75 -0
  618. package/dist/skill/reference/components/sheet/examples/overview.tsx +25 -10
  619. package/dist/skill/reference/components/skeleton/COMPONENT.md +8 -4
  620. package/dist/skill/reference/components/skeleton/examples/examples.module.css +1 -13
  621. package/dist/skill/reference/components/skeleton/examples/with-crossfade.tsx +7 -7
  622. package/dist/skill/reference/components/slider/COMPONENT.md +12 -6
  623. package/dist/skill/reference/components/slider/examples/examples.module.css +14 -7
  624. package/dist/skill/reference/components/slider/examples/hint-and-error.tsx +3 -5
  625. package/dist/skill/reference/components/slider/examples/in-form.tsx +49 -0
  626. package/dist/skill/reference/components/slider/examples/states.tsx +4 -1
  627. package/dist/skill/reference/components/smart-filter/COMPONENT.md +33 -13
  628. package/dist/skill/reference/components/smart-filter/examples/controlled.tsx +3 -3
  629. package/dist/skill/reference/components/smart-filter/examples/examples.module.css +0 -21
  630. package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +45 -10
  631. package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +2 -4
  632. package/dist/skill/reference/components/sparkline/COMPONENT.md +8 -4
  633. package/dist/skill/reference/components/sparkline/examples/examples.module.css +1 -1
  634. package/dist/skill/reference/components/sparkline/examples/reference.tsx +2 -1
  635. package/dist/skill/reference/components/sparkline/examples/signed-bars.tsx +2 -2
  636. package/dist/skill/reference/components/spinner/COMPONENT.md +15 -9
  637. package/dist/skill/reference/components/spinner/examples/examples.module.css +2 -14
  638. package/dist/skill/reference/components/spinner/examples/overview.tsx +1 -1
  639. package/dist/skill/reference/components/stepper/COMPONENT.md +50 -41
  640. package/dist/skill/reference/components/stepper/examples/examples.module.css +1 -6
  641. package/dist/skill/reference/components/stepper/examples/narrow.tsx +1 -1
  642. package/dist/skill/reference/components/stepper/examples/sizes.tsx +6 -8
  643. package/dist/skill/reference/components/stepper/examples/states.tsx +44 -43
  644. package/dist/skill/reference/components/stepper/examples/with-icon.tsx +19 -17
  645. package/dist/skill/reference/components/switch/COMPONENT.md +21 -8
  646. package/dist/skill/reference/components/switch/examples/examples.module.css +2 -2
  647. package/dist/skill/reference/components/switch/examples/states.tsx +3 -3
  648. package/dist/skill/reference/components/tabs/COMPONENT.md +22 -17
  649. package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +1 -1
  650. package/dist/skill/reference/components/tabs/examples/sizes.tsx +6 -11
  651. package/dist/skill/reference/components/tabs/examples/variants.tsx +19 -23
  652. package/dist/skill/reference/components/tag-select/COMPONENT.md +20 -7
  653. package/dist/skill/reference/components/tag-select/examples/creatable.tsx +2 -2
  654. package/dist/skill/reference/components/tag-select/examples/dismiss.tsx +23 -0
  655. package/dist/skill/reference/components/tag-select/examples/examples.module.css +3 -3
  656. package/dist/skill/reference/components/tag-select/examples/in-form.tsx +31 -32
  657. package/dist/skill/reference/components/tag-select/examples/sizes.tsx +2 -2
  658. package/dist/skill/reference/components/tag-select/examples/states.tsx +10 -3
  659. package/dist/skill/reference/components/textarea/COMPONENT.md +11 -7
  660. package/dist/skill/reference/components/textarea/examples/examples.module.css +3 -16
  661. package/dist/skill/reference/components/textarea/examples/in-form.tsx +3 -11
  662. package/dist/skill/reference/components/textarea/examples/sizes.tsx +10 -7
  663. package/dist/skill/reference/components/textarea/examples/states.tsx +30 -13
  664. package/dist/skill/reference/components/textarea/examples/validation.tsx +45 -36
  665. package/dist/skill/reference/components/thumbnail/COMPONENT.md +19 -14
  666. package/dist/skill/reference/components/thumbnail/examples/examples.module.css +2 -2
  667. package/dist/skill/reference/components/thumbnail/examples/fit.tsx +24 -0
  668. package/dist/skill/reference/components/thumbnail/examples/states.tsx +1 -1
  669. package/dist/skill/reference/components/thumbnail/examples/variants.tsx +12 -1
  670. package/dist/skill/reference/components/thumbnail/examples/video.tsx +20 -1
  671. package/dist/skill/reference/components/timeline/COMPONENT.md +52 -36
  672. package/dist/skill/reference/components/timeline/examples/links.tsx +57 -16
  673. package/dist/skill/reference/components/timeline/examples/narrow.tsx +6 -6
  674. package/dist/skill/reference/components/timeline/examples/overview.tsx +6 -6
  675. package/dist/skill/reference/components/timeline/examples/sizes.tsx +28 -23
  676. package/dist/skill/reference/components/timeline/examples/structure.tsx +30 -30
  677. package/dist/skill/reference/components/timeline/examples/variants.tsx +40 -28
  678. package/dist/skill/reference/components/tooltip/COMPONENT.md +11 -7
  679. package/dist/skill/reference/components/tooltip/examples/examples.module.css +1 -5
  680. package/dist/skill/reference/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  681. package/dist/skill/reference/components/tooltip/examples/sizes.tsx +17 -10
  682. package/dist/skill/reference/components/tooltip/examples/toolbar.tsx +2 -2
  683. package/dist/skill/reference/components/typography/COMPONENT.md +17 -2
  684. package/dist/skill/reference/components/typography/examples/examples.module.css +3 -6
  685. package/dist/skill/reference/components/typography/examples/numeric.tsx +16 -0
  686. package/dist/skill/reference/components/typography/examples/weights.tsx +3 -0
  687. package/dist/skill/reference/components/video-note/COMPONENT.md +13 -9
  688. package/dist/skill/reference/components/video-note/examples/controlled.tsx +19 -2
  689. package/dist/skill/reference/components/video-note/examples/in-message.tsx +5 -2
  690. package/dist/skill/reference/components/visually-hidden/COMPONENT.md +10 -5
  691. package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +39 -0
  692. package/dist/skill/reference/components/visually-hidden/examples/overview.tsx +17 -7
  693. package/dist/skill/reference/components/voice-player/COMPONENT.md +17 -9
  694. package/dist/skill/reference/components/voice-player/examples/call-recording.tsx +19 -9
  695. package/dist/skill/reference/components/voice-player/examples/controlled.tsx +20 -3
  696. package/dist/skill/reference/foundation.md +564 -0
  697. package/dist/skill/reference/layout/app-header/COMPONENT.md +65 -81
  698. package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +10 -9
  699. package/dist/skill/reference/layout/app-header/examples/examples.module.css +4 -23
  700. package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +3 -6
  701. package/dist/skill/reference/layout/app-header/examples/narrow.tsx +58 -21
  702. package/dist/skill/reference/layout/app-header/examples/overview.tsx +8 -10
  703. package/dist/skill/reference/layout/app-header/examples/page-title.tsx +3 -10
  704. package/dist/skill/reference/layout/app-shell/COMPONENT.md +41 -10
  705. package/dist/skill/reference/layout/app-shell/examples/examples.module.css +2 -22
  706. package/dist/skill/reference/layout/app-shell/examples/footer.tsx +2 -2
  707. package/dist/skill/reference/layout/app-shell/examples/overview.tsx +18 -35
  708. package/dist/skill/reference/layout/app-shell/examples/screen.tsx +268 -0
  709. package/dist/skill/reference/layout/app-shell/examples/template.tsx +32 -12
  710. package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +27 -17
  711. package/dist/skill/reference/layout/bottom-nav/examples/examples.module.css +2 -7
  712. package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +2 -2
  713. package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +2 -2
  714. package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
  715. package/dist/skill/reference/layout/bottom-nav/examples/router.tsx +6 -5
  716. package/dist/skill/reference/layout/sidebar/COMPONENT.md +55 -42
  717. package/dist/skill/reference/layout/sidebar/examples/account.tsx +3 -5
  718. package/dist/skill/reference/layout/sidebar/examples/brand-header.tsx +1 -3
  719. package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +13 -7
  720. package/dist/skill/reference/layout/sidebar/examples/controlled-open.tsx +1 -3
  721. package/dist/skill/reference/layout/sidebar/examples/controlled.tsx +1 -3
  722. package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +51 -0
  723. package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +47 -0
  724. package/dist/skill/reference/layout/sidebar/examples/examples.module.css +10 -30
  725. package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +55 -0
  726. package/dist/skill/reference/layout/sidebar/examples/nested-items.tsx +1 -3
  727. package/dist/skill/reference/layout/sidebar/examples/overview.tsx +1 -3
  728. package/dist/skill/reference/layout/sidebar/examples/persist.tsx +55 -0
  729. package/dist/skill/reference/layout/sidebar/examples/router.tsx +20 -9
  730. package/dist/skill/reference/layout/sidebar/examples/sizes.tsx +6 -6
  731. package/dist/skill/reference/layout/sidebar/examples/structure.tsx +7 -2
  732. package/dist/skill/responsive.md +49 -52
  733. package/dist/skill/ux.md +21 -9
  734. package/dist/theme/applyTheme.d.ts +7 -6
  735. package/dist/tokens/hues.d.ts +8 -0
  736. package/dist/tokens/layers.d.ts +3 -16
  737. package/dist/tokens/offGrid.d.ts +7 -0
  738. package/dist/tokens/primitives.d.ts +22 -7
  739. package/dist/tokens/semantic.d.ts +201 -51
  740. package/dist/tokens/themes/dark.d.ts +32 -31
  741. package/package.json +5 -3
  742. package/src/components/accordion/COMPONENT.md +16 -9
  743. package/src/components/accordion/examples/overview.tsx +2 -2
  744. package/src/components/accordion/examples/sizes.tsx +6 -8
  745. package/src/components/accordion/examples/states.tsx +27 -24
  746. package/src/components/accordion/examples/variants.tsx +6 -8
  747. package/src/components/accordion/examples/with-icon.tsx +22 -19
  748. package/src/components/avatar/COMPONENT.md +23 -16
  749. package/src/components/avatar/examples/examples.module.css +1 -4
  750. package/src/components/avatar/examples/overview.tsx +3 -3
  751. package/src/components/avatar/examples/presence.tsx +4 -4
  752. package/src/components/avatar/examples/src-from-state.tsx +3 -3
  753. package/src/components/avatar/examples/states.tsx +6 -6
  754. package/src/components/avatar/examples/team-group.tsx +2 -2
  755. package/src/components/badge/COMPONENT.md +66 -34
  756. package/src/components/badge/examples/applied-filters.tsx +13 -19
  757. package/src/components/badge/examples/controlled.tsx +32 -0
  758. package/src/components/badge/examples/examples.module.css +3 -10
  759. package/src/components/badge/examples/filter-values.tsx +4 -6
  760. package/src/components/badge/examples/in-controls.tsx +1 -1
  761. package/src/components/badge/examples/overview.tsx +6 -5
  762. package/src/components/badge/examples/server-tags.tsx +2 -6
  763. package/src/components/badge/examples/square.tsx +21 -0
  764. package/src/components/badge/examples/states.tsx +4 -4
  765. package/src/components/badge/examples/with-icon.tsx +10 -1
  766. package/src/components/banner/COMPONENT.md +9 -5
  767. package/src/components/banner/examples/dismissible.tsx +3 -19
  768. package/src/components/banner/examples/examples.module.css +1 -5
  769. package/src/components/banner/examples/overview.tsx +1 -1
  770. package/src/components/banner/examples/page-strip.tsx +16 -22
  771. package/src/components/breadcrumb/COMPONENT.md +21 -14
  772. package/src/components/breadcrumb/examples/ellipsis.tsx +2 -2
  773. package/src/components/breadcrumb/examples/examples.module.css +1 -1
  774. package/src/components/breadcrumb/examples/overflow.tsx +1 -1
  775. package/src/components/breadcrumb/examples/sizes.tsx +6 -8
  776. package/src/components/breadcrumb/examples/with-icon.tsx +15 -8
  777. package/src/components/button/COMPONENT.md +66 -30
  778. package/src/components/button/examples/align.tsx +25 -0
  779. package/src/components/button/examples/controlled.tsx +21 -0
  780. package/src/components/button/examples/density.tsx +45 -0
  781. package/src/components/button/examples/examples.module.css +14 -25
  782. package/src/components/button/examples/label-morph.tsx +1 -1
  783. package/src/components/button/examples/on-colored-host.tsx +19 -19
  784. package/src/components/button/examples/over-media.tsx +7 -1
  785. package/src/components/button/examples/toggle.tsx +2 -10
  786. package/src/components/button-group/COMPONENT.md +23 -17
  787. package/src/components/button-group/examples/controlled.tsx +1 -1
  788. package/src/components/button-group/examples/in-form.tsx +22 -2
  789. package/src/components/button-group/examples/states.tsx +10 -1
  790. package/src/components/card/COMPONENT.md +18 -6
  791. package/src/components/card/examples/content-templates.tsx +8 -2
  792. package/src/components/card/examples/examples.module.css +4 -16
  793. package/src/components/card/examples/overview.tsx +11 -11
  794. package/src/components/card/examples/screen.module.css +14 -0
  795. package/src/components/card/examples/screen.tsx +363 -0
  796. package/src/components/card/examples/variants.tsx +75 -34
  797. package/src/components/chart-frame/COMPONENT.md +25 -28
  798. package/src/components/chart-frame/examples/controlled.tsx +9 -7
  799. package/src/components/chart-frame/examples/fill-height.tsx +117 -0
  800. package/src/components/chart-frame/examples/narrow.tsx +24 -5
  801. package/src/components/chart-frame/examples/overview.tsx +5 -2
  802. package/src/components/chart-frame/examples/states.tsx +72 -62
  803. package/src/components/chart-frame/examples/tooltip.tsx +27 -26
  804. package/src/components/chat/COMPONENT.md +37 -22
  805. package/src/components/chat/examples/group-chat.tsx +16 -3
  806. package/src/components/chat/examples/overview.tsx +119 -130
  807. package/src/components/chat/examples/reactions.tsx +116 -0
  808. package/src/components/chat/examples/screen.module.css +9 -0
  809. package/src/components/chat/examples/screen.tsx +695 -0
  810. package/src/components/chat/examples/states.tsx +23 -22
  811. package/src/components/chat-list/COMPONENT.md +11 -5
  812. package/src/components/chat-list/examples/examples.module.css +0 -8
  813. package/src/components/chat-list/examples/links.tsx +72 -0
  814. package/src/components/chat-list/examples/live.tsx +29 -22
  815. package/src/components/chat-list/examples/sizes.tsx +6 -8
  816. package/src/components/chat-list/examples/states.tsx +42 -38
  817. package/src/components/checkbox/COMPONENT.md +27 -14
  818. package/src/components/checkbox/examples/controlled.tsx +18 -16
  819. package/src/components/checkbox/examples/examples.module.css +14 -52
  820. package/src/components/checkbox/examples/in-form.tsx +16 -16
  821. package/src/components/checkbox/examples/indicator.tsx +17 -56
  822. package/src/components/checkbox/examples/overview.tsx +1 -1
  823. package/src/components/checkbox/examples/states.tsx +6 -1
  824. package/src/components/checkbox/examples/without-label.tsx +1 -1
  825. package/src/components/code-block/COMPONENT.md +16 -12
  826. package/src/components/code-block/examples/examples.module.css +5 -2
  827. package/src/components/code-block/examples/narrow.tsx +1 -1
  828. package/src/components/color-field/COMPONENT.md +16 -10
  829. package/src/components/color-field/examples/examples.module.css +4 -5
  830. package/src/components/color-field/examples/in-form.tsx +15 -13
  831. package/src/components/color-field/examples/sizes.tsx +5 -1
  832. package/src/components/color-field/examples/states.tsx +15 -3
  833. package/src/components/color-picker/COMPONENT.md +58 -21
  834. package/src/components/color-picker/examples/controlled-open.tsx +37 -0
  835. package/src/components/color-picker/examples/controlled.tsx +16 -5
  836. package/src/components/color-picker/examples/examples.module.css +6 -7
  837. package/src/components/color-picker/examples/in-form.tsx +24 -22
  838. package/src/components/color-picker/examples/overview.tsx +1 -1
  839. package/src/components/color-picker/examples/panel.tsx +1 -1
  840. package/src/components/color-picker/examples/presets.tsx +2 -2
  841. package/src/components/color-picker/examples/sizes.tsx +9 -11
  842. package/src/components/color-picker/examples/states.tsx +30 -16
  843. package/src/components/color-swatches/COMPONENT.md +22 -8
  844. package/src/components/color-swatches/examples/examples.module.css +3 -4
  845. package/src/components/color-swatches/examples/in-form.tsx +19 -17
  846. package/src/components/color-swatches/examples/palette.tsx +24 -0
  847. package/src/components/color-swatches/examples/wrapping.tsx +17 -2
  848. package/src/components/command-menu/COMPONENT.md +60 -20
  849. package/src/components/command-menu/examples/sizes.tsx +20 -15
  850. package/src/components/command-menu/examples/states.tsx +46 -24
  851. package/src/components/composer/COMPONENT.md +44 -25
  852. package/src/components/composer/examples/attach-menu.tsx +78 -0
  853. package/src/components/composer/examples/attachments.tsx +2 -2
  854. package/src/components/composer/examples/examples.module.css +0 -9
  855. package/src/components/composer/examples/narrow.tsx +1 -1
  856. package/src/components/composer/examples/reply-edit.tsx +3 -3
  857. package/src/components/composer/examples/sizes.tsx +3 -5
  858. package/src/components/composer/examples/states.tsx +4 -6
  859. package/src/components/confirm-dialog/COMPONENT.md +26 -13
  860. package/src/components/confirm-dialog/examples/dismiss.tsx +27 -0
  861. package/src/components/confirm-dialog/examples/failure.tsx +9 -16
  862. package/src/components/crossfade/COMPONENT.md +12 -5
  863. package/src/components/crossfade/examples/examples.module.css +1 -40
  864. package/src/components/crossfade/examples/fill.tsx +16 -19
  865. package/src/components/crossfade/examples/overview.tsx +14 -16
  866. package/src/components/crossfade/examples/record-switch.tsx +6 -11
  867. package/src/components/crossfade/examples/screen.module.css +17 -0
  868. package/src/components/crossfade/examples/screen.tsx +186 -0
  869. package/src/components/data-table/COMPONENT.md +34 -23
  870. package/src/components/data-table/examples/controlled.tsx +14 -2
  871. package/src/components/data-table/examples/detail-panel.tsx +36 -37
  872. package/src/components/data-table/examples/examples.module.css +1 -21
  873. package/src/components/data-table/examples/narrow.tsx +5 -1
  874. package/src/components/data-table/examples/numeric.tsx +36 -4
  875. package/src/components/data-table/examples/overview.tsx +1 -0
  876. package/src/components/data-table/examples/row-link.tsx +2 -1
  877. package/src/components/data-table/examples/row-open.tsx +7 -36
  878. package/src/components/data-table/examples/screen.module.css +13 -0
  879. package/src/components/data-table/examples/screen.tsx +355 -0
  880. package/src/components/data-table/examples/sizes.tsx +17 -17
  881. package/src/components/data-table/examples/states.tsx +37 -29
  882. package/src/components/datepicker/COMPONENT.md +57 -25
  883. package/src/components/datepicker/examples/dismiss.tsx +15 -0
  884. package/src/components/datepicker/examples/examples.module.css +4 -7
  885. package/src/components/datepicker/examples/in-form.tsx +29 -29
  886. package/src/components/datepicker/examples/locale.tsx +35 -0
  887. package/src/components/datepicker/examples/range-presets.tsx +11 -2
  888. package/src/components/datepicker/examples/sizes.tsx +2 -2
  889. package/src/components/datepicker/examples/states.tsx +11 -3
  890. package/src/components/datepicker/examples/validation.tsx +3 -3
  891. package/src/components/description-list/COMPONENT.md +24 -8
  892. package/src/components/description-list/examples/examples.module.css +4 -24
  893. package/src/components/description-list/examples/narrow.tsx +1 -1
  894. package/src/components/description-list/examples/screen.module.css +46 -0
  895. package/src/components/description-list/examples/screen.tsx +206 -0
  896. package/src/components/description-list/examples/sizes.tsx +2 -4
  897. package/src/components/description-list/examples/structure.tsx +7 -8
  898. package/src/components/description-list/examples/totals.tsx +40 -0
  899. package/src/components/digit-input/COMPONENT.md +15 -7
  900. package/src/components/digit-input/examples/examples.module.css +2 -2
  901. package/src/components/digit-input/examples/in-form.tsx +1 -1
  902. package/src/components/digit-input/examples/sizes.tsx +5 -3
  903. package/src/components/digit-input/examples/states.tsx +15 -5
  904. package/src/components/digit-input/examples/without-focus-ring.tsx +13 -0
  905. package/src/components/divider/COMPONENT.md +26 -12
  906. package/src/components/divider/examples/align.tsx +2 -4
  907. package/src/components/divider/examples/examples.module.css +13 -17
  908. package/src/components/divider/examples/or-separator.tsx +3 -5
  909. package/src/components/divider/examples/overview.tsx +18 -16
  910. package/src/components/divider/examples/vertical.tsx +5 -1
  911. package/src/components/divider/examples/with-icon.tsx +3 -3
  912. package/src/components/dnd/COMPONENT.md +56 -36
  913. package/src/components/dnd/examples/drop-zones.tsx +82 -49
  914. package/src/components/dnd/examples/examples.module.css +54 -6
  915. package/src/components/dnd/examples/states.tsx +60 -0
  916. package/src/components/dnd/examples/table.tsx +113 -0
  917. package/src/components/drawer/COMPONENT.md +38 -14
  918. package/src/components/drawer/examples/dismiss.tsx +5 -3
  919. package/src/components/drawer/examples/guard.tsx +1 -3
  920. package/src/components/drawer/examples/header-actions.tsx +6 -10
  921. package/src/components/drawer/examples/in-form.tsx +31 -31
  922. package/src/components/drawer/examples/overview.tsx +6 -18
  923. package/src/components/drawer/examples/placement.tsx +31 -26
  924. package/src/components/drawer/examples/screen.module.css +14 -0
  925. package/src/components/drawer/examples/screen.tsx +298 -0
  926. package/src/components/drawer/examples/sizes.tsx +32 -27
  927. package/src/components/dropdown/COMPONENT.md +58 -23
  928. package/src/components/dropdown/examples/context-menu.tsx +75 -0
  929. package/src/components/dropdown/examples/examples.module.css +2 -6
  930. package/src/components/dropdown/examples/sizes.tsx +39 -34
  931. package/src/components/dropdown/examples/states.tsx +37 -29
  932. package/src/components/empty-page/COMPONENT.md +21 -10
  933. package/src/components/empty-page/examples/compact.tsx +28 -18
  934. package/src/components/empty-page/examples/examples.module.css +0 -43
  935. package/src/components/empty-page/examples/narrow.tsx +3 -3
  936. package/src/components/empty-page/examples/region-error.tsx +14 -13
  937. package/src/components/empty-page/examples/sizes.tsx +13 -13
  938. package/src/components/empty-page/examples/variants.tsx +34 -30
  939. package/src/components/example-frame/COMPONENT.md +23 -10
  940. package/src/components/example-frame/examples/controlled.tsx +3 -3
  941. package/src/components/example-frame/examples/initial-view.tsx +44 -0
  942. package/src/components/field-list/COMPONENT.md +16 -9
  943. package/src/components/field-list/examples/errors.tsx +5 -2
  944. package/src/components/field-list/examples/screen.module.css +18 -0
  945. package/src/components/field-list/examples/screen.tsx +316 -0
  946. package/src/components/field-list/examples/sizes.tsx +32 -26
  947. package/src/components/field-list/examples/states.tsx +37 -31
  948. package/src/components/fieldset/COMPONENT.md +10 -5
  949. package/src/components/fieldset/examples/examples.module.css +1 -1
  950. package/src/components/file-upload/COMPONENT.md +73 -34
  951. package/src/components/file-upload/examples/avatar-upload.tsx +5 -5
  952. package/src/components/file-upload/examples/custom-body.tsx +13 -7
  953. package/src/components/file-upload/examples/examples.module.css +5 -11
  954. package/src/components/file-upload/examples/file-cards.tsx +10 -1
  955. package/src/components/file-upload/examples/gallery.tsx +2 -2
  956. package/src/components/file-upload/examples/in-form.tsx +4 -9
  957. package/src/components/file-upload/examples/narrow.tsx +1 -1
  958. package/src/components/file-upload/examples/overview.tsx +5 -1
  959. package/src/components/file-upload/examples/row-parts.tsx +27 -4
  960. package/src/components/file-upload/examples/screen.module.css +45 -0
  961. package/src/components/file-upload/examples/screen.tsx +648 -0
  962. package/src/components/file-upload/examples/sizes.tsx +1 -3
  963. package/src/components/file-upload/examples/states.tsx +6 -4
  964. package/src/components/file-upload/examples/validation.tsx +11 -2
  965. package/src/components/file-upload/examples/variants.tsx +15 -26
  966. package/src/components/gallery/COMPONENT.md +16 -7
  967. package/src/components/gallery/examples/album-sizes.tsx +52 -0
  968. package/src/components/gallery/examples/controlled.tsx +40 -0
  969. package/src/components/gallery/examples/examples.module.css +1 -1
  970. package/src/components/gallery/examples/overview.tsx +15 -43
  971. package/src/components/gallery/examples/transfer.tsx +22 -13
  972. package/src/components/gantt/COMPONENT.md +22 -15
  973. package/src/components/gantt/examples/examples.module.css +0 -16
  974. package/src/components/gantt/examples/occupancy.tsx +2 -2
  975. package/src/components/gantt/examples/screen.module.css +14 -0
  976. package/src/components/gantt/examples/screen.tsx +726 -0
  977. package/src/components/gantt/examples/sizes.tsx +16 -16
  978. package/src/components/gantt/examples/states.tsx +38 -30
  979. package/src/components/gantt/examples/variants.tsx +27 -25
  980. package/src/components/hint/COMPONENT.md +24 -14
  981. package/src/components/hint/examples/examples.module.css +1 -1
  982. package/src/components/hint/examples/hint-or-error.tsx +2 -2
  983. package/src/components/hint/examples/overview.tsx +9 -10
  984. package/src/components/hint/examples/sizes.tsx +1 -1
  985. package/src/components/input/COMPONENT.md +12 -8
  986. package/src/components/input/examples/affixes.tsx +2 -2
  987. package/src/components/input/examples/examples.module.css +1 -7
  988. package/src/components/input/examples/in-form.tsx +1 -9
  989. package/src/components/input/examples/password-strength.tsx +34 -8
  990. package/src/components/input/examples/sizes.tsx +9 -5
  991. package/src/components/input/examples/states.tsx +40 -19
  992. package/src/components/input/examples/with-icon.tsx +24 -16
  993. package/src/components/kanban/COMPONENT.md +31 -24
  994. package/src/components/kanban/examples/columns.tsx +22 -24
  995. package/src/components/kanban/examples/item-link.tsx +2 -2
  996. package/src/components/kanban/examples/limits.tsx +1 -1
  997. package/src/components/kanban/examples/narrow.tsx +1 -1
  998. package/src/components/kanban/examples/screen.module.css +15 -0
  999. package/src/components/kanban/examples/screen.tsx +574 -0
  1000. package/src/components/kanban/examples/states.tsx +46 -56
  1001. package/src/components/kanban/examples/variants.tsx +0 -3
  1002. package/src/components/kbd/COMPONENT.md +10 -6
  1003. package/src/components/kbd/examples/examples.module.css +1 -20
  1004. package/src/components/kbd/examples/in-controls.tsx +2 -2
  1005. package/src/components/kbd/examples/shortcut-list.tsx +14 -26
  1006. package/src/components/label/COMPONENT.md +26 -11
  1007. package/src/components/label/examples/examples.module.css +3 -11
  1008. package/src/components/label/examples/overview.tsx +5 -9
  1009. package/src/components/label/examples/structure.tsx +2 -2
  1010. package/src/components/link-button/COMPONENT.md +33 -20
  1011. package/src/components/link-button/examples/as-child.tsx +1 -1
  1012. package/src/components/link-button/examples/external-link.tsx +1 -1
  1013. package/src/components/link-button/examples/overview.tsx +4 -2
  1014. package/src/components/link-button/examples/variants.tsx +2 -2
  1015. package/src/components/list/COMPONENT.md +24 -16
  1016. package/src/components/list/examples/examples.module.css +0 -8
  1017. package/src/components/list/examples/overflow.tsx +1 -1
  1018. package/src/components/list/examples/overview.tsx +31 -30
  1019. package/src/components/list/examples/sizes.tsx +23 -23
  1020. package/src/components/list/examples/states.tsx +38 -21
  1021. package/src/components/list/examples/with-icon.tsx +16 -14
  1022. package/src/components/login-form/COMPONENT.md +74 -20
  1023. package/src/components/login-form/examples/examples.module.css +2 -21
  1024. package/src/components/login-form/examples/forgot-password.tsx +28 -32
  1025. package/src/components/login-form/examples/narrow.tsx +2 -2
  1026. package/src/components/login-form/examples/overview.tsx +45 -47
  1027. package/src/components/login-form/examples/register.tsx +65 -69
  1028. package/src/components/login-form/examples/reset-password.tsx +50 -47
  1029. package/src/components/login-form/examples/sizes.tsx +4 -6
  1030. package/src/components/login-form/examples/states.tsx +53 -57
  1031. package/src/components/login-form/examples/structure.tsx +18 -22
  1032. package/src/components/login-form/examples/verification-code.tsx +41 -45
  1033. package/src/components/media-viewer/COMPONENT.md +13 -9
  1034. package/src/components/media-viewer/examples/dismiss.tsx +5 -1
  1035. package/src/components/media-viewer/examples/examples.module.css +2 -2
  1036. package/src/components/media-viewer/examples/video.tsx +1 -1
  1037. package/src/components/message/COMPONENT.md +106 -49
  1038. package/src/components/message/examples/file.tsx +5 -1
  1039. package/src/components/message/examples/media-open.tsx +48 -0
  1040. package/src/components/message/examples/status.tsx +21 -3
  1041. package/src/components/message/examples/text-formatting.tsx +7 -1
  1042. package/src/components/message/examples/typing.tsx +5 -5
  1043. package/src/components/modal/COMPONENT.md +71 -36
  1044. package/src/components/modal/examples/custom-container.tsx +20 -20
  1045. package/src/components/modal/examples/dismiss.tsx +38 -28
  1046. package/src/components/modal/examples/enter-key.tsx +113 -0
  1047. package/src/components/modal/examples/examples.module.css +4 -17
  1048. package/src/components/modal/examples/guard.tsx +2 -4
  1049. package/src/components/modal/examples/in-form.tsx +28 -28
  1050. package/src/components/modal/examples/long-content.tsx +6 -4
  1051. package/src/components/modal/examples/sizes.tsx +36 -31
  1052. package/src/components/modal/examples/structure.tsx +5 -2
  1053. package/src/components/native-select/COMPONENT.md +8 -4
  1054. package/src/components/native-select/examples/examples.module.css +3 -3
  1055. package/src/components/native-select/examples/in-form.tsx +28 -29
  1056. package/src/components/native-select/examples/sizes.tsx +2 -2
  1057. package/src/components/native-select/examples/states.tsx +7 -3
  1058. package/src/components/notification/COMPONENT.md +37 -32
  1059. package/src/components/notification/examples/dismiss.tsx +2 -2
  1060. package/src/components/notification/examples/examples.module.css +1 -2
  1061. package/src/components/notification/examples/in-form.tsx +28 -20
  1062. package/src/components/notification/examples/sizes.tsx +16 -12
  1063. package/src/components/notification/examples/undo.tsx +7 -15
  1064. package/src/components/page-content/COMPONENT.md +22 -29
  1065. package/src/components/page-content/examples/examples.module.css +3 -16
  1066. package/src/components/page-content/examples/grid.tsx +3 -1
  1067. package/src/components/page-content/examples/list-detail.tsx +55 -52
  1068. package/src/components/page-content/examples/narrow.tsx +1 -1
  1069. package/src/components/page-content/examples/overview.tsx +2 -2
  1070. package/src/components/page-content/examples/screen.module.css +27 -0
  1071. package/src/components/page-content/examples/screen.tsx +196 -0
  1072. package/src/components/page-content/examples/variants.tsx +10 -17
  1073. package/src/components/page-toolbar/COMPONENT.md +27 -21
  1074. package/src/components/page-toolbar/examples/narrow.tsx +6 -3
  1075. package/src/components/page-toolbar/examples/overview.tsx +1 -1
  1076. package/src/components/page-toolbar/examples/save-changes.tsx +25 -22
  1077. package/src/components/pagination/COMPONENT.md +20 -17
  1078. package/src/components/pagination/examples/controlled.tsx +29 -29
  1079. package/src/components/pagination/examples/examples.module.css +0 -2
  1080. package/src/components/pagination/examples/narrow.tsx +5 -5
  1081. package/src/components/popover/COMPONENT.md +43 -20
  1082. package/src/components/popover/examples/controlled-open.tsx +6 -4
  1083. package/src/components/popover/examples/dismiss.tsx +37 -28
  1084. package/src/components/popover/examples/examples.module.css +2 -2
  1085. package/src/components/popover/examples/sizes.tsx +32 -27
  1086. package/src/components/popover/examples/width.tsx +45 -0
  1087. package/src/components/progress-bar/COMPONENT.md +22 -30
  1088. package/src/components/progress-bar/examples/examples.module.css +1 -1
  1089. package/src/components/progress-bar/examples/segments.tsx +2 -2
  1090. package/src/components/progress-circle/COMPONENT.md +22 -30
  1091. package/src/components/progress-circle/examples/examples.module.css +1 -1
  1092. package/src/components/progress-circle/examples/on-color.tsx +16 -0
  1093. package/src/components/progress-circle/examples/segments.tsx +8 -3
  1094. package/src/components/progress-circle/examples/variants.tsx +1 -0
  1095. package/src/components/radio/COMPONENT.md +14 -4
  1096. package/src/components/radio/examples/examples.module.css +14 -0
  1097. package/src/components/radio/examples/in-form.tsx +45 -0
  1098. package/src/components/scroll-container/COMPONENT.md +19 -12
  1099. package/src/components/scroll-container/examples/auto-scroll.tsx +11 -7
  1100. package/src/components/scroll-container/examples/edges.tsx +10 -7
  1101. package/src/components/scroll-container/examples/examples.module.css +10 -67
  1102. package/src/components/scroll-container/examples/load-more.tsx +51 -0
  1103. package/src/components/scroll-container/examples/lock.tsx +7 -9
  1104. package/src/components/scroll-container/examples/log.tsx +97 -0
  1105. package/src/components/scroll-container/examples/overscroll.tsx +7 -7
  1106. package/src/components/scroll-container/examples/overview.tsx +8 -8
  1107. package/src/components/scroll-container/examples/scrollbar.tsx +17 -11
  1108. package/src/components/scroll-container/examples/snap.tsx +2 -2
  1109. package/src/components/scroll-container/examples/variants.tsx +14 -7
  1110. package/src/components/segmented-control/COMPONENT.md +26 -14
  1111. package/src/components/segmented-control/examples/controlled.tsx +2 -4
  1112. package/src/components/segmented-control/examples/examples.module.css +0 -8
  1113. package/src/components/segmented-control/examples/in-form.tsx +5 -1
  1114. package/src/components/segmented-control/examples/scroll.tsx +1 -1
  1115. package/src/components/segmented-control/examples/states.tsx +10 -1
  1116. package/src/components/select/COMPONENT.md +34 -10
  1117. package/src/components/select/examples/dismiss.tsx +26 -0
  1118. package/src/components/select/examples/examples.module.css +3 -8
  1119. package/src/components/select/examples/server-search.tsx +6 -2
  1120. package/src/components/select/examples/sizes.tsx +2 -2
  1121. package/src/components/select/examples/states.tsx +15 -3
  1122. package/src/components/select/examples/with-icon.tsx +20 -18
  1123. package/src/components/sheet/COMPONENT.md +46 -21
  1124. package/src/components/sheet/examples/guard.tsx +72 -0
  1125. package/src/components/sheet/examples/header-actions.tsx +75 -0
  1126. package/src/components/sheet/examples/overview.tsx +25 -10
  1127. package/src/components/skeleton/COMPONENT.md +8 -4
  1128. package/src/components/skeleton/examples/examples.module.css +1 -13
  1129. package/src/components/skeleton/examples/with-crossfade.tsx +7 -7
  1130. package/src/components/slider/COMPONENT.md +12 -6
  1131. package/src/components/slider/examples/examples.module.css +14 -7
  1132. package/src/components/slider/examples/hint-and-error.tsx +3 -5
  1133. package/src/components/slider/examples/in-form.tsx +49 -0
  1134. package/src/components/slider/examples/states.tsx +4 -1
  1135. package/src/components/smart-filter/COMPONENT.md +33 -13
  1136. package/src/components/smart-filter/examples/controlled.tsx +3 -3
  1137. package/src/components/smart-filter/examples/examples.module.css +0 -21
  1138. package/src/components/smart-filter/examples/ranges.tsx +45 -10
  1139. package/src/components/smart-filter/examples/sizes.tsx +2 -4
  1140. package/src/components/sparkline/COMPONENT.md +8 -4
  1141. package/src/components/sparkline/examples/examples.module.css +1 -1
  1142. package/src/components/sparkline/examples/reference.tsx +2 -1
  1143. package/src/components/sparkline/examples/signed-bars.tsx +2 -2
  1144. package/src/components/spinner/COMPONENT.md +15 -9
  1145. package/src/components/spinner/examples/examples.module.css +2 -14
  1146. package/src/components/spinner/examples/overview.tsx +1 -1
  1147. package/src/components/stepper/COMPONENT.md +50 -41
  1148. package/src/components/stepper/examples/examples.module.css +1 -6
  1149. package/src/components/stepper/examples/narrow.tsx +1 -1
  1150. package/src/components/stepper/examples/sizes.tsx +6 -8
  1151. package/src/components/stepper/examples/states.tsx +44 -43
  1152. package/src/components/stepper/examples/with-icon.tsx +19 -17
  1153. package/src/components/switch/COMPONENT.md +21 -8
  1154. package/src/components/switch/examples/examples.module.css +2 -2
  1155. package/src/components/switch/examples/states.tsx +3 -3
  1156. package/src/components/tabs/COMPONENT.md +22 -17
  1157. package/src/components/tabs/examples/in-drawer.tsx +1 -1
  1158. package/src/components/tabs/examples/sizes.tsx +6 -11
  1159. package/src/components/tabs/examples/variants.tsx +19 -23
  1160. package/src/components/tag-select/COMPONENT.md +20 -7
  1161. package/src/components/tag-select/examples/creatable.tsx +2 -2
  1162. package/src/components/tag-select/examples/dismiss.tsx +23 -0
  1163. package/src/components/tag-select/examples/examples.module.css +3 -3
  1164. package/src/components/tag-select/examples/in-form.tsx +31 -32
  1165. package/src/components/tag-select/examples/sizes.tsx +2 -2
  1166. package/src/components/tag-select/examples/states.tsx +10 -3
  1167. package/src/components/textarea/COMPONENT.md +11 -7
  1168. package/src/components/textarea/examples/examples.module.css +3 -16
  1169. package/src/components/textarea/examples/in-form.tsx +3 -11
  1170. package/src/components/textarea/examples/sizes.tsx +10 -7
  1171. package/src/components/textarea/examples/states.tsx +30 -13
  1172. package/src/components/textarea/examples/validation.tsx +45 -36
  1173. package/src/components/thumbnail/COMPONENT.md +19 -14
  1174. package/src/components/thumbnail/examples/examples.module.css +2 -2
  1175. package/src/components/thumbnail/examples/fit.tsx +24 -0
  1176. package/src/components/thumbnail/examples/states.tsx +1 -1
  1177. package/src/components/thumbnail/examples/variants.tsx +12 -1
  1178. package/src/components/thumbnail/examples/video.tsx +20 -1
  1179. package/src/components/timeline/COMPONENT.md +52 -36
  1180. package/src/components/timeline/examples/links.tsx +57 -16
  1181. package/src/components/timeline/examples/narrow.tsx +6 -6
  1182. package/src/components/timeline/examples/overview.tsx +6 -6
  1183. package/src/components/timeline/examples/sizes.tsx +28 -23
  1184. package/src/components/timeline/examples/structure.tsx +30 -30
  1185. package/src/components/timeline/examples/variants.tsx +40 -28
  1186. package/src/components/tooltip/COMPONENT.md +11 -7
  1187. package/src/components/tooltip/examples/examples.module.css +1 -5
  1188. package/src/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  1189. package/src/components/tooltip/examples/sizes.tsx +17 -10
  1190. package/src/components/tooltip/examples/toolbar.tsx +2 -2
  1191. package/src/components/typography/COMPONENT.md +17 -2
  1192. package/src/components/typography/examples/examples.module.css +3 -6
  1193. package/src/components/typography/examples/numeric.tsx +16 -0
  1194. package/src/components/typography/examples/weights.tsx +3 -0
  1195. package/src/components/video-note/COMPONENT.md +13 -9
  1196. package/src/components/video-note/examples/controlled.tsx +19 -2
  1197. package/src/components/video-note/examples/in-message.tsx +5 -2
  1198. package/src/components/visually-hidden/COMPONENT.md +10 -5
  1199. package/src/components/visually-hidden/examples/assertive.tsx +39 -0
  1200. package/src/components/visually-hidden/examples/overview.tsx +17 -7
  1201. package/src/components/voice-player/COMPONENT.md +17 -9
  1202. package/src/components/voice-player/examples/call-recording.tsx +19 -9
  1203. package/src/components/voice-player/examples/controlled.tsx +20 -3
  1204. package/src/layout/app-header/COMPONENT.md +65 -81
  1205. package/src/layout/app-header/examples/breadcrumbs.tsx +10 -9
  1206. package/src/layout/app-header/examples/examples.module.css +4 -23
  1207. package/src/layout/app-header/examples/in-app-shell.tsx +3 -6
  1208. package/src/layout/app-header/examples/narrow.tsx +58 -21
  1209. package/src/layout/app-header/examples/overview.tsx +8 -10
  1210. package/src/layout/app-header/examples/page-title.tsx +3 -10
  1211. package/src/layout/app-shell/COMPONENT.md +41 -10
  1212. package/src/layout/app-shell/examples/examples.module.css +2 -22
  1213. package/src/layout/app-shell/examples/footer.tsx +2 -2
  1214. package/src/layout/app-shell/examples/overview.tsx +18 -35
  1215. package/src/layout/app-shell/examples/screen.module.css +11 -0
  1216. package/src/layout/app-shell/examples/screen.tsx +268 -0
  1217. package/src/layout/app-shell/examples/template.tsx +32 -12
  1218. package/src/layout/bottom-nav/COMPONENT.md +27 -17
  1219. package/src/layout/bottom-nav/examples/examples.module.css +2 -7
  1220. package/src/layout/bottom-nav/examples/floating-action.tsx +2 -2
  1221. package/src/layout/bottom-nav/examples/floating.tsx +2 -2
  1222. package/src/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
  1223. package/src/layout/bottom-nav/examples/router.tsx +6 -5
  1224. package/src/layout/sidebar/COMPONENT.md +55 -42
  1225. package/src/layout/sidebar/examples/account.tsx +3 -5
  1226. package/src/layout/sidebar/examples/brand-header.tsx +1 -3
  1227. package/src/layout/sidebar/examples/collapsible-groups.tsx +13 -7
  1228. package/src/layout/sidebar/examples/controlled-open.tsx +1 -3
  1229. package/src/layout/sidebar/examples/controlled.tsx +1 -3
  1230. package/src/layout/sidebar/examples/custom-part.tsx +51 -0
  1231. package/src/layout/sidebar/examples/dismiss.tsx +47 -0
  1232. package/src/layout/sidebar/examples/examples.module.css +10 -30
  1233. package/src/layout/sidebar/examples/narrow.tsx +55 -0
  1234. package/src/layout/sidebar/examples/nested-items.tsx +1 -3
  1235. package/src/layout/sidebar/examples/overview.tsx +1 -3
  1236. package/src/layout/sidebar/examples/persist.tsx +55 -0
  1237. package/src/layout/sidebar/examples/router.tsx +20 -9
  1238. package/src/layout/sidebar/examples/sizes.tsx +6 -6
  1239. package/src/layout/sidebar/examples/structure.tsx +7 -2
  1240. package/src/styles/controls.css +2 -2
  1241. package/src/styles/fonts.css +22 -0
  1242. package/src/styles/globals.css +89 -12
  1243. package/src/styles/theme-dark.css +13 -14
  1244. package/src/styles/theme-light.css +67 -23
  1245. package/src/styles/tokens.css +14 -4
  1246. package/dist/components/dnd/useFlipList.d.ts +0 -17
  1247. package/dist/components/gantt/useEdgeAutoScroll.d.ts +0 -12
  1248. package/dist/components/modal/ModalDialog.d.ts +0 -46
  1249. package/dist/hooks/useStateSwap.d.ts +0 -8
  1250. package/dist/internal/highlightTsxHtml.d.ts +0 -2
  1251. package/dist/internal/layoutPxFromPrimitives.d.ts +0 -6
  1252. package/dist/internal/mergeRefs.d.ts +0 -6
  1253. package/dist/skill/patterns/app-shell.tsx +0 -303
  1254. package/dist/skill/patterns/chat.module.css +0 -8
  1255. package/dist/skill/patterns/chat.tsx +0 -899
  1256. package/dist/skill/patterns/dashboard.tsx +0 -340
  1257. package/dist/skill/patterns/detail-page.tsx +0 -206
  1258. package/dist/skill/patterns/form-drawer.tsx +0 -240
  1259. package/dist/skill/patterns/kanban-board.module.css +0 -28
  1260. package/dist/skill/patterns/list-page.module.css +0 -19
  1261. package/dist/skill/patterns/media-library.tsx +0 -637
  1262. package/dist/skill/patterns/schedule.module.css +0 -22
  1263. package/dist/skill/patterns/screen-states.tsx +0 -187
  1264. package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -21
  1265. package/dist/skill/reference/components/popover/examples/match-trigger-width.tsx +0 -23
  1266. package/dist/skill/reference/components/scroll-container/examples/chat.tsx +0 -101
  1267. package/dist/skill/reference/components/spinner/examples/loading-region.tsx +0 -22
  1268. package/src/components/drawer/examples/examples.module.css +0 -21
  1269. package/src/components/popover/examples/match-trigger-width.tsx +0 -23
  1270. package/src/components/scroll-container/examples/chat.tsx +0 -101
  1271. package/src/components/spinner/examples/loading-region.tsx +0 -22
  1272. /package/dist/skill/{patterns/dashboard.module.css → reference/components/card/examples/screen.module.css} +0 -0
  1273. /package/dist/skill/{patterns/form-drawer.module.css → reference/components/drawer/examples/screen.module.css} +0 -0
  1274. /package/dist/skill/{patterns/record-editor.module.css → reference/components/field-list/examples/screen.module.css} +0 -0
  1275. /package/dist/skill/{patterns/settings-page.module.css → reference/components/page-content/examples/screen.module.css} +0 -0
  1276. /package/dist/skill/{patterns/app-shell.module.css → reference/layout/app-shell/examples/screen.module.css} +0 -0
@@ -0,0 +1,51 @@
1
+ /** An order log that loads the next page as the reader nears its end, with loading lines in the rows' place — `onReachEnd`. */
2
+ import { Card, ScrollContainer, Skeleton, Typography } from "prime-ui-kit";
3
+ import * as React from "react";
4
+
5
+ import styles from "./examples.module.css";
6
+
7
+ const ORDERS = Array.from({ length: 40 }, (_, index) => ({
8
+ id: 2400 - index,
9
+ amount: `${(18 + ((index * 7) % 23)) * 1000} ₽`,
10
+ }));
11
+
12
+ const PAGE = 10;
13
+
14
+ export default function ScrollContainerLoadMoreExample() {
15
+ const [shown, setShown] = React.useState(PAGE);
16
+ const [loading, setLoading] = React.useState(false);
17
+ const done = shown >= ORDERS.length;
18
+
19
+ const loadMore = () => {
20
+ if (done) return;
21
+ setLoading(true);
22
+ // The promise keeps the region `aria-busy` and stops repeat calls until it settles.
23
+ return new Promise<void>((resolve) => {
24
+ window.setTimeout(() => {
25
+ setShown((count) => Math.min(count + PAGE, ORDERS.length));
26
+ setLoading(false);
27
+ resolve();
28
+ }, 800);
29
+ });
30
+ };
31
+
32
+ return (
33
+ <Card.Root role="region" className={styles.card} aria-label="Журнал заказов">
34
+ <Card.Header>
35
+ <Card.Title>Журнал заказов</Card.Title>
36
+ </Card.Header>
37
+ <ScrollContainer onReachEnd={loadMore} tabIndex={0} aria-label="Заказы">
38
+ <Card.List>
39
+ {ORDERS.slice(0, shown).map((order) => (
40
+ <Card.ListItem key={order.id}>
41
+ <Typography as="span" variant="body-m" tone="secondary">
42
+ Заказ № {order.id} · {order.amount}
43
+ </Typography>
44
+ </Card.ListItem>
45
+ ))}
46
+ </Card.List>
47
+ {loading ? <Skeleton lines={3} className={styles.older} /> : null}
48
+ </ScrollContainer>
49
+ </Card.Root>
50
+ );
51
+ }
@@ -20,10 +20,8 @@ export default function ScrollContainerLockExample() {
20
20
 
21
21
  return (
22
22
  <Card.Root role="region" className={styles.card} aria-label="Очередь заказов">
23
- <div className={styles.cardHeader}>
24
- <Typography as="h3" variant="title-s">
25
- Очередь заказов
26
- </Typography>
23
+ <Card.Header>
24
+ <Card.Title>Очередь заказов</Card.Title>
27
25
  <Button.Root
28
26
  variant="soft"
29
27
  tone="neutral"
@@ -32,17 +30,17 @@ export default function ScrollContainerLockExample() {
32
30
  >
33
31
  {reviewing ? "Закрыть проверку" : "Проверить заказ"}
34
32
  </Button.Root>
35
- </div>
33
+ </Card.Header>
36
34
  <ScrollContainer lock={reviewing}>
37
- <ul className={styles.list}>
35
+ <Card.List>
38
36
  {ORDERS.map((order) => (
39
- <li key={order}>
37
+ <Card.ListItem key={order}>
40
38
  <Typography as="span" variant="body-m">
41
39
  {order}
42
40
  </Typography>
43
- </li>
41
+ </Card.ListItem>
44
42
  ))}
45
- </ul>
43
+ </Card.List>
46
44
  </ScrollContainer>
47
45
  </Card.Root>
48
46
  );
@@ -0,0 +1,97 @@
1
+ /** A live exchange log pinned to its last entry: a new entry keeps it at the end, scrolling up loads older ones without moving what is on screen — `anchor`, `onReachStart`. */
2
+ import { Button, Card, ScrollContainer, Skeleton, Typography } from "prime-ui-kit";
3
+ import * as React from "react";
4
+
5
+ import styles from "./examples.module.css";
6
+
7
+ type Entry = { id: number; time: string; text: string };
8
+
9
+ const HISTORY: Entry[] = [
10
+ "Выгрузка заказов в 1С начата",
11
+ "Заказ № 1042 выгружен",
12
+ "Заказ № 1043 выгружен",
13
+ "Заказ № 1044: нет склада отгрузки, пропущен",
14
+ "Остатки склада «Москва» обновлены",
15
+ "Цены прайса «Опт» обновлены",
16
+ "Счёт № 4830 выгружен",
17
+ "Счёт № 4831 выгружен",
18
+ "Платёж по счёту № 4821 получен",
19
+ "Контрагент ООО «Гранит» сопоставлен",
20
+ "Акт № 312 выгружен",
21
+ "Выгрузка завершена: 9 из 10",
22
+ ].map((text, index) => ({
23
+ id: index + 1,
24
+ time: `09:${String(index * 4).padStart(2, "0")}`,
25
+ text,
26
+ }));
27
+
28
+ const ARRIVING = [
29
+ "Новый заказ № 1045 принят",
30
+ "Остатки склада «Казань» обновлены",
31
+ "Счёт № 4832 выгружен",
32
+ ];
33
+
34
+ const PAGE = 4;
35
+
36
+ export default function ScrollContainerLogExample() {
37
+ // The newest entries first; older pages arrive when the reader scrolls up.
38
+ const [shown, setShown] = React.useState(PAGE);
39
+ const [loading, setLoading] = React.useState(false);
40
+ const [arrived, setArrived] = React.useState<Entry[]>([]);
41
+ const entries = [...HISTORY.slice(-shown), ...arrived];
42
+
43
+ const loadOlder = () => {
44
+ if (shown >= HISTORY.length) return;
45
+ setLoading(true);
46
+ // The promise keeps the region `aria-busy` and stops repeat calls until it settles.
47
+ return new Promise<void>((resolve) => {
48
+ window.setTimeout(() => {
49
+ setShown((count) => Math.min(count + PAGE, HISTORY.length));
50
+ setLoading(false);
51
+ resolve();
52
+ }, 800);
53
+ });
54
+ };
55
+
56
+ const receive = () => {
57
+ setArrived((list) => [
58
+ ...list,
59
+ {
60
+ id: HISTORY.length + list.length + 1,
61
+ time: `10:${String(list.length * 3).padStart(2, "0")}`,
62
+ text: ARRIVING[list.length % ARRIVING.length],
63
+ },
64
+ ]);
65
+ };
66
+
67
+ return (
68
+ <Card.Root className={styles.log}>
69
+ <Card.Header>
70
+ <Card.Title>Обмен с 1С</Card.Title>
71
+ <Button.Root variant="soft" tone="neutral" onClick={receive}>
72
+ Новое событие
73
+ </Button.Root>
74
+ </Card.Header>
75
+ <ScrollContainer
76
+ anchor="end"
77
+ onReachStart={loadOlder}
78
+ tabIndex={0}
79
+ role="log"
80
+ aria-label="Журнал обмена"
81
+ className={styles.entries}
82
+ >
83
+ {loading ? <Skeleton lines={2} className={styles.older} /> : null}
84
+ <Card.List>
85
+ {entries.map((entry) => (
86
+ <Card.ListItem key={entry.id}>
87
+ <Typography as="span" variant="caption" tone="muted">
88
+ {entry.time}
89
+ </Typography>
90
+ <Typography variant="body-m">{entry.text}</Typography>
91
+ </Card.ListItem>
92
+ ))}
93
+ </Card.List>
94
+ </ScrollContainer>
95
+ </Card.Root>
96
+ );
97
+ }
@@ -8,19 +8,19 @@ const HOURS = Array.from({ length: 12 }, (_, index) => `${String(9 + index).padS
8
8
  export default function ScrollContainerOverscrollExample() {
9
9
  return (
10
10
  <Card.Root role="region" className={styles.card} aria-label="Журнал">
11
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
12
- Журнал выгрузок
13
- </Typography>
11
+ <Card.Header>
12
+ <Card.Title>Журнал выгрузок</Card.Title>
13
+ </Card.Header>
14
14
  <ScrollContainer overscrollBehavior="auto" tabIndex={0} aria-label="Журнал выгрузок">
15
- <ul className={styles.list}>
15
+ <Card.List>
16
16
  {HOURS.map((hour) => (
17
- <li key={hour}>
17
+ <Card.ListItem key={hour}>
18
18
  <Typography as="span" variant="body-m" tone="secondary">
19
19
  {hour} — отчёт выгружен
20
20
  </Typography>
21
- </li>
21
+ </Card.ListItem>
22
22
  ))}
23
- </ul>
23
+ </Card.List>
24
24
  </ScrollContainer>
25
25
  </Card.Root>
26
26
  );
@@ -1,4 +1,4 @@
1
- /** A feed that scrolls on its own inside a fixed-height card, with the kit's thin scrollbar. */
1
+ /** A feed that scrolls on its own inside a fixed-height card, with the kit's thin scrollbar — `ScrollContainer`. */
2
2
  import { Card, ScrollContainer, Typography } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
@@ -8,19 +8,19 @@ const EVENTS = Array.from({ length: 16 }, (_, index) => `Заказ № ${1040 +
8
8
  export default function ScrollContainerOverviewExample() {
9
9
  return (
10
10
  <Card.Root role="region" className={styles.card} aria-label="Лента событий">
11
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
12
- Лента событий
13
- </Typography>
11
+ <Card.Header>
12
+ <Card.Title>Лента событий</Card.Title>
13
+ </Card.Header>
14
14
  <ScrollContainer>
15
- <ul className={styles.list}>
15
+ <Card.List>
16
16
  {EVENTS.map((event) => (
17
- <li key={event}>
17
+ <Card.ListItem key={event}>
18
18
  <Typography as="span" variant="body-m" tone="secondary">
19
19
  {event}
20
20
  </Typography>
21
- </li>
21
+ </Card.ListItem>
22
22
  ))}
23
- </ul>
23
+ </Card.List>
24
24
  </ScrollContainer>
25
25
  </Card.Root>
26
26
  );
@@ -20,25 +20,31 @@ export default function ScrollContainerScrollbarExample() {
20
20
  return (
21
21
  <div className={styles.layout}>
22
22
  <Card.Root role="region" className={styles.card} aria-label="Клиенты">
23
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
24
- thin
25
- </Typography>
23
+ <Card.Header>
24
+ <Card.Title>Клиенты</Card.Title>
25
+ <Typography as="span" variant="caption" tone="muted">
26
+ thin
27
+ </Typography>
28
+ </Card.Header>
26
29
  <ScrollContainer>
27
- <ul className={styles.list}>
30
+ <Card.List>
28
31
  {CLIENTS.map((client) => (
29
- <li key={client}>
32
+ <Card.ListItem key={client}>
30
33
  <Typography as="span" variant="body-m">
31
34
  {client}
32
35
  </Typography>
33
- </li>
36
+ </Card.ListItem>
34
37
  ))}
35
- </ul>
38
+ </Card.List>
36
39
  </ScrollContainer>
37
40
  </Card.Root>
38
- <Card.Root role="region" className={styles.card} aria-label="Фильтры заказов">
39
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
40
- hidden
41
- </Typography>
41
+ <Card.Root role="region" className={styles.card} aria-label="Статусы заказов">
42
+ <Card.Header>
43
+ <Card.Title>Статусы заказов</Card.Title>
44
+ <Typography as="span" variant="caption" tone="muted">
45
+ hidden
46
+ </Typography>
47
+ </Card.Header>
42
48
  <ScrollContainer axis="horizontal" scrollbar="hidden">
43
49
  <div className={styles.strip}>
44
50
  {TAGS.map((tag) => (
@@ -1,4 +1,4 @@
1
- /** A strip of warehouse cards that comes to rest on a card's start, scrolled by touch, a trackpad or the mouse wheel — `snap`, `axis`. */
1
+ /** A strip of warehouse cards that always comes to rest on a card's start, scrolled by touch, a trackpad or the mouse wheel — `snap`, `axis`. */
2
2
  import { Card, ScrollContainer, Typography } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
@@ -14,7 +14,7 @@ const WAREHOUSES = [
14
14
 
15
15
  export default function ScrollContainerSnapExample() {
16
16
  return (
17
- <ScrollContainer axis="horizontal" snap scrollbar="hidden" aria-label="Склады">
17
+ <ScrollContainer axis="horizontal" snap="mandatory" scrollbar="hidden" aria-label="Склады">
18
18
  <ul className={styles.tiles}>
19
19
  {WAREHOUSES.map((warehouse) => (
20
20
  <li key={warehouse.id} className={styles.tile}>
@@ -10,10 +10,13 @@ const ROOMS = Array.from({ length: 16 }, (_, index) => `Зал ${index + 1}`);
10
10
  export default function ScrollContainerVariantsExample() {
11
11
  return (
12
12
  <div className={styles.layout}>
13
- <Card.Root role="region" className={styles.card} aria-label="Фильтры">
14
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
15
- horizontal
16
- </Typography>
13
+ <Card.Root role="region" className={styles.card} aria-label="Статусы заказов">
14
+ <Card.Header>
15
+ <Card.Title>Статусы заказов</Card.Title>
16
+ <Typography as="span" variant="caption" tone="muted">
17
+ horizontal
18
+ </Typography>
19
+ </Card.Header>
17
20
  <ScrollContainer axis="horizontal">
18
21
  <div className={styles.strip}>
19
22
  {TAGS.map((tag) => (
@@ -23,9 +26,12 @@ export default function ScrollContainerVariantsExample() {
23
26
  </ScrollContainer>
24
27
  </Card.Root>
25
28
  <Card.Root role="region" className={styles.card} aria-label="Расписание залов">
26
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
27
- both
28
- </Typography>
29
+ <Card.Header>
30
+ <Card.Title>Расписание залов</Card.Title>
31
+ <Typography as="span" variant="caption" tone="muted">
32
+ both
33
+ </Typography>
34
+ </Card.Header>
29
35
  <ScrollContainer
30
36
  axis="both"
31
37
  tabIndex={0}
@@ -40,6 +46,7 @@ export default function ScrollContainerVariantsExample() {
40
46
  as="div"
41
47
  variant="caption"
42
48
  tone="secondary"
49
+ numeric="tabular"
43
50
  className={styles.cell}
44
51
  >
45
52
  {room} · {hour}
@@ -25,10 +25,10 @@ import { SegmentedControl } from "prime-ui-kit";
25
25
  ## Anatomy
26
26
  ```
27
27
  SegmentedControl.Root field frame: label row · track · support row (hint | error)
28
- └─ (track) role="radiogroup"; sliding thumb, scrolling row, keyboard
28
+ └─ (track) role="radiogroup"; sliding thumb, switcher row, keyboard
29
29
  └─ SegmentedControl.Item role="radio" button, one option
30
30
  ├─ SegmentedControl.Icon icon slot (optional; icon-only → square segment)
31
- ├─ SegmentedControl.Label title, one line (optional; plain text is wrapped automatically)
31
+ ├─ SegmentedControl.Label title, one line (optional; plain text becomes the label)
32
32
  ├─ SegmentedControl.Count counter Badge after the label (optional)
33
33
  └─ SegmentedControl.Description second line; makes the segment two-line (optional)
34
34
  ```
@@ -39,7 +39,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
39
39
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
40
40
 
41
41
  ### SegmentedControl.Root
42
- `ref` → `HTMLDivElement` (the field frame). The field: label · `<div role="radiogroup">` track with the sliding thumb, keyboard handling and a horizontally scrolling `ScrollContainer` row · support row. The frame hugs the track unless `fullWidth`.
42
+ `ref` → `HTMLDivElement` (the field frame). The field: label · `<div role="radiogroup">` track with the sliding thumb and the switcher row (titles go before it scrolls, when every segment has an icon) · support row. The frame hugs the track unless `fullWidth`.
43
43
 
44
44
  | Prop | Type | Default | Description |
45
45
  |---|---|---|---|
@@ -47,7 +47,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
47
47
  | `defaultValue` | `string` | `""` | Initial value (uncontrolled); `""` — nothing selected. |
48
48
  | `onValueChange` | `(value: string) => void` | — | Called with the new value on click or arrow keys. |
49
49
  | `disabled` | `boolean` | `false` | Disables the whole group. |
50
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `host tier, else "m"` | Control tier; the outer height equals the control height 28 · 32 · 36 · 40 · 48. Without it the tier of its host (a toolbar, a panel with a size), else `m`. |
50
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | host tier, else `"m"` | Control tier; the outer height equals the control height 28 · 32 · 36 · 40 · 48. Without it the tier of its host (a toolbar, a panel with a size), else `m`. |
51
51
  | `fullWidth` | `boolean` | `false` | Fills the container; single-line segments tend to equal widths but never get narrower than their label — when they do not fit, the row scrolls. |
52
52
  | `label` | `ReactNode` | — | Heading above the control; names the `radiogroup` (`aria-labelledby`). Without it give the root an `aria-label`. |
53
53
  | `required` | `boolean` | `false` | Red `*` after the label and `aria-required` on the `radiogroup`. |
@@ -70,6 +70,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
70
70
  | `disabled` | `boolean` | `false` | Disables this option; arrow keys skip it. |
71
71
  | `color` | `"gray" \| "blue" \| "green" \| "orange" \| "red" \| "yellow" \| "purple" \| "sky" \| "pink" \| "teal"` | — | Palette hue: a dot before the content; while selected the thumb takes a soft fill of the hue with a ring of it. |
72
72
  | `children` | `ReactNode` | — (required) | Text, `Icon`, `Label`, `Count`, `Description`. Only an icon → square segment; give it `aria-label`. |
73
+ | `className` | `string` | — | Class on the segment button. |
73
74
  | `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "value" \| "type" \| "role">` | — | `aria-label`, `onClick` (runs first and can `preventDefault()` the selection), `className` and the other button attributes. |
74
75
 
75
76
  ### SegmentedControl.Icon
@@ -78,6 +79,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
78
79
  | Prop | Type | Default | Description |
79
80
  |---|---|---|---|
80
81
  | `children` | `ReactNode` | — (required) | The icon, e.g. `<Icon name="theme.light" />`. |
82
+ | `className` | `string` | — | Class on the icon box. |
81
83
  | `…rest` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | — | `className` and the other span attributes. |
82
84
 
83
85
  ### SegmentedControl.Label
@@ -86,6 +88,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
86
88
  | Prop | Type | Default | Description |
87
89
  |---|---|---|---|
88
90
  | `children` | `ReactNode` | — (required) | Title text. |
91
+ | `className` | `string` | — | Class on the label. |
89
92
  | `…rest` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | — | `className` and the other span attributes. |
90
93
 
91
94
  ### SegmentedControl.Count
@@ -103,6 +106,7 @@ The root is a field root: `className`, `ref` and the native attributes land on t
103
106
  | Prop | Type | Default | Description |
104
107
  |---|---|---|---|
105
108
  | `children` | `ReactNode` | — (required) | Second-line text; wrap a key value in `<strong>`. |
109
+ | `className` | `string` | — | Class on the description. |
106
110
  | `…rest` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | — | `className` and the other span attributes. |
107
111
 
108
112
  ## Variants
@@ -128,7 +132,7 @@ Track is `fill-muted` with a faint 1px ring; the selected segment is a floating
128
132
  ### color (Count)
129
133
  | Value | Looks like | Use when | Default |
130
134
  |---|---|---|---|
131
- | `gray` | neutral soft badge (text wash so it reads on track and thumb) | plain counters | yes |
135
+ | `gray` | neutral soft badge (a wash of the text ink, so it reads on track and thumb) | plain counters | yes |
132
136
  | other palette hues | soft badge of the hue | the count has a status meaning | |
133
137
 
134
138
  ### Flags
@@ -150,14 +154,18 @@ Colour all items or none; do not give an item and its Count the same hue; prefer
150
154
  | group disabled | root `disabled` | track `data-disabled="true"`, `aria-disabled`; every segment disabled; label and hint dimmed |
151
155
  | invalid | `invalid` or non-empty `error` | track `data-invalid="true"` + `aria-invalid="true"`, inset danger ring on the track; the error replaces the hint; the track shakes once when an error arrives |
152
156
  | required | `required` | red `*` after the label, `aria-required="true"` on the radiogroup |
157
+ | optional | `optional` | a muted `labels.optional` marker after the label |
158
+ | support row reserved | `reserveSupportRow` | the support row stays rendered while empty, so an error arriving shifts nothing |
153
159
  | focus-visible | keyboard | focus ring inside the segment |
154
- | overflow | row wider than the container | root `data-overflow-start` / `data-overflow-end`: edge fades in the track color |
160
+ | collapsed | row wider than the container and every segment has an icon | row `data-collapse="icon"`: titles, counts and descriptions leave the row, segments turn square; a `VisuallyHidden` copy of the title names each segment and a `Tooltip` shows it |
161
+ | overflow | row still wider than the container | root `data-overflow-start` / `data-overflow-end`: edge fades in the track color |
155
162
 
156
- Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `data-value`, `data-color`. The thumb glides (`emphasized` + `base`, `data-animate`) only into a user's choice (click, arrows); a value set from outside and layout changes snap it; it stays still under `prefers-reduced-motion`. It sits inside the segment track, which clips it, so moving the selection never changes the row's scroll area. When the row scrolls, the selected segment is kept in view on mount and on every value change: only the row scrolls, never the page, and the scroll glides only after a user's choice.
163
+ Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `data-value`, `data-color`. The thumb (the shared selection indicator) glides (`emphasized` + `base`, `data-animate`) only into a user's choice (click, arrows); a value set from outside and layout changes snap it; it stays still under `prefers-reduced-motion`. It sits inside the segment track, which clips it, so moving the selection never changes the row's scroll area. When the row scrolls, the selected segment is kept in view on mount and on every value change: only the row scrolls, never the page, and the scroll glides only after a user's choice.
157
164
 
158
165
  ## Layout & spacing
159
166
  - In a form it is a field: label → track `label-gap`, track → support row `hint-gap`, field → field `--prime-space-5` like every field.
160
- - Width is content-based by default; segments never wrap. In a narrow container the row scrolls horizontally with fading edges.
167
+ - Width is content-based by default; the row is a switcher (foundation §9): segments never wrap or truncate. In a narrow container segments with icons drop their titles first, then the row scrolls horizontally with fading edges.
168
+ - Without `size` the control takes the tier of its host (a toolbar, a form), else `m`.
161
169
  - On a coarse pointer each segment's hit area grows to the 44 px touch target in height; the track keeps its tier height.
162
170
  - In a toolbar: gap `--prime-space-3` between controls; keep every control at one size.
163
171
  - Caption under a group: gap `--prime-space-2`.
@@ -166,6 +174,8 @@ Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `dat
166
174
  ## Accessibility
167
175
 
168
176
  ### Keyboard
177
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
178
+
169
179
  | Key | Action |
170
180
  |---|---|
171
181
  | `ArrowRight` · `ArrowDown` | Next option, wrapping and skipping disabled ones; focus and selection move together. |
@@ -174,11 +184,13 @@ Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `dat
174
184
  | `Tab` | Enters the group on the selected option (or the first enabled one) and leaves it. |
175
185
 
176
186
  ### ARIA
187
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
188
+
177
189
  - The track is `role="radiogroup"`, named by `label` (`aria-labelledby`); without a label give the root `aria-label`. `aria-disabled` when disabled.
178
190
  - Hint and error are linked through `aria-describedby`; an error sets `aria-invalid="true"`, `required` sets `aria-required="true"`.
179
191
  - Items are `<button role="radio" aria-checked>` with roving `tabIndex`.
180
- - Two-line items: `aria-labelledby` = label (+ count), `aria-describedby` = description.
181
- - Icons are `aria-hidden`; icon-only items need `aria-label` (and a Tooltip for sighted users).
192
+ - Two-line items: `aria-labelledby` = label (+ count), `aria-describedby` = description; plain text is the label, so every reference resolves.
193
+ - Icons are `aria-hidden`; icon-only items need `aria-label` (and a Tooltip for sighted users). In a row collapsed to icons a `VisuallyHidden` copy of the title names the segment and a `Tooltip` shows it.
182
194
 
183
195
  ### Labels
184
196
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
@@ -192,14 +204,14 @@ Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `dat
192
204
  |---|---|
193
205
  | [overview.tsx](examples/overview.tsx) | One value out of a few, with a sliding thumb on the chosen segment — `defaultValue`, `aria-label`. |
194
206
  | [sizes.tsx](examples/sizes.tsx) | Every size tier; the outer height equals the control height of the same tier — `size`. |
195
- | [states.tsx](examples/states.tsx) | No selection yet, a disabled segment and a disabled group next to the default — `disabled`. |
207
+ | [states.tsx](examples/states.tsx) | No selection yet, an invalid group, a disabled segment and a disabled group next to the default — `invalid`, `disabled`. |
196
208
  | [with-icon.tsx](examples/with-icon.tsx) | An icon before the label and square icon-only segments named for screen readers — `SegmentedControl.Icon`, `aria-label`. |
197
209
  | [colors.tsx](examples/colors.tsx) | A status per option: a dot of its hue before the label and a tinted thumb when chosen — `color`. |
198
210
  | [full-width.tsx](examples/full-width.tsx) | The group fills its column; segments tend to equal widths and a long label keeps its own — `fullWidth`. |
199
- | [scroll.tsx](examples/scroll.tsx) | Segments never wrap: in a column narrower than the row it scrolls with edge fades and brings the chosen segment into view. |
211
+ | [scroll.tsx](examples/scroll.tsx) | Segments never wrap: in a column narrower than the row it scrolls with edge fades and brings the chosen segment into view — `defaultValue`. |
200
212
  | [two-line.tsx](examples/two-line.tsx) | A label and a counter on the first line, a metric on the second — `SegmentedControl.Label`, `SegmentedControl.Count`, `SegmentedControl.Description`. |
201
213
  | [controlled.tsx](examples/controlled.tsx) | The parent owns the choice and updates other content from it — `value`, `onValueChange`. |
202
- | [in-form.tsx](examples/in-form.tsx) | An expense form: the choice is a labelled field with a hint, checked on submit, its error leaves as soon as a segment is chosen — `label`, `hint`, `required`, `error`. |
214
+ | [in-form.tsx](examples/in-form.tsx) | An expense form: the choice is a labelled field with a hint, checked on submit, its error leaves as soon as a segment is chosen; an optional choice beside it — `label`, `hint`, `required`, `error`, `optional`. |
203
215
 
204
216
  ## Mistakes
205
217
  - Using it as tabs that show different panels → use `Tabs`.
@@ -211,5 +223,5 @@ Item DOM: `data-state`, `data-disabled`, `data-icon-only`, `data-two-line`, `dat
211
223
  - Expecting segments to wrap on narrow screens → they scroll; use `fullWidth` or fewer options.
212
224
 
213
225
  ## Related
214
- - **Built from:** [ScrollContainer](../scroll-container/COMPONENT.md), [Badge](../badge/COMPONENT.md), [Label](../label/COMPONENT.md) (`label`), [Hint](../hint/COMPONENT.md) (`hint`, `error`)
226
+ - **Built from:** [ScrollContainer](../scroll-container/COMPONENT.md) (`internal/SwitcherScroller`, the row), [Badge](../badge/COMPONENT.md), [Tooltip](../tooltip/COMPONENT.md) (the title of a collapsed segment), [Label](../label/COMPONENT.md) (`label`), [Hint](../hint/COMPONENT.md) (`hint`, `error`), [VisuallyHidden](../visually-hidden/COMPONENT.md); `internal/selectionIndicator` (the thumb)
215
227
  - **See also:** [Tabs](../tabs/COMPONENT.md), [Radio](../radio/COMPONENT.md), [Switch](../switch/COMPONENT.md), [ButtonGroup](../button-group/COMPONENT.md), [Tooltip](../tooltip/COMPONENT.md)
@@ -2,8 +2,6 @@
2
2
  import { SegmentedControl, Typography } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
5
- import styles from "./examples.module.css";
6
-
7
5
  const REVENUE: Record<string, string> = {
8
6
  day: "Выручка за день: 48 200 ₽",
9
7
  week: "Выручка за неделю: 312 700 ₽",
@@ -14,7 +12,7 @@ export default function SegmentedControlControlledExample() {
14
12
  const [period, setPeriod] = React.useState("week");
15
13
 
16
14
  return (
17
- <div className={styles.stack}>
15
+ <>
18
16
  <SegmentedControl.Root value={period} onValueChange={setPeriod} aria-label="Период отчёта">
19
17
  <SegmentedControl.Item value="day">День</SegmentedControl.Item>
20
18
  <SegmentedControl.Item value="week">Неделя</SegmentedControl.Item>
@@ -23,6 +21,6 @@ export default function SegmentedControlControlledExample() {
23
21
  <Typography variant="body-m" tone="secondary">
24
22
  {REVENUE[period]}
25
23
  </Typography>
26
- </div>
24
+ </>
27
25
  );
28
26
  }
@@ -1,13 +1,5 @@
1
1
  /* Layout of the SegmentedControl scenarios: semantic tokens only. */
2
2
 
3
- /* controlled.tsx: the group and the content it drives, start-aligned in one column. */
4
- .stack {
5
- display: flex;
6
- flex-direction: column;
7
- align-items: flex-start;
8
- gap: var(--prime-space-3);
9
- }
10
-
11
3
  /* in-form.tsx: field → field and fields → action at the form rhythm; controls keep their width. */
12
4
  .form {
13
5
  display: grid;
@@ -1,4 +1,4 @@
1
- /** An expense form: the choice is a labelled field with a hint, checked on submit, its error leaves as soon as a segment is chosen — `label`, `hint`, `required`, `error`. */
1
+ /** An expense form: the choice is a labelled field with a hint, checked on submit, its error leaves as soon as a segment is chosen; an optional choice beside it — `label`, `hint`, `required`, `error`, `optional`. */
2
2
  import { Button, Input, SegmentedControl } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
@@ -36,6 +36,10 @@ export default function SegmentedControlInFormExample() {
36
36
  <SegmentedControl.Item value="project">Проекта</SegmentedControl.Item>
37
37
  <SegmentedControl.Item value="personal">Личный</SegmentedControl.Item>
38
38
  </SegmentedControl.Root>
39
+ <SegmentedControl.Root label="Возмещение" optional defaultValue="salary">
40
+ <SegmentedControl.Item value="salary">С зарплатой</SegmentedControl.Item>
41
+ <SegmentedControl.Item value="card">На карту</SegmentedControl.Item>
42
+ </SegmentedControl.Root>
39
43
  <Button.Root type="submit">Сохранить расход</Button.Root>
40
44
  </form>
41
45
  );
@@ -1,4 +1,4 @@
1
- /** Segments never wrap: in a column narrower than the row it scrolls with edge fades and brings the chosen segment into view. */
1
+ /** Segments never wrap: in a column narrower than the row it scrolls with edge fades and brings the chosen segment into view — `defaultValue`. */
2
2
  import { SegmentedControl } from "prime-ui-kit";
3
3
 
4
4
  export default function SegmentedControlScrollExample() {
@@ -1,4 +1,4 @@
1
- /** No selection yet, a disabled segment and a disabled group next to the default — `disabled`. */
1
+ /** No selection yet, an invalid group, a disabled segment and a disabled group next to the default — `invalid`, `disabled`. */
2
2
  import { SegmentedControl, Typography } from "prime-ui-kit";
3
3
 
4
4
  export default function SegmentedControlStatesExample() {
@@ -22,6 +22,15 @@ export default function SegmentedControlStatesExample() {
22
22
  empty
23
23
  </Typography>
24
24
  </div>
25
+ <div>
26
+ <SegmentedControl.Root invalid aria-label="Статус кампании">
27
+ <SegmentedControl.Item value="active">Активные</SegmentedControl.Item>
28
+ <SegmentedControl.Item value="archived">Архив</SegmentedControl.Item>
29
+ </SegmentedControl.Root>
30
+ <Typography as="span" variant="caption" tone="muted">
31
+ invalid
32
+ </Typography>
33
+ </div>
25
34
  <div>
26
35
  <SegmentedControl.Root defaultValue="active" aria-label="Статус кампании">
27
36
  <SegmentedControl.Item value="active">Активные</SegmentedControl.Item>