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
@@ -41,38 +41,25 @@ with legend: <div data-legend> — a row: the ring box + <ul> legend
41
41
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
42
42
 
43
43
  ### ProgressCircle
44
- `ref` → `HTMLDivElement` (the root). Props of both modes; pass either `value` (value mode) or `segments` (segments mode), never both.
44
+ `ref` → `HTMLDivElement` (the root). Pass `value` (value mode: the svg is `role="progressbar"`, a track and one round-capped arc from the top) or `segments` (segments mode: the svg is `role="group"`, parts clockwise from the top), never both.
45
45
 
46
46
  | Prop | Type | Default | Description |
47
47
  |---|---|---|---|
48
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Diameter 24 · 32 · 48 · 64 · 80 px; the stroke is 1/12 of it. |
48
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | host tier, else `"m"` | Diameter 24 · 32 · 48 · 64 · 80 px; the stroke is 1/12 of it. Without it the ring takes the tier of a sized host. |
49
49
  | `children` | `ReactNode` | — | Content in the center (number, percent, `Icon`): text from `m`, an icon from `s`, nothing on `xs`. A string or number also becomes `aria-valuetext`. |
50
50
  | `aria-label` | `string` | — | Accessible name of the ring (set on the svg). Always pass it. |
51
51
  | `loading` | `boolean` | `false` | The data is on its way: a Skeleton ring of the same diameter and stroke (and legend lines) that cross-fades into the data; the inner content waits, the root is `aria-busy`. |
