prime-ui-kit 0.15.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 (1105) hide show
  1. package/README.md +72 -63
  2. package/dist/chunks/{chunk-XJAVS6FH.js → chunk-4PSQ64S4.js} +3094 -1750
  3. package/dist/chunks/{chunk-THFZIHKU.js → chunk-6TPHKCUJ.js} +9392 -9225
  4. package/dist/chunks/{chunk-6TI4DSM5.js → chunk-A7OQWH6R.js} +1 -1
  5. package/dist/chunks/{chunk-2IKH55MI.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 +152 -41
  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 +66 -7
  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 +59 -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 +29 -20
  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 +2 -2
  226. package/dist/layout/sidebar/Sidebar.d.ts +232 -101
  227. package/dist/skill/SKILL.md +10 -10
  228. package/dist/skill/anti-slop.md +105 -24
  229. package/dist/skill/api-contract.md +115 -35
  230. package/dist/skill/cheatsheet.md +37 -37
  231. package/dist/skill/checklist.md +57 -89
  232. package/dist/skill/choosing.md +23 -25
  233. package/dist/skill/components.md +50 -48
  234. package/dist/skill/composition.md +68 -58
  235. package/dist/skill/foundations.md +31 -24
  236. package/dist/skill/layouts.md +81 -83
  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 +4 -4
  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/controlled.tsx +32 -0
  253. package/dist/skill/reference/components/badge/examples/examples.module.css +2 -2
  254. package/dist/skill/reference/components/badge/examples/filter-values.tsx +4 -6
  255. package/dist/skill/reference/components/badge/examples/in-controls.tsx +1 -1
  256. package/dist/skill/reference/components/badge/examples/overview.tsx +6 -5
  257. package/dist/skill/reference/components/badge/examples/square.tsx +21 -0
  258. package/dist/skill/reference/components/badge/examples/states.tsx +4 -4
  259. package/dist/skill/reference/components/badge/examples/with-icon.tsx +10 -1
  260. package/dist/skill/reference/components/banner/COMPONENT.md +9 -5
  261. package/dist/skill/reference/components/banner/examples/dismissible.tsx +3 -19
  262. package/dist/skill/reference/components/banner/examples/overview.tsx +1 -1
  263. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +17 -11
  264. package/dist/skill/reference/components/breadcrumb/examples/examples.module.css +1 -1
  265. package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +1 -1
  266. package/dist/skill/reference/components/breadcrumb/examples/sizes.tsx +6 -8
  267. package/dist/skill/reference/components/breadcrumb/examples/with-icon.tsx +15 -8
  268. package/dist/skill/reference/components/button/COMPONENT.md +66 -30
  269. package/dist/skill/reference/components/button/examples/align.tsx +25 -0
  270. package/dist/skill/reference/components/button/examples/controlled.tsx +21 -0
  271. package/dist/skill/reference/components/button/examples/density.tsx +45 -0
  272. package/dist/skill/reference/components/button/examples/examples.module.css +14 -25
  273. package/dist/skill/reference/components/button/examples/label-morph.tsx +1 -1
  274. package/dist/skill/reference/components/button/examples/on-colored-host.tsx +19 -19
  275. package/dist/skill/reference/components/button/examples/over-media.tsx +7 -1
  276. package/dist/skill/reference/components/button/examples/toggle.tsx +2 -10
  277. package/dist/skill/reference/components/button-group/COMPONENT.md +21 -15
  278. package/dist/skill/reference/components/button-group/examples/controlled.tsx +1 -1
  279. package/dist/skill/reference/components/card/COMPONENT.md +16 -5
  280. package/dist/skill/reference/components/card/examples/content-templates.tsx +8 -2
  281. package/dist/skill/reference/components/card/examples/examples.module.css +4 -16
  282. package/dist/skill/reference/components/card/examples/overview.tsx +11 -11
  283. package/dist/skill/reference/components/card/examples/screen.tsx +9 -8
  284. package/dist/skill/reference/components/card/examples/variants.tsx +74 -47
  285. package/dist/skill/reference/components/chart-frame/COMPONENT.md +24 -28
  286. package/dist/skill/reference/components/chart-frame/examples/controlled.tsx +9 -7
  287. package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +4 -6
  288. package/dist/skill/reference/components/chart-frame/examples/narrow.tsx +24 -5
  289. package/dist/skill/reference/components/chart-frame/examples/overview.tsx +5 -2
  290. package/dist/skill/reference/components/chart-frame/examples/states.tsx +72 -64
  291. package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +27 -26
  292. package/dist/skill/reference/components/chat/COMPONENT.md +35 -22
  293. package/dist/skill/reference/components/chat/examples/group-chat.tsx +2 -2
  294. package/dist/skill/reference/components/chat/examples/overview.tsx +119 -130
  295. package/dist/skill/reference/components/chat/examples/reactions.tsx +18 -23
  296. package/dist/skill/reference/components/chat/examples/screen.tsx +108 -131
  297. package/dist/skill/reference/components/chat/examples/states.tsx +23 -22
  298. package/dist/skill/reference/components/chat-list/COMPONENT.md +10 -5
  299. package/dist/skill/reference/components/chat-list/examples/examples.module.css +0 -8
  300. package/dist/skill/reference/components/chat-list/examples/live.tsx +29 -22
  301. package/dist/skill/reference/components/chat-list/examples/sizes.tsx +6 -8
  302. package/dist/skill/reference/components/chat-list/examples/states.tsx +42 -38
  303. package/dist/skill/reference/components/checkbox/COMPONENT.md +27 -14
  304. package/dist/skill/reference/components/checkbox/examples/controlled.tsx +18 -16
  305. package/dist/skill/reference/components/checkbox/examples/examples.module.css +14 -56
  306. package/dist/skill/reference/components/checkbox/examples/in-form.tsx +16 -16
  307. package/dist/skill/reference/components/checkbox/examples/indicator.tsx +19 -64
  308. package/dist/skill/reference/components/checkbox/examples/overview.tsx +1 -1
  309. package/dist/skill/reference/components/checkbox/examples/states.tsx +1 -1
  310. package/dist/skill/reference/components/checkbox/examples/without-label.tsx +1 -1
  311. package/dist/skill/reference/components/code-block/COMPONENT.md +16 -12
  312. package/dist/skill/reference/components/code-block/examples/examples.module.css +5 -2
  313. package/dist/skill/reference/components/code-block/examples/narrow.tsx +1 -1
  314. package/dist/skill/reference/components/color-field/COMPONENT.md +15 -9
  315. package/dist/skill/reference/components/color-field/examples/examples.module.css +4 -5
  316. package/dist/skill/reference/components/color-field/examples/in-form.tsx +15 -13
  317. package/dist/skill/reference/components/color-field/examples/sizes.tsx +5 -1
  318. package/dist/skill/reference/components/color-field/examples/states.tsx +15 -3
  319. package/dist/skill/reference/components/color-picker/COMPONENT.md +55 -19
  320. package/dist/skill/reference/components/color-picker/examples/controlled.tsx +16 -5
  321. package/dist/skill/reference/components/color-picker/examples/examples.module.css +6 -7
  322. package/dist/skill/reference/components/color-picker/examples/in-form.tsx +24 -22
  323. package/dist/skill/reference/components/color-picker/examples/overview.tsx +1 -1
  324. package/dist/skill/reference/components/color-picker/examples/panel.tsx +1 -1
  325. package/dist/skill/reference/components/color-picker/examples/sizes.tsx +9 -11
  326. package/dist/skill/reference/components/color-picker/examples/states.tsx +28 -23
  327. package/dist/skill/reference/components/color-swatches/COMPONENT.md +22 -8
  328. package/dist/skill/reference/components/color-swatches/examples/examples.module.css +3 -4
  329. package/dist/skill/reference/components/color-swatches/examples/in-form.tsx +19 -17
  330. package/dist/skill/reference/components/color-swatches/examples/palette.tsx +24 -0
  331. package/dist/skill/reference/components/color-swatches/examples/wrapping.tsx +17 -2
  332. package/dist/skill/reference/components/command-menu/COMPONENT.md +60 -20
  333. package/dist/skill/reference/components/command-menu/examples/sizes.tsx +20 -15
  334. package/dist/skill/reference/components/command-menu/examples/states.tsx +46 -24
  335. package/dist/skill/reference/components/composer/COMPONENT.md +42 -24
  336. package/dist/skill/reference/components/composer/examples/examples.module.css +0 -9
  337. package/dist/skill/reference/components/composer/examples/narrow.tsx +1 -1
  338. package/dist/skill/reference/components/composer/examples/reply-edit.tsx +3 -3
  339. package/dist/skill/reference/components/composer/examples/sizes.tsx +3 -5
  340. package/dist/skill/reference/components/composer/examples/states.tsx +4 -6
  341. package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +26 -13
  342. package/dist/skill/reference/components/confirm-dialog/examples/dismiss.tsx +27 -0
  343. package/dist/skill/reference/components/confirm-dialog/examples/failure.tsx +9 -16
  344. package/dist/skill/reference/components/crossfade/COMPONENT.md +11 -5
  345. package/dist/skill/reference/components/crossfade/examples/examples.module.css +1 -40
  346. package/dist/skill/reference/components/crossfade/examples/fill.tsx +16 -19
  347. package/dist/skill/reference/components/crossfade/examples/overview.tsx +14 -16
  348. package/dist/skill/reference/components/crossfade/examples/record-switch.tsx +6 -11
  349. package/dist/skill/reference/components/crossfade/examples/screen.module.css +1 -24
  350. package/dist/skill/reference/components/crossfade/examples/screen.tsx +14 -25
  351. package/dist/skill/reference/components/data-table/COMPONENT.md +31 -21
  352. package/dist/skill/reference/components/data-table/examples/controlled.tsx +14 -2
  353. package/dist/skill/reference/components/data-table/examples/examples.module.css +1 -9
  354. package/dist/skill/reference/components/data-table/examples/narrow.tsx +5 -1
  355. package/dist/skill/reference/components/data-table/examples/row-link.tsx +2 -1
  356. package/dist/skill/reference/components/data-table/examples/screen.module.css +2 -2
  357. package/dist/skill/reference/components/data-table/examples/screen.tsx +11 -10
  358. package/dist/skill/reference/components/data-table/examples/sizes.tsx +17 -17
  359. package/dist/skill/reference/components/data-table/examples/states.tsx +37 -29
  360. package/dist/skill/reference/components/datepicker/COMPONENT.md +53 -22
  361. package/dist/skill/reference/components/datepicker/examples/dismiss.tsx +15 -0
  362. package/dist/skill/reference/components/datepicker/examples/examples.module.css +3 -2
  363. package/dist/skill/reference/components/datepicker/examples/in-form.tsx +33 -25
  364. package/dist/skill/reference/components/datepicker/examples/sizes.tsx +2 -2
  365. package/dist/skill/reference/components/datepicker/examples/states.tsx +2 -2
  366. package/dist/skill/reference/components/datepicker/examples/validation.tsx +3 -3
  367. package/dist/skill/reference/components/description-list/COMPONENT.md +24 -9
  368. package/dist/skill/reference/components/description-list/examples/examples.module.css +4 -24
  369. package/dist/skill/reference/components/description-list/examples/narrow.tsx +1 -1
  370. package/dist/skill/reference/components/description-list/examples/screen.module.css +0 -18
  371. package/dist/skill/reference/components/description-list/examples/screen.tsx +19 -27
  372. package/dist/skill/reference/components/description-list/examples/sizes.tsx +2 -4
  373. package/dist/skill/reference/components/description-list/examples/structure.tsx +6 -7
  374. package/dist/skill/reference/components/description-list/examples/totals.tsx +40 -0
  375. package/dist/skill/reference/components/digit-input/COMPONENT.md +12 -6
  376. package/dist/skill/reference/components/digit-input/examples/examples.module.css +2 -2
  377. package/dist/skill/reference/components/digit-input/examples/in-form.tsx +1 -1
  378. package/dist/skill/reference/components/digit-input/examples/sizes.tsx +5 -3
  379. package/dist/skill/reference/components/digit-input/examples/states.tsx +14 -6
  380. package/dist/skill/reference/components/divider/COMPONENT.md +26 -12
  381. package/dist/skill/reference/components/divider/examples/align.tsx +2 -4
  382. package/dist/skill/reference/components/divider/examples/examples.module.css +13 -17
  383. package/dist/skill/reference/components/divider/examples/or-separator.tsx +3 -5
  384. package/dist/skill/reference/components/divider/examples/overview.tsx +18 -16
  385. package/dist/skill/reference/components/divider/examples/vertical.tsx +5 -1
  386. package/dist/skill/reference/components/divider/examples/with-icon.tsx +1 -1
  387. package/dist/skill/reference/components/dnd/COMPONENT.md +52 -34
  388. package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +1 -1
  389. package/dist/skill/reference/components/dnd/examples/examples.module.css +4 -6
  390. package/dist/skill/reference/components/dnd/examples/states.tsx +41 -35
  391. package/dist/skill/reference/components/drawer/COMPONENT.md +37 -14
  392. package/dist/skill/reference/components/drawer/examples/guard.tsx +1 -3
  393. package/dist/skill/reference/components/drawer/examples/header-actions.tsx +1 -1
  394. package/dist/skill/reference/components/drawer/examples/in-form.tsx +31 -31
  395. package/dist/skill/reference/components/drawer/examples/placement.tsx +31 -26
  396. package/dist/skill/reference/components/drawer/examples/sizes.tsx +32 -27
  397. package/dist/skill/reference/components/dropdown/COMPONENT.md +58 -23
  398. package/dist/skill/reference/components/dropdown/examples/context-menu.tsx +75 -0
  399. package/dist/skill/reference/components/dropdown/examples/examples.module.css +1 -1
  400. package/dist/skill/reference/components/dropdown/examples/sizes.tsx +39 -34
  401. package/dist/skill/reference/components/dropdown/examples/states.tsx +37 -29
  402. package/dist/skill/reference/components/empty-page/COMPONENT.md +20 -9
  403. package/dist/skill/reference/components/empty-page/examples/compact.tsx +28 -18
  404. package/dist/skill/reference/components/empty-page/examples/examples.module.css +0 -43
  405. package/dist/skill/reference/components/empty-page/examples/narrow.tsx +3 -3
  406. package/dist/skill/reference/components/empty-page/examples/region-error.tsx +6 -11
  407. package/dist/skill/reference/components/empty-page/examples/sizes.tsx +13 -13
  408. package/dist/skill/reference/components/empty-page/examples/variants.tsx +34 -30
  409. package/dist/skill/reference/components/example-frame/COMPONENT.md +21 -9
  410. package/dist/skill/reference/components/example-frame/examples/controlled.tsx +3 -3
  411. package/dist/skill/reference/components/field-list/COMPONENT.md +14 -8
  412. package/dist/skill/reference/components/field-list/examples/sizes.tsx +32 -26
  413. package/dist/skill/reference/components/field-list/examples/states.tsx +37 -31
  414. package/dist/skill/reference/components/fieldset/COMPONENT.md +10 -5
  415. package/dist/skill/reference/components/fieldset/examples/examples.module.css +1 -1
  416. package/dist/skill/reference/components/file-upload/COMPONENT.md +67 -29
  417. package/dist/skill/reference/components/file-upload/examples/avatar-upload.tsx +5 -5
  418. package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +12 -7
  419. package/dist/skill/reference/components/file-upload/examples/examples.module.css +4 -4
  420. package/dist/skill/reference/components/file-upload/examples/narrow.tsx +1 -1
  421. package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +4 -4
  422. package/dist/skill/reference/components/file-upload/examples/screen.module.css +2 -2
  423. package/dist/skill/reference/components/file-upload/examples/screen.tsx +6 -4
  424. package/dist/skill/reference/components/file-upload/examples/sizes.tsx +1 -3
  425. package/dist/skill/reference/components/file-upload/examples/states.tsx +1 -3
  426. package/dist/skill/reference/components/file-upload/examples/variants.tsx +13 -7
  427. package/dist/skill/reference/components/gallery/COMPONENT.md +16 -7
  428. package/dist/skill/reference/components/gallery/examples/album-sizes.tsx +52 -0
  429. package/dist/skill/reference/components/gallery/examples/controlled.tsx +40 -0
  430. package/dist/skill/reference/components/gallery/examples/examples.module.css +1 -1
  431. package/dist/skill/reference/components/gallery/examples/overview.tsx +15 -43
  432. package/dist/skill/reference/components/gallery/examples/transfer.tsx +22 -13
  433. package/dist/skill/reference/components/gantt/COMPONENT.md +21 -15
  434. package/dist/skill/reference/components/gantt/examples/examples.module.css +0 -16
  435. package/dist/skill/reference/components/gantt/examples/occupancy.tsx +2 -2
  436. package/dist/skill/reference/components/gantt/examples/screen.tsx +2 -2
  437. package/dist/skill/reference/components/gantt/examples/sizes.tsx +16 -16
  438. package/dist/skill/reference/components/gantt/examples/states.tsx +34 -30
  439. package/dist/skill/reference/components/gantt/examples/variants.tsx +27 -25
  440. package/dist/skill/reference/components/hint/COMPONENT.md +24 -14
  441. package/dist/skill/reference/components/hint/examples/examples.module.css +1 -1
  442. package/dist/skill/reference/components/hint/examples/hint-or-error.tsx +2 -2
  443. package/dist/skill/reference/components/hint/examples/overview.tsx +9 -10
  444. package/dist/skill/reference/components/hint/examples/sizes.tsx +1 -1
  445. package/dist/skill/reference/components/input/COMPONENT.md +10 -6
  446. package/dist/skill/reference/components/input/examples/affixes.tsx +2 -2
  447. package/dist/skill/reference/components/input/examples/examples.module.css +1 -1
  448. package/dist/skill/reference/components/input/examples/sizes.tsx +9 -5
  449. package/dist/skill/reference/components/input/examples/states.tsx +39 -23
  450. package/dist/skill/reference/components/input/examples/with-icon.tsx +24 -16
  451. package/dist/skill/reference/components/kanban/COMPONENT.md +30 -24
  452. package/dist/skill/reference/components/kanban/examples/columns.tsx +14 -19
  453. package/dist/skill/reference/components/kanban/examples/item-link.tsx +2 -2
  454. package/dist/skill/reference/components/kanban/examples/limits.tsx +1 -1
  455. package/dist/skill/reference/components/kanban/examples/narrow.tsx +1 -1
  456. package/dist/skill/reference/components/kanban/examples/screen.module.css +1 -3
  457. package/dist/skill/reference/components/kanban/examples/screen.tsx +6 -4
  458. package/dist/skill/reference/components/kanban/examples/states.tsx +37 -58
  459. package/dist/skill/reference/components/kanban/examples/variants.tsx +0 -3
  460. package/dist/skill/reference/components/kbd/COMPONENT.md +10 -6
  461. package/dist/skill/reference/components/kbd/examples/examples.module.css +1 -20
  462. package/dist/skill/reference/components/kbd/examples/in-controls.tsx +2 -2
  463. package/dist/skill/reference/components/kbd/examples/shortcut-list.tsx +14 -26
  464. package/dist/skill/reference/components/label/COMPONENT.md +26 -11
  465. package/dist/skill/reference/components/label/examples/examples.module.css +3 -11
  466. package/dist/skill/reference/components/label/examples/overview.tsx +5 -9
  467. package/dist/skill/reference/components/label/examples/structure.tsx +2 -2
  468. package/dist/skill/reference/components/link-button/COMPONENT.md +33 -20
  469. package/dist/skill/reference/components/link-button/examples/as-child.tsx +1 -1
  470. package/dist/skill/reference/components/link-button/examples/external-link.tsx +1 -1
  471. package/dist/skill/reference/components/link-button/examples/overview.tsx +4 -2
  472. package/dist/skill/reference/components/link-button/examples/variants.tsx +2 -2
  473. package/dist/skill/reference/components/list/COMPONENT.md +24 -16
  474. package/dist/skill/reference/components/list/examples/examples.module.css +0 -8
  475. package/dist/skill/reference/components/list/examples/overflow.tsx +1 -1
  476. package/dist/skill/reference/components/list/examples/overview.tsx +31 -30
  477. package/dist/skill/reference/components/list/examples/sizes.tsx +23 -23
  478. package/dist/skill/reference/components/list/examples/states.tsx +38 -21
  479. package/dist/skill/reference/components/list/examples/with-icon.tsx +16 -14
  480. package/dist/skill/reference/components/login-form/COMPONENT.md +69 -16
  481. package/dist/skill/reference/components/login-form/examples/narrow.tsx +1 -1
  482. package/dist/skill/reference/components/login-form/examples/register.tsx +1 -1
  483. package/dist/skill/reference/components/media-viewer/COMPONENT.md +12 -8
  484. package/dist/skill/reference/components/media-viewer/examples/examples.module.css +2 -2
  485. package/dist/skill/reference/components/media-viewer/examples/video.tsx +1 -1
  486. package/dist/skill/reference/components/message/COMPONENT.md +102 -46
  487. package/dist/skill/reference/components/message/examples/typing.tsx +5 -5
  488. package/dist/skill/reference/components/modal/COMPONENT.md +71 -37
  489. package/dist/skill/reference/components/modal/examples/dismiss.tsx +35 -27
  490. package/dist/skill/reference/components/modal/examples/enter-key.tsx +22 -25
  491. package/dist/skill/reference/components/modal/examples/examples.module.css +0 -7
  492. package/dist/skill/reference/components/modal/examples/guard.tsx +2 -4
  493. package/dist/skill/reference/components/modal/examples/in-form.tsx +28 -28
  494. package/dist/skill/reference/components/modal/examples/long-content.tsx +6 -4
  495. package/dist/skill/reference/components/modal/examples/sizes.tsx +36 -31
  496. package/dist/skill/reference/components/modal/examples/structure.tsx +1 -1
  497. package/dist/skill/reference/components/native-select/COMPONENT.md +7 -3
  498. package/dist/skill/reference/components/native-select/examples/examples.module.css +3 -3
  499. package/dist/skill/reference/components/native-select/examples/in-form.tsx +28 -29
  500. package/dist/skill/reference/components/native-select/examples/sizes.tsx +2 -2
  501. package/dist/skill/reference/components/native-select/examples/states.tsx +2 -2
  502. package/dist/skill/reference/components/notification/COMPONENT.md +36 -31
  503. package/dist/skill/reference/components/notification/examples/examples.module.css +1 -2
  504. package/dist/skill/reference/components/notification/examples/in-form.tsx +28 -20
  505. package/dist/skill/reference/components/notification/examples/sizes.tsx +16 -12
  506. package/dist/skill/reference/components/notification/examples/undo.tsx +7 -15
  507. package/dist/skill/reference/components/page-content/COMPONENT.md +21 -29
  508. package/dist/skill/reference/components/page-content/examples/examples.module.css +3 -16
  509. package/dist/skill/reference/components/page-content/examples/grid.tsx +3 -1
  510. package/dist/skill/reference/components/page-content/examples/list-detail.tsx +55 -49
  511. package/dist/skill/reference/components/page-content/examples/narrow.tsx +1 -1
  512. package/dist/skill/reference/components/page-content/examples/overview.tsx +2 -2
  513. package/dist/skill/reference/components/page-content/examples/variants.tsx +7 -7
  514. package/dist/skill/reference/components/page-toolbar/COMPONENT.md +10 -6
  515. package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +1 -1
  516. package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +25 -22
  517. package/dist/skill/reference/components/pagination/COMPONENT.md +20 -17
  518. package/dist/skill/reference/components/pagination/examples/narrow.tsx +5 -5
  519. package/dist/skill/reference/components/popover/COMPONENT.md +43 -20
  520. package/dist/skill/reference/components/popover/examples/controlled-open.tsx +6 -4
  521. package/dist/skill/reference/components/popover/examples/dismiss.tsx +37 -28
  522. package/dist/skill/reference/components/popover/examples/examples.module.css +2 -2
  523. package/dist/skill/reference/components/popover/examples/sizes.tsx +32 -27
  524. package/dist/skill/reference/components/popover/examples/width.tsx +45 -0
  525. package/dist/skill/reference/components/progress-bar/COMPONENT.md +21 -29
  526. package/dist/skill/reference/components/progress-bar/examples/examples.module.css +1 -1
  527. package/dist/skill/reference/components/progress-circle/COMPONENT.md +21 -29
  528. package/dist/skill/reference/components/progress-circle/examples/examples.module.css +1 -1
  529. package/dist/skill/reference/components/progress-circle/examples/on-color.tsx +16 -0
  530. package/dist/skill/reference/components/progress-circle/examples/variants.tsx +1 -0
  531. package/dist/skill/reference/components/radio/COMPONENT.md +13 -4
  532. package/dist/skill/reference/components/radio/examples/examples.module.css +1 -1
  533. package/dist/skill/reference/components/scroll-container/COMPONENT.md +18 -12
  534. package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +8 -4
  535. package/dist/skill/reference/components/scroll-container/examples/edges.tsx +4 -4
  536. package/dist/skill/reference/components/scroll-container/examples/examples.module.css +7 -51
  537. package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +4 -4
  538. package/dist/skill/reference/components/scroll-container/examples/lock.tsx +4 -4
  539. package/dist/skill/reference/components/scroll-container/examples/log.tsx +97 -0
  540. package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +4 -4
  541. package/dist/skill/reference/components/scroll-container/examples/overview.tsx +5 -5
  542. package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +4 -4
  543. package/dist/skill/reference/components/scroll-container/examples/snap.tsx +2 -2
  544. package/dist/skill/reference/components/scroll-container/examples/variants.tsx +1 -0
  545. package/dist/skill/reference/components/segmented-control/COMPONENT.md +24 -12
  546. package/dist/skill/reference/components/segmented-control/examples/controlled.tsx +2 -4
  547. package/dist/skill/reference/components/segmented-control/examples/examples.module.css +0 -8
  548. package/dist/skill/reference/components/segmented-control/examples/scroll.tsx +1 -1
  549. package/dist/skill/reference/components/select/COMPONENT.md +33 -9
  550. package/dist/skill/reference/components/select/examples/dismiss.tsx +26 -0
  551. package/dist/skill/reference/components/select/examples/examples.module.css +1 -1
  552. package/dist/skill/reference/components/select/examples/server-search.tsx +6 -2
  553. package/dist/skill/reference/components/select/examples/sizes.tsx +2 -2
  554. package/dist/skill/reference/components/select/examples/states.tsx +2 -2
  555. package/dist/skill/reference/components/select/examples/with-icon.tsx +20 -18
  556. package/dist/skill/reference/components/sheet/COMPONENT.md +44 -21
  557. package/dist/skill/reference/components/sheet/examples/header-actions.tsx +23 -4
  558. package/dist/skill/reference/components/sheet/examples/overview.tsx +25 -10
  559. package/dist/skill/reference/components/skeleton/COMPONENT.md +8 -4
  560. package/dist/skill/reference/components/skeleton/examples/examples.module.css +1 -13
  561. package/dist/skill/reference/components/skeleton/examples/with-crossfade.tsx +7 -7
  562. package/dist/skill/reference/components/slider/COMPONENT.md +10 -5
  563. package/dist/skill/reference/components/slider/examples/examples.module.css +6 -7
  564. package/dist/skill/reference/components/slider/examples/hint-and-error.tsx +3 -5
  565. package/dist/skill/reference/components/slider/examples/in-form.tsx +21 -19
  566. package/dist/skill/reference/components/smart-filter/COMPONENT.md +32 -12
  567. package/dist/skill/reference/components/smart-filter/examples/examples.module.css +0 -21
  568. package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +2 -1
  569. package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +2 -4
  570. package/dist/skill/reference/components/sparkline/COMPONENT.md +7 -3
  571. package/dist/skill/reference/components/sparkline/examples/examples.module.css +1 -1
  572. package/dist/skill/reference/components/sparkline/examples/signed-bars.tsx +2 -2
  573. package/dist/skill/reference/components/spinner/COMPONENT.md +15 -9
  574. package/dist/skill/reference/components/spinner/examples/examples.module.css +2 -14
  575. package/dist/skill/reference/components/spinner/examples/overview.tsx +1 -1
  576. package/dist/skill/reference/components/stepper/COMPONENT.md +50 -41
  577. package/dist/skill/reference/components/stepper/examples/examples.module.css +1 -6
  578. package/dist/skill/reference/components/stepper/examples/narrow.tsx +1 -1
  579. package/dist/skill/reference/components/stepper/examples/sizes.tsx +6 -8
  580. package/dist/skill/reference/components/stepper/examples/states.tsx +44 -43
  581. package/dist/skill/reference/components/stepper/examples/with-icon.tsx +19 -17
  582. package/dist/skill/reference/components/switch/COMPONENT.md +21 -8
  583. package/dist/skill/reference/components/switch/examples/examples.module.css +2 -2
  584. package/dist/skill/reference/components/switch/examples/states.tsx +3 -3
  585. package/dist/skill/reference/components/tabs/COMPONENT.md +21 -16
  586. package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +1 -1
  587. package/dist/skill/reference/components/tabs/examples/sizes.tsx +5 -10
  588. package/dist/skill/reference/components/tabs/examples/variants.tsx +19 -23
  589. package/dist/skill/reference/components/tag-select/COMPONENT.md +19 -6
  590. package/dist/skill/reference/components/tag-select/examples/creatable.tsx +2 -2
  591. package/dist/skill/reference/components/tag-select/examples/dismiss.tsx +23 -0
  592. package/dist/skill/reference/components/tag-select/examples/examples.module.css +3 -3
  593. package/dist/skill/reference/components/tag-select/examples/in-form.tsx +31 -32
  594. package/dist/skill/reference/components/tag-select/examples/sizes.tsx +2 -2
  595. package/dist/skill/reference/components/tag-select/examples/states.tsx +2 -2
  596. package/dist/skill/reference/components/textarea/COMPONENT.md +10 -6
  597. package/dist/skill/reference/components/textarea/examples/examples.module.css +3 -10
  598. package/dist/skill/reference/components/textarea/examples/in-form.tsx +3 -3
  599. package/dist/skill/reference/components/textarea/examples/sizes.tsx +10 -7
  600. package/dist/skill/reference/components/textarea/examples/states.tsx +29 -13
  601. package/dist/skill/reference/components/textarea/examples/validation.tsx +45 -36
  602. package/dist/skill/reference/components/thumbnail/COMPONENT.md +17 -13
  603. package/dist/skill/reference/components/thumbnail/examples/examples.module.css +1 -1
  604. package/dist/skill/reference/components/thumbnail/examples/states.tsx +1 -1
  605. package/dist/skill/reference/components/thumbnail/examples/variants.tsx +12 -1
  606. package/dist/skill/reference/components/timeline/COMPONENT.md +51 -35
  607. package/dist/skill/reference/components/timeline/examples/links.tsx +14 -14
  608. package/dist/skill/reference/components/timeline/examples/narrow.tsx +6 -6
  609. package/dist/skill/reference/components/timeline/examples/overview.tsx +6 -6
  610. package/dist/skill/reference/components/timeline/examples/sizes.tsx +28 -23
  611. package/dist/skill/reference/components/timeline/examples/structure.tsx +30 -30
  612. package/dist/skill/reference/components/timeline/examples/variants.tsx +40 -28
  613. package/dist/skill/reference/components/tooltip/COMPONENT.md +10 -6
  614. package/dist/skill/reference/components/tooltip/examples/examples.module.css +1 -5
  615. package/dist/skill/reference/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  616. package/dist/skill/reference/components/tooltip/examples/sizes.tsx +17 -10
  617. package/dist/skill/reference/components/typography/COMPONENT.md +17 -2
  618. package/dist/skill/reference/components/typography/examples/examples.module.css +3 -6
  619. package/dist/skill/reference/components/typography/examples/numeric.tsx +16 -0
  620. package/dist/skill/reference/components/video-note/COMPONENT.md +11 -7
  621. package/dist/skill/reference/components/visually-hidden/COMPONENT.md +8 -4
  622. package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +1 -1
  623. package/dist/skill/reference/components/visually-hidden/examples/overview.tsx +17 -7
  624. package/dist/skill/reference/components/voice-player/COMPONENT.md +15 -7
  625. package/dist/skill/reference/foundation.md +564 -0
  626. package/dist/skill/reference/layout/app-header/COMPONENT.md +27 -26
  627. package/dist/skill/reference/layout/app-header/examples/examples.module.css +4 -23
  628. package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +3 -5
  629. package/dist/skill/reference/layout/app-header/examples/narrow.tsx +58 -20
  630. package/dist/skill/reference/layout/app-shell/COMPONENT.md +40 -10
  631. package/dist/skill/reference/layout/app-shell/examples/examples.module.css +2 -22
  632. package/dist/skill/reference/layout/app-shell/examples/footer.tsx +2 -2
  633. package/dist/skill/reference/layout/app-shell/examples/overview.tsx +3 -5
  634. package/dist/skill/reference/layout/app-shell/examples/screen.tsx +27 -21
  635. package/dist/skill/reference/layout/app-shell/examples/template.tsx +3 -3
  636. package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +27 -17
  637. package/dist/skill/reference/layout/bottom-nav/examples/examples.module.css +2 -7
  638. package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +2 -2
  639. package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +2 -2
  640. package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
  641. package/dist/skill/reference/layout/bottom-nav/examples/router.tsx +6 -5
  642. package/dist/skill/reference/layout/sidebar/COMPONENT.md +50 -40
  643. package/dist/skill/reference/layout/sidebar/examples/account.tsx +1 -3
  644. package/dist/skill/reference/layout/sidebar/examples/brand-header.tsx +1 -3
  645. package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +1 -3
  646. package/dist/skill/reference/layout/sidebar/examples/controlled-open.tsx +1 -3
  647. package/dist/skill/reference/layout/sidebar/examples/controlled.tsx +1 -3
  648. package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +1 -3
  649. package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +47 -0
  650. package/dist/skill/reference/layout/sidebar/examples/examples.module.css +7 -32
  651. package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +44 -42
  652. package/dist/skill/reference/layout/sidebar/examples/nested-items.tsx +1 -3
  653. package/dist/skill/reference/layout/sidebar/examples/overview.tsx +1 -3
  654. package/dist/skill/reference/layout/sidebar/examples/persist.tsx +1 -3
  655. package/dist/skill/reference/layout/sidebar/examples/router.tsx +12 -13
  656. package/dist/skill/reference/layout/sidebar/examples/sizes.tsx +6 -6
  657. package/dist/skill/responsive.md +48 -51
  658. package/dist/skill/ux.md +21 -9
  659. package/dist/theme/applyTheme.d.ts +7 -6
  660. package/dist/tokens/hues.d.ts +8 -0
  661. package/dist/tokens/layers.d.ts +3 -16
  662. package/dist/tokens/offGrid.d.ts +7 -0
  663. package/dist/tokens/primitives.d.ts +22 -7
  664. package/dist/tokens/semantic.d.ts +201 -51
  665. package/dist/tokens/themes/dark.d.ts +32 -31
  666. package/package.json +5 -3
  667. package/src/components/accordion/COMPONENT.md +16 -9
  668. package/src/components/accordion/examples/overview.tsx +2 -2
  669. package/src/components/accordion/examples/sizes.tsx +6 -8
  670. package/src/components/accordion/examples/states.tsx +27 -24
  671. package/src/components/accordion/examples/variants.tsx +6 -8
  672. package/src/components/accordion/examples/with-icon.tsx +22 -19
  673. package/src/components/avatar/COMPONENT.md +23 -16
  674. package/src/components/avatar/examples/examples.module.css +1 -4
  675. package/src/components/avatar/examples/overview.tsx +3 -3
  676. package/src/components/avatar/examples/presence.tsx +4 -4
  677. package/src/components/avatar/examples/src-from-state.tsx +3 -3
  678. package/src/components/avatar/examples/states.tsx +4 -4
  679. package/src/components/avatar/examples/team-group.tsx +2 -2
  680. package/src/components/badge/COMPONENT.md +66 -34
  681. package/src/components/badge/examples/controlled.tsx +32 -0
  682. package/src/components/badge/examples/examples.module.css +2 -2
  683. package/src/components/badge/examples/filter-values.tsx +4 -6
  684. package/src/components/badge/examples/in-controls.tsx +1 -1
  685. package/src/components/badge/examples/overview.tsx +6 -5
  686. package/src/components/badge/examples/square.tsx +21 -0
  687. package/src/components/badge/examples/states.tsx +4 -4
  688. package/src/components/badge/examples/with-icon.tsx +10 -1
  689. package/src/components/banner/COMPONENT.md +9 -5
  690. package/src/components/banner/examples/dismissible.tsx +3 -19
  691. package/src/components/banner/examples/overview.tsx +1 -1
  692. package/src/components/breadcrumb/COMPONENT.md +17 -11
  693. package/src/components/breadcrumb/examples/examples.module.css +1 -1
  694. package/src/components/breadcrumb/examples/overflow.tsx +1 -1
  695. package/src/components/breadcrumb/examples/sizes.tsx +6 -8
  696. package/src/components/breadcrumb/examples/with-icon.tsx +15 -8
  697. package/src/components/button/COMPONENT.md +66 -30
  698. package/src/components/button/examples/align.tsx +25 -0
  699. package/src/components/button/examples/controlled.tsx +21 -0
  700. package/src/components/button/examples/density.tsx +45 -0
  701. package/src/components/button/examples/examples.module.css +14 -25
  702. package/src/components/button/examples/label-morph.tsx +1 -1
  703. package/src/components/button/examples/on-colored-host.tsx +19 -19
  704. package/src/components/button/examples/over-media.tsx +7 -1
  705. package/src/components/button/examples/toggle.tsx +2 -10
  706. package/src/components/button-group/COMPONENT.md +21 -15
  707. package/src/components/button-group/examples/controlled.tsx +1 -1
  708. package/src/components/card/COMPONENT.md +16 -5
  709. package/src/components/card/examples/content-templates.tsx +8 -2
  710. package/src/components/card/examples/examples.module.css +4 -16
  711. package/src/components/card/examples/overview.tsx +11 -11
  712. package/src/components/card/examples/screen.tsx +9 -8
  713. package/src/components/card/examples/variants.tsx +74 -47
  714. package/src/components/chart-frame/COMPONENT.md +24 -28
  715. package/src/components/chart-frame/examples/controlled.tsx +9 -7
  716. package/src/components/chart-frame/examples/fill-height.tsx +4 -6
  717. package/src/components/chart-frame/examples/narrow.tsx +24 -5
  718. package/src/components/chart-frame/examples/overview.tsx +5 -2
  719. package/src/components/chart-frame/examples/states.tsx +72 -64
  720. package/src/components/chart-frame/examples/tooltip.tsx +27 -26
  721. package/src/components/chat/COMPONENT.md +35 -22
  722. package/src/components/chat/examples/group-chat.tsx +2 -2
  723. package/src/components/chat/examples/overview.tsx +119 -130
  724. package/src/components/chat/examples/reactions.tsx +18 -23
  725. package/src/components/chat/examples/screen.tsx +108 -131
  726. package/src/components/chat/examples/states.tsx +23 -22
  727. package/src/components/chat-list/COMPONENT.md +10 -5
  728. package/src/components/chat-list/examples/examples.module.css +0 -8
  729. package/src/components/chat-list/examples/live.tsx +29 -22
  730. package/src/components/chat-list/examples/sizes.tsx +6 -8
  731. package/src/components/chat-list/examples/states.tsx +42 -38
  732. package/src/components/checkbox/COMPONENT.md +27 -14
  733. package/src/components/checkbox/examples/controlled.tsx +18 -16
  734. package/src/components/checkbox/examples/examples.module.css +14 -56
  735. package/src/components/checkbox/examples/in-form.tsx +16 -16
  736. package/src/components/checkbox/examples/indicator.tsx +19 -64
  737. package/src/components/checkbox/examples/overview.tsx +1 -1
  738. package/src/components/checkbox/examples/states.tsx +1 -1
  739. package/src/components/checkbox/examples/without-label.tsx +1 -1
  740. package/src/components/code-block/COMPONENT.md +16 -12
  741. package/src/components/code-block/examples/examples.module.css +5 -2
  742. package/src/components/code-block/examples/narrow.tsx +1 -1
  743. package/src/components/color-field/COMPONENT.md +15 -9
  744. package/src/components/color-field/examples/examples.module.css +4 -5
  745. package/src/components/color-field/examples/in-form.tsx +15 -13
  746. package/src/components/color-field/examples/sizes.tsx +5 -1
  747. package/src/components/color-field/examples/states.tsx +15 -3
  748. package/src/components/color-picker/COMPONENT.md +55 -19
  749. package/src/components/color-picker/examples/controlled.tsx +16 -5
  750. package/src/components/color-picker/examples/examples.module.css +6 -7
  751. package/src/components/color-picker/examples/in-form.tsx +24 -22
  752. package/src/components/color-picker/examples/overview.tsx +1 -1
  753. package/src/components/color-picker/examples/panel.tsx +1 -1
  754. package/src/components/color-picker/examples/sizes.tsx +9 -11
  755. package/src/components/color-picker/examples/states.tsx +28 -23
  756. package/src/components/color-swatches/COMPONENT.md +22 -8
  757. package/src/components/color-swatches/examples/examples.module.css +3 -4
  758. package/src/components/color-swatches/examples/in-form.tsx +19 -17
  759. package/src/components/color-swatches/examples/palette.tsx +24 -0
  760. package/src/components/color-swatches/examples/wrapping.tsx +17 -2
  761. package/src/components/command-menu/COMPONENT.md +60 -20
  762. package/src/components/command-menu/examples/sizes.tsx +20 -15
  763. package/src/components/command-menu/examples/states.tsx +46 -24
  764. package/src/components/composer/COMPONENT.md +42 -24
  765. package/src/components/composer/examples/examples.module.css +0 -9
  766. package/src/components/composer/examples/narrow.tsx +1 -1
  767. package/src/components/composer/examples/reply-edit.tsx +3 -3
  768. package/src/components/composer/examples/sizes.tsx +3 -5
  769. package/src/components/composer/examples/states.tsx +4 -6
  770. package/src/components/confirm-dialog/COMPONENT.md +26 -13
  771. package/src/components/confirm-dialog/examples/dismiss.tsx +27 -0
  772. package/src/components/confirm-dialog/examples/failure.tsx +9 -16
  773. package/src/components/crossfade/COMPONENT.md +11 -5
  774. package/src/components/crossfade/examples/examples.module.css +1 -40
  775. package/src/components/crossfade/examples/fill.tsx +16 -19
  776. package/src/components/crossfade/examples/overview.tsx +14 -16
  777. package/src/components/crossfade/examples/record-switch.tsx +6 -11
  778. package/src/components/crossfade/examples/screen.module.css +1 -24
  779. package/src/components/crossfade/examples/screen.tsx +14 -25
  780. package/src/components/data-table/COMPONENT.md +31 -21
  781. package/src/components/data-table/examples/controlled.tsx +14 -2
  782. package/src/components/data-table/examples/examples.module.css +1 -9
  783. package/src/components/data-table/examples/narrow.tsx +5 -1
  784. package/src/components/data-table/examples/row-link.tsx +2 -1
  785. package/src/components/data-table/examples/screen.module.css +2 -2
  786. package/src/components/data-table/examples/screen.tsx +11 -10
  787. package/src/components/data-table/examples/sizes.tsx +17 -17
  788. package/src/components/data-table/examples/states.tsx +37 -29
  789. package/src/components/datepicker/COMPONENT.md +53 -22
  790. package/src/components/datepicker/examples/dismiss.tsx +15 -0
  791. package/src/components/datepicker/examples/examples.module.css +3 -2
  792. package/src/components/datepicker/examples/in-form.tsx +33 -25
  793. package/src/components/datepicker/examples/sizes.tsx +2 -2
  794. package/src/components/datepicker/examples/states.tsx +2 -2
  795. package/src/components/datepicker/examples/validation.tsx +3 -3
  796. package/src/components/description-list/COMPONENT.md +24 -9
  797. package/src/components/description-list/examples/examples.module.css +4 -24
  798. package/src/components/description-list/examples/narrow.tsx +1 -1
  799. package/src/components/description-list/examples/screen.module.css +0 -18
  800. package/src/components/description-list/examples/screen.tsx +19 -27
  801. package/src/components/description-list/examples/sizes.tsx +2 -4
  802. package/src/components/description-list/examples/structure.tsx +6 -7
  803. package/src/components/description-list/examples/totals.tsx +40 -0
  804. package/src/components/digit-input/COMPONENT.md +12 -6
  805. package/src/components/digit-input/examples/examples.module.css +2 -2
  806. package/src/components/digit-input/examples/in-form.tsx +1 -1
  807. package/src/components/digit-input/examples/sizes.tsx +5 -3
  808. package/src/components/digit-input/examples/states.tsx +14 -6
  809. package/src/components/divider/COMPONENT.md +26 -12
  810. package/src/components/divider/examples/align.tsx +2 -4
  811. package/src/components/divider/examples/examples.module.css +13 -17
  812. package/src/components/divider/examples/or-separator.tsx +3 -5
  813. package/src/components/divider/examples/overview.tsx +18 -16
  814. package/src/components/divider/examples/vertical.tsx +5 -1
  815. package/src/components/divider/examples/with-icon.tsx +1 -1
  816. package/src/components/dnd/COMPONENT.md +52 -34
  817. package/src/components/dnd/examples/drop-zones.tsx +1 -1
  818. package/src/components/dnd/examples/examples.module.css +4 -6
  819. package/src/components/dnd/examples/states.tsx +41 -35
  820. package/src/components/drawer/COMPONENT.md +37 -14
  821. package/src/components/drawer/examples/guard.tsx +1 -3
  822. package/src/components/drawer/examples/header-actions.tsx +1 -1
  823. package/src/components/drawer/examples/in-form.tsx +31 -31
  824. package/src/components/drawer/examples/placement.tsx +31 -26
  825. package/src/components/drawer/examples/sizes.tsx +32 -27
  826. package/src/components/dropdown/COMPONENT.md +58 -23
  827. package/src/components/dropdown/examples/context-menu.tsx +75 -0
  828. package/src/components/dropdown/examples/examples.module.css +1 -1
  829. package/src/components/dropdown/examples/sizes.tsx +39 -34
  830. package/src/components/dropdown/examples/states.tsx +37 -29
  831. package/src/components/empty-page/COMPONENT.md +20 -9
  832. package/src/components/empty-page/examples/compact.tsx +28 -18
  833. package/src/components/empty-page/examples/examples.module.css +0 -43
  834. package/src/components/empty-page/examples/narrow.tsx +3 -3
  835. package/src/components/empty-page/examples/region-error.tsx +6 -11
  836. package/src/components/empty-page/examples/sizes.tsx +13 -13
  837. package/src/components/empty-page/examples/variants.tsx +34 -30
  838. package/src/components/example-frame/COMPONENT.md +21 -9
  839. package/src/components/example-frame/examples/controlled.tsx +3 -3
  840. package/src/components/field-list/COMPONENT.md +14 -8
  841. package/src/components/field-list/examples/sizes.tsx +32 -26
  842. package/src/components/field-list/examples/states.tsx +37 -31
  843. package/src/components/fieldset/COMPONENT.md +10 -5
  844. package/src/components/fieldset/examples/examples.module.css +1 -1
  845. package/src/components/file-upload/COMPONENT.md +67 -29
  846. package/src/components/file-upload/examples/avatar-upload.tsx +5 -5
  847. package/src/components/file-upload/examples/custom-body.tsx +12 -7
  848. package/src/components/file-upload/examples/examples.module.css +4 -4
  849. package/src/components/file-upload/examples/narrow.tsx +1 -1
  850. package/src/components/file-upload/examples/row-parts.tsx +4 -4
  851. package/src/components/file-upload/examples/screen.module.css +2 -2
  852. package/src/components/file-upload/examples/screen.tsx +6 -4
  853. package/src/components/file-upload/examples/sizes.tsx +1 -3
  854. package/src/components/file-upload/examples/states.tsx +1 -3
  855. package/src/components/file-upload/examples/variants.tsx +13 -7
  856. package/src/components/gallery/COMPONENT.md +16 -7
  857. package/src/components/gallery/examples/album-sizes.tsx +52 -0
  858. package/src/components/gallery/examples/controlled.tsx +40 -0
  859. package/src/components/gallery/examples/examples.module.css +1 -1
  860. package/src/components/gallery/examples/overview.tsx +15 -43
  861. package/src/components/gallery/examples/transfer.tsx +22 -13
  862. package/src/components/gantt/COMPONENT.md +21 -15
  863. package/src/components/gantt/examples/examples.module.css +0 -16
  864. package/src/components/gantt/examples/occupancy.tsx +2 -2
  865. package/src/components/gantt/examples/screen.tsx +2 -2
  866. package/src/components/gantt/examples/sizes.tsx +16 -16
  867. package/src/components/gantt/examples/states.tsx +34 -30
  868. package/src/components/gantt/examples/variants.tsx +27 -25
  869. package/src/components/hint/COMPONENT.md +24 -14
  870. package/src/components/hint/examples/examples.module.css +1 -1
  871. package/src/components/hint/examples/hint-or-error.tsx +2 -2
  872. package/src/components/hint/examples/overview.tsx +9 -10
  873. package/src/components/hint/examples/sizes.tsx +1 -1
  874. package/src/components/input/COMPONENT.md +10 -6
  875. package/src/components/input/examples/affixes.tsx +2 -2
  876. package/src/components/input/examples/examples.module.css +1 -1
  877. package/src/components/input/examples/sizes.tsx +9 -5
  878. package/src/components/input/examples/states.tsx +39 -23
  879. package/src/components/input/examples/with-icon.tsx +24 -16
  880. package/src/components/kanban/COMPONENT.md +30 -24
  881. package/src/components/kanban/examples/columns.tsx +14 -19
  882. package/src/components/kanban/examples/item-link.tsx +2 -2
  883. package/src/components/kanban/examples/limits.tsx +1 -1
  884. package/src/components/kanban/examples/narrow.tsx +1 -1
  885. package/src/components/kanban/examples/screen.module.css +1 -3
  886. package/src/components/kanban/examples/screen.tsx +6 -4
  887. package/src/components/kanban/examples/states.tsx +37 -58
  888. package/src/components/kanban/examples/variants.tsx +0 -3
  889. package/src/components/kbd/COMPONENT.md +10 -6
  890. package/src/components/kbd/examples/examples.module.css +1 -20
  891. package/src/components/kbd/examples/in-controls.tsx +2 -2
  892. package/src/components/kbd/examples/shortcut-list.tsx +14 -26
  893. package/src/components/label/COMPONENT.md +26 -11
  894. package/src/components/label/examples/examples.module.css +3 -11
  895. package/src/components/label/examples/overview.tsx +5 -9
  896. package/src/components/label/examples/structure.tsx +2 -2
  897. package/src/components/link-button/COMPONENT.md +33 -20
  898. package/src/components/link-button/examples/as-child.tsx +1 -1
  899. package/src/components/link-button/examples/external-link.tsx +1 -1
  900. package/src/components/link-button/examples/overview.tsx +4 -2
  901. package/src/components/link-button/examples/variants.tsx +2 -2
  902. package/src/components/list/COMPONENT.md +24 -16
  903. package/src/components/list/examples/examples.module.css +0 -8
  904. package/src/components/list/examples/overflow.tsx +1 -1
  905. package/src/components/list/examples/overview.tsx +31 -30
  906. package/src/components/list/examples/sizes.tsx +23 -23
  907. package/src/components/list/examples/states.tsx +38 -21
  908. package/src/components/list/examples/with-icon.tsx +16 -14
  909. package/src/components/login-form/COMPONENT.md +69 -16
  910. package/src/components/login-form/examples/narrow.tsx +1 -1
  911. package/src/components/login-form/examples/register.tsx +1 -1
  912. package/src/components/media-viewer/COMPONENT.md +12 -8
  913. package/src/components/media-viewer/examples/examples.module.css +2 -2
  914. package/src/components/media-viewer/examples/video.tsx +1 -1
  915. package/src/components/message/COMPONENT.md +102 -46
  916. package/src/components/message/examples/typing.tsx +5 -5
  917. package/src/components/modal/COMPONENT.md +71 -37
  918. package/src/components/modal/examples/dismiss.tsx +35 -27
  919. package/src/components/modal/examples/enter-key.tsx +22 -25
  920. package/src/components/modal/examples/examples.module.css +0 -7
  921. package/src/components/modal/examples/guard.tsx +2 -4
  922. package/src/components/modal/examples/in-form.tsx +28 -28
  923. package/src/components/modal/examples/long-content.tsx +6 -4
  924. package/src/components/modal/examples/sizes.tsx +36 -31
  925. package/src/components/modal/examples/structure.tsx +1 -1
  926. package/src/components/native-select/COMPONENT.md +7 -3
  927. package/src/components/native-select/examples/examples.module.css +3 -3
  928. package/src/components/native-select/examples/in-form.tsx +28 -29
  929. package/src/components/native-select/examples/sizes.tsx +2 -2
  930. package/src/components/native-select/examples/states.tsx +2 -2
  931. package/src/components/notification/COMPONENT.md +36 -31
  932. package/src/components/notification/examples/examples.module.css +1 -2
  933. package/src/components/notification/examples/in-form.tsx +28 -20
  934. package/src/components/notification/examples/sizes.tsx +16 -12
  935. package/src/components/notification/examples/undo.tsx +7 -15
  936. package/src/components/page-content/COMPONENT.md +21 -29
  937. package/src/components/page-content/examples/examples.module.css +3 -16
  938. package/src/components/page-content/examples/grid.tsx +3 -1
  939. package/src/components/page-content/examples/list-detail.tsx +55 -49
  940. package/src/components/page-content/examples/narrow.tsx +1 -1
  941. package/src/components/page-content/examples/overview.tsx +2 -2
  942. package/src/components/page-content/examples/variants.tsx +7 -7
  943. package/src/components/page-toolbar/COMPONENT.md +10 -6
  944. package/src/components/page-toolbar/examples/overview.tsx +1 -1
  945. package/src/components/page-toolbar/examples/save-changes.tsx +25 -22
  946. package/src/components/pagination/COMPONENT.md +20 -17
  947. package/src/components/pagination/examples/narrow.tsx +5 -5
  948. package/src/components/popover/COMPONENT.md +43 -20
  949. package/src/components/popover/examples/controlled-open.tsx +6 -4
  950. package/src/components/popover/examples/dismiss.tsx +37 -28
  951. package/src/components/popover/examples/examples.module.css +2 -2
  952. package/src/components/popover/examples/sizes.tsx +32 -27
  953. package/src/components/popover/examples/width.tsx +45 -0
  954. package/src/components/progress-bar/COMPONENT.md +21 -29
  955. package/src/components/progress-bar/examples/examples.module.css +1 -1
  956. package/src/components/progress-circle/COMPONENT.md +21 -29
  957. package/src/components/progress-circle/examples/examples.module.css +1 -1
  958. package/src/components/progress-circle/examples/on-color.tsx +16 -0
  959. package/src/components/progress-circle/examples/variants.tsx +1 -0
  960. package/src/components/radio/COMPONENT.md +13 -4
  961. package/src/components/radio/examples/examples.module.css +1 -1
  962. package/src/components/scroll-container/COMPONENT.md +18 -12
  963. package/src/components/scroll-container/examples/auto-scroll.tsx +8 -4
  964. package/src/components/scroll-container/examples/edges.tsx +4 -4
  965. package/src/components/scroll-container/examples/examples.module.css +7 -51
  966. package/src/components/scroll-container/examples/load-more.tsx +4 -4
  967. package/src/components/scroll-container/examples/lock.tsx +4 -4
  968. package/src/components/scroll-container/examples/log.tsx +97 -0
  969. package/src/components/scroll-container/examples/overscroll.tsx +4 -4
  970. package/src/components/scroll-container/examples/overview.tsx +5 -5
  971. package/src/components/scroll-container/examples/scrollbar.tsx +4 -4
  972. package/src/components/scroll-container/examples/snap.tsx +2 -2
  973. package/src/components/scroll-container/examples/variants.tsx +1 -0
  974. package/src/components/segmented-control/COMPONENT.md +24 -12
  975. package/src/components/segmented-control/examples/controlled.tsx +2 -4
  976. package/src/components/segmented-control/examples/examples.module.css +0 -8
  977. package/src/components/segmented-control/examples/scroll.tsx +1 -1
  978. package/src/components/select/COMPONENT.md +33 -9
  979. package/src/components/select/examples/dismiss.tsx +26 -0
  980. package/src/components/select/examples/examples.module.css +1 -1
  981. package/src/components/select/examples/server-search.tsx +6 -2
  982. package/src/components/select/examples/sizes.tsx +2 -2
  983. package/src/components/select/examples/states.tsx +2 -2
  984. package/src/components/select/examples/with-icon.tsx +20 -18
  985. package/src/components/sheet/COMPONENT.md +44 -21
  986. package/src/components/sheet/examples/header-actions.tsx +23 -4
  987. package/src/components/sheet/examples/overview.tsx +25 -10
  988. package/src/components/skeleton/COMPONENT.md +8 -4
  989. package/src/components/skeleton/examples/examples.module.css +1 -13
  990. package/src/components/skeleton/examples/with-crossfade.tsx +7 -7
  991. package/src/components/slider/COMPONENT.md +10 -5
  992. package/src/components/slider/examples/examples.module.css +6 -7
  993. package/src/components/slider/examples/hint-and-error.tsx +3 -5
  994. package/src/components/slider/examples/in-form.tsx +21 -19
  995. package/src/components/smart-filter/COMPONENT.md +32 -12
  996. package/src/components/smart-filter/examples/examples.module.css +0 -21
  997. package/src/components/smart-filter/examples/ranges.tsx +2 -1
  998. package/src/components/smart-filter/examples/sizes.tsx +2 -4
  999. package/src/components/sparkline/COMPONENT.md +7 -3
  1000. package/src/components/sparkline/examples/examples.module.css +1 -1
  1001. package/src/components/sparkline/examples/signed-bars.tsx +2 -2
  1002. package/src/components/spinner/COMPONENT.md +15 -9
  1003. package/src/components/spinner/examples/examples.module.css +2 -14
  1004. package/src/components/spinner/examples/overview.tsx +1 -1
  1005. package/src/components/stepper/COMPONENT.md +50 -41
  1006. package/src/components/stepper/examples/examples.module.css +1 -6
  1007. package/src/components/stepper/examples/narrow.tsx +1 -1
  1008. package/src/components/stepper/examples/sizes.tsx +6 -8
  1009. package/src/components/stepper/examples/states.tsx +44 -43
  1010. package/src/components/stepper/examples/with-icon.tsx +19 -17
  1011. package/src/components/switch/COMPONENT.md +21 -8
  1012. package/src/components/switch/examples/examples.module.css +2 -2
  1013. package/src/components/switch/examples/states.tsx +3 -3
  1014. package/src/components/tabs/COMPONENT.md +21 -16
  1015. package/src/components/tabs/examples/in-drawer.tsx +1 -1
  1016. package/src/components/tabs/examples/sizes.tsx +5 -10
  1017. package/src/components/tabs/examples/variants.tsx +19 -23
  1018. package/src/components/tag-select/COMPONENT.md +19 -6
  1019. package/src/components/tag-select/examples/creatable.tsx +2 -2
  1020. package/src/components/tag-select/examples/dismiss.tsx +23 -0
  1021. package/src/components/tag-select/examples/examples.module.css +3 -3
  1022. package/src/components/tag-select/examples/in-form.tsx +31 -32
  1023. package/src/components/tag-select/examples/sizes.tsx +2 -2
  1024. package/src/components/tag-select/examples/states.tsx +2 -2
  1025. package/src/components/textarea/COMPONENT.md +10 -6
  1026. package/src/components/textarea/examples/examples.module.css +3 -10
  1027. package/src/components/textarea/examples/in-form.tsx +3 -3
  1028. package/src/components/textarea/examples/sizes.tsx +10 -7
  1029. package/src/components/textarea/examples/states.tsx +29 -13
  1030. package/src/components/textarea/examples/validation.tsx +45 -36
  1031. package/src/components/thumbnail/COMPONENT.md +17 -13
  1032. package/src/components/thumbnail/examples/examples.module.css +1 -1
  1033. package/src/components/thumbnail/examples/states.tsx +1 -1
  1034. package/src/components/thumbnail/examples/variants.tsx +12 -1
  1035. package/src/components/timeline/COMPONENT.md +51 -35
  1036. package/src/components/timeline/examples/links.tsx +14 -14
  1037. package/src/components/timeline/examples/narrow.tsx +6 -6
  1038. package/src/components/timeline/examples/overview.tsx +6 -6
  1039. package/src/components/timeline/examples/sizes.tsx +28 -23
  1040. package/src/components/timeline/examples/structure.tsx +30 -30
  1041. package/src/components/timeline/examples/variants.tsx +40 -28
  1042. package/src/components/tooltip/COMPONENT.md +10 -6
  1043. package/src/components/tooltip/examples/examples.module.css +1 -5
  1044. package/src/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  1045. package/src/components/tooltip/examples/sizes.tsx +17 -10
  1046. package/src/components/typography/COMPONENT.md +17 -2
  1047. package/src/components/typography/examples/examples.module.css +3 -6
  1048. package/src/components/typography/examples/numeric.tsx +16 -0
  1049. package/src/components/video-note/COMPONENT.md +11 -7
  1050. package/src/components/visually-hidden/COMPONENT.md +8 -4
  1051. package/src/components/visually-hidden/examples/assertive.tsx +1 -1
  1052. package/src/components/visually-hidden/examples/overview.tsx +17 -7
  1053. package/src/components/voice-player/COMPONENT.md +15 -7
  1054. package/src/layout/app-header/COMPONENT.md +27 -26
  1055. package/src/layout/app-header/examples/examples.module.css +4 -23
  1056. package/src/layout/app-header/examples/in-app-shell.tsx +3 -5
  1057. package/src/layout/app-header/examples/narrow.tsx +58 -20
  1058. package/src/layout/app-shell/COMPONENT.md +40 -10
  1059. package/src/layout/app-shell/examples/examples.module.css +2 -22
  1060. package/src/layout/app-shell/examples/footer.tsx +2 -2
  1061. package/src/layout/app-shell/examples/overview.tsx +3 -5
  1062. package/src/layout/app-shell/examples/screen.tsx +27 -21
  1063. package/src/layout/app-shell/examples/template.tsx +3 -3
  1064. package/src/layout/bottom-nav/COMPONENT.md +27 -17
  1065. package/src/layout/bottom-nav/examples/examples.module.css +2 -7
  1066. package/src/layout/bottom-nav/examples/floating-action.tsx +2 -2
  1067. package/src/layout/bottom-nav/examples/floating.tsx +2 -2
  1068. package/src/layout/bottom-nav/examples/in-app-shell.tsx +2 -2
  1069. package/src/layout/bottom-nav/examples/router.tsx +6 -5
  1070. package/src/layout/sidebar/COMPONENT.md +50 -40
  1071. package/src/layout/sidebar/examples/account.tsx +1 -3
  1072. package/src/layout/sidebar/examples/brand-header.tsx +1 -3
  1073. package/src/layout/sidebar/examples/collapsible-groups.tsx +1 -3
  1074. package/src/layout/sidebar/examples/controlled-open.tsx +1 -3
  1075. package/src/layout/sidebar/examples/controlled.tsx +1 -3
  1076. package/src/layout/sidebar/examples/custom-part.tsx +1 -3
  1077. package/src/layout/sidebar/examples/dismiss.tsx +47 -0
  1078. package/src/layout/sidebar/examples/examples.module.css +7 -32
  1079. package/src/layout/sidebar/examples/narrow.tsx +44 -42
  1080. package/src/layout/sidebar/examples/nested-items.tsx +1 -3
  1081. package/src/layout/sidebar/examples/overview.tsx +1 -3
  1082. package/src/layout/sidebar/examples/persist.tsx +1 -3
  1083. package/src/layout/sidebar/examples/router.tsx +12 -13
  1084. package/src/layout/sidebar/examples/sizes.tsx +6 -6
  1085. package/src/styles/controls.css +2 -2
  1086. package/src/styles/fonts.css +22 -0
  1087. package/src/styles/globals.css +89 -12
  1088. package/src/styles/theme-dark.css +13 -14
  1089. package/src/styles/theme-light.css +67 -23
  1090. package/src/styles/tokens.css +14 -4
  1091. package/dist/components/dnd/useFlipList.d.ts +0 -17
  1092. package/dist/components/gantt/useEdgeAutoScroll.d.ts +0 -12
  1093. package/dist/components/modal/ModalDialog.d.ts +0 -46
  1094. package/dist/hooks/useStateSwap.d.ts +0 -8
  1095. package/dist/internal/highlightTsxHtml.d.ts +0 -2
  1096. package/dist/internal/layoutPxFromPrimitives.d.ts +0 -6
  1097. package/dist/internal/mergeRefs.d.ts +0 -6
  1098. package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -8
  1099. package/dist/skill/reference/components/popover/examples/match-trigger-width.tsx +0 -23
  1100. package/dist/skill/reference/components/scroll-container/examples/chat.tsx +0 -101
  1101. package/dist/skill/reference/components/spinner/examples/loading-region.tsx +0 -22
  1102. package/src/components/drawer/examples/examples.module.css +0 -8
  1103. package/src/components/popover/examples/match-trigger-width.tsx +0 -23
  1104. package/src/components/scroll-container/examples/chat.tsx +0 -101
  1105. package/src/components/spinner/examples/loading-region.tsx +0 -22
@@ -16,7 +16,7 @@
16
16
  max-width: 100%;
17
17
  }