52
+ | `value` | `number \| null` | — | Value mode: the current value, clamped to `0…max`; it glides to a new value (`base`). `null` — under way, the share unknown: a quarter arc that always turns, no `aria-valuenow`. |
53
+ | `spin` | `boolean` | `false` | Value mode: the ring turns at any share (one turn = 3 × `--prime-motion-loop`; slower under reduced motion, never still) and the arc never drops under 8%: a sync whose share grows. `null` always turns. |
54
+ | `max` | `number` | `100` (value mode), the sum of the parts (segments mode) | Value mode: top of the scale. Segments mode: total capacity; the sum of the parts closes the ring, a larger `max` leaves the rest as track. |
55
+ | `tone` | `"neutral" \| "accent" \| "success" \| "warning" \| "danger" \| "info" \| "inherit"` | `"accent"` | Value mode: arc color, telling the outcome. `inherit` — the arc in the host's text color over a 32% track of it, for a ring on a colored host or over media. |
56
+ | `segments` | `ProgressSegment[]` | — | Segments mode: parts in order, `{ value, label?, tone? \| color? }`: `tone` names a meaning (default `accent`), `color` a category — its step of the chart palette. Each part's length is its share of `max`. |
57
+ | `segmentGap` | `"none" \| "hairline"` | `"none"` | Segments mode: `none` — one continuous ring; `hairline` — every part and the rest are separate round arcs. |
58
+ | `legend` | `boolean` | `false` | Segments mode: a legend beside the ring (below it when narrow), one row per part: color · name · value · share; with `aria-label` it becomes the group's description. The root turns into the row of ring and legend. |
59
+ | `formatValue` | `(value: number) => string` | Russian digit groups | Segments mode: display of a part's value in the legend («38 ГБ»). |
60
+ | `labels` | `Partial<ProgressCircleLabels>` | — | Segments mode: built-in strings, see Labels. |
52
61
  | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "children">` | — | `className`, `data-*` and the other div attributes on the root. |
53
62
 
54
- ### ProgressCircle · value mode
55
- The svg is `role="progressbar"`: a track and one round-capped arc from 12 o'clock.
56
-
57
- | Prop | Type | Default | Description |
58
- |---|---|---|---|
59
- | `value` | `number \| null` | — (required) | The current value, clamped to `0…max`; it glides to a new value (`base`). `null` — under way, the share unknown: a quarter arc that always turns, no `aria-valuenow`. |
60
- | `spin` | `boolean` | `false` | The ring turns at any share (one turn = 3 × `--prime-motion-loop`; slower under reduced motion, never still) and the arc never drops under 8%: a sync whose share grows. `null` always turns. |
61
- | `max` | `number` | `100` | Top of the scale. |
62
- | `tone` | `"neutral" \| "accent" \| "success" \| "warning" \| "danger" \| "info" \| "inherit"` | `"accent"` | Arc color, telling the outcome. `inherit` — the arc in the host's text color over a 32% track of it, for a ring on a colored host or over media. |
63
-
64
- ### ProgressCircle · segments mode
65
- The svg is `role="group"`: parts clockwise from the top, described by the legend or the distribution text.
66
-
67
- | Prop | Type | Default | Description |
68
- |---|---|---|---|
69
- | `segments` | `ProgressSegment[]` | — (required) | Parts in order, `{ value, label?, tone? \| color? }`: `tone` names a meaning (default `accent`), `color` a category — its step of the chart palette. Each part's length is its share of `max`. |
70
- | `max` | `number` | — | Total capacity. Default: the sum of the parts (they close the ring); a larger `max` leaves the rest as track. |
71
- | `segmentGap` | `"none" \| "hairline"` | `"none"` | `none` — one continuous ring; `hairline` — every part and the rest are separate round arcs. |
72
- | `legend` | `boolean` | `false` | A legend beside the ring (below it when the row is narrow), one row per part: color · name · value · share; it becomes the group's description. The root turns into the row of ring and legend. |
73
- | `formatValue` | `(value: number) => string` | `Russian digit groups` | Display of a part's value in the legend («38 ГБ»). |
74
- | `labels` | `Partial<ProgressCircleLabels>` | — | Built-in strings, see Labels. |
75
-
76
63
  ## Variants
77
64
 
78
65
  ### size
@@ -80,7 +67,7 @@ The svg is `role="group"`: parts clockwise from the top, described by the legend
80
67
  |---|---|---|---|
81
68
  | `xs` | 24 diameter, no inner content | inline in text or table cells | |
82
69
  | `s` | 32 diameter, an icon 16 in the center, no text | list rows, compact cards | |
83
- | `m` | 48 diameter, inner text 12/16, icon 20 | KPI tiles | yes |
70
+ | `m` | 48 diameter, inner text 12/16, icon 20 | KPI tiles | the host tier, else `m` |
84
71
  | `l` | 64 diameter, inner text 16/24, icon 24 | dashboard cards | |
85
72
  | `xl` | 80 diameter, inner text 18/24, icon 32 | hero metrics, breakdowns | |
86
73
 
@@ -128,13 +115,13 @@ The stroke is always 1/12 of the diameter (the kit ring's `data` weight). These
128
115
  | icon change | a new icon in `children` (another `name`) | the old one shrinks to 0.6 and fades, the new one grows in (`fast`) and plays its gesture once; a changing number updates in place |
129
116
  | segments | `segments`, `max`, `segmentGap` | `data-segment-gap` on the svg, `data-tone` or `data-color` on every arc and cap; arcs glide by dash, caps by `rotate` |
130
117
  | legend | `legend` | `data-legend` on the root, which becomes a wrapping row of the ring and the `<ul>` |
131
- | loading | `loading` | `aria-busy` on the root; a Skeleton ring (mask of the stroke) and legend lines; the data cross-fades in (`swapMotion`) |
118
+ | loading | `loading` | `aria-busy` on the root; a Skeleton ring (mask of the stroke) and legend lines; the data cross-fades in (`RegionSwap`) |
132
119
  | reduced motion | `prefers-reduced-motion` | arcs and icons change instantly; a turning ring turns twice as slow and never stops |
133
120
 
134
121
  Always controlled: pass the current `value` or `segments`.
135
122
 
136
123
  ## Layout & spacing
137
- - `display: inline-flex`, never shrinks (with `legend` the root is a block `flex` row); a caption sits next to it with `--prime-space-3` or under it with `--prime-space-2`.
124
+ - `display: inline-flex`, never shrinks (with `legend` the root is a block `flex` row); a caption sits 12 beside it or 8 under it (a gap on their parent).
138
125
  - Diameters sit on the 4px grid (`--prime-space-6…20`); the ring is placed in CSS (an svg without a viewBox), lengths along it are percent of the circle.
139
126
  - Inner content sits in the hole (5/6 of the diameter, clipped), primary, medium weight, tabular numbers.
140
127
  - With `legend` the root is a wrapping row: the ring and the legend `--prime-space-5` (20) apart; the legend takes the rest of the row (basis 192) and drops below the ring when that does not fit.
@@ -143,12 +130,16 @@ Always controlled: pass the current `value` or `segments`.
143
130
  ## Accessibility
144
131
 
145
132
  ### Keyboard
133
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
134
+
146
135
  No keyboard interaction.
147
136
 
148
137
  ### ARIA
138
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
139
+
149
140
  - Value mode: the svg is `role="progressbar"` with `aria-valuenow` / `-min` / `-max`; a string or number child becomes `aria-valuetext`. With `value={null}` there is no `aria-valuenow` — the share is unknown.
150
141
  - The turn never stops under reduced motion (twice as slow): it is the only sign the work goes on.
151
- - Segments mode: the svg is `role="group"`; with `aria-label` it is described by the distribution («Видео: 38%, Документы: 21%») or by the legend, without it the distribution is its name.
142
+ - Segments mode: the svg is `role="group"`; with `aria-label` it is named by it and the text in the centre («Хранилище, 72%») and described by the distribution («Видео: 38%, Документы: 21%») or by the legend, without it the distribution is its name.
152
143
  - A category color always sits beside its name in the legend, so color is never the only cue.
153
144
  - While `loading` the root is `aria-busy` and the Skeletons are `aria-hidden`.
154
145
  - Always pass `aria-label`: a caption next to the ring is not linked to it.
@@ -171,8 +162,9 @@ No keyboard interaction.
171
162
  | [states.tsx](examples/states.tsx) | Loading is a Skeleton ring of the same diameter and stroke; the number in the centre waits for the data — `loading`. |
172
163
  | [inner-content.tsx](examples/inner-content.tsx) | The center holds a percentage, a count on its own scale or an icon — `children`, `max`. |
173
164
  | [under-way.tsx](examples/under-way.tsx) | An import whose share is not known yet turns a quarter arc, then fills and swaps its icon; a sync turns while its share grows — `value`, `spin`, `children`. |
174
- | [segments.tsx](examples/segments.tsx) | Parts of a whole clockwise from the top: a closed ring, free capacity up to `max`, separate arcs and an empty list — `segments`, `segmentGap`. |
165
+ | [segments.tsx](examples/segments.tsx) | Parts of a whole clockwise from the top: a closed ring, free capacity up to `max`, separate arcs and an empty list with its own spoken text — `segments`, `segmentGap`, `labels`. |
175
166
  | [legend.tsx](examples/legend.tsx) | A ring of category shares with a legend beside it, in the categories' chart colors — `color`, `legend`, `formatValue`. |
167
+ | [on-color.tsx](examples/on-color.tsx) | A ring on a colored host takes the host's text color — `tone`. |
176
168
 
177
169
  ## Mistakes
178
170
  - No `aria-label` (even with a visible caption) → screen readers get an unnamed progressbar.
@@ -185,5 +177,5 @@ No keyboard interaction.
185
177
  - Categories painted with `tone` → use `color`; a hand-built legend beside the ring → `legend`.
186
178
 
187
179
  ## Related
188
- - **Built from:** [Skeleton](../skeleton/COMPONENT.md), `internal/ring` (the ring drawing, shared with Spinner and the circle Button), `internal/glyphSwap` (the center cross-fade)
180
+ - **Built from:** [Skeleton](../skeleton/COMPONENT.md), `internal/ring` (the ring drawing, shared with Spinner and the circle Button), `internal/glyphSwap` (the center cross-fade), [VisuallyHidden](../visually-hidden/COMPONENT.md)
189
181
  - **See also:** [ProgressBar](../progress-bar/COMPONENT.md), [Card](../card/COMPONENT.md), [Spinner](../spinner/COMPONENT.md), [Button](../button/COMPONENT.md)
@@ -11,7 +11,7 @@
11
11
 
12
12
  /* A dashboard card as wide as a short form: the legend sits beside the ring or drops under it. */
13
13
  .card {
14
- width: min(100%, var(--prime-modal-width-s));
14
+ width: min(100%, var(--prime-layout-form-width-s));
15
15
  }
16
16
 
17
17
  .item {
@@ -0,0 +1,16 @@
1
+ /** A ring on a colored host takes the host's text color — `tone`. */
2
+ import { Banner, ProgressCircle } from "prime-ui-kit";
3
+
4
+ export default function ProgressCircleOnColorExample() {
5
+ return (
6
+ <Banner.Root variant="solid" tone="info">
7
+ <Banner.Content>
8
+ <Banner.Icon>
9
+ <ProgressCircle size="xs" value={64} tone="inherit" aria-label="Экспорт отчёта" />
10
+ </Banner.Icon>
11
+ <Banner.Title>Экспорт отчёта за квартал</Banner.Title>
12
+ <Banner.Description>Готово 64%, файл придёт на почту.</Banner.Description>
13
+ </Banner.Content>
14
+ </Banner.Root>
15
+ );
16
+ }
@@ -1,4 +1,4 @@
1
- /** Parts of a whole clockwise from the top: a closed ring, free capacity up to `max`, separate arcs and an empty list — `segments`, `segmentGap`. */
1
+ /** Parts of a whole clockwise from the top: a closed ring, free capacity up to `max`, separate arcs and an empty list with its own spoken text — `segments`, `segmentGap`, `labels`. */
2
2
  import { ProgressCircle, type ProgressSegment, Typography } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
@@ -54,9 +54,14 @@ export default function ProgressCircleSegmentsExample() {
54
54
  </Typography>
55
55
  </div>
56
56
  <div className={styles.item}>
57
- <ProgressCircle size="xl" segments={[]} aria-label="Нет данных" />
57
+ <ProgressCircle
58
+ size="xl"
59
+ segments={[]}
60
+ aria-label="Заявки за ноябрь"
61
+ labels={{ empty: "Заявок пока нет" }}
62
+ />
58
63
  <Typography as="span" variant="caption" tone="muted">
59
- Нет данных
64
+ Заявки за ноябрь
60
65
  </Typography>
61
66
  </div>
62
67
  </div>
@@ -8,6 +8,7 @@ const TONES = [
8
8
  { tone: "danger", label: "Сбой импорта", value: 20 },
9
9
  { tone: "info", label: "Синхронизация", value: 30 },
10
10
  { tone: "neutral", label: "Индексация", value: 55 },
11
+ { tone: "inherit", label: "Экспорт", value: 64 },
11
12
  ] as const;
12
13
 
13
14
  export default function ProgressCircleVariantsExample() {
@@ -11,7 +11,7 @@
11
11
  - A required one-of-many question in a form.
12
12
 
13
13
  ## When not to use
14
- - 2–4 short view modes or filters that apply instantly → use [SegmentedControl](../segmented-control/COMPONENT.md) instead.
14
+ - 2–5 short view modes or filters that apply instantly → use [SegmentedControl](../segmented-control/COMPONENT.md) instead.
15
15
  - A long list (8+ options) or limited space → use [Select](../select/COMPONENT.md) instead.
16
16
  - Independent yes/no options → use [Checkbox](../checkbox/COMPONENT.md) instead.
17
17
  - A single on/off setting → use [Switch](../switch/COMPONENT.md) instead.
@@ -42,7 +42,7 @@ Radio.Group field: group label → role="radiogroup" → hint | erro
42
42
  | `defaultValue` | `string` | — | Initial value when uncontrolled. |
43
43
  | `onValueChange` | `(value: string) => void` | — | Called with the value of the newly chosen option. |
44
44
  | `name` | `string` | — | Native `name` shared by the radios; generated when omitted. |
45
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `host tier, else "m"` | Tier of every circle, text, the label and the hint. Without it the group takes the tier of its host (LoginForm, Popover, a panel with a size), else `m`. |
45
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | host tier, else `"m"` | Tier of every circle, text, the label and the hint. Without it the group takes the tier of its host (LoginForm, Popover, a panel with a size), else `m`. |
46
46
  | `label` | `ReactNode` | — | Group heading above the options; names the radiogroup through `aria-labelledby`. Without it, pass `aria-label`. |
47
47
  | `required` | `boolean` | `false` | Red `*` after the label, native `required` on the radios and `aria-required` on the group. |
48
48
  | `optional` | `boolean` | `false` | Muted marker right after the label text (`labels.optional`). |
@@ -54,6 +54,7 @@ Radio.Group field: group label → role="radiogroup" → hint | erro
54
54
  | `labels` | `Partial<RadioGroupLabels>` | — | Built-in strings, see Labels. |
55
55
  | `id` | `string` | — | Id of the `role="radiogroup"` element (generated when omitted); also the default `name`. |
56
56
  | `aria-label / aria-labelledby / aria-describedby` | `string` | — | Name and description of the radiogroup (`aria-describedby` is merged before the hint / error ids). |
57
+ | `children` | `ReactNode` | — | The `Radio.Root` options. |
57
58
  | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "id" \| "children" \| "defaultValue" \| "defaultChecked" \| "onChange" \| "dir">` | — | `className`, `data-*` and the other attributes of the field frame `<div>`. |
58
59
 
59
60
  ### Radio.Root
@@ -71,6 +72,10 @@ Radio.Group field: group label → role="radiogroup" → hint | erro
71
72
  ### Radio.Label
72
73
  `ref` → `HTMLSpanElement`. The visible text in the text column of the option row. Native `<span>` props.
73
74
 
75
+ | Prop | Type | Default | Description |
76
+ |---|---|---|---|
77
+ | `…rest` | `HTMLAttributes<HTMLSpanElement>` | — | `children`, `className` and the other span attributes. |
78
+
74
79
  ## Variants
75
80
  No `variant` / `tone` / `color`.
76
81
 
@@ -118,13 +123,15 @@ The radiogroup carries `data-size`, `data-orientation`, `aria-orientation`, `ari
118
123
 
119
124
  ## Layout & spacing
120
125
  - Group label → options: the tier `label-gap`; options → hint / error: the tier `hint-gap` (the same rhythm as fields).
121
- - Options inside a group: gap `--prime-space-2`; group → group: `--prime-space-8`.
126
+ - Options inside a group: gap `--prime-space-2`; groups in a form stand in a [Fieldset](../fieldset/COMPONENT.md), which sets the rhythm between them.
122
127
  - An option hint aligns with the text column, not with the circle.
123
128
  - Long labels wrap; horizontal rows wrap at narrow widths.
124
129
 
125
130
  ## Accessibility
126
131
 
127
132
  ### Keyboard
133
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
134
+
128
135
  | Key | Action |
129
136
  |---|---|
130
137
  | `Tab` | Focuses the selected option (or the first one when nothing is selected). |
@@ -132,6 +139,8 @@ The radiogroup carries `data-size`, `data-orientation`, `aria-orientation`, `ari
132
139
  | `Space` | Selects the focused option. |