18
18
 
19
- /* Placeholder rows share the data rows' geometry: the swap to data does not change the height. */
19
+ /* Placeholder bars share the data's geometry: the swap to data does not change the height. */
20
20
  .payerBar {
21
21
  width: 55%;
22
22
  }
@@ -25,38 +25,6 @@
25
25
  width: 20%;
26
26
  }
27
27
 
28
- .list {
29
- display: grid;
30
- margin: 0;
31
- padding: 0;
32
- list-style: none;
33
- }
34
-
35
- .listRow {
36
- display: flex;
37
- align-items: center;
38
- justify-content: space-between;
39
- gap: var(--prime-space-4);
40
- padding-block: var(--prime-space-3);
41
- border-bottom: var(--prime-border-width) solid var(--prime-color-border-subtle);
42
- }
43
-
44
- .listRow:last-child {
45
- border-bottom: 0;
46
- }
47
-
48
- .amount {
49
- font-variant-numeric: tabular-nums;
50
- }
51
-
52
- .facts {
53
- display: grid;
54
- gap: var(--prime-space-3);
55
- margin: 0;
56
- padding: 0;
57
- list-style: none;
58
- }
59
-
60
28
  /* fill.tsx: a page panel of a fixed height; the board region takes what the rows above leave. */
61
29
  .fillPage {
62
30
  display: flex;
@@ -84,10 +52,3 @@
84
52
  .column {
85
53
  align-self: stretch;
86
54
  }
87
-
88
- .fact {
89
- display: grid;
90
- grid-template-columns: calc(var(--prime-space-24) + var(--prime-space-4)) minmax(0, 1fr);
91
- align-items: baseline;
92
- gap: var(--prime-space-4);
93
- }
@@ -1,13 +1,5 @@
1
1
  /** A deal board that fills its panel's height while it swaps between loading and data, and a notice slot above it that takes no room while empty — `fill`, `state`. */
2
- import {
3
- Banner,
4
- Button,
5
- Card,
6
- Crossfade,
7
- ScrollContainer,
8
- Skeleton,
9
- Typography,
10
- } from "prime-ui-kit";
2
+ import { Banner, Button, Card, Crossfade, List, ScrollContainer, Skeleton } from "prime-ui-kit";
11
3
  import * as React from "react";
12
4
 
13
5
  import styles from "./examples.module.css";
@@ -21,6 +13,7 @@ const STAGES = [
21
13
  export default function CrossfadeFillExample() {
22
14
  const [status, setStatus] = React.useState<"loading" | "ready">("ready");
23
15
  const [notice, setNotice] = React.useState<string | null>(null);
16
+ const [dealId, setDealId] = React.useState<string | null>(null);
24
17
 
25
18
  const refresh = () => {
26
19
  setNotice(null);
@@ -55,19 +48,23 @@ export default function CrossfadeFillExample() {
55
48
  <ScrollContainer className={styles.board}>
56
49
  {STAGES.map((stage) => (
57
50
  <Card.Root key={stage.id} className={styles.column}>
58
- <Card.Body>
59
- <Typography as="h3" variant="title-s">
51
+ <Card.Header>
52
+ <Card.Title as="h3">
60
53
  {stage.title} · {stage.deals.length}
61
- </Typography>
62
- <ul className={styles.facts}>
54
+ </Card.Title>
55
+ </Card.Header>
56
+ <Card.Body>
57
+ <List.Root aria-label={stage.title}>
63
58
  {stage.deals.map((deal) => (
64
- <li key={deal}>
65
- <Typography as="span" variant="body-m">
66
- {deal}
67
- </Typography>
68
- </li>
59
+ <List.Item
60
+ key={deal}
61
+ current={deal === dealId}
62
+ onClick={() => setDealId(deal)}
63
+ >
64
+ <List.ItemText>{deal}</List.ItemText>
65
+ </List.Item>
69
66
  ))}
70
- </ul>
67
+ </List.Root>
71
68
  </Card.Body>
72
69
  </Card.Root>
73
70
  ))}
@@ -3,11 +3,11 @@ import {
3
3
  Button,
4
4
  Card,
5
5
  Crossfade,
6
+ DescriptionList,
6
7
  EmptyPage,
7
8
  Icon,
8
9
  SegmentedControl,
9
10
  Skeleton,
10
- Typography,
11
11
  } from "prime-ui-kit";
12
12
  import * as React from "react";
13
13
 
@@ -43,29 +43,27 @@ export default function CrossfadeOverviewExample() {
43
43
  </Card.Header>
44
44
  <Card.Body>
45
45
  <Crossfade state={status} aria-busy={status === "loading"}>
46
+ {/* The placeholder is the same list with bars for the text: the swap keeps the height. */}
46
47
  {status === "loading" ? (
47
- <ul className={styles.list}>
48
+ <DescriptionList.Root>
48
49
  {PAYMENTS.map((payment) => (
49
- <li key={payment.id} className={styles.listRow}>
50
- <Skeleton className={styles.payerBar} />
50
+ <DescriptionList.Item
51
+ key={payment.id}
52
+ label={<Skeleton className={styles.payerBar} />}
53
+ >
51
54
  <Skeleton className={styles.amountBar} />
52
- </li>
55
+ </DescriptionList.Item>
53
56
  ))}
54
- </ul>
57
+ </DescriptionList.Root>
55
58
  ) : null}
56
59
  {status === "ready" ? (
57
- <ul className={styles.list}>
60
+ <DescriptionList.Root>
58
61
  {PAYMENTS.map((payment) => (
59
- <li key={payment.id} className={styles.listRow}>
60
- <Typography as="span" variant="body-m">
61
- {payment.payer}
62
- </Typography>
63
- <Typography as="span" variant="body-m" className={styles.amount}>
64
- {payment.amount}
65
- </Typography>
66
- </li>
62
+ <DescriptionList.Item key={payment.id} label={payment.payer}>
63
+ {payment.amount}
64
+ </DescriptionList.Item>
67
65
  ))}
68
- </ul>
66
+ </DescriptionList.Root>
69
67
  ) : null}
70
68
  {status === "empty" ? (
71
69
  <EmptyPage.Root size="s" aria-labelledby="payments-empty">
@@ -1,5 +1,5 @@
1
1
  /** A detail panel keyed by the record id: picking another client cross-fades the details of a different height — `state`. */
2
- import { Card, Crossfade, SegmentedControl, Typography } from "prime-ui-kit";
2
+ import { Card, Crossfade, DescriptionList, SegmentedControl } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
5
5
  import styles from "./examples.module.css";
@@ -47,18 +47,13 @@ export default function CrossfadeRecordSwitchExample() {
47
47
  <Card.Root variant="panel">
48
48
  <Card.Body>
49
49
  <Crossfade state={client.id}>
50
- <ul className={styles.facts} aria-label={client.name}>
50
+ <DescriptionList.Root aria-label={client.name}>
51
51
  {client.facts.map(([term, value]) => (
52
- <li key={term} className={styles.fact}>
53
- <Typography as="span" variant="body-s" tone="secondary">
54
- {term}
55
- </Typography>
56
- <Typography as="span" variant="body-m">
57
- {value}
58
- </Typography>
59
- </li>
52
+ <DescriptionList.Item key={term} label={term}>
53
+ {value}
54
+ </DescriptionList.Item>
60
55
  ))}
61
- </ul>
56
+ </DescriptionList.Root>
62
57
  </Crossfade>
63
58
  </Card.Body>
64
59
  </Card.Root>
@@ -11,30 +11,7 @@
11
11
  padding-block-end: var(--prime-space-6);
12
12
  }
13
13
 
14
- /* Skeleton rows mirror the account rows, so the card keeps its height when data arrives. */
15
- .nameBar {
16
- width: 50%;
17
- }
18
-
14
+ /* A balance placeholder as wide as a balance, so the value column keeps its shape. */
19
15
  .balanceBar {
20
16
  width: 35%;
21
17
  }
22
-
23
- /* The card stretches to its neighbour's height: rows stay at the top. */
24
- .accounts {
25
- display: grid;
26
- align-content: start;
27
- gap: var(--prime-space-4);
28
- margin: 0;
29
- padding: 0;
30
- list-style: none;
31
- }
32
-
33
- .account {
34
- display: grid;
35
- gap: var(--prime-space-1);
36
- }
37
-
38
- .amount {
39
- font-variant-numeric: tabular-nums;
40
- }
@@ -7,6 +7,7 @@ import {
7
7
  Crossfade,
8
8
  DataTable,
9
9
  type DataTableColumn,
10
+ DescriptionList,
10
11
  EmptyPage,
11
12
  Icon,
12
13
  PageContent,
@@ -121,30 +122,18 @@ export default function CrossfadeScreenExample() {
121
122
  <Card.Body>
122
123
  {/* Loading ↔ data cross-fade in place; the table below swaps its body the same way. */}
123
124
  <Crossfade state={status === "loading" ? "loading" : "ready"}>
124
- {status === "loading" ? (
125
- <ul className={styles.accounts}>
126
- {ACCOUNTS.map((account) => (
127
- <li key={account.name} className={styles.account}>
128
- <Skeleton className={styles.nameBar} />
129
- {/* title-m is the l text tier: 16 / 24. */}
130
- <Skeleton size="l" className={styles.balanceBar} />
131
- </li>
132
- ))}
133
- </ul>
134
- ) : (
135
- <ul className={styles.accounts}>
136
- {ACCOUNTS.map((account) => (
137
- <li key={account.name} className={styles.account}>
138
- <Typography as="span" variant="body-m" tone="secondary">
139
- {account.name}
140
- </Typography>
141
- <Typography as="span" variant="title-m" className={styles.amount}>
142
- {account.balance}
143
- </Typography>
144
- </li>
145
- ))}
146
- </ul>
147
- )}
125
+ {/* The accounts are known: only their balances wait, as bars of the value. */}
126
+ <DescriptionList.Root>
127
+ {ACCOUNTS.map((account) => (
128
+ <DescriptionList.Item key={account.name} label={account.name}>
129
+ {status === "loading" ? (
130
+ <Skeleton className={styles.balanceBar} />
131
+ ) : (
132
+ account.balance
133
+ )}
134
+ </DescriptionList.Item>
135
+ ))}
136
+ </DescriptionList.Root>
148
137
  </Crossfade>
149
138
  </Card.Body>
150
139
  </Card.Root>
@@ -186,7 +175,7 @@ export default function CrossfadeScreenExample() {
186
175
  paging="none"
187
176
  loading={status === "loading"}
188
177
  loadingRows={3}
189
- error={status === "error" ? "Платежи появятся после загрузки выписки" : undefined}
178
+ loadError={status === "error" ? "Платежи появятся после загрузки выписки" : undefined}
190
179
  empty="Все платежи разнесены"
191
180
  />
192
181
  </PageContent.Section>
@@ -52,7 +52,7 @@ Columns are data (`DataTableColumn<Row>[]`), not child parts. The one part, `Dat
52
52
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
53
53
 
54
54
  ### DataTable
55
- Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an optional toolbar, a scrolling `<table>` and a footer (range, Pagination, infinite-scroll status); passes its tier to the controls inside.
55
+ Generic `DataTable<Row>`; `ref` → `HTMLDivElement`. A card-fill block with an optional toolbar, a scrolling `<table>` and a footer (range, Pagination, infinite-scroll status); passes its tier to the controls inside.
56
56
 
57
57
  | Prop | Type | Default | Description |
58
58
  |---|---|---|---|
@@ -63,9 +63,9 @@ Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an option
63
63
  | `rows` | `Row[]` | — (required) | Data; sorted in memory when a sort is set. With `source="server"` — the page (or the loaded batches) as the server returned it. |
64
64
  | `source` | `"client" \| "server"` | `"client"` | Who sorts and pages the rows. `client`: the table sorts `rows` and slices pages. `server`: `rows` is one page, already sorted; `sort` / `page` changes are the request, `rowCount` drives Pagination. |
65
65
  | `rowCount` | `number` | `rows.length` | Total rows on the server (`source="server"`): the page count and «Показано {from}–{to} из {total}». |
66
- | `getRowKey` | `(row: Row, index: number) => Key` | — | Stable row id (position by default); selection, expansion and the enter animation of new rows are keyed by it. Pass it whenever sorting, selection or expansion is used. |
66
+ | `getRowKey` | `(row: Row, index: number) => Key` | — | Stable row id (position by default; sub-rows too, `index` among siblings); selection, expansion and the enter animation of new rows are keyed by it. Pass it whenever sorting, selection or expansion is used. |
67
67
  | `getRowLabel` | `(row: Row) => string` | — | Human row name for the checkbox and toggle names (`{label}` in `labels`). |
68
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Density and control tier: rows from 36 · 36 · 44 · 52 · 52 px (`--prime-table-row-height-<size>`); passed to checkboxes, toggles, Pagination and nested controls. |
68
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | host tier, else `"m"` | Density and control tier: rows from 36 · 36 · 44 · 52 · 52 px (`--prime-table-row-height-<size>`); passed to checkboxes, toggles, Pagination and nested controls. Without it the tier of the host. |
69
69
  | `paging` | `"pages" \| "infinite" \| "none"` | `"pages"` | `pages` — Pagination in the footer when there is more than one page; `infinite` — rows are revealed while scrolling; `none` — every row at once. |
70
70
  | `pageSize` | `number` | `10` | Rows per page; also the first batch with `paging="infinite"` (with `source="server"` every loaded row is shown). |
71
71
  | `page` | `number` | — | Current page (1-based), controlled. |
@@ -77,7 +77,7 @@ Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an option
77
77
  | `loading` | `boolean` | `false` | Skeleton rows while there are no rows; with rows on screen (a refetch, another server page) they stay and the table gets `aria-busy`. |
78
78
  | `loadingRows` | `number` | `min(pageSize, 5)` | Number of skeleton rows. |
79
79
  | `empty` | `ReactNode` | `labels.empty` | Empty-state content: a string goes into a compact EmptyPage, a node (e.g. a full `EmptyPage`) is rendered as is. |
80
- | `error` | `ReactNode` | — | Load error: replaces the body with the message in `role="alert"`. |
80
+ | `loadError` | `ReactNode` | — | Load error: replaces the body with the message in `role="alert"`. |
81
81
  | `toolbar` | `ReactNode` | — | Panel above the table (search, filters, bulk actions); stacks below 30rem of table width. |
82
82
  | `selectable` | `boolean` | `false` | Leading checkbox column with «select all», Shift range, press-and-drag and Space. |
83
83
  | `selected` | `Key[]` | — | Selected row ids, controlled. |
@@ -93,8 +93,8 @@ Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an option
93
93
  | `infiniteBatchSize` | `number` | `20` | Rows revealed per scroll step. |
94
94
  | `hasMore` | `boolean` | `false` | More rows can be loaded from the server. |
95
95
  | `loadingMore` | `boolean` | `false` | A server batch is loading: footer status, `aria-busy`. |
96
- | `onLoadMore` | `() => void \| Promise<void>` | — | Called at the end when every loaded row is shown and `hasMore` is set. A returned promise shows the loading status until it settles. |
97
- | `scrollHeight` | `number \| string \| "fill"` | `360 with paging="infinite"` | Max height of the scroll viewport (number = px); `"fill"` — the table takes the height of its flex / grid parent (or a sized block), the rows scroll inside, infinite paging follows it. |
96
+ | `onLoadMore` | `() => void \| Promise<void>` | — | Called at the end when every loaded row is shown and `hasMore` is set. A returned promise shows the loading status until it settles; a rejected one stops asking until the rows change. |
97
+ | `scrollHeight` | `number \| string \| "fill"` | `360` with `paging="infinite"`, else none | Max height of the scroll viewport (number = px); `"fill"` — the table takes the height of its flex / grid parent (or a sized block), the rows scroll inside, infinite paging follows it. |
98
98
  | `stickyHeader` | `boolean` | `false` | The head sticks while the body scrolls (with `scrollHeight`); on screens lower than 480px it scrolls with the rows. |
99
99
  | `stickyFirstColumn` | `boolean` | `false` | The first visible column (with the selection and toggle columns) sticks while scrolling sideways; the start edge shadow falls from its end edge. |
100
100
  | `showHeader` | `boolean` | `true` | Render `<thead>`. |
@@ -106,15 +106,16 @@ Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an option
106
106
  | `highlightColumnOnHover` | `boolean` | `false` | Column wash under the pointer (head and cells). |
107
107
  | `getRowHref` | `(row: Row) => string` | — | The row is a link: a real `<a>` in the key cell (first visible column), and the same link covers the whole row. Keep controls out of the key cell. |
108
108
  | `onRowClick` | `(row: Row, index: number, event: DataTableRowClickEvent) => void` | — | Opens a row in place (a drawer, a panel) on a click, Enter or Space; never from a control inside the row. With `getRowHref` it gets plain clicks: `event.preventDefault()` routes in the app. |
109
- | `isRowClickable` | `(row: Row) => boolean` | `every row` | Which rows open (`getRowHref` and `onRowClick` alike); `false` for a total or a service row — no link, no focus, no cursor. |
109
+ | `isRowClickable` | `(row: Row) => boolean` | every row | Which rows open (`getRowHref` and `onRowClick` alike); `false` for a total or a service row — no link, no focus, no cursor. |
110
110
  | `getRowGroup` | `(row: Row) => string \| number` | — | Group key of a row: each group gets a header row and its own `<tbody>`. Groups keep the order in which they first appear in `rows`; a sort orders the rows inside each group; a group split by paging repeats its header. |
111
- | `renderGroupHeader` | `(group: DataTableGroup<Row>) => ReactNode` | `the group key` | Content of a group header; `group.rows` holds every row of the group (all pages) for totals. Children are laid out start / end in the visible width. |
111
+ | `renderGroupHeader` | `(group: DataTableGroup<Row>) => ReactNode` | the group key | Content of a group header; `group.rows` holds every row of the group (all pages) for totals. Children are laid out start / end in the visible width. |
112
112
  | `stickyGroupHeaders` | `boolean` | `false` | Group headers stick under the head (or the top edge) while their rows scroll. |
113
113
  | `collapsedGroups` | `(string \| number)[]` | — | Collapsed group keys, controlled. Any prop of this triad makes groups fold: a chevron toggle leads each header, rows fold like sub-rows. «Select all» and paging still count collapsed rows. |
114
114
  | `defaultCollapsedGroups` | `(string \| number)[]` | — | Initially collapsed group keys, uncontrolled; `[]` — every group open but foldable. |
115
115
  | `onCollapsedGroupsChange` | `(collapsedGroups: (string \| number)[]) => void` | — | The collapsed group keys changed (a group header toggle). |
116
116
  | `labels` | `Partial<DataTableLabels>` | — | Built-in strings, see Labels. |
117
- | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "children">` | — | `className` and the other attributes of the root `<div>`. |
117
+ | `className` | `string` | — | Class on the root `<div>`. |
118
+ | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "children">` | — | The other attributes of the root `<div>`. |
118
119
 
119
120
  ### DataTable.ColumnsMenu
120
121
  `ref` → `HTMLButtonElement` (the trigger). The column chooser of the table it sits in: a Button opening a Dropdown with a check item per column. Writes the table's hidden columns; throws outside a DataTable `toolbar`.
@@ -125,10 +126,12 @@ Generic over `Row`; `ref` → `HTMLDivElement`. A card-fill block with an option
125
126
  | `align` | `"auto" \| "start" \| "center" \| "end"` | `"auto"` | Alignment to the trigger. `auto` lines the panel up with the trigger edge that has more room beyond it; `start`, `center` or `end` fix it. |
126
127
  | `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "type" \| "children">` | — | `className`, `aria-label` and the other attributes of the trigger button. |
127
128
 
128
- ### DataTableColumn<Row>
129
+ ### Types
130
+
131
+ #### `DataTableColumn<Row>`
129
132
  One column of `columns`: data, not a part.
130
133
 
131
- | Prop | Type | Default | Description |
134
+ | Field | Type | Default | Description |
132
135
  |---|---|---|---|
133
136
  | `id` | `string` | — (required) | Unique column id (sort state, `data-column-id`). |
134
137
  | `header` | `ReactNode` | — (required) | Head content. |
@@ -137,8 +140,9 @@ One column of `columns`: data, not a part.
137
140
  | `sortable` | `boolean` | — | The head becomes a sort button with `aria-sort`. |
138
141
  | `sortAccessor` | `(row: Row) => unknown` | — | Value to sort by instead of `accessor`. |
139
142
  | `sortComparator` | `(a: Row, b: Row, order: DataTableOrder) => number` | — | Custom comparison. |
140
- | `align` | `"start" \| "center" \| "end"` | `"start" ("end" with numeric)` | Cell alignment; heads do not follow it. |
143
+ | `align` | `"start" \| "center" \| "end"` | `"start"` (`"end"` with `numeric`) | Cell alignment; heads do not follow it. |
141
144
  | `headerAlign` | `"start" \| "center" \| "end"` | `"start"` | Head alignment; the sort icon stays at the end edge. |
145
+ | `hideHeader` | `boolean` | `false` | `header` names the column for assistive tech only (an action column): the head cell looks empty. |
142
146
  | `numeric` | `boolean` | — | Tabular figures, no wrapping, end alignment unless `align` is set. |
143
147
  | `truncate` | `boolean` | — | One line with an ellipsis; width from `maxWidth` (or `width`); string values get a `title`. |
144
148
  | `grow` | `boolean` | — | Takes the free width and wraps its text; the table then fills its container. With `minWidth` it never gets narrower: below that the table scrolls instead of cells overlapping. |
@@ -157,6 +161,8 @@ One column of `columns`: data, not a part.
157
161
  | `l` | rows from 52, head 40, text 16/24 | spacious lists, large avatars | |
158
162
  | `xl` | rows from 52, head 48, text 16/24, cell padding 16 | large touch-friendly tables | |
159
163
 
164
+ Without `size` the table takes the tier of its host (a sized form, panel or popover), else `m`.
165
+
160
166
  Row height is a minimum: cells pad vertically by (row height − control one tier down) / 2, so one text line or a control one tier down keeps the tier height and taller content grows the row. Checkboxes use the table tier; expand toggles are square ghost Buttons of a fixed small tier (`xs` for xs–m, `s` for l–xl).
161
167
 
162
168
  Column widths come from the content and then hold still: once rows are laid out the widths are frozen, so searching, filtering, paging and opening sub-rows do not move the columns. A column widens when later content does not fit it, never narrows; widths are measured again when the column set or the container width changes. `grow` columns keep taking the free width.
@@ -231,23 +237,23 @@ Heads keep `start` whatever the cell alignment, with the sort icon at the end ed
231
237
  | State | Driven by | DOM |
232
238
  |---|---|---|
233
239
  | loading (no rows) | `loading` | skeleton rows (`data-skeleton`), `role="status"` with `labels.loading`, `aria-busy` on the table, `data-loading` on the root |
234
- | loading more | `loadingMore`, or a pending promise from `onLoadMore` | `aria-busy`; footer `labels.loadingMore`; no new request until it settles (after a rejection, until the rows change) |
240
+ | loading more | `hasMore` with every loaded row shown calls `onLoadMore`; `loadingMore`, or its pending promise | `aria-busy`; footer `labels.loadingMore`; no new request until it settles (after a rejection, until the rows change) |
235
241
  | refreshing | `loading` with rows on screen (a refetch, another server page or sort) | the rows, head, toolbar and footer stay; `aria-busy` on the table, `data-loading` on the root — no skeleton |
236
242
  | new server page | `source="server"` and `rows` replaced (not appended) | the body remounts with the swap fade (`swapMotion`), the viewport scrolls to its top; no per-row enter |
237
243
  | empty | no rows and not loading | compact EmptyPage with `empty` or `labels.empty` (`role="status"`), or the `empty` node; centred in the visible width, not across every column of a wide table |
238
- | error | `error` | body replaced by a `role="alert"` message in `danger-text`, centred in the visible width; range and infinite status hidden |
244
+ | error | `loadError` | body replaced by a `role="alert"` message in `danger-text`, centred in the visible width; range and infinite status hidden |
239
245
  | sorted | `sort` / `defaultSort` | `aria-sort` and `data-sorted` on the head; the sort icon: unsorted `text-disabled`, hover `text-muted`, sorted `text-secondary` — never accent |
240
- | selected | `selected` / `defaultSelected` | `aria-selected` rows with `accent-soft` fill; polite `labels.selectedCount` |
246
+ | selected | `selectable` with `selected` / `defaultSelected` | `data-selectable` on the root, a leading checkbox column; `aria-selected` rows with `accent-soft` fill; polite `labels.selectedCount` |
241
247
  | expanded | `expanded` / `defaultExpanded` | `data-expanded` on the parent row (one step darker); toggle `aria-expanded`, chevron turns 90° |
242
248
  | new rows | rows new in `rows` (by `getRowKey`) | `data-animate`: top-level cells drop in from above (`enterMotion`) |
243
- | sub-rows and detail panels | an expand / a collapse | both fold open and shut through `grid-template-rows` (0fr ↔ 1fr) with the fade on the same `base` curve; the row height and padding live inside the track, so nothing is left to jump. Sub-rows: `data-fold` on the row (`opening` · `open` · `closed`); a collapsed row's sub-rows stay mounted until the fold ends. Detail row: `data-state`; it unmounts after the close |
249
+ | sub-rows and detail panels | an expand / a collapse | both fold open and shut through the kit's Disclosure (`0fr ↔ 1fr`, the fade and a short slide on the same `base` clock; a detail opens on the enter curve); the row height and padding live inside the fold, so nothing is left to jump. Sub-rows: `data-fold` on the row (`open` · `closed`), every cell's content a Disclosure; a collapsed row's sub-rows stay mounted until the fold ends. Detail row: `data-state`; it unmounts after the close |
244
250
  | overflowing sideways | the table is wider than its viewport | `data-overflow-start` (scrolled from the start) and `data-overflow-end` (more to the end) on the root: a soft shadow over that edge, from the end edge of the sticky first column for the start; fades in and out over `fast` |
245
251
  | hidden columns | `hiddenColumns` / `defaultHiddenColumns`, `DataTable.ColumnsMenu` | the listed columns (except `hideable: false`) are not rendered in the head, rows, skeleton or state rows; widths are measured again; a sort by a hidden column keeps the row order |
246
252
  | opening rows | `getRowHref` / `onRowClick`, `isRowClickable` | `data-clickable` (pointer, pressed wash) on rows that open; link rows: `data-link`, an `<a data-row-link>` in every content cell; in-place rows: `tabindex="0"`. Focus (the link, or the row) rings the whole row with the hover wash |
247
253
  | grouped | `getRowGroup` | one `<tbody>` per group run on screen, opened by a `<th scope="rowgroup">` row one ladder step off the table; `data-sticky` on it with `stickyGroupHeaders` |
248
254
  | collapsed group | `collapsedGroups` / `defaultCollapsedGroups` | `data-collapsed` on the group header row, its toggle `aria-expanded="false"` with the chevron at rest; the group's `<tbody>` holds the header alone, its rows only lay out the column widths in the hidden measuring body. Its rows fold away and back like sub-rows (`data-fold`, `base`), whether a toggle or the owner changed the keys. «Select all» still takes the rows of collapsed groups; paging still counts them |
249
255
  | reorderable | `onReorder` (not with `getRowChildren` / `renderExpanded`) | `data-reorderable` on the root; a leading handle column (drag by the handle, a touch hold, Alt + ↑ / ↓ on it); each run of rows (the page, or each group) is a `Dnd.Sortable` `<tbody>`, so with `getRowGroup` rows move inside their group; a row put last on a page stands in front of the first row of the next page; a lifted row leaves a dashed gap row across every column, its neighbours glide (`base`), the copy flies in a one-row table at the row's column widths and sets down on its new place; a keyboard move glides the same way |
250
- | saving a move | `onReorder` returned a pending promise | the row stays in its new place, `aria-busy`, its cells at 60% and a Spinner in its handle cell; a rejection glides it back |
256
+ | saving a move | `onReorder` returned a pending promise | the row stays in its new place, `aria-busy`, its cells at 60% and its grip busy (Dnd: a spinner in the disabled handle); a rejection glides it back |
251
257
  | reorder off | a sort by a column | the handles are disabled with a Tooltip (`labels.reorderSorted`); no drag, no Alt + arrows |
252
258
  | heatmap cell | column `scale` and a numeric value (`sortAccessor`, else `accessor`) | `data-scale="1"…"5"` on the cell: its base is `--prime-color-chart-scale-<n>`, text `--prime-color-chart-scale-fg` on 4–5; the range spans all rows (or the fixed `min` / `max`), so paging and sorting never change a shade; the value stays in the cell, non-numbers stay plain |
253
259
  | filling the parent | `scrollHeight="fill"` | `data-scroll-height="fill"` on the root; the viewport takes the free height |
@@ -259,7 +265,7 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
259
265
  - The root is a layer of the surface ladder (`data-depth`, one above its host): it fills its container on `--prime-color-layer-current`, radius 12, and clips full-bleed head and rows; zebra rows and the sticky column are one ladder step off it, the head two. On a card or in a modal it is the next layer by itself — never wrap it in a Card.
260
266
  - Toolbar padding `--prime-space-3` × cell padding, items `gap: --prime-space-2`; below 30rem of table width toolbar and footer stack.
261
267
  - The footer has a hairline on top: range on the left, Pagination on the right. The range shows only with more than one page or with infinite scroll.
262
- - Columns scroll sideways inside the table, never the page; pin the identifying column with `stickyFirstColumn`. Works from 320 px.
268
+ - Columns scroll sideways inside the table, never the page; pin the identifying column with `stickyFirstColumn`. A 320 px column holds the table without breaking it.
263
269
  - While columns are hidden past an edge, that edge shows a `--prime-space-4` shadow (`--prime-color-bg-edge-shadow`) over the content; it takes no space and follows RTL. With `stickyFirstColumn` the start shadow falls from the pinned column's end edge.
264
270
  - Fewer columns, less scrolling: put `DataTable.ColumnsMenu` in `toolbar` (the key column `hideable: false`). The kit stores nothing: keep `onHiddenColumnsChange`'s list where the app keeps settings and pass it back as `hiddenColumns`. Never hide columns silently by width.
265
271
  - `DataTable.ColumnsMenu` is an outline neutral Button one tier below the table (the `view.columns` icon, `labels.columns`); its Dropdown lists every column and ends with `labels.showAllColumns`. A `hideable: false` column stays checked and disabled, and the last visible column cannot be hidden. With `align="auto"` a trigger near the end of the screen lines up the panel's end edge and the panel grows toward the start, and the other way near the start.
@@ -278,6 +284,8 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
278
284
  ## Accessibility
279
285
 
280
286
  ### Keyboard
287
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
288
+
281
289
  | Key | Action |
282
290
  |---|---|
283
291
  | `Tab` | Moves through the toolbar (`DataTable.ColumnsMenu`), sort buttons, row handles, checkboxes, expand toggles, row links, rows that open in place and Pagination. |
@@ -288,6 +296,8 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
288
296
  | `Escape` | Cancels a row drag; the row goes back to its place. |
289
297
 
290
298
  ### ARIA
299
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
300
+
291
301
  - Native `<table>` semantics; head cells are `scope="col"` (the empty handle-column cell is a `<td>`); sortable heads hold a `<button>` and expose `aria-sort`; the whole head cell shows the inset focus ring.
292
302
  - A link row has one link for assistive tech: the `<a>` in the key cell, named by its text. Its copies over the other cells are `aria-hidden` and `tabindex="-1"`, so the pointer can use the whole row. An in-place row is focusable itself (`tabindex="0"`) and reads as its cells. Either way the focused row shows a ring around all its cells.
293
303
  - A row never opens from a control inside it (links, buttons, fields, `label`, `summary`, ARIA widgets, `data-row-click-ignore`), from a text selection, or from a React event that bubbled out of a portal (a ⋯ menu item).
@@ -345,8 +355,8 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
345
355
  | [infinite-scroll.tsx](examples/infinite-scroll.tsx) | An audit log that reveals loaded rows in batches and then asks the server for more — `paging`, `infiniteBatchSize`, `hasMore`, `loadingMore`, `onLoadMore`. |
346
356
  | [server.tsx](examples/server.tsx) | A CRM deal list the server sorts, pages and searches; a new search returns to page 1 — `source`, `rowCount`, `sort`, `page`, `loading`. |
347
357
  | [fill-height.tsx](examples/fill-height.tsx) | An audit log that fills the height of its panel and loads older entries while scrolling; the status shows while the request is pending — `scrollHeight`, `paging`, `onLoadMore`. |
348
- | [states.tsx](examples/states.tsx) | Loading skeleton, an empty period and a load error with a retry: the head stays, only the body changes — `loading`, `loadingRows`, `empty`, `error`. |
349
- | [controlled.tsx](examples/controlled.tsx) | Sort and page owned by the parent (a URL or a store): a header click goes asc → desc → none, a new sort returns to page 1 — `sort`, `onSortChange`, `page`, `onPageChange`. |
358
+ | [states.tsx](examples/states.tsx) | Loading skeleton, an empty period and a load error with a retry: the head stays, only the body changes — `loading`, `loadingRows`, `empty`, `loadError`. |
359
+ | [controlled.tsx](examples/controlled.tsx) | Sort, page and the column choice owned by the parent (a URL or a store): a header click goes asc → desc → none, a new sort returns to page 1 — `sort`, `onSortChange`, `page`, `onPageChange`, `hiddenColumns`, `onHiddenColumnsChange`. |
350
360
  | [narrow.tsx](examples/narrow.tsx) | A 320 px support queue: columns scroll inside the table with the first one pinned, the toolbar and footer reflow and the pager turns compact — `stickyFirstColumn`, `size`. |
351
361
  | [screen.tsx](examples/screen.tsx) | A list page: the title, a line of figures, search, filters and the one primary action in the app header, a DataTable of invoices with statuses, row actions, pages and a filtered empty state — `empty`, `pageSize`, `stickyFirstColumn`. |
352
362
 
@@ -378,5 +388,5 @@ Root attributes: `data-size`, `data-row-dividers`, `data-column-dividers`, `data
378
388
  - A new search that keeps the current page → set `page` to 1 together with the search.
379
389
 
380
390
  ## Related
381
- - **Built from:** [Checkbox](../checkbox/COMPONENT.md), [Button](../button/COMPONENT.md), [Dropdown](../dropdown/COMPONENT.md) (`DataTable.ColumnsMenu`), [Pagination](../pagination/COMPONENT.md), [ScrollContainer](../scroll-container/COMPONENT.md), [EmptyPage](../empty-page/COMPONENT.md), [VisuallyHidden](../visually-hidden/COMPONENT.md) (loading status, selection announcement), [Skeleton](../skeleton/COMPONENT.md) (loading rows, in the table tier), [Dnd](../dnd/COMPONENT.md) (`onReorder`: `Dnd.Sortable as="tbody"`, `Dnd.Handle`), [Tooltip](../tooltip/COMPONENT.md) and [Spinner](../spinner/COMPONENT.md) (handle hint and busy state), Icon (sort arrows, the expand chevron, the `DataTable.ColumnsMenu` trigger); `useVirtualRows` (the window of a long body)
391
+ - **Built from:** [Checkbox](../checkbox/COMPONENT.md), [Button](../button/COMPONENT.md), [Dropdown](../dropdown/COMPONENT.md) (`DataTable.ColumnsMenu`), [Pagination](../pagination/COMPONENT.md), [ScrollContainer](../scroll-container/COMPONENT.md), [EmptyPage](../empty-page/COMPONENT.md), [VisuallyHidden](../visually-hidden/COMPONENT.md) (loading status, selection announcement), [Skeleton](../skeleton/COMPONENT.md) (loading rows, in the table tier), [Dnd](../dnd/COMPONENT.md) (`onReorder`: `Dnd.Sortable as="tbody"`, `Dnd.Handle`), [Tooltip](../tooltip/COMPONENT.md) (handle hint), Icon (sort arrows, the expand chevron, the `DataTable.ColumnsMenu` trigger); `useVirtualRows` (the window of a long body)
382
392
  - **See also:** [Sparkline](../sparkline/COMPONENT.md) (`layout="compact"` in a cell), [SmartFilter](../smart-filter/COMPONENT.md), [PageToolbar](../page-toolbar/COMPONENT.md), [Gantt](../gantt/COMPONENT.md), [Kanban](../kanban/COMPONENT.md), [Badge](../badge/COMPONENT.md), [Avatar](../avatar/COMPONENT.md), [Card](../card/COMPONENT.md)
@@ -1,4 +1,4 @@
1
- /** Sort and page owned by the parent (a URL or a store): a header click goes asc → desc → none, a new sort returns to page 1 — `sort`, `onSortChange`, `page`, `onPageChange`. */
1
+ /** Sort, page and the column choice owned by the parent (a URL or a store): a header click goes asc → desc → none, a new sort returns to page 1 — `sort`, `onSortChange`, `page`, `onPageChange`, `hiddenColumns`, `onHiddenColumnsChange`. */
2
2
  import { DataTable, type DataTableColumn, type DataTableSortState } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
@@ -21,7 +21,15 @@ const RUB = new Intl.NumberFormat("ru-RU", {
21
21
  });
22
22
 
23
23
  const COLUMNS: DataTableColumn<Order>[] = [
24
- { id: "id", header: "№", accessor: "id", sortable: true, numeric: true, width: "5rem" },
24
+ {
25
+ id: "id",
26
+ header: "№",
27
+ accessor: "id",
28
+ sortable: true,
29
+ numeric: true,
30
+ width: "5rem",
31
+ hideable: false,
32
+ },
25
33
  { id: "customer", header: "Покупатель", accessor: "customer", sortable: true },
26
34
  { id: "city", header: "Город", accessor: "city", sortable: true },
27
35
  {
@@ -37,12 +45,16 @@ const COLUMNS: DataTableColumn<Order>[] = [
37
45
  export default function DataTableControlledExample() {
38
46
  const [sort, setSort] = React.useState<DataTableSortState>({ columnId: "total", order: "desc" });
39
47
  const [page, setPage] = React.useState(1);
48
+ const [hiddenColumns, setHiddenColumns] = React.useState<string[]>(["city"]);
40
49
 
41
50
  return (
42
51
  <DataTable
43
52
  columns={COLUMNS}
44
53
  rows={ORDERS}
45
54
  getRowKey={(row) => row.id}
55
+ toolbar={<DataTable.ColumnsMenu />}
56
+ hiddenColumns={hiddenColumns}
57
+ onHiddenColumnsChange={setHiddenColumns}
46
58
  sort={sort}
47
59
  onSortChange={(next) => {
48
60
  setSort(next);
@@ -27,15 +27,7 @@
27
27
  max-width: calc(var(--prime-space-20) * 4);
28
28
  }
29
29
 
30
- /* sizes / appearance / states: a table with its caption under it; specimens kept apart. */
31
- .specimens {
32
- display: flex;
33
- flex-direction: column;
34
- gap: var(--prime-space-6);
35
- width: 100%;
36
- min-width: 0;
37
- }
38
-
30
+ /* appearance / content-width: a table with its caption under it. */
39
31
  .specimen {
40
32
  display: flex;
41
33
  flex-direction: column;
@@ -21,7 +21,11 @@ const COLUMNS: DataTableColumn<Ticket>[] = [
21
21
  id: "priority",
22
22
  header: "Приоритет",
23
23
  cell: (row) =>
24
- row.urgent ? <Badge.Root color="red">Высокий</Badge.Root> : <Badge.Root>Обычный</Badge.Root>,
24
+ row.urgent ? (
25
+ <Badge.Root tone="danger">Высокий</Badge.Root>
26
+ ) : (
27
+ <Badge.Root tone="neutral">Обычный</Badge.Root>
28
+ ),
25
29
  },
26
30
  { id: "waiting", header: "Ждёт, ч", accessor: "waiting", numeric: true },
27
31
  ];
@@ -45,7 +45,8 @@ export default function DataTableRowLinkExample() {
45
45
  },
46
46
  {
47
47
  id: "actions",
48
- header: "",
48
+ header: "Действия",
49
+ hideHeader: true,
49
50
  align: "end",
50
51
  cell: (row) =>
51
52
  row.total ? null : (
@@ -1,11 +1,11 @@
1
1
  /* List page: the header carries the title and the tools; this module lays out table cells only. */
2
2
 
3
- /* Client cell: avatar, then the name over the tax id. On a phone the table scrolls sideways. */
3
+ /* Client cell: avatar, then the name over the tax id (the column's `minWidth` keeps it on its
4
+ lines; on a phone the table scrolls sideways). */
4
5
  .client {
5
6
  display: flex;
6
7
  align-items: center;
7
8
  gap: var(--prime-space-3);
8
- white-space: nowrap;
9
9
  }
10
10
 
11
11
  .clientText {
@@ -12,7 +12,6 @@ import {
12
12
  matchesSmartFilter,
13
13
  PageContent,
14
14
  PageToolbar,
15
- type PaletteColor,
16
15
  SmartFilter,
17
16
  type SmartFilterField,
18
17
  type SmartFilterValue,
@@ -34,13 +33,13 @@ type Invoice = {
34
33
  status: Status;
35
34
  };
36
35
 
37
- /** One hue per status across the product: the text carries the meaning, the color repeats it. */
38
- const STATUS: Record<Status, { label: string; color: PaletteColor }> = {
39
- draft: { label: "Черновик", color: "gray" },
40
- sent: { label: "Отправлен", color: "blue" },
41
- paid: { label: "Оплачен", color: "green" },
42
- overdue: { label: "Просрочен", color: "red" },
43
- };
36
+ /** One tone per status across the product: the text carries the meaning, the tone repeats it. */
37
+ const STATUS = {
38
+ draft: { label: "Черновик", tone: "neutral" },
39
+ sent: { label: "Отправлен", tone: "info" },
40
+ paid: { label: "Оплачен", tone: "success" },
41
+ overdue: { label: "Просрочен", tone: "danger" },
42
+ } as const satisfies Record<Status, { label: string; tone: string }>;
44
43
 
45
44
  const INVOICES: Invoice[] = [
46
45
  {
@@ -186,6 +185,7 @@ const COLUMNS: DataTableColumn<Invoice>[] = [
186
185
  header: "Клиент",
187
186
  accessor: "client",
188
187
  sortable: true,
188
+ minWidth: "16rem",
189
189
  cell: (row) => (
190
190
  <span className={styles.client}>
191
191
  <Avatar.Root size="s" color="gray">
@@ -207,7 +207,7 @@ const COLUMNS: DataTableColumn<Invoice>[] = [
207
207
  header: "Статус",
208
208
  accessor: "status",
209
209
  cell: (row) => (
210
- <Badge.Root color={STATUS[row.status].color}>{STATUS[row.status].label}</Badge.Root>
210
+ <Badge.Root tone={STATUS[row.status].tone}>{STATUS[row.status].label}</Badge.Root>
211
211
  ),
212
212
  },
213
213
  {
@@ -230,7 +230,8 @@ const COLUMNS: DataTableColumn<Invoice>[] = [
230
230
  },
231
231
  {
232
232
  id: "actions",
233
- header: "",
233
+ header: "Действия",
234
+ hideHeader: true,
234
235
  width: "3.5rem",
235
236
  align: "end",
236
237
  cell: (row) => (