133
140
 
134
141
  ### ARIA
142
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
143
+
135
144
  - `Radio.Group` is `role="radiogroup"`, named by its `label` through `aria-labelledby`, or by `aria-label`.
136
145
  - `aria-required`, `aria-invalid` and `aria-orientation` sit on the group; the group hint or error is in its `aria-describedby`.
137
146
  - Every option is a native `<input type="radio">` with the shared `name`; an option `hint` is linked through `aria-describedby`.
@@ -152,6 +161,7 @@ The radiogroup carries `data-size`, `data-orientation`, `aria-orientation`, `ari
152
161
  | [group.tsx](examples/group.tsx) | A required group with option descriptions and the group's error under the options — `label`, `required`, `hint`, `error`. |
153
162
  | [orientation.tsx](examples/orientation.tsx) | Options stacked in a column and laid out in a wrapping row — `orientation`. |
154
163
  | [controlled.tsx](examples/controlled.tsx) | The parent owns the chosen plan and shows it in the hint — `value`, `onValueChange`. |
164
+ | [in-form.tsx](examples/in-form.tsx) | Choices of an order form: a required group shows its error after a submit without a choice, an optional one is marked — `name`, `required`, `optional`, `error`. |
155
165
 
156
166
  ## Mistakes
157
167
  - `Radio.Root` outside `Radio.Group` → it throws; every option needs the group.
@@ -161,5 +171,5 @@ The radiogroup carries `data-size`, `data-orientation`, `aria-orientation`, `ari
161
171
  - Eight or more options → use `Select`.
162
172
 
163
173
  ## Related
164
- - **Built from:** [Label](../label/COMPONENT.md) (group label), [Hint](../hint/COMPONENT.md) (`hint`, `error`, option hints); option rows are native `<label>` elements
174
+ - **Built from:** [Label](../label/COMPONENT.md) (group label), [Hint](../hint/COMPONENT.md) (`hint`, `error`, option hints), [VisuallyHidden](../visually-hidden/COMPONENT.md); option rows are native `<label>` elements
165
175
  - **See also:** [Checkbox](../checkbox/COMPONENT.md), [Switch](../switch/COMPONENT.md), [SegmentedControl](../segmented-control/COMPONENT.md), [Select](../select/COMPONENT.md)
@@ -0,0 +1,14 @@
1
+ /* Layout of the Radio scenarios: semantic tokens only. */
2
+
3
+ /* in-form.tsx: groups, then actions (group → actions 32). */
4
+ .form {
5
+ display: flex;
6
+ flex-direction: column;
7
+ gap: var(--prime-space-6);
8
+ width: min(100%, var(--prime-layout-form-width-s));
9
+ }
10
+
11
+ .formActions {
12
+ display: flex;
13
+ margin-top: var(--prime-space-2);
14
+ }
@@ -0,0 +1,45 @@
1
+ /** Choices of an order form: a required group shows its error after a submit without a choice, an optional one is marked — `name`, `required`, `optional`, `error`. */
2
+ import { Button, Radio } from "prime-ui-kit";
3
+ import * as React from "react";
4
+
5
+ import styles from "./examples.module.css";
6
+
7
+ export default function RadioInFormExample() {
8
+ const [error, setError] = React.useState<string>();
9
+
10
+ const submit = (event: React.FormEvent<HTMLFormElement>) => {
11
+ event.preventDefault();
12
+ const chosen = new FormData(event.currentTarget).get("delivery");
13
+ setError(chosen ? undefined : "Выберите способ доставки");
14
+ };
15
+
16
+ return (
17
+ <form className={styles.form} noValidate onSubmit={submit}>
18
+ <Radio.Group
19
+ label="Способ доставки"
20
+ name="delivery"
21
+ required
22
+ error={error}
23
+ onValueChange={() => setError(undefined)}
24
+ >
25
+ <Radio.Root value="courier">
26
+ <Radio.Label>Курьером до склада</Radio.Label>
27
+ </Radio.Root>
28
+ <Radio.Root value="pickup">
29
+ <Radio.Label>Самовывоз с терминала</Radio.Label>
30
+ </Radio.Root>
31
+ </Radio.Group>
32
+ <Radio.Group label="Упаковка" name="packing" optional>
33
+ <Radio.Root value="pallet">
34
+ <Radio.Label>На паллетах</Radio.Label>
35
+ </Radio.Root>
36
+ <Radio.Root value="crate">
37
+ <Radio.Label>В обрешётке</Radio.Label>
38
+ </Radio.Root>
39
+ </Radio.Group>
40
+ <div className={styles.formActions}>
41
+ <Button.Root type="submit">Оформить заказ</Button.Root>
42
+ </div>
43
+ </form>
44
+ );
45
+ }
@@ -10,13 +10,14 @@
10
10
  - A strip whose overflow must be hinted without a scrollbar (`scrollbar="hidden"` with the default `edges="fade"`): tab rows, chip strips, attachment trays; add `snap` for tiles and cards.
11
11
  - A region that is itself a filled surface (a floating panel, a code well): `edges="shadow"`.
12
12
  - A list that must hold still for a while (an open review, a gesture that must not move it): `lock`.
13
- - A chat or a live log that stays at its newest entry (`anchor="end"`) and loads history while scrolling back (`onReachStart`).
13
+ - A live log that stays at its newest entry (`anchor="end"`) and loads history while scrolling back (`onReachStart`).
14
14
  - A feed that loads the next page near its end (`onReachEnd`).
15
15
 
16
16
  ## When not to use
17
17
  - Modal / Drawer / Sheet body, Select / Dropdown / Popover / TagSelect panels, CommandMenu list, Tabs and SegmentedControl rows, DataTable and Gantt viewports, Kanban, Sidebar, the Composer tray → they already scroll through ScrollContainer; do not wrap them again ([Modal](../modal/COMPONENT.md), [Drawer](../drawer/COMPONENT.md), [Dropdown](../dropdown/COMPONENT.md), [Popover](../popover/COMPONENT.md), [CommandMenu](../command-menu/COMPONENT.md), [DataTable](../data-table/COMPONENT.md)).
18
18
  - The main page column inside the app shell → `AppShell.Main` is already a ScrollContainer ([AppShell](../../layout/app-shell/COMPONENT.md)).
19
19
  - Content that should simply grow with the page → no scroll container at all.
20
+ - A chat → use [Chat](../chat/COMPONENT.md) (`Chat.Messages` keeps its own scroll region, selection and jumps).
20
21
  - A long list of thousands of rows → ScrollContainer scrolls it, the host renders only the rows in view (DataTable `paging="infinite"`, `Chat.Messages`, Gantt); ScrollContainer has no virtual mode of its own.
21
22
 
22
23
  ## Import
@@ -43,12 +44,12 @@ ScrollContainer <div> (or the `as` tag); thin scrollbar, soft hidden edges
43
44
  | `edges` | `"fade" \| "shadow" \| "none"` | `"fade"` | Edges that hide content: `fade` dissolves them over any background; `shadow` — a soft shadow on the region's own fill (a floating panel, a code well); `none` — plain edges. |
44
45
  | `scrollbar` | `"thin" \| "hidden"` | `"thin"` | `thin` — the kit's quiet scrollbar; `hidden` — no scrollbar, keep `edges` on so the overflow stays visible. |
45
46
  | `lock` | `boolean` | `false` | The person cannot scroll the region (wheel, touch, keys, a drag's auto-scroll); code still can. Sets `data-lock`. |
46
- | `snap` | `boolean` | `false` | Scrolling comes to rest on the start of a child (proximity snapping). For strips of tiles and cards; not with `anchor="end"`. |
47
+ | `snap` | `boolean \| "mandatory"` | `false` | Scrolling comes to rest on the start of a child: `true` near one (strips of tiles and cards), `"mandatory"` always on one (board columns, a carousel). A Dnd drag inside turns it off; not with `anchor="end"`. |
47
48
  | `anchor` | `"start" \| "end"` | `"start"` | `end` — a chat or a log: opens at the end and follows new content while the person is at the end; scrolled away, the view holds still. |
48
49
  | `onReachStart` | `() => void \| Promise<void>` | — | Fires within 120 px of the start, once per approach: load older content. A returned promise blocks repeats and sets `aria-busy`; content added above keeps the view. |
49
50
  | `onReachEnd` | `() => void \| Promise<void>` | — | The scroll position came within 120 px of the end: load the next page. Same once-per-approach and promise rules as `onReachStart`. |
50
51
  | `overscrollBehavior` | `"auto" \| "contain" \| "none"` | `"contain"` | CSS `overscroll-behavior`; `contain` stops scroll chaining into the page. |
51
- | `as` | `"div" \| "main" \| "aside" \| "section" \| "nav" \| "article"` | `"div"` | Root element; a landmark tag when the region is one. |
52
+ | `as` | `"div" \| "main" \| "aside" \| "section" \| "nav" \| "article" \| "pre"` | `"div"` | Root element; a landmark tag when the region is one, `pre` for preformatted text (CodeBlock). |
52
53
  | `…rest` | `HTMLAttributes<HTMLElement>` | — | `children`, `className` (height, padding), `aria-label`, `tabIndex`, `role`, event handlers and the other attributes. |
53
54
 
54
55
  ## Variants
@@ -92,7 +93,8 @@ Only the reader scrolling back unpins the end: content that keeps growing (an an
92
93
  | Value | Looks like | Use when | Default |
93
94
  |---|---|---|---|
94
95
  | `lock` | nothing the person does scrolls the region (wheel, touch, keys, a drag's edge auto-scroll); the position stays, and code may still set it | a list behind an open review, a gesture that must not move it | off |
95
- | `snap` | a scroll comes to rest on the start of a direct child (proximity snapping); a host aligns deeper items itself | strips of tiles or cards | off |
96
+ | `snap` | a scroll comes to rest on the start of a direct child near one (proximity); a host aligns deeper items itself | strips of tiles or cards | off |
97
+ | `snap="mandatory"` | a scroll always comes to rest on the start of a child | board columns, a carousel of cards | off |
96
98
 
97
99
  ### Wheel and auto-scroll
98
100
  - `axis="horizontal"`: a vertical mouse wheel scrolls the strip sideways while it can move, gliding to an accumulated target (instant under reduced motion). A trackpad's sideways swipe and Shift + wheel stay native; a wheel gesture that began outside the strip keeps scrolling the page; at the strip's edge the wheel chains to the page. There is no drag-to-scroll: a press-and-drag in a strip belongs to its items (reordering tiles, tabs); touch pans natively.
@@ -112,16 +114,16 @@ Each fires once per approach — again after the position leaves the zone or the
112
114
  | State | Driven by | DOM |
113
115
  |---|---|---|
114
116
  | edge treatment | `edges` | `data-edges="fade" \| "shadow"` (none for `none`) |
115
- | content hidden at an edge | scroll position (with `edges="fade"`), measured at most once per frame on scroll, on resize of the region or a child and when children are added; only the scroll axes; logical in RTL | `data-overflow-top`, `data-overflow-bottom`, `data-overflow-start`, `data-overflow-end` = `"true"`; `--edge-*` depths written only while they change (within the last `--prime-space-8` of an edge), on non-inherited properties |
117
+ | content hidden at an edge | scroll position (with `edges="fade"`), measured at most once per frame on scroll, on resize of the region or a child and when children are added; only the scroll axes; logical in RTL | `data-overflow-top`, `data-overflow-bottom`, `data-overflow-start`, `data-overflow-end` = `"true"`; `--edge-*` depths written only while they change (within the last fade depth of an edge, `--scroll-fade-depth`), on non-inherited properties |
116
118
  | locked | `lock` | `data-lock`, `overflow: hidden` |
117
- | snapping | `snap` | `data-snap`, `scroll-snap-type: <axis> proximity`; `scroll-snap-align: start` on the children |
119
+ | snapping | `snap` | `data-snap="proximity" \| "mandatory"`, `scroll-snap-type: <axis> <strictness>`; `scroll-snap-align: start` on the children; off while a Dnd list inside carries an item (`data-dnd-carrying`) |
118
120
  | kit anchoring | `anchor="end"` or `onReachStart` | `data-anchor="end" \| "start"`, `overflow-anchor: none`: the kit keeps the visible entry in place (or the end, while pinned) before paint, the same in every browser |
119
121
  | pinned to the end | `anchor="end"` and the position within 4 px of the end | content changes scroll to the new end at once (high-frequency: no animation) |
120
122
  | loading at an edge | a pending promise from `onReachStart` / `onReachEnd` | `aria-busy="true"` |
121
123
  | content fits | the content is no larger than the region along its axis (re-measured on resize of the region or a child, and when children change); never with `anchor="end"`, `onReachStart` or `onReachEnd` — a region that follows its content always stays a scroller | `data-fits`, `overflow: hidden`: a region that cannot scroll is no scroller, so the browser never composites a layer for a sub-pixel overflow; text or inline content straight inside keeps it a scroller |
122
124
  | keyboard focus | `tabIndex={0}` on a region without focusable content | inset focus ring (`--prime-focus-offset-inset`) |
123
125
 
124
- The scrollbar thumb uses `fill-strong`, darkening to `fill-strong-hover` on hover (WebKit). The fade and the shadow follow the scroll at once: scrolling is high-frequency, so nothing animates. A fade region sets `scroll-padding` of the fade depth on its scroll axes, so focus, `scrollIntoView` and a snapped child land clear of the fade.
126
+ The scrollbar thumb uses `fill-strong` and stays still on hover in every engine. The fade and the shadow follow the scroll at once: scrolling is high-frequency, so nothing animates. A fade region sets `scroll-padding` of the fade depth on its scroll axes, so focus, `scrollIntoView` and a snapped child land clear of the fade. The depth is `--scroll-fade-depth` (`--prime-space-8`), the one public hook of the region: a switcher that draws its own edge overlays sets it to their width.
125
127
 
126
128
  ## Layout & spacing
127
129
  - Sets `min-width: 0` and `min-height: 0`, so it shrinks inside a flex or grid parent; give the parent (or the container) a height.
@@ -130,6 +132,8 @@ The scrollbar thumb uses `fill-strong`, darkening to `fill-strong-hover` on hove
130
132
  ## Accessibility
131
133
 
132
134
  ### Keyboard
135
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
136
+
133
137
  | Key | Action |
134
138
  |---|---|
135
139
  | `↑` · `↓` · `←` · `→` | Scroll the focused region (with `tabIndex={0}`) by a step |
@@ -137,7 +141,9 @@ The scrollbar thumb uses `fill-strong`, darkening to `fill-strong-hover` on hove
137
141
  | `Home` · `End` | To the start and to the end |
138
142
 
139
143
  ### ARIA
140
- - Renders a plain element; add `tabIndex={0}` and `aria-label` when the region has no focusable content but must scroll from the keyboard (the browser scrolls it; the ring is inset).
144
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
145
+
146
+ - Renders a plain element; a region named by `aria-label` / `aria-labelledby` becomes `role="region"` (a `role` of its own wins, e.g. `log`). Add `tabIndex={0}` and a name when the region has no focusable content but must scroll from the keyboard (the browser scrolls it; the ring is inset).
141
147
  - Choose a semantic `as` (`main`, `nav`, `aside`) when the region is a landmark.
142
148
  - `edges` is only decoration: content under a fade or a shadow stays reachable and scrolls by wheel, touch and focus; focus and `scrollIntoView` stop clear of a fade.
143
149
  - `lock` keeps the content in the focus order: a locked region does not scroll, its items stay reachable.
@@ -151,15 +157,16 @@ No `labels`.
151
157
  ## Examples
152
158
  | Example | Shows |
153
159
  |---|---|
154
- | [overview.tsx](examples/overview.tsx) | A feed that scrolls on its own inside a fixed-height card, with the kit's thin scrollbar. |
160
+ | [overview.tsx](examples/overview.tsx) | A feed that scrolls on its own inside a fixed-height card, with the kit's thin scrollbar — `ScrollContainer`. |
155
161
  | [variants.tsx](examples/variants.tsx) | A strip that scrolls sideways and a wide schedule that scrolls both ways — `axis`. |
156
162
  | [edges.tsx](examples/edges.tsx) | Hidden edges fade over any background, take a soft shadow on a filled surface, or stay plain — `edges`. |
157
163
  | [scrollbar.tsx](examples/scrollbar.tsx) | The kit's quiet thin bar on a list and no bar on a strip of chips, where the faded edges show the overflow — `scrollbar`. |
158
- | [snap.tsx](examples/snap.tsx) | 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`. |
164
+ | [snap.tsx](examples/snap.tsx) | 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`. |
159
165
  | [lock.tsx](examples/lock.tsx) | While an order is opened for review, the queue behind it holds still: no wheel, touch, key or drag moves it — `lock`. |
160
166
  | [auto-scroll.tsx](examples/auto-scroll.tsx) | A task dragged to the top or bottom edge of a scrolling list scrolls it, faster the closer it comes — `ScrollContainer`, `Dnd.Sortable`. |
161
167
  | [overscroll.tsx](examples/overscroll.tsx) | At the end of the list the scroll passes on to the page instead of stopping — `overscrollBehavior`. |
162
- | [chat.tsx](examples/chat.tsx) | A support chat pinned to its last message: a sent message keeps it at the end, scrolling up loads older ones without moving what is on screen — `anchor`, `onReachStart`. |
168
+ | [log.tsx](examples/log.tsx) | 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`. |
169
+ | [load-more.tsx](examples/load-more.tsx) | An order log that loads the next page as the reader nears its end, with loading lines in the rows' place — `onReachEnd`. |
163
170
 
164
171
  ## Mistakes
165
172
  - `overflow: auto` on a plain `div` inside a flex column that never shrinks → use ScrollContainer (it sets `min-height: 0`).
@@ -167,7 +174,7 @@ No `labels`.
167
174
  - `overflow: auto` anywhere in a kit component → a ScrollContainer (`src/styles/scroll.test.ts` fails on a raw scroller).
168
175
  - A hand-made edge-fade mask, edge shadow or hidden scrollbar → `edges` and `scrollbar="hidden"`.
169
176
  - `edges="fade"` on a region that paints its own fill or shadow → the mask dissolves them; use `edges="shadow"`.
170
- - A hand-made edge auto-scroll loop for a drag → `autoScrollStep` / `edgeSpeed` from `src/internal/edgeAutoScroll`.
177
+ - A hand-made edge auto-scroll loop for a drag → `createEdgeAutoScroll` from `src/internal/edgeAutoScroll`.
171
178
  - `snap` together with `anchor="end"` → snapping fights the pin to the end.
172
179
  - Wrapping a Modal body or Dropdown panel in another ScrollContainer → they already scroll.
173
180
  - `scrollTop = scrollHeight` in an effect after every message → `anchor="end"` (it also leaves a reader who scrolled up alone).
@@ -22,9 +22,9 @@ export default function ScrollContainerAutoScrollExample() {
22
22
 
23
23
  return (
24
24
  <Card.Root role="region" className={styles.card} aria-label="План проекта">
25
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
26
- План проекта
27
- </Typography>
25
+ <Card.Header>
26
+ <Card.Title>План проекта</Card.Title>
27
+ </Card.Header>
28
28
  <ScrollContainer>
29
29
  <Dnd.Root>
30
30
  <Dnd.Sortable
@@ -38,10 +38,14 @@ export default function ScrollContainerAutoScrollExample() {
38
38
  setTasks((current) => moveBefore(current, id, beforeId, (task) => task.id))
39
39
  }
40
40
  renderItem={(task) => (
41
- <Dnd.SortableItem id={task.id} className={styles.task}>
42
- <Typography as="span" variant="body-m" truncate>
43
- {task.title}
44
- </Typography>
41
+ <Dnd.SortableItem id={task.id}>
42
+ <Card.Root>
43
+ <Card.Body>
44
+ <Typography as="span" variant="body-m" truncate>
45
+ {task.title}
46
+ </Typography>
47
+ </Card.Body>
48
+ </Card.Root>
45
49
  </Dnd.SortableItem>
46
50
  )}
47
51
  />
@@ -22,19 +22,22 @@ export default function ScrollContainerEdgesExample() {
22
22
  <div className={styles.layout}>
23
23
  {EDGES.map((edges) => (
24
24
  <Card.Root key={edges} role="region" className={styles.card} aria-label={`Лента: ${edges}`}>
25
- <Typography as="h3" variant="title-s" className={styles.cardTitle}>
26
- {edges}
27
- </Typography>
25
+ <Card.Header>
26
+ <Card.Title>Лента событий</Card.Title>
27
+ <Typography as="span" variant="caption" tone="muted">
28
+ {edges}
29
+ </Typography>
30
+ </Card.Header>
28
31
  <ScrollContainer edges={edges}>
29
- <ul className={styles.list}>
32
+ <Card.List>
30
33
  {EVENTS.map((event) => (
31
- <li key={event}>
34
+ <Card.ListItem key={event}>
32
35
  <Typography as="span" variant="body-m" tone="secondary">
33
36
  {event}
34
37
  </Typography>
35
- </li>
38
+ </Card.ListItem>
36
39
  ))}
37
- </ul>
40
+ </Card.List>
38
41
  </ScrollContainer>
39
42
  </Card.Root>
40
43
  ))}
@@ -17,57 +17,23 @@
17
17
  width: auto;
18
18
  }
19
19
 
20
- .cardTitle {
21
- padding: var(--prime-space-3) var(--prime-space-4);
22
- }
23
-
24
- .list {
25
- display: flex;
26
- flex-direction: column;
27
- margin: 0;
28
- padding: 0 var(--prime-space-4) var(--prime-space-3);
29
- list-style: none;
30
- }
31
-
32
- .list li {
33
- padding-block: var(--prime-space-2);
34
- border-bottom: var(--prime-border-width) solid var(--prime-color-border-subtle);
35
- }
36
-
37
- /* Dividers only between items. */
38
- .list li:last-child {
39
- border-bottom: 0;
40
- }
41
-
42
- /* chat.tsx: title, the scrolling messages and the composer in a fixed-height card. */
43
- .chat {
20
+ /* log.tsx: title, the scrolling entries in a fixed-height card. */
21
+ .log {
44
22
  display: grid;
45
- grid-template-rows: auto minmax(0, 1fr) auto;
23
+ grid-template-rows: auto minmax(0, 1fr);
46
24
  width: min(100%, calc(var(--prime-space-24) * 4));
47
25
  height: calc(var(--prime-space-24) * 3.5);
48
26
  }
49
27
 
50
- .messages {
51
- padding-top: var(--prime-space-2);
28
+ .entries {
29
+ min-height: 0;
52
30
  }
53
31
 
54
- /* Older messages loading: lines in the messages' geometry, at the top where they will appear. */
32
+ /* Older entries loading: lines in the entries' geometry, at the top where they will appear. */
55
33
  .older {
56
34
  margin: 0 var(--prime-space-4) var(--prime-space-2);
57
35
  }
58
36
 
59
- .composer {
60
- display: flex;
61
- align-items: center;
62
- gap: var(--prime-space-2);
63
- padding: var(--prime-space-3) var(--prime-space-4);
64
- }
65
-
66
- .composerField {
67
- flex: 1 1 auto;
68
- min-width: 0;
69
- }
70
-
71
37
  .strip {
72
38
  display: flex;
73
39
  gap: var(--prime-space-2);
@@ -77,7 +43,7 @@
77
43
 
78
44
  /* Two-axis scroller: the side padding lives on the scrolling element itself (foundation §7). */
79
45
  .canvas {
80
- padding: 0 var(--prime-space-4) var(--prime-space-3);
46
+ padding: var(--prime-space-3) var(--prime-space-4);
81
47
  }
82
48
 
83
49
  .grid {
@@ -89,28 +55,16 @@
89
55
 
90
56
  .cell {
91
57
  padding: var(--prime-space-2);
92
- border-radius: var(--prime-radius-s);
93
- background: var(--prime-color-fill-subtle);
94
- font-variant-numeric: tabular-nums;
95
- }
96
-
97
- /* lock.tsx: the title and the review button in one row above the queue. */
98
- .cardHeader {
99
- display: flex;
100
- align-items: center;
101
- justify-content: space-between;
102
- gap: var(--prime-space-3);
103
- padding: var(--prime-space-3) var(--prime-space-4);
104
58
  }
105
59
 
106
- /* snap.tsx: a row of fixed-width cards; the padding keeps the edge cards' rings unclipped. */
60
+ /* snap.tsx: a row of fixed-width cards (a flex row: its items draw no list markers); the padding
61
+ keeps the edge cards' rings unclipped. */
107
62
  .tiles {
108
63
  display: flex;
109
64
  gap: var(--prime-space-3);
110
65
  width: max-content;
111
66
  margin: 0;
112
67
  padding: var(--prime-space-1);
113
- list-style: none;
114
68
  }
115
69
 
116
70
  .tile {
@@ -124,16 +78,5 @@
124
78
  flex-direction: column;
125
79
  gap: var(--prime-space-1);
126
80
  margin: 0;
127
- padding: 0 var(--prime-space-3) var(--prime-space-3);
128
- list-style: none;
129
- }
130
-
131
- .task {
132
- display: flex;
133
- align-items: center;
134
- min-height: var(--prime-space-10);
135
- padding-inline: var(--prime-space-3);
136
- border-radius: var(--prime-radius-m);
137
- background: var(--prime-color-fill-muted);
138
- cursor: grab;
81
+ padding: var(--prime-space-3);
139
82
  }