prime-ui-kit 0.15.0 → 0.17.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 (1190) hide show
  1. package/README.md +79 -74
  2. package/dist/chunks/{chunk-Q3BFRQHZ.js → chunk-2ODXLPW3.js} +169 -10
  3. package/dist/chunks/{chunk-XJAVS6FH.js → chunk-7WWZYGRC.js} +5482 -4179
  4. package/dist/chunks/{chunk-THFZIHKU.js → chunk-A4WE3UNC.js} +28219 -27605
  5. package/dist/chunks/{chunk-6TI4DSM5.js → chunk-PRP4B6OG.js} +1 -1
  6. package/dist/chunks/{chunk-2IKH55MI.js → chunk-SVFWPLNW.js} +215 -154
  7. package/dist/color-picker.d.ts +1 -1
  8. package/dist/color-picker.js +3 -3
  9. package/dist/components/accordion/Accordion.d.ts +52 -5
  10. package/dist/components/avatar/Avatar.d.ts +31 -8
  11. package/dist/components/badge/Badge.d.ts +93 -25
  12. package/dist/components/banner/Banner.d.ts +17 -10
  13. package/dist/components/breadcrumb/Breadcrumb.d.ts +18 -5
  14. package/dist/components/button/Button.d.ts +102 -43
  15. package/dist/components/button-group/ButtonGroup.d.ts +32 -8
  16. package/dist/components/card/Card.d.ts +15 -9
  17. package/dist/components/chart-frame/ChartFrame.d.ts +58 -51
  18. package/dist/components/chat/Chat.d.ts +77 -38
  19. package/dist/components/chat/ChatPinned.d.ts +20 -8
  20. package/dist/components/chat/ChatRows.d.ts +8 -1
  21. package/dist/components/chat/MessageList.d.ts +14 -19
  22. package/dist/components/chat/chatContext.d.ts +3 -3
  23. package/dist/components/chat/messageFlow.d.ts +1 -1
  24. package/dist/components/chat-list/ChatList.d.ts +88 -34
  25. package/dist/components/checkbox/Checkbox.d.ts +61 -12
  26. package/dist/components/code-block/CodeBlock.d.ts +11 -5
  27. package/dist/components/color-field/ColorField.d.ts +54 -14
  28. package/dist/components/color-picker/ColorPicker.d.ts +81 -30
  29. package/dist/components/color-picker/ColorPresets.d.ts +68 -13
  30. package/dist/components/color-swatches/ColorSwatches.d.ts +90 -18
  31. package/dist/components/command-menu/CommandMenu.d.ts +86 -27
  32. package/dist/components/composer/Composer.d.ts +82 -41
  33. package/dist/components/composer/useRecorder.d.ts +0 -2
  34. package/dist/components/confirm-dialog/ConfirmDialog.d.ts +40 -16
  35. package/dist/components/crossfade/Crossfade.d.ts +5 -8
  36. package/dist/components/data-table/ColumnsMenu.d.ts +6 -2
  37. package/dist/components/data-table/DataTable.d.ts +157 -58
  38. package/dist/components/data-table/Footer.d.ts +2 -4
  39. package/dist/components/data-table/Row.d.ts +1 -1
  40. package/dist/components/data-table/StateRows.d.ts +2 -2
  41. package/dist/components/data-table/reorder.d.ts +10 -10
  42. package/dist/components/data-table/types.d.ts +5 -0
  43. package/dist/components/data-table/useInfiniteRows.d.ts +3 -3
  44. package/dist/components/datepicker/Datepicker.d.ts +61 -12
  45. package/dist/components/datepicker/DatepickerPanel.d.ts +76 -16
  46. package/dist/components/datepicker/panelLayout.d.ts +6 -11
  47. package/dist/components/description-list/DescriptionList.d.ts +40 -11
  48. package/dist/components/digit-input/DigitInput.d.ts +50 -19
  49. package/dist/components/divider/Divider.d.ts +15 -5
  50. package/dist/components/dnd/Dnd.d.ts +152 -41
  51. package/dist/components/dnd/geometry.d.ts +0 -8
  52. package/dist/components/dnd/labels.d.ts +1 -1
  53. package/dist/components/dnd/useDropTarget.d.ts +0 -2
  54. package/dist/components/dnd/useSortableList.d.ts +6 -1
  55. package/dist/components/drawer/Drawer.d.ts +39 -18
  56. package/dist/components/dropdown/Dropdown.d.ts +90 -19
  57. package/dist/components/empty-page/EmptyPage.d.ts +14 -15
  58. package/dist/components/example-frame/ExampleFrame.d.ts +38 -8
  59. package/dist/components/field-list/FieldList.d.ts +57 -19
  60. package/dist/components/fieldset/Fieldset.d.ts +12 -7
  61. package/dist/components/file-upload/FileUpload.d.ts +119 -42
  62. package/dist/components/gallery/Gallery.d.ts +44 -16
  63. package/dist/components/gallery/layout.d.ts +4 -1
  64. package/dist/components/gantt/Gantt.d.ts +69 -34
  65. package/dist/components/gantt/GanttRow.d.ts +2 -2
  66. package/dist/components/hint/Hint.d.ts +10 -4
  67. package/dist/components/index.d.ts +18 -21
  68. package/dist/components/input/Input.d.ts +78 -25
  69. package/dist/components/kanban/Kanban.d.ts +64 -36
  70. package/dist/components/kbd/Kbd.d.ts +3 -1
  71. package/dist/components/label/Label.d.ts +33 -4
  72. package/dist/components/link-button/LinkButton.d.ts +40 -10
  73. package/dist/components/list/List.d.ts +48 -26
  74. package/dist/components/login-form/LoginForm.d.ts +66 -7
  75. package/dist/components/media-viewer/MediaViewer.d.ts +46 -18
  76. package/dist/components/media-viewer/physics.d.ts +0 -2
  77. package/dist/components/media-viewer/viewerEngine.d.ts +0 -1
  78. package/dist/components/message/Message.d.ts +27 -16
  79. package/dist/components/message/MessageCards.d.ts +49 -10
  80. package/dist/components/message/MessageFile.d.ts +19 -5
  81. package/dist/components/message/MessageParts.d.ts +44 -18
  82. package/dist/components/message/MessageReactionBar.d.ts +3 -1
  83. package/dist/components/message/MessageTyping.d.ts +10 -6
  84. package/dist/components/message/bubbleMorph.d.ts +2 -0
  85. package/dist/components/modal/Modal.d.ts +6 -6
  86. package/dist/components/native-select/NativeSelect.d.ts +22 -7
  87. package/dist/components/notification/Notification.d.ts +35 -11
  88. package/dist/components/notification/NotificationStore.d.ts +12 -3
  89. package/dist/components/pagination/Pagination.d.ts +29 -6
  90. package/dist/components/popover/Popover.d.ts +54 -31
  91. package/dist/components/progress-bar/ProgressBar.d.ts +37 -12
  92. package/dist/components/progress-circle/ProgressCircle.d.ts +32 -13
  93. package/dist/components/radio/Radio.d.ts +58 -15
  94. package/dist/components/scroll-container/ScrollContainer.d.ts +28 -14
  95. package/dist/components/scroll-container/useScrollEdges.d.ts +1 -24
  96. package/dist/components/segmented-control/SegmentedControl.d.ts +73 -15
  97. package/dist/components/select/Select.d.ts +104 -30
  98. package/dist/components/select/SelectItem.d.ts +35 -8
  99. package/dist/components/select/selectContext.d.ts +7 -19
  100. package/dist/components/sheet/Sheet.d.ts +32 -15
  101. package/dist/components/skeleton/Skeleton.d.ts +9 -3
  102. package/dist/components/slider/Slider.d.ts +55 -15
  103. package/dist/components/smart-filter/SmartFilter.d.ts +39 -13
  104. package/dist/components/sparkline/Sparkline.d.ts +42 -19
  105. package/dist/components/spinner/Spinner.d.ts +11 -5
  106. package/dist/components/stepper/Stepper.d.ts +41 -19
  107. package/dist/components/switch/Switch.d.ts +37 -12
  108. package/dist/components/tabs/Tabs.d.ts +61 -18
  109. package/dist/components/tag-select/TagSelect.d.ts +74 -20
  110. package/dist/components/textarea/Textarea.d.ts +52 -25
  111. package/dist/components/thumbnail/Thumbnail.d.ts +50 -20
  112. package/dist/components/timeline/Timeline.d.ts +85 -66
  113. package/dist/components/tooltip/Tooltip.d.ts +47 -17
  114. package/dist/components/typography/Typography.d.ts +32 -6
  115. package/dist/components/video-note/VideoNote.d.ts +7 -1
  116. package/dist/{internal → components/visually-hidden}/VisuallyHidden.d.ts +5 -5
  117. package/dist/components/voice-player/VoicePlayer.d.ts +16 -3
  118. package/dist/hooks/breakpoints.d.ts +10 -0
  119. package/dist/hooks/floatingPosition.d.ts +42 -0
  120. package/dist/hooks/useDraft.d.ts +12 -0
  121. package/dist/hooks/useEdgeOverflow.d.ts +5 -3
  122. package/dist/hooks/useElementSize.d.ts +31 -0
  123. package/dist/hooks/useEnterConfirm.d.ts +2 -1
  124. package/dist/hooks/useImageStatus.d.ts +12 -5
  125. package/dist/hooks/useLoadMore.d.ts +28 -0
  126. package/dist/hooks/useMediaQuery.d.ts +1 -3
  127. package/dist/hooks/useMergedRefs.d.ts +10 -4
  128. package/dist/hooks/useModalLayer.d.ts +13 -7
  129. package/dist/hooks/usePosition.d.ts +4 -42
  130. package/dist/hooks/usePresence.d.ts +4 -7
  131. package/dist/hooks/useScrollRegion.d.ts +28 -0
  132. package/dist/hooks/useStableValue.d.ts +6 -0
  133. package/dist/hooks/useSwipeDismiss.d.ts +38 -17
  134. package/dist/hooks/useVirtualRows.d.ts +9 -3
  135. package/dist/icon-set.js +2 -2
  136. package/dist/icons/Icon.d.ts +1 -1
  137. package/dist/icons/glyph.d.ts +9 -2
  138. package/dist/index.css +1 -1
  139. package/dist/index.js +15 -9
  140. package/dist/internal/AnchorRectContext.d.ts +2 -1
  141. package/dist/internal/ChartTooltip.d.ts +1 -1
  142. package/dist/internal/CheckMark.d.ts +2 -2
  143. package/dist/internal/ChoiceField.d.ts +29 -10
  144. package/dist/internal/ControlSizeContext.d.ts +16 -0
  145. package/dist/internal/Disclosure.d.ts +38 -9
  146. package/dist/internal/FieldAction.d.ts +20 -12
  147. package/dist/internal/FieldCommit.d.ts +8 -11
  148. package/dist/internal/FieldFrame.d.ts +100 -21
  149. package/dist/internal/MenuGroup.d.ts +3 -1
  150. package/dist/internal/MorphText.d.ts +2 -1
  151. package/dist/internal/ProgressLegend.d.ts +3 -2
  152. package/dist/internal/RegionSwap.d.ts +41 -0
  153. package/dist/internal/RollingNumber.d.ts +10 -1
  154. package/dist/internal/RowAction.d.ts +26 -0
  155. package/dist/internal/SwitcherScroller.d.ts +11 -0
  156. package/dist/internal/attachmentTile.d.ts +1 -1
  157. package/dist/internal/audio.d.ts +13 -0
  158. package/dist/internal/barPlan.d.ts +44 -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 +31 -6
  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 +23 -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-shell/AppShell.d.ts +63 -18
  223. package/dist/layout/bottom-nav/BottomNav.d.ts +58 -22
  224. package/dist/layout/index.d.ts +4 -4
  225. package/dist/layout/page/Page.d.ts +263 -0
  226. package/dist/layout/sidebar/Sidebar.d.ts +232 -101
  227. package/dist/skill/SKILL.md +16 -16
  228. package/dist/skill/anti-slop.md +204 -27
  229. package/dist/skill/api-contract.md +115 -35
  230. package/dist/skill/cheatsheet.md +60 -55
  231. package/dist/skill/checklist.md +61 -89
  232. package/dist/skill/choosing.md +26 -27
  233. package/dist/skill/components.md +50 -50
  234. package/dist/skill/composition.md +220 -185
  235. package/dist/skill/foundations.md +39 -32
  236. package/dist/skill/layouts.md +82 -143
  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 +24 -17
  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 +3 -3
  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 +13 -9
  261. package/dist/skill/reference/components/banner/examples/dismissible.tsx +3 -19
  262. package/dist/skill/reference/components/banner/examples/examples.module.css +6 -1
  263. package/dist/skill/reference/components/banner/examples/overview.tsx +1 -1
  264. package/dist/skill/reference/components/banner/examples/page-strip.tsx +24 -22
  265. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +23 -16
  266. package/dist/skill/reference/components/breadcrumb/examples/examples.module.css +1 -1
  267. package/dist/skill/reference/components/breadcrumb/examples/overflow.tsx +1 -1
  268. package/dist/skill/reference/components/breadcrumb/examples/sizes.tsx +6 -8
  269. package/dist/skill/reference/components/breadcrumb/examples/with-icon.tsx +15 -8
  270. package/dist/skill/reference/components/button/COMPONENT.md +67 -30
  271. package/dist/skill/reference/components/button/examples/align.tsx +25 -0
  272. package/dist/skill/reference/components/button/examples/controlled.tsx +21 -0
  273. package/dist/skill/reference/components/button/examples/density.tsx +45 -0
  274. package/dist/skill/reference/components/button/examples/examples.module.css +14 -25
  275. package/dist/skill/reference/components/button/examples/hold-to-confirm.tsx +1 -1
  276. package/dist/skill/reference/components/button/examples/label-morph.tsx +1 -1
  277. package/dist/skill/reference/components/button/examples/on-colored-host.tsx +19 -19
  278. package/dist/skill/reference/components/button/examples/over-media.tsx +7 -1
  279. package/dist/skill/reference/components/button/examples/toggle.tsx +2 -10
  280. package/dist/skill/reference/components/button-group/COMPONENT.md +21 -15
  281. package/dist/skill/reference/components/button-group/examples/controlled.tsx +1 -1
  282. package/dist/skill/reference/components/card/COMPONENT.md +21 -10
  283. package/dist/skill/reference/components/card/examples/content-templates.tsx +8 -2
  284. package/dist/skill/reference/components/card/examples/examples.module.css +4 -16
  285. package/dist/skill/reference/components/card/examples/overview.tsx +11 -11
  286. package/dist/skill/reference/components/card/examples/screen.module.css +1 -1
  287. package/dist/skill/reference/components/card/examples/screen.tsx +185 -198
  288. package/dist/skill/reference/components/card/examples/variants.tsx +74 -47
  289. package/dist/skill/reference/components/chart-frame/COMPONENT.md +24 -28
  290. package/dist/skill/reference/components/chart-frame/examples/controlled.tsx +9 -7
  291. package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +13 -15
  292. package/dist/skill/reference/components/chart-frame/examples/narrow.tsx +24 -5
  293. package/dist/skill/reference/components/chart-frame/examples/overview.tsx +5 -2
  294. package/dist/skill/reference/components/chart-frame/examples/states.tsx +72 -64
  295. package/dist/skill/reference/components/chart-frame/examples/tooltip.tsx +27 -26
  296. package/dist/skill/reference/components/chat/COMPONENT.md +39 -26
  297. package/dist/skill/reference/components/chat/examples/group-chat.tsx +2 -2
  298. package/dist/skill/reference/components/chat/examples/overview.tsx +119 -130
  299. package/dist/skill/reference/components/chat/examples/reactions.tsx +18 -23
  300. package/dist/skill/reference/components/chat/examples/screen.module.css +1 -1
  301. package/dist/skill/reference/components/chat/examples/screen.tsx +212 -242
  302. package/dist/skill/reference/components/chat/examples/states.tsx +23 -22
  303. package/dist/skill/reference/components/chat-list/COMPONENT.md +11 -6
  304. package/dist/skill/reference/components/chat-list/examples/controlled.tsx +2 -2
  305. package/dist/skill/reference/components/chat-list/examples/examples.module.css +8 -8
  306. package/dist/skill/reference/components/chat-list/examples/live.tsx +29 -22
  307. package/dist/skill/reference/components/chat-list/examples/sizes.tsx +6 -8
  308. package/dist/skill/reference/components/chat-list/examples/states.tsx +42 -38
  309. package/dist/skill/reference/components/checkbox/COMPONENT.md +27 -14
  310. package/dist/skill/reference/components/checkbox/examples/controlled.tsx +18 -16
  311. package/dist/skill/reference/components/checkbox/examples/examples.module.css +15 -56
  312. package/dist/skill/reference/components/checkbox/examples/in-form.tsx +16 -16
  313. package/dist/skill/reference/components/checkbox/examples/indicator.tsx +19 -64
  314. package/dist/skill/reference/components/checkbox/examples/overview.tsx +1 -1
  315. package/dist/skill/reference/components/checkbox/examples/states.tsx +1 -1
  316. package/dist/skill/reference/components/checkbox/examples/without-label.tsx +1 -1
  317. package/dist/skill/reference/components/code-block/COMPONENT.md +16 -12
  318. package/dist/skill/reference/components/code-block/examples/color-scheme.tsx +2 -4
  319. package/dist/skill/reference/components/code-block/examples/examples.module.css +1 -9
  320. package/dist/skill/reference/components/code-block/examples/narrow.tsx +1 -1
  321. package/dist/skill/reference/components/color-field/COMPONENT.md +15 -9
  322. package/dist/skill/reference/components/color-field/examples/examples.module.css +4 -5
  323. package/dist/skill/reference/components/color-field/examples/in-form.tsx +15 -13
  324. package/dist/skill/reference/components/color-field/examples/sizes.tsx +5 -1
  325. package/dist/skill/reference/components/color-field/examples/states.tsx +15 -3
  326. package/dist/skill/reference/components/color-picker/COMPONENT.md +69 -22
  327. package/dist/skill/reference/components/color-picker/examples/controlled.tsx +16 -5
  328. package/dist/skill/reference/components/color-picker/examples/examples.module.css +8 -12
  329. package/dist/skill/reference/components/color-picker/examples/in-form.tsx +24 -22
  330. package/dist/skill/reference/components/color-picker/examples/overview.tsx +6 -11
  331. package/dist/skill/reference/components/color-picker/examples/panel.tsx +1 -1
  332. package/dist/skill/reference/components/color-picker/examples/sizes.tsx +10 -16
  333. package/dist/skill/reference/components/color-picker/examples/states.tsx +28 -23
  334. package/dist/skill/reference/components/color-swatches/COMPONENT.md +22 -8
  335. package/dist/skill/reference/components/color-swatches/examples/examples.module.css +3 -4
  336. package/dist/skill/reference/components/color-swatches/examples/in-form.tsx +19 -17
  337. package/dist/skill/reference/components/color-swatches/examples/palette.tsx +24 -0
  338. package/dist/skill/reference/components/color-swatches/examples/wrapping.tsx +17 -2
  339. package/dist/skill/reference/components/command-menu/COMPONENT.md +60 -20
  340. package/dist/skill/reference/components/command-menu/examples/sizes.tsx +20 -15
  341. package/dist/skill/reference/components/command-menu/examples/states.tsx +46 -24
  342. package/dist/skill/reference/components/composer/COMPONENT.md +42 -24
  343. package/dist/skill/reference/components/composer/examples/examples.module.css +0 -9
  344. package/dist/skill/reference/components/composer/examples/narrow.tsx +1 -1
  345. package/dist/skill/reference/components/composer/examples/reply-edit.tsx +3 -3
  346. package/dist/skill/reference/components/composer/examples/sizes.tsx +3 -5
  347. package/dist/skill/reference/components/composer/examples/states.tsx +4 -6
  348. package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +26 -13
  349. package/dist/skill/reference/components/confirm-dialog/examples/dismiss.tsx +27 -0
  350. package/dist/skill/reference/components/confirm-dialog/examples/failure.tsx +9 -16
  351. package/dist/skill/reference/components/crossfade/COMPONENT.md +13 -7
  352. package/dist/skill/reference/components/crossfade/examples/examples.module.css +1 -40
  353. package/dist/skill/reference/components/crossfade/examples/fill.tsx +16 -19
  354. package/dist/skill/reference/components/crossfade/examples/overview.tsx +14 -16
  355. package/dist/skill/reference/components/crossfade/examples/record-switch.tsx +6 -11
  356. package/dist/skill/reference/components/crossfade/examples/screen.module.css +1 -24
  357. package/dist/skill/reference/components/crossfade/examples/screen.tsx +108 -124
  358. package/dist/skill/reference/components/data-table/COMPONENT.md +36 -26
  359. package/dist/skill/reference/components/data-table/examples/controlled.tsx +14 -2
  360. package/dist/skill/reference/components/data-table/examples/examples.module.css +10 -9
  361. package/dist/skill/reference/components/data-table/examples/narrow.tsx +5 -1
  362. package/dist/skill/reference/components/data-table/examples/row-link.tsx +2 -1
  363. package/dist/skill/reference/components/data-table/examples/screen.module.css +2 -2
  364. package/dist/skill/reference/components/data-table/examples/screen.tsx +53 -62
  365. package/dist/skill/reference/components/data-table/examples/server.tsx +6 -2
  366. package/dist/skill/reference/components/data-table/examples/sizes.tsx +17 -17
  367. package/dist/skill/reference/components/data-table/examples/states.tsx +37 -29
  368. package/dist/skill/reference/components/datepicker/COMPONENT.md +53 -22
  369. package/dist/skill/reference/components/datepicker/examples/dismiss.tsx +15 -0
  370. package/dist/skill/reference/components/datepicker/examples/examples.module.css +9 -2
  371. package/dist/skill/reference/components/datepicker/examples/in-form.tsx +33 -25
  372. package/dist/skill/reference/components/datepicker/examples/inline-panel.tsx +3 -1
  373. package/dist/skill/reference/components/datepicker/examples/sizes.tsx +2 -2
  374. package/dist/skill/reference/components/datepicker/examples/states.tsx +2 -2
  375. package/dist/skill/reference/components/datepicker/examples/validation.tsx +3 -3
  376. package/dist/skill/reference/components/description-list/COMPONENT.md +24 -9
  377. package/dist/skill/reference/components/description-list/examples/examples.module.css +4 -24
  378. package/dist/skill/reference/components/description-list/examples/narrow.tsx +1 -1
  379. package/dist/skill/reference/components/description-list/examples/screen.module.css +0 -18
  380. package/dist/skill/reference/components/description-list/examples/screen.tsx +119 -134
  381. package/dist/skill/reference/components/description-list/examples/sizes.tsx +2 -4
  382. package/dist/skill/reference/components/description-list/examples/structure.tsx +6 -7
  383. package/dist/skill/reference/components/description-list/examples/totals.tsx +40 -0
  384. package/dist/skill/reference/components/digit-input/COMPONENT.md +12 -6
  385. package/dist/skill/reference/components/digit-input/examples/examples.module.css +2 -2
  386. package/dist/skill/reference/components/digit-input/examples/grouped.tsx +4 -4
  387. package/dist/skill/reference/components/digit-input/examples/in-form.tsx +1 -1
  388. package/dist/skill/reference/components/digit-input/examples/sizes.tsx +5 -3
  389. package/dist/skill/reference/components/digit-input/examples/states.tsx +14 -6
  390. package/dist/skill/reference/components/digit-input/examples/validation.tsx +1 -1
  391. package/dist/skill/reference/components/divider/COMPONENT.md +28 -14
  392. package/dist/skill/reference/components/divider/examples/align.tsx +2 -4
  393. package/dist/skill/reference/components/divider/examples/examples.module.css +16 -17
  394. package/dist/skill/reference/components/divider/examples/or-separator.tsx +3 -5
  395. package/dist/skill/reference/components/divider/examples/overview.tsx +18 -16
  396. package/dist/skill/reference/components/divider/examples/vertical.tsx +25 -8
  397. package/dist/skill/reference/components/divider/examples/with-icon.tsx +1 -1
  398. package/dist/skill/reference/components/dnd/COMPONENT.md +52 -34
  399. package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +1 -1
  400. package/dist/skill/reference/components/dnd/examples/examples.module.css +7 -7
  401. package/dist/skill/reference/components/dnd/examples/states.tsx +41 -35
  402. package/dist/skill/reference/components/drawer/COMPONENT.md +38 -15
  403. package/dist/skill/reference/components/drawer/examples/guard.tsx +1 -3
  404. package/dist/skill/reference/components/drawer/examples/header-actions.tsx +1 -1
  405. package/dist/skill/reference/components/drawer/examples/in-form.tsx +31 -31
  406. package/dist/skill/reference/components/drawer/examples/placement.tsx +1 -1
  407. package/dist/skill/reference/components/drawer/examples/screen.tsx +137 -160
  408. package/dist/skill/reference/components/drawer/examples/sizes.tsx +32 -27
  409. package/dist/skill/reference/components/dropdown/COMPONENT.md +59 -24
  410. package/dist/skill/reference/components/dropdown/examples/context-menu.tsx +75 -0
  411. package/dist/skill/reference/components/dropdown/examples/examples.module.css +1 -1
  412. package/dist/skill/reference/components/dropdown/examples/sizes.tsx +39 -34
  413. package/dist/skill/reference/components/dropdown/examples/states.tsx +37 -29
  414. package/dist/skill/reference/components/empty-page/COMPONENT.md +20 -9
  415. package/dist/skill/reference/components/empty-page/examples/compact.tsx +28 -18
  416. package/dist/skill/reference/components/empty-page/examples/examples.module.css +0 -43
  417. package/dist/skill/reference/components/empty-page/examples/narrow.tsx +3 -3
  418. package/dist/skill/reference/components/empty-page/examples/region-error.tsx +6 -11
  419. package/dist/skill/reference/components/empty-page/examples/sizes.tsx +13 -13
  420. package/dist/skill/reference/components/empty-page/examples/variants.tsx +34 -30
  421. package/dist/skill/reference/components/example-frame/COMPONENT.md +23 -11
  422. package/dist/skill/reference/components/example-frame/examples/controlled.tsx +3 -3
  423. package/dist/skill/reference/components/field-list/COMPONENT.md +14 -8
  424. package/dist/skill/reference/components/field-list/examples/screen.module.css +1 -1
  425. package/dist/skill/reference/components/field-list/examples/screen.tsx +19 -19
  426. package/dist/skill/reference/components/field-list/examples/sizes.tsx +32 -26
  427. package/dist/skill/reference/components/field-list/examples/states.tsx +37 -31
  428. package/dist/skill/reference/components/fieldset/COMPONENT.md +11 -6
  429. package/dist/skill/reference/components/fieldset/examples/examples.module.css +1 -1
  430. package/dist/skill/reference/components/fieldset/examples/states.tsx +1 -1
  431. package/dist/skill/reference/components/file-upload/COMPONENT.md +68 -30
  432. package/dist/skill/reference/components/file-upload/examples/avatar-upload.tsx +5 -5
  433. package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +12 -7
  434. package/dist/skill/reference/components/file-upload/examples/examples.module.css +4 -4
  435. package/dist/skill/reference/components/file-upload/examples/narrow.tsx +1 -1
  436. package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +4 -4
  437. package/dist/skill/reference/components/file-upload/examples/screen.module.css +4 -4
  438. package/dist/skill/reference/components/file-upload/examples/screen.tsx +70 -84
  439. package/dist/skill/reference/components/file-upload/examples/sizes.tsx +1 -3
  440. package/dist/skill/reference/components/file-upload/examples/states.tsx +1 -3
  441. package/dist/skill/reference/components/file-upload/examples/variants.tsx +13 -7
  442. package/dist/skill/reference/components/gallery/COMPONENT.md +17 -7
  443. package/dist/skill/reference/components/gallery/examples/album-sizes.tsx +52 -0
  444. package/dist/skill/reference/components/gallery/examples/controlled.tsx +40 -0
  445. package/dist/skill/reference/components/gallery/examples/examples.module.css +1 -1
  446. package/dist/skill/reference/components/gallery/examples/overview.tsx +15 -43
  447. package/dist/skill/reference/components/gallery/examples/transfer.tsx +22 -13
  448. package/dist/skill/reference/components/gantt/COMPONENT.md +21 -15
  449. package/dist/skill/reference/components/gantt/examples/examples.module.css +0 -16
  450. package/dist/skill/reference/components/gantt/examples/occupancy.tsx +2 -2
  451. package/dist/skill/reference/components/gantt/examples/screen.module.css +1 -1
  452. package/dist/skill/reference/components/gantt/examples/screen.tsx +56 -74
  453. package/dist/skill/reference/components/gantt/examples/sizes.tsx +16 -16
  454. package/dist/skill/reference/components/gantt/examples/states.tsx +34 -30
  455. package/dist/skill/reference/components/gantt/examples/variants.tsx +27 -25
  456. package/dist/skill/reference/components/hint/COMPONENT.md +24 -14
  457. package/dist/skill/reference/components/hint/examples/examples.module.css +10 -1
  458. package/dist/skill/reference/components/hint/examples/hint-or-error.tsx +2 -2
  459. package/dist/skill/reference/components/hint/examples/overview.tsx +10 -11
  460. package/dist/skill/reference/components/hint/examples/sizes.tsx +1 -1
  461. package/dist/skill/reference/components/input/COMPONENT.md +10 -6
  462. package/dist/skill/reference/components/input/examples/affixes.tsx +2 -2
  463. package/dist/skill/reference/components/input/examples/examples.module.css +1 -1
  464. package/dist/skill/reference/components/input/examples/sizes.tsx +9 -5
  465. package/dist/skill/reference/components/input/examples/states.tsx +39 -23
  466. package/dist/skill/reference/components/input/examples/with-icon.tsx +24 -16
  467. package/dist/skill/reference/components/kanban/COMPONENT.md +30 -24
  468. package/dist/skill/reference/components/kanban/examples/columns.tsx +14 -19
  469. package/dist/skill/reference/components/kanban/examples/item-link.tsx +2 -2
  470. package/dist/skill/reference/components/kanban/examples/limits.tsx +1 -1
  471. package/dist/skill/reference/components/kanban/examples/narrow.tsx +1 -1
  472. package/dist/skill/reference/components/kanban/examples/screen.module.css +2 -4
  473. package/dist/skill/reference/components/kanban/examples/screen.tsx +55 -68
  474. package/dist/skill/reference/components/kanban/examples/states.tsx +37 -58
  475. package/dist/skill/reference/components/kanban/examples/variants.tsx +0 -3
  476. package/dist/skill/reference/components/kbd/COMPONENT.md +11 -7
  477. package/dist/skill/reference/components/kbd/examples/examples.module.css +1 -20
  478. package/dist/skill/reference/components/kbd/examples/in-controls.tsx +2 -2
  479. package/dist/skill/reference/components/kbd/examples/shortcut-list.tsx +14 -26
  480. package/dist/skill/reference/components/label/COMPONENT.md +26 -11
  481. package/dist/skill/reference/components/label/examples/examples.module.css +12 -9
  482. package/dist/skill/reference/components/label/examples/overview.tsx +6 -10
  483. package/dist/skill/reference/components/label/examples/structure.tsx +2 -2
  484. package/dist/skill/reference/components/link-button/COMPONENT.md +33 -20
  485. package/dist/skill/reference/components/link-button/examples/as-child.tsx +1 -1
  486. package/dist/skill/reference/components/link-button/examples/external-link.tsx +1 -1
  487. package/dist/skill/reference/components/link-button/examples/overview.tsx +4 -2
  488. package/dist/skill/reference/components/link-button/examples/variants.tsx +2 -2
  489. package/dist/skill/reference/components/list/COMPONENT.md +24 -16
  490. package/dist/skill/reference/components/list/examples/examples.module.css +0 -8
  491. package/dist/skill/reference/components/list/examples/overflow.tsx +1 -1
  492. package/dist/skill/reference/components/list/examples/overview.tsx +31 -30
  493. package/dist/skill/reference/components/list/examples/sizes.tsx +23 -23
  494. package/dist/skill/reference/components/list/examples/states.tsx +38 -21
  495. package/dist/skill/reference/components/list/examples/with-icon.tsx +16 -14
  496. package/dist/skill/reference/components/login-form/COMPONENT.md +69 -16
  497. package/dist/skill/reference/components/login-form/examples/narrow.tsx +1 -1
  498. package/dist/skill/reference/components/login-form/examples/register.tsx +1 -1
  499. package/dist/skill/reference/components/media-viewer/COMPONENT.md +12 -8
  500. package/dist/skill/reference/components/media-viewer/examples/controlled.tsx +16 -16
  501. package/dist/skill/reference/components/media-viewer/examples/examples.module.css +3 -5
  502. package/dist/skill/reference/components/media-viewer/examples/video.tsx +1 -1
  503. package/dist/skill/reference/components/message/COMPONENT.md +102 -46
  504. package/dist/skill/reference/components/message/examples/typing.tsx +5 -5
  505. package/dist/skill/reference/components/modal/COMPONENT.md +71 -37
  506. package/dist/skill/reference/components/modal/examples/dismiss.tsx +35 -27
  507. package/dist/skill/reference/components/modal/examples/enter-key.tsx +22 -25
  508. package/dist/skill/reference/components/modal/examples/examples.module.css +0 -7
  509. package/dist/skill/reference/components/modal/examples/guard.tsx +2 -4
  510. package/dist/skill/reference/components/modal/examples/in-form.tsx +28 -28
  511. package/dist/skill/reference/components/modal/examples/long-content.tsx +6 -4
  512. package/dist/skill/reference/components/modal/examples/sizes.tsx +36 -31
  513. package/dist/skill/reference/components/modal/examples/structure.tsx +1 -1
  514. package/dist/skill/reference/components/native-select/COMPONENT.md +7 -3
  515. package/dist/skill/reference/components/native-select/examples/examples.module.css +3 -3
  516. package/dist/skill/reference/components/native-select/examples/in-form.tsx +28 -29
  517. package/dist/skill/reference/components/native-select/examples/sizes.tsx +2 -2
  518. package/dist/skill/reference/components/native-select/examples/states.tsx +2 -2
  519. package/dist/skill/reference/components/notification/COMPONENT.md +36 -31
  520. package/dist/skill/reference/components/notification/examples/examples.module.css +1 -2
  521. package/dist/skill/reference/components/notification/examples/in-form.tsx +28 -20
  522. package/dist/skill/reference/components/notification/examples/sizes.tsx +16 -12
  523. package/dist/skill/reference/components/notification/examples/undo.tsx +7 -15
  524. package/dist/skill/reference/components/pagination/COMPONENT.md +29 -18
  525. package/dist/skill/reference/components/pagination/examples/controlled.tsx +2 -1
  526. package/dist/skill/reference/components/pagination/examples/narrow.tsx +5 -5
  527. package/dist/skill/reference/components/popover/COMPONENT.md +44 -20
  528. package/dist/skill/reference/components/popover/examples/controlled-open.tsx +6 -4
  529. package/dist/skill/reference/components/popover/examples/dismiss.tsx +37 -28
  530. package/dist/skill/reference/components/popover/examples/examples.module.css +2 -2
  531. package/dist/skill/reference/components/popover/examples/sizes.tsx +32 -27
  532. package/dist/skill/reference/components/popover/examples/width.tsx +57 -0
  533. package/dist/skill/reference/components/progress-bar/COMPONENT.md +21 -29
  534. package/dist/skill/reference/components/progress-bar/examples/examples.module.css +1 -1
  535. package/dist/skill/reference/components/progress-circle/COMPONENT.md +21 -29
  536. package/dist/skill/reference/components/progress-circle/examples/examples.module.css +1 -1
  537. package/dist/skill/reference/components/progress-circle/examples/on-color.tsx +16 -0
  538. package/dist/skill/reference/components/progress-circle/examples/variants.tsx +1 -0
  539. package/dist/skill/reference/components/radio/COMPONENT.md +13 -4
  540. package/dist/skill/reference/components/radio/examples/examples.module.css +1 -1
  541. package/dist/skill/reference/components/scroll-container/COMPONENT.md +18 -12
  542. package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +8 -4
  543. package/dist/skill/reference/components/scroll-container/examples/edges.tsx +4 -4
  544. package/dist/skill/reference/components/scroll-container/examples/examples.module.css +7 -51
  545. package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +4 -4
  546. package/dist/skill/reference/components/scroll-container/examples/lock.tsx +4 -4
  547. package/dist/skill/reference/components/scroll-container/examples/log.tsx +97 -0
  548. package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +4 -4
  549. package/dist/skill/reference/components/scroll-container/examples/overview.tsx +5 -5
  550. package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +4 -4
  551. package/dist/skill/reference/components/scroll-container/examples/snap.tsx +2 -2
  552. package/dist/skill/reference/components/scroll-container/examples/variants.tsx +1 -0
  553. package/dist/skill/reference/components/segmented-control/COMPONENT.md +24 -12
  554. package/dist/skill/reference/components/segmented-control/examples/controlled.tsx +2 -4
  555. package/dist/skill/reference/components/segmented-control/examples/examples.module.css +0 -8
  556. package/dist/skill/reference/components/segmented-control/examples/scroll.tsx +1 -1
  557. package/dist/skill/reference/components/select/COMPONENT.md +33 -9
  558. package/dist/skill/reference/components/select/examples/dismiss.tsx +26 -0
  559. package/dist/skill/reference/components/select/examples/examples.module.css +1 -1
  560. package/dist/skill/reference/components/select/examples/server-search.tsx +6 -2
  561. package/dist/skill/reference/components/select/examples/sizes.tsx +2 -2
  562. package/dist/skill/reference/components/select/examples/states.tsx +2 -2
  563. package/dist/skill/reference/components/select/examples/with-icon.tsx +20 -18
  564. package/dist/skill/reference/components/sheet/COMPONENT.md +44 -21
  565. package/dist/skill/reference/components/sheet/examples/header-actions.tsx +23 -4
  566. package/dist/skill/reference/components/sheet/examples/overview.tsx +25 -10
  567. package/dist/skill/reference/components/skeleton/COMPONENT.md +8 -4
  568. package/dist/skill/reference/components/skeleton/examples/examples.module.css +1 -13
  569. package/dist/skill/reference/components/skeleton/examples/with-crossfade.tsx +7 -7
  570. package/dist/skill/reference/components/slider/COMPONENT.md +13 -8
  571. package/dist/skill/reference/components/slider/examples/examples.module.css +6 -7
  572. package/dist/skill/reference/components/slider/examples/hint-and-error.tsx +3 -5
  573. package/dist/skill/reference/components/slider/examples/in-form.tsx +21 -19
  574. package/dist/skill/reference/components/slider/examples/states.tsx +14 -10
  575. package/dist/skill/reference/components/smart-filter/COMPONENT.md +42 -22
  576. package/dist/skill/reference/components/smart-filter/examples/examples.module.css +3 -21
  577. package/dist/skill/reference/components/smart-filter/examples/many-values.tsx +12 -8
  578. package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +2 -1
  579. package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +9 -7
  580. package/dist/skill/reference/components/sparkline/COMPONENT.md +8 -3
  581. package/dist/skill/reference/components/sparkline/examples/curve.tsx +16 -11
  582. package/dist/skill/reference/components/sparkline/examples/examples.module.css +1 -1
  583. package/dist/skill/reference/components/sparkline/examples/signed-bars.tsx +2 -2
  584. package/dist/skill/reference/components/sparkline/examples/states.tsx +14 -10
  585. package/dist/skill/reference/components/spinner/COMPONENT.md +15 -9
  586. package/dist/skill/reference/components/spinner/examples/examples.module.css +2 -14
  587. package/dist/skill/reference/components/spinner/examples/overview.tsx +1 -1
  588. package/dist/skill/reference/components/stepper/COMPONENT.md +50 -41
  589. package/dist/skill/reference/components/stepper/examples/examples.module.css +1 -6
  590. package/dist/skill/reference/components/stepper/examples/narrow.tsx +1 -1
  591. package/dist/skill/reference/components/stepper/examples/sizes.tsx +6 -8
  592. package/dist/skill/reference/components/stepper/examples/states.tsx +44 -43
  593. package/dist/skill/reference/components/stepper/examples/with-icon.tsx +19 -17
  594. package/dist/skill/reference/components/switch/COMPONENT.md +22 -9
  595. package/dist/skill/reference/components/switch/examples/examples.module.css +2 -2
  596. package/dist/skill/reference/components/switch/examples/states.tsx +3 -3
  597. package/dist/skill/reference/components/tabs/COMPONENT.md +21 -16
  598. package/dist/skill/reference/components/tabs/examples/in-drawer.tsx +1 -1
  599. package/dist/skill/reference/components/tabs/examples/sizes.tsx +5 -10
  600. package/dist/skill/reference/components/tabs/examples/variants.tsx +19 -23
  601. package/dist/skill/reference/components/tag-select/COMPONENT.md +19 -6
  602. package/dist/skill/reference/components/tag-select/examples/creatable.tsx +2 -2
  603. package/dist/skill/reference/components/tag-select/examples/dismiss.tsx +23 -0
  604. package/dist/skill/reference/components/tag-select/examples/examples.module.css +3 -3
  605. package/dist/skill/reference/components/tag-select/examples/in-form.tsx +31 -32
  606. package/dist/skill/reference/components/tag-select/examples/sizes.tsx +2 -2
  607. package/dist/skill/reference/components/tag-select/examples/states.tsx +2 -2
  608. package/dist/skill/reference/components/textarea/COMPONENT.md +10 -6
  609. package/dist/skill/reference/components/textarea/examples/examples.module.css +3 -10
  610. package/dist/skill/reference/components/textarea/examples/in-form.tsx +3 -3
  611. package/dist/skill/reference/components/textarea/examples/sizes.tsx +10 -7
  612. package/dist/skill/reference/components/textarea/examples/states.tsx +29 -13
  613. package/dist/skill/reference/components/textarea/examples/validation.tsx +45 -36
  614. package/dist/skill/reference/components/thumbnail/COMPONENT.md +17 -13
  615. package/dist/skill/reference/components/thumbnail/examples/examples.module.css +1 -1
  616. package/dist/skill/reference/components/thumbnail/examples/states.tsx +1 -1
  617. package/dist/skill/reference/components/thumbnail/examples/variants.tsx +12 -1
  618. package/dist/skill/reference/components/timeline/COMPONENT.md +51 -35
  619. package/dist/skill/reference/components/timeline/examples/links.tsx +14 -14
  620. package/dist/skill/reference/components/timeline/examples/narrow.tsx +6 -6
  621. package/dist/skill/reference/components/timeline/examples/overview.tsx +6 -6
  622. package/dist/skill/reference/components/timeline/examples/sizes.tsx +28 -23
  623. package/dist/skill/reference/components/timeline/examples/structure.tsx +30 -30
  624. package/dist/skill/reference/components/timeline/examples/variants.tsx +40 -28
  625. package/dist/skill/reference/components/tooltip/COMPONENT.md +10 -6
  626. package/dist/skill/reference/components/tooltip/examples/examples.module.css +1 -5
  627. package/dist/skill/reference/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  628. package/dist/skill/reference/components/tooltip/examples/sizes.tsx +17 -10
  629. package/dist/skill/reference/components/typography/COMPONENT.md +18 -3
  630. package/dist/skill/reference/components/typography/examples/examples.module.css +3 -6
  631. package/dist/skill/reference/components/typography/examples/numeric.tsx +16 -0
  632. package/dist/skill/reference/components/video-note/COMPONENT.md +11 -7
  633. package/dist/skill/reference/components/visually-hidden/COMPONENT.md +8 -4
  634. package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +1 -1
  635. package/dist/skill/reference/components/visually-hidden/examples/overview.tsx +17 -7
  636. package/dist/skill/reference/components/voice-player/COMPONENT.md +15 -7
  637. package/dist/skill/reference/foundation.md +568 -0
  638. package/dist/skill/reference/layout/app-shell/COMPONENT.md +53 -36
  639. package/dist/skill/reference/layout/app-shell/examples/examples.module.css +2 -22
  640. package/dist/skill/reference/layout/app-shell/examples/footer.tsx +10 -10
  641. package/dist/skill/reference/layout/app-shell/examples/overview.tsx +21 -25
  642. package/dist/skill/reference/layout/app-shell/examples/screen.module.css +2 -2
  643. package/dist/skill/reference/layout/app-shell/examples/screen.tsx +48 -47
  644. package/dist/skill/reference/layout/app-shell/examples/template.tsx +13 -17
  645. package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +30 -20
  646. package/dist/skill/reference/layout/bottom-nav/examples/examples.module.css +2 -7
  647. package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +10 -19
  648. package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +10 -19
  649. package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
  650. package/dist/skill/reference/layout/bottom-nav/examples/router.tsx +6 -5
  651. package/dist/skill/reference/layout/page/COMPONENT.md +353 -0
  652. package/dist/skill/reference/layout/page/examples/actions-collapse.tsx +45 -0
  653. package/dist/skill/reference/layout/page/examples/collapse.tsx +68 -0
  654. package/dist/skill/reference/{components/page-content → layout/page}/examples/examples.module.css +32 -16
  655. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/grid.tsx +18 -16
  656. package/dist/skill/reference/layout/page/examples/list-detail.tsx +112 -0
  657. package/dist/skill/reference/layout/page/examples/narrow.tsx +75 -0
  658. package/dist/skill/reference/layout/page/examples/overview.tsx +57 -0
  659. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.module.css +1 -1
  660. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.tsx +29 -19
  661. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/sections.tsx +17 -24
  662. package/dist/skill/reference/layout/page/examples/structure.tsx +41 -0
  663. package/dist/skill/reference/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
  664. package/dist/skill/reference/layout/page/examples/top-bar.tsx +85 -0
  665. package/dist/skill/reference/{components/page-content → layout/page}/examples/variants.tsx +13 -13
  666. package/dist/skill/reference/layout/sidebar/COMPONENT.md +51 -40
  667. package/dist/skill/reference/layout/sidebar/examples/account.tsx +1 -3
  668. package/dist/skill/reference/layout/sidebar/examples/brand-header.tsx +1 -3
  669. package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +1 -3
  670. package/dist/skill/reference/layout/sidebar/examples/controlled-open.tsx +1 -3
  671. package/dist/skill/reference/layout/sidebar/examples/controlled.tsx +1 -3
  672. package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +1 -3
  673. package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +50 -0
  674. package/dist/skill/reference/layout/sidebar/examples/examples.module.css +7 -32
  675. package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +47 -42
  676. package/dist/skill/reference/layout/sidebar/examples/nested-items.tsx +1 -3
  677. package/dist/skill/reference/layout/sidebar/examples/overview.tsx +1 -3
  678. package/dist/skill/reference/layout/sidebar/examples/persist.tsx +1 -3
  679. package/dist/skill/reference/layout/sidebar/examples/router.tsx +12 -13
  680. package/dist/skill/reference/layout/sidebar/examples/sizes.tsx +6 -6
  681. package/dist/skill/responsive.md +116 -105
  682. package/dist/skill/ux.md +21 -9
  683. package/dist/theme/applyTheme.d.ts +7 -6
  684. package/dist/tokens/hues.d.ts +8 -0
  685. package/dist/tokens/layers.d.ts +5 -16
  686. package/dist/tokens/offGrid.d.ts +7 -0
  687. package/dist/tokens/primitives.d.ts +34 -9
  688. package/dist/tokens/semantic.d.ts +208 -51
  689. package/dist/tokens/themes/dark.d.ts +39 -33
  690. package/package.json +5 -3
  691. package/src/components/accordion/COMPONENT.md +16 -9
  692. package/src/components/accordion/examples/overview.tsx +2 -2
  693. package/src/components/accordion/examples/sizes.tsx +6 -8
  694. package/src/components/accordion/examples/states.tsx +27 -24
  695. package/src/components/accordion/examples/variants.tsx +6 -8
  696. package/src/components/accordion/examples/with-icon.tsx +22 -19
  697. package/src/components/avatar/COMPONENT.md +24 -17
  698. package/src/components/avatar/examples/examples.module.css +1 -4
  699. package/src/components/avatar/examples/overview.tsx +3 -3
  700. package/src/components/avatar/examples/presence.tsx +4 -4
  701. package/src/components/avatar/examples/src-from-state.tsx +3 -3
  702. package/src/components/avatar/examples/states.tsx +4 -4
  703. package/src/components/avatar/examples/team-group.tsx +3 -3
  704. package/src/components/badge/COMPONENT.md +66 -34
  705. package/src/components/badge/examples/controlled.tsx +32 -0
  706. package/src/components/badge/examples/examples.module.css +2 -2
  707. package/src/components/badge/examples/filter-values.tsx +4 -6
  708. package/src/components/badge/examples/in-controls.tsx +1 -1
  709. package/src/components/badge/examples/overview.tsx +6 -5
  710. package/src/components/badge/examples/square.tsx +21 -0
  711. package/src/components/badge/examples/states.tsx +4 -4
  712. package/src/components/badge/examples/with-icon.tsx +10 -1
  713. package/src/components/banner/COMPONENT.md +13 -9
  714. package/src/components/banner/examples/dismissible.tsx +3 -19
  715. package/src/components/banner/examples/examples.module.css +6 -1
  716. package/src/components/banner/examples/overview.tsx +1 -1
  717. package/src/components/banner/examples/page-strip.tsx +24 -22
  718. package/src/components/breadcrumb/COMPONENT.md +23 -16
  719. package/src/components/breadcrumb/examples/examples.module.css +1 -1
  720. package/src/components/breadcrumb/examples/overflow.tsx +1 -1
  721. package/src/components/breadcrumb/examples/sizes.tsx +6 -8
  722. package/src/components/breadcrumb/examples/with-icon.tsx +15 -8
  723. package/src/components/button/COMPONENT.md +67 -30
  724. package/src/components/button/examples/align.tsx +25 -0
  725. package/src/components/button/examples/controlled.tsx +21 -0
  726. package/src/components/button/examples/density.tsx +45 -0
  727. package/src/components/button/examples/examples.module.css +14 -25
  728. package/src/components/button/examples/hold-to-confirm.tsx +1 -1
  729. package/src/components/button/examples/label-morph.tsx +1 -1
  730. package/src/components/button/examples/on-colored-host.tsx +19 -19
  731. package/src/components/button/examples/over-media.tsx +7 -1
  732. package/src/components/button/examples/toggle.tsx +2 -10
  733. package/src/components/button-group/COMPONENT.md +21 -15
  734. package/src/components/button-group/examples/controlled.tsx +1 -1
  735. package/src/components/card/COMPONENT.md +21 -10
  736. package/src/components/card/examples/content-templates.tsx +8 -2
  737. package/src/components/card/examples/examples.module.css +4 -16
  738. package/src/components/card/examples/overview.tsx +11 -11
  739. package/src/components/card/examples/screen.module.css +1 -1
  740. package/src/components/card/examples/screen.tsx +185 -198
  741. package/src/components/card/examples/variants.tsx +74 -47
  742. package/src/components/chart-frame/COMPONENT.md +24 -28
  743. package/src/components/chart-frame/examples/controlled.tsx +9 -7
  744. package/src/components/chart-frame/examples/fill-height.tsx +13 -15
  745. package/src/components/chart-frame/examples/narrow.tsx +24 -5
  746. package/src/components/chart-frame/examples/overview.tsx +5 -2
  747. package/src/components/chart-frame/examples/states.tsx +72 -64
  748. package/src/components/chart-frame/examples/tooltip.tsx +27 -26
  749. package/src/components/chat/COMPONENT.md +39 -26
  750. package/src/components/chat/examples/group-chat.tsx +2 -2
  751. package/src/components/chat/examples/overview.tsx +119 -130
  752. package/src/components/chat/examples/reactions.tsx +18 -23
  753. package/src/components/chat/examples/screen.module.css +1 -1
  754. package/src/components/chat/examples/screen.tsx +212 -242
  755. package/src/components/chat/examples/states.tsx +23 -22
  756. package/src/components/chat-list/COMPONENT.md +11 -6
  757. package/src/components/chat-list/examples/controlled.tsx +2 -2
  758. package/src/components/chat-list/examples/examples.module.css +8 -8
  759. package/src/components/chat-list/examples/live.tsx +29 -22
  760. package/src/components/chat-list/examples/sizes.tsx +6 -8
  761. package/src/components/chat-list/examples/states.tsx +42 -38
  762. package/src/components/checkbox/COMPONENT.md +27 -14
  763. package/src/components/checkbox/examples/controlled.tsx +18 -16
  764. package/src/components/checkbox/examples/examples.module.css +15 -56
  765. package/src/components/checkbox/examples/in-form.tsx +16 -16
  766. package/src/components/checkbox/examples/indicator.tsx +19 -64
  767. package/src/components/checkbox/examples/overview.tsx +1 -1
  768. package/src/components/checkbox/examples/states.tsx +1 -1
  769. package/src/components/checkbox/examples/without-label.tsx +1 -1
  770. package/src/components/code-block/COMPONENT.md +16 -12
  771. package/src/components/code-block/examples/color-scheme.tsx +2 -4
  772. package/src/components/code-block/examples/examples.module.css +1 -9
  773. package/src/components/code-block/examples/narrow.tsx +1 -1
  774. package/src/components/color-field/COMPONENT.md +15 -9
  775. package/src/components/color-field/examples/examples.module.css +4 -5
  776. package/src/components/color-field/examples/in-form.tsx +15 -13
  777. package/src/components/color-field/examples/sizes.tsx +5 -1
  778. package/src/components/color-field/examples/states.tsx +15 -3
  779. package/src/components/color-picker/COMPONENT.md +69 -22
  780. package/src/components/color-picker/examples/controlled.tsx +16 -5
  781. package/src/components/color-picker/examples/examples.module.css +8 -12
  782. package/src/components/color-picker/examples/in-form.tsx +24 -22
  783. package/src/components/color-picker/examples/overview.tsx +6 -11
  784. package/src/components/color-picker/examples/panel.tsx +1 -1
  785. package/src/components/color-picker/examples/sizes.tsx +10 -16
  786. package/src/components/color-picker/examples/states.tsx +28 -23
  787. package/src/components/color-swatches/COMPONENT.md +22 -8
  788. package/src/components/color-swatches/examples/examples.module.css +3 -4
  789. package/src/components/color-swatches/examples/in-form.tsx +19 -17
  790. package/src/components/color-swatches/examples/palette.tsx +24 -0
  791. package/src/components/color-swatches/examples/wrapping.tsx +17 -2
  792. package/src/components/command-menu/COMPONENT.md +60 -20
  793. package/src/components/command-menu/examples/sizes.tsx +20 -15
  794. package/src/components/command-menu/examples/states.tsx +46 -24
  795. package/src/components/composer/COMPONENT.md +42 -24
  796. package/src/components/composer/examples/examples.module.css +0 -9
  797. package/src/components/composer/examples/narrow.tsx +1 -1
  798. package/src/components/composer/examples/reply-edit.tsx +3 -3
  799. package/src/components/composer/examples/sizes.tsx +3 -5
  800. package/src/components/composer/examples/states.tsx +4 -6
  801. package/src/components/confirm-dialog/COMPONENT.md +26 -13
  802. package/src/components/confirm-dialog/examples/dismiss.tsx +27 -0
  803. package/src/components/confirm-dialog/examples/failure.tsx +9 -16
  804. package/src/components/crossfade/COMPONENT.md +13 -7
  805. package/src/components/crossfade/examples/examples.module.css +1 -40
  806. package/src/components/crossfade/examples/fill.tsx +16 -19
  807. package/src/components/crossfade/examples/overview.tsx +14 -16
  808. package/src/components/crossfade/examples/record-switch.tsx +6 -11
  809. package/src/components/crossfade/examples/screen.module.css +1 -24
  810. package/src/components/crossfade/examples/screen.tsx +108 -124
  811. package/src/components/data-table/COMPONENT.md +36 -26
  812. package/src/components/data-table/examples/controlled.tsx +14 -2
  813. package/src/components/data-table/examples/examples.module.css +10 -9
  814. package/src/components/data-table/examples/narrow.tsx +5 -1
  815. package/src/components/data-table/examples/row-link.tsx +2 -1
  816. package/src/components/data-table/examples/screen.module.css +2 -2
  817. package/src/components/data-table/examples/screen.tsx +53 -62
  818. package/src/components/data-table/examples/server.tsx +6 -2
  819. package/src/components/data-table/examples/sizes.tsx +17 -17
  820. package/src/components/data-table/examples/states.tsx +37 -29
  821. package/src/components/datepicker/COMPONENT.md +53 -22
  822. package/src/components/datepicker/examples/dismiss.tsx +15 -0
  823. package/src/components/datepicker/examples/examples.module.css +9 -2
  824. package/src/components/datepicker/examples/in-form.tsx +33 -25
  825. package/src/components/datepicker/examples/inline-panel.tsx +3 -1
  826. package/src/components/datepicker/examples/sizes.tsx +2 -2
  827. package/src/components/datepicker/examples/states.tsx +2 -2
  828. package/src/components/datepicker/examples/validation.tsx +3 -3
  829. package/src/components/description-list/COMPONENT.md +24 -9
  830. package/src/components/description-list/examples/examples.module.css +4 -24
  831. package/src/components/description-list/examples/narrow.tsx +1 -1
  832. package/src/components/description-list/examples/screen.module.css +0 -18
  833. package/src/components/description-list/examples/screen.tsx +119 -134
  834. package/src/components/description-list/examples/sizes.tsx +2 -4
  835. package/src/components/description-list/examples/structure.tsx +6 -7
  836. package/src/components/description-list/examples/totals.tsx +40 -0
  837. package/src/components/digit-input/COMPONENT.md +12 -6
  838. package/src/components/digit-input/examples/examples.module.css +2 -2
  839. package/src/components/digit-input/examples/grouped.tsx +4 -4
  840. package/src/components/digit-input/examples/in-form.tsx +1 -1
  841. package/src/components/digit-input/examples/sizes.tsx +5 -3
  842. package/src/components/digit-input/examples/states.tsx +14 -6
  843. package/src/components/digit-input/examples/validation.tsx +1 -1
  844. package/src/components/divider/COMPONENT.md +28 -14
  845. package/src/components/divider/examples/align.tsx +2 -4
  846. package/src/components/divider/examples/examples.module.css +16 -17
  847. package/src/components/divider/examples/or-separator.tsx +3 -5
  848. package/src/components/divider/examples/overview.tsx +18 -16
  849. package/src/components/divider/examples/vertical.tsx +25 -8
  850. package/src/components/divider/examples/with-icon.tsx +1 -1
  851. package/src/components/dnd/COMPONENT.md +52 -34
  852. package/src/components/dnd/examples/drop-zones.tsx +1 -1
  853. package/src/components/dnd/examples/examples.module.css +7 -7
  854. package/src/components/dnd/examples/states.tsx +41 -35
  855. package/src/components/drawer/COMPONENT.md +38 -15
  856. package/src/components/drawer/examples/guard.tsx +1 -3
  857. package/src/components/drawer/examples/header-actions.tsx +1 -1
  858. package/src/components/drawer/examples/in-form.tsx +31 -31
  859. package/src/components/drawer/examples/placement.tsx +1 -1
  860. package/src/components/drawer/examples/screen.tsx +137 -160
  861. package/src/components/drawer/examples/sizes.tsx +32 -27
  862. package/src/components/dropdown/COMPONENT.md +59 -24
  863. package/src/components/dropdown/examples/context-menu.tsx +75 -0
  864. package/src/components/dropdown/examples/examples.module.css +1 -1
  865. package/src/components/dropdown/examples/sizes.tsx +39 -34
  866. package/src/components/dropdown/examples/states.tsx +37 -29
  867. package/src/components/empty-page/COMPONENT.md +20 -9
  868. package/src/components/empty-page/examples/compact.tsx +28 -18
  869. package/src/components/empty-page/examples/examples.module.css +0 -43
  870. package/src/components/empty-page/examples/narrow.tsx +3 -3
  871. package/src/components/empty-page/examples/region-error.tsx +6 -11
  872. package/src/components/empty-page/examples/sizes.tsx +13 -13
  873. package/src/components/empty-page/examples/variants.tsx +34 -30
  874. package/src/components/example-frame/COMPONENT.md +23 -11
  875. package/src/components/example-frame/examples/controlled.tsx +3 -3
  876. package/src/components/field-list/COMPONENT.md +14 -8
  877. package/src/components/field-list/examples/screen.module.css +1 -1
  878. package/src/components/field-list/examples/screen.tsx +19 -19
  879. package/src/components/field-list/examples/sizes.tsx +32 -26
  880. package/src/components/field-list/examples/states.tsx +37 -31
  881. package/src/components/fieldset/COMPONENT.md +11 -6
  882. package/src/components/fieldset/examples/examples.module.css +1 -1
  883. package/src/components/fieldset/examples/states.tsx +1 -1
  884. package/src/components/file-upload/COMPONENT.md +68 -30
  885. package/src/components/file-upload/examples/avatar-upload.tsx +5 -5
  886. package/src/components/file-upload/examples/custom-body.tsx +12 -7
  887. package/src/components/file-upload/examples/examples.module.css +4 -4
  888. package/src/components/file-upload/examples/narrow.tsx +1 -1
  889. package/src/components/file-upload/examples/row-parts.tsx +4 -4
  890. package/src/components/file-upload/examples/screen.module.css +4 -4
  891. package/src/components/file-upload/examples/screen.tsx +70 -84
  892. package/src/components/file-upload/examples/sizes.tsx +1 -3
  893. package/src/components/file-upload/examples/states.tsx +1 -3
  894. package/src/components/file-upload/examples/variants.tsx +13 -7
  895. package/src/components/gallery/COMPONENT.md +17 -7
  896. package/src/components/gallery/examples/album-sizes.tsx +52 -0
  897. package/src/components/gallery/examples/controlled.tsx +40 -0
  898. package/src/components/gallery/examples/examples.module.css +1 -1
  899. package/src/components/gallery/examples/overview.tsx +15 -43
  900. package/src/components/gallery/examples/transfer.tsx +22 -13
  901. package/src/components/gantt/COMPONENT.md +21 -15
  902. package/src/components/gantt/examples/examples.module.css +0 -16
  903. package/src/components/gantt/examples/occupancy.tsx +2 -2
  904. package/src/components/gantt/examples/screen.module.css +1 -1
  905. package/src/components/gantt/examples/screen.tsx +56 -74
  906. package/src/components/gantt/examples/sizes.tsx +16 -16
  907. package/src/components/gantt/examples/states.tsx +34 -30
  908. package/src/components/gantt/examples/variants.tsx +27 -25
  909. package/src/components/hint/COMPONENT.md +24 -14
  910. package/src/components/hint/examples/examples.module.css +10 -1
  911. package/src/components/hint/examples/hint-or-error.tsx +2 -2
  912. package/src/components/hint/examples/overview.tsx +10 -11
  913. package/src/components/hint/examples/sizes.tsx +1 -1
  914. package/src/components/input/COMPONENT.md +10 -6
  915. package/src/components/input/examples/affixes.tsx +2 -2
  916. package/src/components/input/examples/examples.module.css +1 -1
  917. package/src/components/input/examples/sizes.tsx +9 -5
  918. package/src/components/input/examples/states.tsx +39 -23
  919. package/src/components/input/examples/with-icon.tsx +24 -16
  920. package/src/components/kanban/COMPONENT.md +30 -24
  921. package/src/components/kanban/examples/columns.tsx +14 -19
  922. package/src/components/kanban/examples/item-link.tsx +2 -2
  923. package/src/components/kanban/examples/limits.tsx +1 -1
  924. package/src/components/kanban/examples/narrow.tsx +1 -1
  925. package/src/components/kanban/examples/screen.module.css +2 -4
  926. package/src/components/kanban/examples/screen.tsx +55 -68
  927. package/src/components/kanban/examples/states.tsx +37 -58
  928. package/src/components/kanban/examples/variants.tsx +0 -3
  929. package/src/components/kbd/COMPONENT.md +11 -7
  930. package/src/components/kbd/examples/examples.module.css +1 -20
  931. package/src/components/kbd/examples/in-controls.tsx +2 -2
  932. package/src/components/kbd/examples/shortcut-list.tsx +14 -26
  933. package/src/components/label/COMPONENT.md +26 -11
  934. package/src/components/label/examples/examples.module.css +12 -9
  935. package/src/components/label/examples/overview.tsx +6 -10
  936. package/src/components/label/examples/structure.tsx +2 -2
  937. package/src/components/link-button/COMPONENT.md +33 -20
  938. package/src/components/link-button/examples/as-child.tsx +1 -1
  939. package/src/components/link-button/examples/external-link.tsx +1 -1
  940. package/src/components/link-button/examples/overview.tsx +4 -2
  941. package/src/components/link-button/examples/variants.tsx +2 -2
  942. package/src/components/list/COMPONENT.md +24 -16
  943. package/src/components/list/examples/examples.module.css +0 -8
  944. package/src/components/list/examples/overflow.tsx +1 -1
  945. package/src/components/list/examples/overview.tsx +31 -30
  946. package/src/components/list/examples/sizes.tsx +23 -23
  947. package/src/components/list/examples/states.tsx +38 -21
  948. package/src/components/list/examples/with-icon.tsx +16 -14
  949. package/src/components/login-form/COMPONENT.md +69 -16
  950. package/src/components/login-form/examples/narrow.tsx +1 -1
  951. package/src/components/login-form/examples/register.tsx +1 -1
  952. package/src/components/media-viewer/COMPONENT.md +12 -8
  953. package/src/components/media-viewer/examples/controlled.tsx +16 -16
  954. package/src/components/media-viewer/examples/examples.module.css +3 -5
  955. package/src/components/media-viewer/examples/video.tsx +1 -1
  956. package/src/components/message/COMPONENT.md +102 -46
  957. package/src/components/message/examples/typing.tsx +5 -5
  958. package/src/components/modal/COMPONENT.md +71 -37
  959. package/src/components/modal/examples/dismiss.tsx +35 -27
  960. package/src/components/modal/examples/enter-key.tsx +22 -25
  961. package/src/components/modal/examples/examples.module.css +0 -7
  962. package/src/components/modal/examples/guard.tsx +2 -4
  963. package/src/components/modal/examples/in-form.tsx +28 -28
  964. package/src/components/modal/examples/long-content.tsx +6 -4
  965. package/src/components/modal/examples/sizes.tsx +36 -31
  966. package/src/components/modal/examples/structure.tsx +1 -1
  967. package/src/components/native-select/COMPONENT.md +7 -3
  968. package/src/components/native-select/examples/examples.module.css +3 -3
  969. package/src/components/native-select/examples/in-form.tsx +28 -29
  970. package/src/components/native-select/examples/sizes.tsx +2 -2
  971. package/src/components/native-select/examples/states.tsx +2 -2
  972. package/src/components/notification/COMPONENT.md +36 -31
  973. package/src/components/notification/examples/examples.module.css +1 -2
  974. package/src/components/notification/examples/in-form.tsx +28 -20
  975. package/src/components/notification/examples/sizes.tsx +16 -12
  976. package/src/components/notification/examples/undo.tsx +7 -15
  977. package/src/components/pagination/COMPONENT.md +29 -18
  978. package/src/components/pagination/examples/controlled.tsx +2 -1
  979. package/src/components/pagination/examples/narrow.tsx +5 -5
  980. package/src/components/popover/COMPONENT.md +44 -20
  981. package/src/components/popover/examples/controlled-open.tsx +6 -4
  982. package/src/components/popover/examples/dismiss.tsx +37 -28
  983. package/src/components/popover/examples/examples.module.css +2 -2
  984. package/src/components/popover/examples/sizes.tsx +32 -27
  985. package/src/components/popover/examples/width.tsx +57 -0
  986. package/src/components/progress-bar/COMPONENT.md +21 -29
  987. package/src/components/progress-bar/examples/examples.module.css +1 -1
  988. package/src/components/progress-circle/COMPONENT.md +21 -29
  989. package/src/components/progress-circle/examples/examples.module.css +1 -1
  990. package/src/components/progress-circle/examples/on-color.tsx +16 -0
  991. package/src/components/progress-circle/examples/variants.tsx +1 -0
  992. package/src/components/radio/COMPONENT.md +13 -4
  993. package/src/components/radio/examples/examples.module.css +1 -1
  994. package/src/components/scroll-container/COMPONENT.md +18 -12
  995. package/src/components/scroll-container/examples/auto-scroll.tsx +8 -4
  996. package/src/components/scroll-container/examples/edges.tsx +4 -4
  997. package/src/components/scroll-container/examples/examples.module.css +7 -51
  998. package/src/components/scroll-container/examples/load-more.tsx +4 -4
  999. package/src/components/scroll-container/examples/lock.tsx +4 -4
  1000. package/src/components/scroll-container/examples/log.tsx +97 -0
  1001. package/src/components/scroll-container/examples/overscroll.tsx +4 -4
  1002. package/src/components/scroll-container/examples/overview.tsx +5 -5
  1003. package/src/components/scroll-container/examples/scrollbar.tsx +4 -4
  1004. package/src/components/scroll-container/examples/snap.tsx +2 -2
  1005. package/src/components/scroll-container/examples/variants.tsx +1 -0
  1006. package/src/components/segmented-control/COMPONENT.md +24 -12
  1007. package/src/components/segmented-control/examples/controlled.tsx +2 -4
  1008. package/src/components/segmented-control/examples/examples.module.css +0 -8
  1009. package/src/components/segmented-control/examples/scroll.tsx +1 -1
  1010. package/src/components/select/COMPONENT.md +33 -9
  1011. package/src/components/select/examples/dismiss.tsx +26 -0
  1012. package/src/components/select/examples/examples.module.css +1 -1
  1013. package/src/components/select/examples/server-search.tsx +6 -2
  1014. package/src/components/select/examples/sizes.tsx +2 -2
  1015. package/src/components/select/examples/states.tsx +2 -2
  1016. package/src/components/select/examples/with-icon.tsx +20 -18
  1017. package/src/components/sheet/COMPONENT.md +44 -21
  1018. package/src/components/sheet/examples/header-actions.tsx +23 -4
  1019. package/src/components/sheet/examples/overview.tsx +25 -10
  1020. package/src/components/skeleton/COMPONENT.md +8 -4
  1021. package/src/components/skeleton/examples/examples.module.css +1 -13
  1022. package/src/components/skeleton/examples/with-crossfade.tsx +7 -7
  1023. package/src/components/slider/COMPONENT.md +13 -8
  1024. package/src/components/slider/examples/examples.module.css +6 -7
  1025. package/src/components/slider/examples/hint-and-error.tsx +3 -5
  1026. package/src/components/slider/examples/in-form.tsx +21 -19
  1027. package/src/components/slider/examples/states.tsx +14 -10
  1028. package/src/components/smart-filter/COMPONENT.md +42 -22
  1029. package/src/components/smart-filter/examples/examples.module.css +3 -21
  1030. package/src/components/smart-filter/examples/many-values.tsx +12 -8
  1031. package/src/components/smart-filter/examples/ranges.tsx +2 -1
  1032. package/src/components/smart-filter/examples/sizes.tsx +9 -7
  1033. package/src/components/sparkline/COMPONENT.md +8 -3
  1034. package/src/components/sparkline/examples/curve.tsx +16 -11
  1035. package/src/components/sparkline/examples/examples.module.css +1 -1
  1036. package/src/components/sparkline/examples/signed-bars.tsx +2 -2
  1037. package/src/components/sparkline/examples/states.tsx +14 -10
  1038. package/src/components/spinner/COMPONENT.md +15 -9
  1039. package/src/components/spinner/examples/examples.module.css +2 -14
  1040. package/src/components/spinner/examples/overview.tsx +1 -1
  1041. package/src/components/stepper/COMPONENT.md +50 -41
  1042. package/src/components/stepper/examples/examples.module.css +1 -6
  1043. package/src/components/stepper/examples/narrow.tsx +1 -1
  1044. package/src/components/stepper/examples/sizes.tsx +6 -8
  1045. package/src/components/stepper/examples/states.tsx +44 -43
  1046. package/src/components/stepper/examples/with-icon.tsx +19 -17
  1047. package/src/components/switch/COMPONENT.md +22 -9
  1048. package/src/components/switch/examples/examples.module.css +2 -2
  1049. package/src/components/switch/examples/states.tsx +3 -3
  1050. package/src/components/tabs/COMPONENT.md +21 -16
  1051. package/src/components/tabs/examples/in-drawer.tsx +1 -1
  1052. package/src/components/tabs/examples/sizes.tsx +5 -10
  1053. package/src/components/tabs/examples/variants.tsx +19 -23
  1054. package/src/components/tag-select/COMPONENT.md +19 -6
  1055. package/src/components/tag-select/examples/creatable.tsx +2 -2
  1056. package/src/components/tag-select/examples/dismiss.tsx +23 -0
  1057. package/src/components/tag-select/examples/examples.module.css +3 -3
  1058. package/src/components/tag-select/examples/in-form.tsx +31 -32
  1059. package/src/components/tag-select/examples/sizes.tsx +2 -2
  1060. package/src/components/tag-select/examples/states.tsx +2 -2
  1061. package/src/components/textarea/COMPONENT.md +10 -6
  1062. package/src/components/textarea/examples/examples.module.css +3 -10
  1063. package/src/components/textarea/examples/in-form.tsx +3 -3
  1064. package/src/components/textarea/examples/sizes.tsx +10 -7
  1065. package/src/components/textarea/examples/states.tsx +29 -13
  1066. package/src/components/textarea/examples/validation.tsx +45 -36
  1067. package/src/components/thumbnail/COMPONENT.md +17 -13
  1068. package/src/components/thumbnail/examples/examples.module.css +1 -1
  1069. package/src/components/thumbnail/examples/states.tsx +1 -1
  1070. package/src/components/thumbnail/examples/variants.tsx +12 -1
  1071. package/src/components/timeline/COMPONENT.md +51 -35
  1072. package/src/components/timeline/examples/links.tsx +14 -14
  1073. package/src/components/timeline/examples/narrow.tsx +6 -6
  1074. package/src/components/timeline/examples/overview.tsx +6 -6
  1075. package/src/components/timeline/examples/sizes.tsx +28 -23
  1076. package/src/components/timeline/examples/structure.tsx +30 -30
  1077. package/src/components/timeline/examples/variants.tsx +40 -28
  1078. package/src/components/tooltip/COMPONENT.md +10 -6
  1079. package/src/components/tooltip/examples/examples.module.css +1 -5
  1080. package/src/components/tooltip/examples/non-interactive-trigger.tsx +1 -1
  1081. package/src/components/tooltip/examples/sizes.tsx +17 -10
  1082. package/src/components/typography/COMPONENT.md +18 -3
  1083. package/src/components/typography/examples/examples.module.css +3 -6
  1084. package/src/components/typography/examples/numeric.tsx +16 -0
  1085. package/src/components/video-note/COMPONENT.md +11 -7
  1086. package/src/components/visually-hidden/COMPONENT.md +8 -4
  1087. package/src/components/visually-hidden/examples/assertive.tsx +1 -1
  1088. package/src/components/visually-hidden/examples/overview.tsx +17 -7
  1089. package/src/components/voice-player/COMPONENT.md +15 -7
  1090. package/src/layout/app-shell/COMPONENT.md +53 -36
  1091. package/src/layout/app-shell/examples/examples.module.css +2 -22
  1092. package/src/layout/app-shell/examples/footer.tsx +10 -10
  1093. package/src/layout/app-shell/examples/overview.tsx +21 -25
  1094. package/src/layout/app-shell/examples/screen.module.css +2 -2
  1095. package/src/layout/app-shell/examples/screen.tsx +48 -47
  1096. package/src/layout/app-shell/examples/template.tsx +13 -17
  1097. package/src/layout/bottom-nav/COMPONENT.md +30 -20
  1098. package/src/layout/bottom-nav/examples/examples.module.css +2 -7
  1099. package/src/layout/bottom-nav/examples/floating-action.tsx +10 -19
  1100. package/src/layout/bottom-nav/examples/floating.tsx +10 -19
  1101. package/src/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
  1102. package/src/layout/bottom-nav/examples/router.tsx +6 -5
  1103. package/src/layout/page/COMPONENT.md +353 -0
  1104. package/src/layout/page/examples/actions-collapse.tsx +45 -0
  1105. package/src/layout/page/examples/collapse.tsx +68 -0
  1106. package/src/{components/page-content → layout/page}/examples/examples.module.css +32 -16
  1107. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/grid.tsx +18 -16
  1108. package/src/layout/page/examples/list-detail.tsx +112 -0
  1109. package/src/layout/page/examples/narrow.tsx +75 -0
  1110. package/src/layout/page/examples/overview.tsx +57 -0
  1111. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.module.css +1 -1
  1112. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.tsx +29 -19
  1113. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/sections.tsx +17 -24
  1114. package/src/layout/page/examples/structure.tsx +41 -0
  1115. package/src/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
  1116. package/src/layout/page/examples/top-bar.tsx +85 -0
  1117. package/src/{components/page-content → layout/page}/examples/variants.tsx +13 -13
  1118. package/src/layout/sidebar/COMPONENT.md +51 -40
  1119. package/src/layout/sidebar/examples/account.tsx +1 -3
  1120. package/src/layout/sidebar/examples/brand-header.tsx +1 -3
  1121. package/src/layout/sidebar/examples/collapsible-groups.tsx +1 -3
  1122. package/src/layout/sidebar/examples/controlled-open.tsx +1 -3
  1123. package/src/layout/sidebar/examples/controlled.tsx +1 -3
  1124. package/src/layout/sidebar/examples/custom-part.tsx +1 -3
  1125. package/src/layout/sidebar/examples/dismiss.tsx +50 -0
  1126. package/src/layout/sidebar/examples/examples.module.css +7 -32
  1127. package/src/layout/sidebar/examples/narrow.tsx +47 -42
  1128. package/src/layout/sidebar/examples/nested-items.tsx +1 -3
  1129. package/src/layout/sidebar/examples/overview.tsx +1 -3
  1130. package/src/layout/sidebar/examples/persist.tsx +1 -3
  1131. package/src/layout/sidebar/examples/router.tsx +12 -13
  1132. package/src/layout/sidebar/examples/sizes.tsx +6 -6
  1133. package/src/styles/controls.css +2 -2
  1134. package/src/styles/fonts.css +22 -0
  1135. package/src/styles/globals.css +89 -12
  1136. package/src/styles/theme-dark.css +25 -24
  1137. package/src/styles/theme-light.css +70 -23
  1138. package/src/styles/tokens.css +17 -5
  1139. package/dist/components/dnd/useFlipList.d.ts +0 -17
  1140. package/dist/components/gantt/useEdgeAutoScroll.d.ts +0 -12
  1141. package/dist/components/modal/ModalDialog.d.ts +0 -46
  1142. package/dist/components/page-content/PageContent.d.ts +0 -173
  1143. package/dist/components/page-toolbar/PageToolbar.d.ts +0 -54
  1144. package/dist/hooks/useStateSwap.d.ts +0 -8
  1145. package/dist/internal/highlightTsxHtml.d.ts +0 -2
  1146. package/dist/internal/layoutPxFromPrimitives.d.ts +0 -6
  1147. package/dist/internal/mergeRefs.d.ts +0 -6
  1148. package/dist/layout/app-header/AppHeader.d.ts +0 -109
  1149. package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -8
  1150. package/dist/skill/reference/components/page-content/COMPONENT.md +0 -272
  1151. package/dist/skill/reference/components/page-content/examples/list-detail.tsx +0 -106
  1152. package/dist/skill/reference/components/page-content/examples/narrow.tsx +0 -25
  1153. package/dist/skill/reference/components/page-content/examples/overview.tsx +0 -41
  1154. package/dist/skill/reference/components/page-toolbar/COMPONENT.md +0 -143
  1155. package/dist/skill/reference/components/page-toolbar/examples/examples.module.css +0 -16
  1156. package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +0 -113
  1157. package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +0 -40
  1158. package/dist/skill/reference/components/page-toolbar/examples/without-search.tsx +0 -60
  1159. package/dist/skill/reference/components/popover/examples/match-trigger-width.tsx +0 -23
  1160. package/dist/skill/reference/components/scroll-container/examples/chat.tsx +0 -101
  1161. package/dist/skill/reference/components/spinner/examples/loading-region.tsx +0 -22
  1162. package/dist/skill/reference/layout/app-header/COMPONENT.md +0 -186
  1163. package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +0 -37
  1164. package/dist/skill/reference/layout/app-header/examples/examples.module.css +0 -47
  1165. package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +0 -69
  1166. package/dist/skill/reference/layout/app-header/examples/narrow.tsx +0 -28
  1167. package/dist/skill/reference/layout/app-header/examples/overview.tsx +0 -34
  1168. package/dist/skill/reference/layout/app-header/examples/page-title.tsx +0 -78
  1169. package/dist/skill/reference/layout/app-shell/examples/contained.tsx +0 -30
  1170. package/src/components/drawer/examples/examples.module.css +0 -8
  1171. package/src/components/page-content/COMPONENT.md +0 -272
  1172. package/src/components/page-content/examples/list-detail.tsx +0 -106
  1173. package/src/components/page-content/examples/narrow.tsx +0 -25
  1174. package/src/components/page-content/examples/overview.tsx +0 -41
  1175. package/src/components/page-toolbar/COMPONENT.md +0 -143
  1176. package/src/components/page-toolbar/examples/examples.module.css +0 -16
  1177. package/src/components/page-toolbar/examples/overview.tsx +0 -113
  1178. package/src/components/page-toolbar/examples/save-changes.tsx +0 -40
  1179. package/src/components/page-toolbar/examples/without-search.tsx +0 -60
  1180. package/src/components/popover/examples/match-trigger-width.tsx +0 -23
  1181. package/src/components/scroll-container/examples/chat.tsx +0 -101
  1182. package/src/components/spinner/examples/loading-region.tsx +0 -22
  1183. package/src/layout/app-header/COMPONENT.md +0 -186
  1184. package/src/layout/app-header/examples/breadcrumbs.tsx +0 -37
  1185. package/src/layout/app-header/examples/examples.module.css +0 -47
  1186. package/src/layout/app-header/examples/in-app-shell.tsx +0 -69
  1187. package/src/layout/app-header/examples/narrow.tsx +0 -28
  1188. package/src/layout/app-header/examples/overview.tsx +0 -34
  1189. package/src/layout/app-header/examples/page-title.tsx +0 -78
  1190. package/src/layout/app-shell/examples/contained.tsx +0 -30
@@ -0,0 +1,85 @@
1
+ /** A nested record in the top bar: the path ending in the title, a line of data, the page's tools and its buttons — `Page.TopBar`, `Page.Heading`, `Page.Tools`, `Page.Actions`. */
2
+ import { Breadcrumb, Button, Icon, Input, Page, SegmentedControl } from "prime-ui-kit";
3
+ import * as React from "react";
4
+
5
+ const SECTIONS = [
6
+ { value: "all", label: "Все" },
7
+ { value: "mine", label: "Мои" },
8
+ { value: "overdue", label: "Просрочены" },
9
+ ];
10
+
11
+ const VIEWS = [
12
+ { value: "board", label: "Доска" },
13
+ { value: "list", label: "Список" },
14
+ ];
15
+
16
+ export default function PageTopBarExample() {
17
+ const [section, setSection] = React.useState("all");
18
+ const [view, setView] = React.useState("board");
19
+ const [query, setQuery] = React.useState("");
20
+
21
+ return (
22
+ <Page.Root>
23
+ <Page.TopBar sticky={false}>
24
+ <Page.Heading>
25
+ <Breadcrumb.Root>
26
+ <Breadcrumb.Item href="#clients">Клиенты</Breadcrumb.Item>
27
+ <Breadcrumb.Item href="#north">ООО «Север»</Breadcrumb.Item>
28
+ </Breadcrumb.Root>
29
+ <Page.Title>Сделка № 2026-418</Page.Title>
30
+ <Page.Description>7 в работе · 6,5 млн ₽ · обновлено 9:40</Page.Description>
31
+ </Page.Heading>
32
+ <Page.Tools aria-label="Сделка № 2026-418">
33
+ <SegmentedControl.Root value={section} onValueChange={setSection} aria-label="Раздел">
34
+ {SECTIONS.map((item) => (
35
+ <SegmentedControl.Item key={item.value} value={item.value}>
36
+ {item.label}
37
+ </SegmentedControl.Item>
38
+ ))}
39
+ </SegmentedControl.Root>
40
+ <Input.Root>
41
+ <Input.Wrapper>
42
+ <Input.Icon side="start">
43
+ <Icon name="action.search" tone="secondary" />
44
+ </Input.Icon>
45
+ <Input.Field
46
+ type="search"
47
+ aria-label="Поиск по задачам"
48
+ placeholder="Поиск"
49
+ value={query}
50
+ onValueChange={setQuery}
51
+ />
52
+ </Input.Wrapper>
53
+ </Input.Root>
54
+ <SegmentedControl.Root value={view} onValueChange={setView} aria-label="Вид">
55
+ {VIEWS.map((item) => (
56
+ <SegmentedControl.Item key={item.value} value={item.value}>
57
+ {item.label}
58
+ </SegmentedControl.Item>
59
+ ))}
60
+ </SegmentedControl.Root>
61
+ </Page.Tools>
62
+ <Page.Actions>
63
+ <Button.Root variant="soft" tone="neutral">
64
+ <Button.Icon>
65
+ <Icon name="action.forward" />
66
+ </Button.Icon>
67
+ Поделиться
68
+ </Button.Root>
69
+ <Button.Root variant="soft" tone="neutral">
70
+ <Button.Icon>
71
+ <Icon name="action.download" />
72
+ </Button.Icon>
73
+ Экспорт
74
+ </Button.Root>
75
+ <Button.Root>
76
+ <Button.Icon>
77
+ <Icon name="action.add" />
78
+ </Button.Icon>
79
+ Новая сделка
80
+ </Button.Root>
81
+ </Page.Actions>
82
+ </Page.TopBar>
83
+ </Page.Root>
84
+ );
85
+ }
@@ -1,5 +1,5 @@
1
- /** The same page column at three caps: the whole main, a wide dashboard column, a reading column — `maxWidth`. */
2
- import { Card, PageContent, Typography } from "prime-ui-kit";
1
+ /** The same page at three caps: the whole main, a wide dashboard column, a reading column — `maxWidth`. */
2
+ import { Card, Page, Typography } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
5
5
 
@@ -9,13 +9,13 @@ const WIDTHS = [
9
9
  { value: "readable", text: "Условия использования: не шире колонки для чтения, по центру." },
10
10
  ] as const;
11
11
 
12
- export default function PageContentVariantsExample() {
12
+ export default function PageVariantsExample() {
13
13
  return (
14
- <div className={styles.main}>
15
- <div className={styles.stack}>
16
- {WIDTHS.map(({ value, text }) => (
17
- <PageContent.Root key={value} maxWidth={value}>
18
- <PageContent.Body>
14
+ <>
15
+ {WIDTHS.map(({ value, text }) => (
16
+ <div key={value} className={styles.main}>
17
+ <Page.Root maxWidth={value}>
18
+ <Page.Body>
19
19
  <Card.Root>
20
20
  <Card.Body>
21
21
  <Typography variant="body-s" tone="secondary">
@@ -23,10 +23,10 @@ export default function PageContentVariantsExample() {
23
23
  </Typography>
24
24
  </Card.Body>
25
25
  </Card.Root>
26
- </PageContent.Body>
27
- </PageContent.Root>
28
- ))}
29
- </div>
30
- </div>
26
+ </Page.Body>
27
+ </Page.Root>
28
+ </div>
29
+ ))}
30
+ </>
31
31
  );
32
32
  }
@@ -54,7 +54,7 @@ import { Sidebar, useSidebar } from "prime-ui-kit";
54
54
  ```
55
55
  Sidebar.Root rail wrapper; renders <nav> inside; size tier for items
56
56
  ├─ Sidebar.Header one fixed-height row
57
- │ ├─ Sidebar.Brand logo + name + muted line (link / div / asChild)
57
+ │ ├─ Sidebar.Brand logo + name + muted line (link / button / div / asChild)
58
58
  │ │ └─ Sidebar.BrandLogo the mark, on the icon axis
59
59
  │ └─ Sidebar.Toggle variant="header" «‹‹» at the header end → round button on the rail edge
60
60
  ├─ Sidebar.Content scrolling middle (ScrollContainer, edge fades, no scrollbar)
@@ -71,7 +71,7 @@ Sidebar.Root rail wrapper; renders <nav> inside; size tier
71
71
  │ └─ Sidebar.SubContent child Items on a guide line (a flyout on the compact rail)
72
72
  └─ Sidebar.Footer bottom items, the item Toggle, the account
73
73
  └─ Sidebar.Account avatar + name + muted line; a Dropdown.Trigger child
74
- useSidebar() state hook for custom parts inside Root
74
+ useSidebar() state hook for custom parts inside Root (useAppShellNav outside it, in a shell)
75
75
  ```
76
76
 
77
77
  ## API
@@ -79,19 +79,21 @@ useSidebar() state hook for custom parts inside Root
79
79
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
80
80
 
81
81
  ### Sidebar.Root
82
- `forwardRef` → `HTMLDivElement`. The rail wrapper with the `<nav>` inside; owns the mode and the off-canvas panel and passes the tier to items.
82
+ `ref` → `HTMLDivElement`. The rail wrapper with the `<nav>` inside; owns the mode and the off-canvas panel and passes the tier to items. In an `AppShell` it publishes its navigation to the shell (`useAppShellNav`).
83
83
 
84
84
  | Prop | Type | Default | Description |
85
85
  |---|---|---|---|
86
- | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | `"m"` | Item tier: height 28 · 32 · 36 · 40 · 48, text, icon; counters and row actions one tier down. The rail width does not change. |
86
+ | `size` | `"xs" \| "s" \| "m" \| "l" \| "xl"` | host tier, else `"m"` | Item tier: height 28 · 32 · 36 · 40 · 48, text, icon; coloured counts and row actions one tier down, plain counts keep the item size. The rail width does not change. Without it the tier of its host, else `m`. |
87
87
  | `mode` | `"expanded" \| "compact" \| "hidden"` | — | Desktop mode (controlled): full rail, icon rail with tooltips and flyouts, or hidden. |
88
88
  | `defaultMode` | `"expanded" \| "compact" \| "hidden"` | `"expanded"` | Initial mode (uncontrolled). |
89
89
  | `onModeChange` | `(mode: SidebarMode) => void` | — | Called with the new mode (Toggle, `useSidebar().setMode`). |
90
90
  | `open` | `boolean` | — | Off-canvas panel on narrow viewports (controlled). |
91
91
  | `defaultOpen` | `boolean` | `false` | Initial off-canvas state (uncontrolled). |
92
- | `onOpenChange` | `(open: boolean) => void` | — | Off-canvas open / close: Toggle, scrim, Escape, navigation, leaving the narrow viewport. |
92
+ | `onOpenChange` | `(open: boolean) => void` | — | Off-canvas open / close: Toggle, the menu button of `Page.TopBar`, scrim, Escape, an activated item, leaving the narrow viewport. |
93
93
  | `offCanvas` | `"auto" \| "always" \| "never"` | `"auto"` | When the rail becomes an off-canvas panel opened by `open`: `auto` — below 768px (viewport); `always` — at any width; `never` — always a rail. |
94
- | `persistKey` | `string` | — | `localStorage` key that keeps the mode and the open groups and sub-lists across reloads (keyed by `id`, else label text). Wins over `defaultMode` / `defaultOpen`. |
94
+ | `closeOnOutsideClick` | `boolean` | `true` | A press on the scrim (outside the off-canvas panel) closes the panel. |
95
+ | `closeOnEscape` | `boolean` | `true` | Escape closes the off-canvas panel. |
96
+ | `persistKey` | `string` | — | `localStorage` key that keeps the mode (never `hidden`: the mode it left) and the open groups and sub-lists (by `id`, else label text) across reloads. Wins over `defaultMode` / `defaultOpen`. |
95
97
  | `labels` | `Partial<SidebarLabels>` | — | Built-in strings, see Labels. |
96
98
  | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
97
99
 
@@ -103,7 +105,7 @@ useSidebar() state hook for custom parts inside Root
103
105
  | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
104
106
 
105
107
  ### Sidebar.Brand
106
- `forwardRef` → the rendered element. Product block: `Sidebar.BrandLogo`, the name and a muted line; an `<a>` with `href`, the single child with `asChild`, else a `<div>`. In compact mode only the logo stays.
108
+ `ref` → the rendered element. Product block: `Sidebar.BrandLogo`, the name and a muted line; an `<a>` with `href`, the single child with `asChild`, a `<button>` with only `onClick`, else a `<div>`. Activating it closes the off-canvas panel. In compact mode only the logo stays.
107
109
 
108
110
  | Prop | Type | Default | Description |
109
111
  |---|---|---|---|
@@ -111,7 +113,7 @@ useSidebar() state hook for custom parts inside Root
111
113
  | `href` | `string` | — | Renders an `<a>` (usually home); navigating closes the off-canvas panel. |
112
114
  | `asChild` | `boolean` | `false` | Renders the single child (e.g. a router `Link`) as the brand; its children are the logo and the name. |
113
115
  | `children` | `ReactNode` | — | `Sidebar.BrandLogo` and the product name. |
114
- | `…rest` | `HTMLAttributes<HTMLElement>` | — | `onClick`, `aria-*`, `className` and the other attributes. |
116
+ | `…rest` | `HTMLAttributes<HTMLElement>` | — | `onClick` (runs first; `preventDefault()` keeps the panel open; without `href` it makes the brand a button), `aria-*`, `className` and the other attributes. |
115
117
 
116
118
  ### Sidebar.BrandLogo
117
119
  `ref` → `HTMLSpanElement`. The product mark (`aria-hidden`): a square of the item height − 8 (at most 32) on the icon axis in every mode; its child fills it.
@@ -122,7 +124,7 @@ useSidebar() state hook for custom parts inside Root
122
124
  | `…rest` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | — | `className` and the other span attributes. |
123
125
 
124
126
  ### Sidebar.Content
125
- `forwardRef` → `HTMLElement`. The scrolling middle: a `ScrollContainer` with edge fades and no scrollbar; rows scrolled into view stop clear of the fades.
127
+ `ref` → `HTMLElement`. The scrolling middle: a `ScrollContainer` with edge fades and no scrollbar; rows scrolled into view stop clear of the fades.
126
128
 
127
129
  | Prop | Type | Default | Description |
128
130
  |---|---|---|---|
@@ -141,16 +143,18 @@ useSidebar() state hook for custom parts inside Root
141
143
  | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "role">` | — | `children` (Items, Subs), `className` and the other div attributes. |
142
144
 
143
145
  ### Sidebar.Item
144
- `forwardRef` → the rendered element. `<button type="button">`, `<a>` with `href`, or the single child with `asChild`; a tooltip with its label in compact mode. With `Sidebar.ItemAction` the element and the action sit side by side in a row `<div>`.
146
+ `ref` → the rendered element. `<button type="button">`, `<a>` with `href`, or the single child with `asChild`; a tooltip with its label in compact mode; activating it closes the flyout and the off-canvas panel. With `Sidebar.ItemAction` both sit in a row `<div>`.
145
147
 
146
148
  | Prop | Type | Default | Description |
147
149
  |---|---|---|---|
148
150
  | `current` | `boolean` | `false` | Current page: `aria-current="page"`, `data-state="active"`; a muted fill and primary text and icon colour. |
149
151
  | `disabled` | `boolean` | `false` | Not interactive: `disabled` / `aria-disabled`, `data-disabled`; a link loses its `href`. |
150
152
  | `href` | `string` | — | Renders an `<a>` (with `target`, `rel`). |
153
+ | `target` | `string` | — | Where the `<a>` opens (`href` only). |
154
+ | `rel` | `string` | — | Relationship of the `<a>` (`href` only). |
151
155
  | `asChild` | `boolean` | `false` | Renders the single child (e.g. a router `NavLink`) as the item; its children are the label and parts. |
152
156
  | `children` | `ReactNode` | — | Label (also the compact tooltip) and parts: `Sidebar.ItemIcon` (before the label — leading, after it — trailing), `Sidebar.ItemCount`, `Sidebar.ItemShortcut`, `Sidebar.ItemAction`. |
153
- | `…rest` | `ButtonHTMLAttributes<HTMLButtonElement>` | — | `onClick`, `aria-*`, `className` and the other attributes. |
157
+ | `…rest` | `HTMLAttributes<HTMLElement>` | — | `onClick` (runs first; `preventDefault()` keeps the flyout and the panel open), `aria-*`, `className` and the other attributes. |
154
158
 
155
159
  ### Sidebar.ItemIcon
156
160
  `ref` → `HTMLSpanElement`. An icon (`aria-hidden`). Before the label it leads and stays on the icon axis in every mode; after the label it is a quiet trailing glyph (`data-edge="end"`, 14, muted), e.g. ↗ for an external link, hidden in compact mode.
@@ -179,14 +183,15 @@ useSidebar() state hook for custom parts inside Root
179
183
  | `…rest` | `Omit<HTMLAttributes<HTMLSpanElement>, "children">` | — | `className` and the other span attributes. |
180
184
 
181
185
  ### Sidebar.ItemAction
182
- `ref` → `HTMLButtonElement`. A row action (create, add): a ghost icon `Button` one tier down with a tooltip, next to the item element — never inside it. Shows on hover and focus of the row (always on touch); hidden on the compact rail.
186
+ `ref` → `HTMLButtonElement`. A row action (create, add): a ghost icon `Button` one tier down with a tooltip, next to the item element — never inside it; with `asChild` a link with the same look. Shows on hover and focus of the row (always on touch); hidden on the compact rail.
183
187
 
184
188
  | Prop | Type | Default | Description |
185
189
  |---|---|---|---|
186
190
  | `label` | `string` | — (required) | Accessible name and tooltip («Создать задачу»). |
187
- | `onClick` | `(event: MouseEvent<HTMLButtonElement>) => void` | — (required) | The action. |
191
+ | `onClick` | `(event: MouseEvent<HTMLButtonElement>) => void` | — | The action; required without `asChild`. |
192
+ | `asChild` | `boolean` | `false` | Renders the single child (a link: another page, `mailto:`) as the action; its children are the glyph. |
188
193
  | `disabled` | `boolean` | — | Not available. |
189
- | `children` | `ReactNode` | — | The glyph; `<Icon name="action.add" />` by default. |
194
+ | `children` | `ReactNode` | — | The glyph (`<Icon name="action.add" />` by default), or with `asChild` the link around it. |
190
195
  | `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" \| "onClick" \| "aria-label">` | — | `className` and the other attributes of the Button. |
191
196
 
192
197
  ### Sidebar.Sub
@@ -200,7 +205,7 @@ useSidebar() state hook for custom parts inside Root
200
205
  | `…rest` | `HTMLAttributes<HTMLDivElement>` | — | `children`, `className` and the other div attributes. |
201
206
 
202
207
  ### Sidebar.SubTrigger
203
- `forwardRef` → `HTMLButtonElement`. The parent row: a disclosure `<button>` (`aria-expanded`, `aria-controls`) with a chevron at the end of the row. On the compact rail it opens the flyout (`aria-haspopup="dialog"`).
208
+ `ref` → `HTMLButtonElement`. The parent row: a disclosure `<button>` (`aria-expanded`, `aria-controls`) with a chevron at the end of the row. On the compact rail it opens the flyout (`aria-haspopup="dialog"`).
204
209
 
205
210
  | Prop | Type | Default | Description |
206
211
  |---|---|---|---|
@@ -215,7 +220,7 @@ useSidebar() state hook for custom parts inside Root
215
220
  | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "role">` | — | `children` (Items), `className` (on the list) and the other div attributes. |
216
221
 
217
222
  ### Sidebar.Account
218
- `forwardRef` → `HTMLButtonElement`. The signed-in person at the bottom of `Sidebar.Footer`: avatar, name, a muted line and a ↕ chevron. A button, so it is a `Dropdown.Trigger` child; in compact mode only the avatar stays, with the name as a tooltip.
223
+ `ref` → `HTMLButtonElement`. The signed-in person at the bottom of `Sidebar.Footer`: avatar, name, a muted line and a ↕ chevron. A button, so it is a `Dropdown.Trigger` child; in compact mode only the avatar stays, with the name as a tooltip.
219
224
 
220
225
  | Prop | Type | Default | Description |
221
226
  |---|---|---|---|
@@ -224,23 +229,19 @@ useSidebar() state hook for custom parts inside Root
224
229
  | `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children">` | — | `onClick`, `aria-*`, `className` and the other button attributes. |
225
230
 
226
231
  ### Sidebar.Toggle
227
- `forwardRef` → `HTMLButtonElement`. Toggle: expanded ↔ compact on desktop (hidden → expanded), closes the off-canvas panel; label, icon, `aria-expanded` and `aria-controls` come from state and `labels`.
232
+ `ref` → `HTMLButtonElement`. Expanded ↔ compact on desktop (hidden → expanded), open ↔ closed off-canvas; label, icon and ARIA from state and `labels`. Outside the rail, in an `AppShell`, a soft icon `Button` on the shell's navigation — the way back to a hidden rail.
228
233
 
229
234
  | Prop | Type | Default | Description |
230
235
  |---|---|---|---|
231
- | `variant` | `"item" \| "header"` | `"item"` | `item` — a row in the rail. `header` — an icon button «‹‹» at the end of `Sidebar.Header` that moves onto the rail edge in compact mode. |
236
+ | `variant` | `"item" \| "header"` | `"item"` | In the rail: `item` — a row; `header` — a round icon button «‹‹» at the end of `Sidebar.Header` that moves onto the rail edge in compact mode. |
232
237
  | `…rest` | `Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" \| "aria-label" \| "aria-expanded" \| "aria-controls">` | — | `onClick` (runs first; `preventDefault()` stops the toggle), `className` and the other button attributes. |
233
238
 
234
- ### useSidebar()
235
- Hook for custom parts inside `Sidebar.Root` (throws outside). Returns the fields below.
239
+ ### Functions
236
240
 
237
- | Prop | Type | Default | Description |
238
- |---|---|---|---|
239
- | `mode · setMode` | `SidebarMode · (mode: SidebarMode) => void` | — | Desktop mode. |
240
- | `open · setOpen` | `boolean · (open: boolean) => void` | — | Off-canvas panel. |
241
- | `toggle` | `() => void` | — | The action of `Sidebar.Toggle`. |
242
- | `offCanvas` | `boolean` | — | The sidebar is an off-canvas panel now (`offCanvas="always"`, or `"auto"` under 768px). |
243
- | `size · navId · labels` | `ControlSize · string · SidebarLabels` | — | Tier, id of the `<nav>` (for `aria-controls` on your own menu button), resolved strings. |
241
+ #### `useSidebar()`
242
+ `() => { mode: SidebarMode; setMode: (mode: SidebarMode) => void; open: boolean; setOpen: (open: boolean) => void; toggle: () => void; offCanvas: boolean; size: ControlSize; navId: string; labels: SidebarLabels }`
243
+
244
+ Hook for custom parts inside `Sidebar.Root` (throws outside): the desktop `mode`, the off-canvas `open` state, `toggle` (the action of `Sidebar.Toggle`), `offCanvas` (the sidebar is an off-canvas panel: `offCanvas="always"`, or `"auto"` under 768px), the tier, the `navId` of the `<nav>` (for `aria-controls` on your own menu button) and the resolved strings.
244
245
 
245
246
  ## Variants
246
247
  The rail is a surface beside the page, one layer above it on the surface ladder (`data-depth`): white on the light gray page, one step lighter than the near-black page in dark; no border or card. Items are transparent rows with `text-secondary`, `fill-subtle` on hover; the current item takes the rail's fill two ladder steps off it (`fill-muted-hover`) with primary text.
@@ -267,7 +268,7 @@ The rail width does not depend on `size`.
267
268
  | Value | Looks like | Use when | Default |
268
269
  |---|---|---|---|
269
270
  | `item` | an item row with a panel icon and the label | a toggle in `Sidebar.Footer` | yes |
270
- | `header` | a ghost «‹‹» icon button at the end of the header; on the compact rail a small round soft button across the outer edge, chevrons pointing out | a brand header (`Sidebar.Brand`) | |
271
+ | `header` | a round ghost «‹‹» icon button (a disk of the compact tier) at the end of the header; on the compact rail a smaller soft disk across the outer edge, chevrons pointing out | a brand header (`Sidebar.Brand`) | |
271
272
 
272
273
  ### ItemCount
273
274
  | Value | Looks like | Use when | Default |
@@ -289,14 +290,19 @@ The rail width does not depend on `size`.
289
290
  | `collapsible` (Group) | the heading is a button with a chevron at its end; items fold away; folded on the rail, one `…` row opens them in a flyout | long navigation with sections | off |
290
291
  | `current` (Item) | `fill-muted-hover` fill (a `fill-subtle-active` wash in a flyout), primary text and icon | the current page | off |
291
292
  | `disabled` (Item) | `text-disabled`, no hover, `cursor: not-allowed` | an unavailable section | off |
293
+ | `closeOnOutsideClick` (Root) | a press on the scrim closes the off-canvas panel | default; turn off when only the toggle or an item may close it | on |
294
+ | `closeOnEscape` (Root) | Escape closes the off-canvas panel | default; turn off with `closeOnOutsideClick` for a panel only its toggle closes | on |
295
+ | `asChild` (ItemAction) | the row action is the consumer's link with the button look | the action opens a page or `mailto:` | off |
292
296
 
293
- Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header, or `Sidebar.Toggle` in the footer for a rail without a brand; on phones (`offCanvas="auto"`) or always (`offCanvas="always"`) pair it with `AppHeader.MenuButton` (`open` / `onOpenChange`). One current item at a time; give every top-level item an icon when the rail can go compact (child items need none).
297
+ Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header, or `Sidebar.Toggle` in the footer for a rail without a brand. Inside an `AppShell` the Sidebar publishes its navigation to the shell: on phones (`offCanvas="auto"`) or always (`offCanvas="always"`) the page's `Page.TopBar` draws the menu button that opens the panel by itself, a `Sidebar.Toggle` outside the rail brings back a hidden one, and other triggers (a BottomNav «Ещё») read `useAppShellNav()`. One current item at a time; give every top-level item an icon when the rail can go compact (child items need none).
294
298
 
295
299
  ## States
296
300
  | State | Driven by | DOM |
297
301
  |---|---|---|
298
302
  | mode | `mode` / `defaultMode` | Root `data-mode`, `data-panel-mode` (the last visible mode while hidden); `<nav inert>` while hidden |
299
- | off-canvas | `offCanvas="always"`, or `"auto"` + viewport < 768px | Root `data-off-canvas`, `data-state="open" \| "closed"`; `<nav inert>` while closed |
303
+ | off-canvas | `offCanvas="always"`, or `"auto"` + viewport < 768px | Root `data-off-canvas`, `data-state="open" \| "closed"`; `<nav inert>` while closed; the kit scrim (`role="presentation"`) while open; in an `AppShell` the shell Root `data-off-canvas` |
304
+ | placing | the viewport crossed the off-canvas breakpoint (not a person's choice) | Root `data-placing` for one painted frame: the rail lands at its new width with no motion (no growing from 0, no folding rows, no sliding panel) |
305
+ | dismiss | `closeOnOutsideClick`, `closeOnEscape` | a press on the scrim / Escape closes the open panel, or not |
300
306
  | current | `current` or a router's `aria-current` | Item `aria-current="page"`, `data-state="active"` |
301
307
  | active path | a child of a Sub (or an item of a Group) is current | SubTrigger (or the `…` row of a folded Group) `data-active-path`; a closed Sub opens, a closed Group opens off the compact rail |
302
308
  | group open | Group `open` / `defaultOpen` (`collapsible`) | heading `aria-expanded`; region `data-state`, `inert` while closed |
@@ -306,16 +312,16 @@ Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header,
306
312
  | persisted | `persistKey` on Root | the mode and the open state of collapsible groups and sub-lists are read from and written to `localStorage` |
307
313
  | disabled | `disabled` | Item `disabled` / `aria-disabled`, `data-disabled` |
308
314
 
309
- `persistKey` stores collapsible groups and sub-lists by their `id`, else by their label text — give an `id` when labels are translated or change. The stored state wins over `defaultMode` / `defaultOpen`; controlled `mode` / `open` are not stored, and unavailable storage is ignored.
315
+ `persistKey` stores collapsible groups and sub-lists by their `id`, else by their label text — give an `id` when labels are translated or change. The stored state wins over `defaultMode` / `defaultOpen`; controlled `mode` / `open` are not stored, and unavailable storage is ignored. A hidden rail is stored as the mode it left, so a reload never strands a person on a hidden rail.
310
316
 
311
317
  On the active path a SubTrigger takes the current fill. On the compact rail a SubTrigger opens its flyout on hover after a short intent delay, as well as on click and from the keyboard.
312
318
 
313
- Leaving the narrow viewport closes the off-canvas panel; navigating from an `href` / `asChild` item (or the brand) closes it too. Navigating from a flyout closes the flyout.
319
+ Leaving the narrow viewport closes the off-canvas panel; activating an item (a link, a button or an `asChild` element) or the brand closes it too, unless its `onClick` prevents the default. Activating an item in a flyout closes the flyout.
314
320
 
315
321
  ## Layout & spacing
316
322
  - Panel padding: `--prime-space-3` block, `--prime-space-2` inline; regions 8 apart; groups 16 apart, items 4 apart.
317
323
  - Item horizontal padding is derived from the compact width so icons and the brand logo sit on one axis in every mode (the account avatar joins that axis on the rail).
318
- - Header is one row of the item height + 8. The header toggle (xs, 28) sits at its end, 8 from the rail edge; in compact mode it moves half past the edge, scales to 3/4, turns round and gets a ring in the rail color. The root clips with `clip-path`, reaching past the edge by the toggle's half-width and ring beside the header only; everywhere else the panel ends exactly at the spacer edge.
324
+ - Header is one row of the item height + 8. The header toggle (a disk of the compact tier: 28, 32 at `l` and `xl`) sits at its end, 8 from the rail edge; in compact mode it moves half past the edge, scales to 3/4 and gets a ring in the rail color. The root clips with `clip-path`, reaching past the edge by the toggle's half-width and ring beside the header only; everywhere else the panel ends exactly at the spacer edge.
319
325
  - Collapsible group: heading 28 high with the chevron (14) at its end, aligned with the item trail; items start 4 below. A folded group's attention dot sits before the chevron.
320
326
  - On the rail a heading keeps its 28 and its layout: the text slides 8 toward the edge, scales to 0.85 and is cut at the rail box with a 12 fade into the rail. A folded group adds one `…` row under its heading. The items and the row share one place: folding or unfolding on the rail glides the group's height one way (list ↔ row) while the two cross-fade, so the rows below never move back.
321
327
  - Sub-list: a 1px `border-default` guide line on the parent icon's centre; every child branches off it with an 8 elbow and a 6 bend; child labels line up with the parent label.
@@ -326,7 +332,7 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
326
332
  so the row is the avatar + 2 × gap high (48 at m). On the compact rail the start inset becomes the
327
333
  one that centres the avatar on the icon axis, as part of the rail motion.
328
334
  - Compact flyout: the kit Popover (flush) to the right, aligned with the parent row, with the metrics of a kit menu — rows of the tier's menu item height (32 at m), the panel padding, no title (the row names it), no guide line; current child is a `fill-subtle-active` wash.
329
- - Motion: two layers on one clock. `Sidebar.Root` is the spacer: it reserves the rail width in the page, paints the rail and clips the panel to its own box; its width is the only layout that moves (the page column follows). The `<nav>` panel inside is positioned at the expanded width in every mode and never lays out again, so nothing re-wraps and nothing switches at the end. Every part is a plain CSS transition over `base` with the `standard` (ease-in-out) easing, started by the same mode change and ending with the rail: text fades through its fill colour (paint-only, no compositor layer per label), chevrons through their stroke, trailing boxes (a coloured count, a key hint) through `opacity`; coloured counts turn into dots; the account avatar slides onto the icon axis; the header toggle rides the edge by `translate` / `scale`. Rows stay full width: a row with a fill or a ring (current, on the active path, hovered, open, focused) draws them on a pseudo-element whose end edge travels to the icon box and clips its content there, so it always ends rail padding before the moving edge and is a rounded square around the icon at rest. Group headings keep their height and layout: their text slides toward the edge and scales down by transform while the moving cut ends it with a fade; the text box narrows only once the rail has closed (under the cut, never seen), so the dot and the chevron after it stay in place and fade. The `…` row of a folded group grows in and out on the same clock (grid track height), as do the attention dots (opacity and scale). Hidden keeps the look of the last visible mode and is clipped as one piece; the header toggle stays at its place and fades, and coming back from hidden it fades in at its final place. Collapsible groups that open for the rail and sub-lists that close for it move on the same clock (grid track height); chevrons rotate (base). All durations are tokens: under reduced motion every mode change is instant.
335
+ - Motion: two layers on one clock. `Sidebar.Root` is the spacer: it reserves the rail width in the page, paints the rail and clips the panel to its own box; its width is the only layout that moves (the page column follows). The `<nav>` panel inside is positioned at the expanded width in every mode and never lays out again, so nothing re-wraps and nothing switches at the end. Every part is a plain CSS transition over `base` with the `standard` (ease-in-out) easing, started by the same mode change and ending with the rail: text fades through its fill colour (paint-only, no compositor layer per label), chevrons through their stroke, trailing boxes (a coloured count, a key hint) through `opacity`; coloured counts turn into dots; the account avatar slides onto the icon axis; the header toggle rides the edge by `translate` / `scale`. Rows stay full width: a row with a fill or a ring (current, on the active path, hovered, open, focused) draws them on a pseudo-element whose end edge travels to the icon box and clips its content there, so it always ends rail padding before the moving edge and is a rounded square around the icon at rest. Group headings keep their height and layout: their text slides toward the edge and scales down by transform while the moving cut ends it with a fade; the text box narrows only once the rail has closed (under the cut, never seen), so the dot and the chevron after it stay in place and fade. The `…` row of a folded group grows in and out on the same clock (the kit fold), as do the attention dots (opacity and scale). Hidden keeps the look of the last visible mode and is clipped as one piece; the header toggle stays at its place and fades, and coming back from hidden it fades in at its final place. Collapsible groups that open for the rail and sub-lists that close for it move on the same clock (the kit fold, `Disclosure`); chevrons rotate (base); a group or a sub-list that opens for the current page on mount stands open, without motion. All durations are tokens: under reduced motion every mode change is instant.
330
336
  - Layers of a row on the rail (compact tooltips, the sub-list flyout, a `Dropdown` around `Sidebar.Account`) anchor to the visible part of the row — the icon box — not to its full-width box. The brand has no compact tooltip: the logo speaks for itself and a tooltip would cover the edge toggle.
331
337
  - Off-canvas panel width: min(sidebar width, 100% − `--prime-space-12`).
332
338
  - Inside `AppShell.Nav` the rail takes the full height. The root is `height: 100%` and the panel is
@@ -336,6 +342,8 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
336
342
  ## Accessibility
337
343
 
338
344
  ### Keyboard
345
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
346
+
339
347
  | Key | Action |
340
348
  |---|---|
341
349
  | `Tab` | Moves focus through the items; a disabled or folded one is skipped. |
@@ -345,6 +353,8 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
345
353
  | `Escape` | Closes the flyout (focus returns to the parent) and the off-canvas panel on a narrow screen. |
346
354
 
347
355
  ### ARIA
356
+ <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
357
+
348
358
  - The panel is a `<nav>` named by `labels.navigation`; groups are `role="group"` named by their label.
349
359
  - The current item has `aria-current="page"`; in compact mode the label shows as a tooltip, so icon-only items keep a visible name.
350
360
  - A collapsible group heading and a SubTrigger are buttons with `aria-expanded` and `aria-controls`; folded content is `inert`.
@@ -354,8 +364,8 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
354
364
  - In compact mode the brand's name fades out but still names the link.
355
365
  - A row action is its own button next to the item (never nested), named by `label` with a tooltip.
356
366
  - The account avatar is hidden from screen readers; the name and the muted line name the button.
357
- - Off-canvas: scrim, focus trap and Escape; the scrim is a button labelled `labels.close`.
358
- - Toggle: `aria-expanded`, `aria-controls` → nav, label from `labels`.
367
+ - Off-canvas: a decorative scrim (a press on it is a press outside, `closeOnOutsideClick`), focus trap and Escape (`closeOnEscape`); focus returns to the opener.
368
+ - Toggle, the menu button of `Page.TopBar` and `useAppShellNav` triggers: `aria-expanded`, `aria-controls` → the `<nav>`, label from `labels`.
359
369
 
360
370
  ### Labels
361
371
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
@@ -365,7 +375,7 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
365
375
  | `navigation` | `"Навигация"` | `aria-label` of the `<nav>`. |
366
376
  | `collapse` | `"Свернуть панель"` | Toggle label while expanded. |
367
377
  | `expand` | `"Развернуть панель"` | Toggle label while compact or hidden. |
368
- | `close` | `"Закрыть навигацию"` | Toggle label off-canvas and the scrim label. |
378
+ | `close` | `"Закрыть навигацию"` | Toggle label while the off-canvas panel is open. |
369
379
 
370
380
  ## Examples
371
381
  | Example | Shows |
@@ -377,12 +387,13 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
377
387
  | [collapsible-groups.tsx](examples/collapsible-groups.tsx) | Group headings that fold their items away, one group open at a time, with a chevron at the end of the heading; on the compact rail a folded group becomes one row whose items open in a flyout — `collapsible`, `open`, `onOpenChange`. |
378
388
  | [nested-items.tsx](examples/nested-items.tsx) | A parent item with child items on a guide line: a current child opens it and marks the parent; on the compact rail the children open in a flyout — `Sidebar.Sub`, `Sidebar.SubTrigger`, `Sidebar.SubContent`. |
379
389
  | [account.tsx](examples/account.tsx) | Footer items and the collapse row above the signed-in person: avatar, name and email open the account menu; collapse the rail from that row and only the avatar stays, on the icon axis — `Sidebar.Footer`, `Sidebar.Account`, `description`, `Sidebar.Toggle`. |
380
- | [router.tsx](examples/router.tsx) | Router links as the brand and the items: the router sets `aria-current` and the item shows as current; render it inside a router — `asChild`. |
390
+ | [router.tsx](examples/router.tsx) | Router links as the brand and the items: the router marks the current link and the item shows it as current; render it inside a router — `asChild`. |
381
391
  | [persist.tsx](examples/persist.tsx) | The first visit opens on the icon rail; the mode and the folded groups are remembered and come back after a reload — `persistKey`, `defaultMode`. |
382
392
  | [custom-part.tsx](examples/custom-part.tsx) | A part of your own in the footer reads the rail state: the storage meter shows on the full rail and in the off-canvas panel and steps aside on the icon rail — `useSidebar`. |
393
+ | [dismiss.tsx](examples/dismiss.tsx) | An off-canvas panel only its own toggle closes: a press on the scrim and Escape leave it open, a picked item still closes it — `closeOnOutsideClick`, `closeOnEscape`. |
383
394
  | [controlled.tsx](examples/controlled.tsx) | The parent owns the rail mode: expanded, an icon rail with tooltips, or hidden; every switch is one synchronous movement — `mode`, `onModeChange`. |
384
395
  | [controlled-open.tsx](examples/controlled-open.tsx) | Navigation behind a menu button at any width: the parent opens the off-canvas panel, the scrim, Escape, the header toggle or a navigation closes it — `offCanvas`, `open`, `onOpenChange`. |
385
- | [narrow.tsx](examples/narrow.tsx) | Below 768px the rail leaves the layout and slides in over the page from the menu button; from 768px it is the rail again, and the button leaves — `offCanvas`, `labels`. |
396
+ | [narrow.tsx](examples/narrow.tsx) | Below 768px the rail leaves the layout and slides in over the page from the menu button the page top bar draws by itself; from 768px it is the rail again, and the button leaves — `AppShell`, `labels`. |
386
397
 
387
398
  ## Mistakes
388
399
  - `icon={…}` / `badge={…}` props → use the `Sidebar.ItemIcon` and `Sidebar.ItemCount` parts.
@@ -401,5 +412,5 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
401
412
  - Your own `localStorage` code for the rail mode → `persistKey` keeps the mode and the folded groups.
402
413
 
403
414
  ## Related
404
- - **Built from:** [ScrollContainer](../../components/scroll-container/COMPONENT.md), [Badge](../../components/badge/COMPONENT.md), [Tooltip](../../components/tooltip/COMPONENT.md), [Popover](../../components/popover/COMPONENT.md) (compact flyout), [Button](../../components/button/COMPONENT.md) (header toggle, row action), [Avatar](../../components/avatar/COMPONENT.md) slot, Icon (`nav.sidebarCollapse`, `nav.sidebarExpand`, `nav.chevronsLeft`, `nav.chevronDown`, `nav.chevronsUpDown`, `action.add`, `action.more`)
415
+ - **Built from:** [AppShell](../app-shell/COMPONENT.md) (publishes the navigation), [ScrollContainer](../../components/scroll-container/COMPONENT.md), [Badge](../../components/badge/COMPONENT.md), [Tooltip](../../components/tooltip/COMPONENT.md), [Popover](../../components/popover/COMPONENT.md) (compact flyout), [Button](../../components/button/COMPONENT.md) (header toggle, row action), [Avatar](../../components/avatar/COMPONENT.md) slot, Icon (`nav.sidebarCollapse`, `nav.sidebarExpand`, `nav.chevronsLeft`, `nav.chevronDown`, `nav.chevronsUpDown`, `action.add`, `action.more`)
405
416
  - **See also:** [AppShell](../app-shell/COMPONENT.md), [Dropdown](../../components/dropdown/COMPONENT.md) (account menu), [Drawer](../../components/drawer/COMPONENT.md), [Kbd](../../components/kbd/COMPONENT.md)
@@ -10,9 +10,7 @@ export default function SidebarAccountExample() {
10
10
  <Sidebar.Header>
11
11
  <Sidebar.Brand href="#home" description="Отдел продаж">
12
12
  <Sidebar.BrandLogo>
13
- <span className={styles.logo}>
14
- <Icon name="nav.layoutGrid" />
15
- </span>
13
+ <Icon name="nav.layoutGrid" />
16
14
  </Sidebar.BrandLogo>
17
15
  Прайм CRM
18
16
  </Sidebar.Brand>
@@ -10,9 +10,7 @@ export default function SidebarBrandHeaderExample() {
10
10
  <Sidebar.Header>
11
11
  <Sidebar.Brand href="#home" description="Отдел продаж">
12
12
  <Sidebar.BrandLogo>
13
- <span className={styles.logo}>
14
- <Icon name="nav.layoutGrid" />
15
- </span>
13
+ <Icon name="nav.layoutGrid" />
16
14
  </Sidebar.BrandLogo>
17
15
  Прайм CRM
18
16
  </Sidebar.Brand>
@@ -18,9 +18,7 @@ export default function SidebarCollapsibleGroupsExample() {
18
18
  <Sidebar.Header>
19
19
  <Sidebar.Brand href="#home" description="Отдел продаж">
20
20
  <Sidebar.BrandLogo>
21
- <span className={styles.logo}>
22
- <Icon name="nav.layoutGrid" />
23
- </span>
21
+ <Icon name="nav.layoutGrid" />
24
22
  </Sidebar.BrandLogo>
25
23
  Прайм CRM
26
24
  </Sidebar.Brand>
@@ -13,9 +13,7 @@ export default function SidebarControlledOpenExample() {
13
13
  <Sidebar.Header>
14
14
  <Sidebar.Brand href="#home" description="Отдел продаж">
15
15
  <Sidebar.BrandLogo>
16
- <span className={styles.logo}>
17
- <Icon name="nav.layoutGrid" />
18
- </span>
16
+ <Icon name="nav.layoutGrid" />
19
17
  </Sidebar.BrandLogo>
20
18
  Прайм CRM
21
19
  </Sidebar.Brand>
@@ -31,9 +31,7 @@ export default function SidebarControlledExample() {
31
31
  <Sidebar.Header>
32
32
  <Sidebar.Brand href="#home" description="Отдел продаж">
33
33
  <Sidebar.BrandLogo>
34
- <span className={styles.logo}>
35
- <Icon name="nav.layoutGrid" />
36
- </span>
34
+ <Icon name="nav.layoutGrid" />
37
35
  </Sidebar.BrandLogo>
38
36
  Прайм CRM
39
37
  </Sidebar.Brand>
@@ -21,9 +21,7 @@ export default function SidebarCustomPartExample() {
21
21
  <Sidebar.Header>
22
22
  <Sidebar.Brand href="#home" description="Отдел продаж">
23
23
  <Sidebar.BrandLogo>
24
- <span className={styles.logo}>
25
- <Icon name="nav.layoutGrid" />
26
- </span>
24
+ <Icon name="nav.layoutGrid" />
27
25
  </Sidebar.BrandLogo>
28
26
  Прайм CRM
29
27
  </Sidebar.Brand>
@@ -0,0 +1,50 @@
1
+ /** An off-canvas panel only its own toggle closes: a press on the scrim and Escape leave it open, a picked item still closes it — `closeOnOutsideClick`, `closeOnEscape`. */
2
+ import { AppShell, Icon, Page, Sidebar } from "prime-ui-kit";
3
+
4
+ import styles from "./examples.module.css";
5
+
6
+ export default function SidebarDismissExample() {
7
+ return (
8
+ <div className={styles.stage}>
9
+ <AppShell.Root fillViewport className={styles.shell}>
10
+ <AppShell.Nav>
11
+ <Sidebar.Root offCanvas="always" closeOnOutsideClick={false} closeOnEscape={false}>
12
+ <Sidebar.Header>
13
+ <Sidebar.Brand href="#home" description="Склад · смена 2">
14
+ <Sidebar.BrandLogo>
15
+ <Icon name="object.package" />
16
+ </Sidebar.BrandLogo>
17
+ Терминал сборки
18
+ </Sidebar.Brand>
19
+ <Sidebar.Toggle variant="header" />
20
+ </Sidebar.Header>
21
+ <Sidebar.Content>
22
+ <Sidebar.Item href="#picking" current>
23
+ <Sidebar.ItemIcon>
24
+ <Icon name="object.tasks" />
25
+ </Sidebar.ItemIcon>
26
+ Сборка заказов
27
+ <Sidebar.ItemCount>14</Sidebar.ItemCount>
28
+ </Sidebar.Item>
29
+ <Sidebar.Item href="#returns">
30
+ <Sidebar.ItemIcon>
31
+ <Icon name="object.package" />
32
+ </Sidebar.ItemIcon>
33
+ Возвраты
34
+ </Sidebar.Item>
35
+ </Sidebar.Content>
36
+ </Sidebar.Root>
37
+ </AppShell.Nav>
38
+ <AppShell.Main>
39
+ <Page.Root>
40
+ <Page.TopBar>
41
+ <Page.Heading>
42
+ <Page.Title>Сборка заказов</Page.Title>
43
+ </Page.Heading>
44
+ </Page.TopBar>
45
+ </Page.Root>
46
+ </AppShell.Main>
47
+ </AppShell.Root>
48
+ </div>
49
+ );
50
+ }
@@ -1,4 +1,4 @@
1
- /* Layout for the Sidebar examples: small "app windows" (the page with a rail one layer above it). Semantic tokens only. */
1
+ /* Layout for the Sidebar examples: small app windows. The preview stage is the page, the rail one layer above it; a window only sizes and clips. Semantic tokens only. */
2
2
 
3
3
  .stage {
4
4
  box-sizing: border-box;
@@ -6,12 +6,6 @@
6
6
  width: 100%;
7
7
  height: calc(var(--prime-space-24) * 4);
8
8
  overflow: hidden;
9
- border-radius: var(--prime-card-radius);
10
- background: var(--prime-color-layer-current);
11
- /* The window is a page on the preview's page: a hairline keeps its edge visible. */
12
- box-shadow:
13
- 0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
14
- var(--prime-shadow-raised);
15
9
  }
16
10
 
17
11
  /* A window tall enough for a full rail: header, groups, footer and the account. */
@@ -24,22 +18,17 @@
24
18
  height: calc(var(--prime-space-24) * 2);
25
19
  }
26
20
 
27
- /* Content plane next to the rail, like AppShell: the page itself, edge to edge. */
21
+ /* narrow.tsx: the app shell fills the window frame instead of the viewport. */
22
+ .shell {
23
+ height: 100%;
24
+ }
25
+
26
+ /* The page plane next to the rail, like AppShell.Main. */
28
27
  .content {
29
28
  box-sizing: border-box;
30
29
  flex: 1 1 auto;
31
30
  min-width: 0;
32
31
  padding: var(--prime-space-4);
33
- background: var(--prime-color-layer-current);
34
- }
35
-
36
- /* The product mark inside `Sidebar.BrandLogo`: an accent tile with a glyph. */
37
- .logo {
38
- display: grid;
39
- place-items: center;
40
- border-radius: var(--prime-radius-m);
41
- background: var(--prime-color-accent-default);
42
- color: var(--prime-color-accent-fg);
43
32
  }
44
33
 
45
34
  /* custom-part.tsx: an own block in the footer, inset like the item labels. */
@@ -47,20 +36,6 @@
47
36
  padding: var(--prime-space-2);
48
37
  }
49
38
 
50
- .sizes {
51
- display: grid;
52
- grid-template-columns: repeat(auto-fit, minmax(calc(var(--prime-space-24) * 2.5), 1fr));
53
- gap: var(--prime-space-4);
54
- width: 100%;
55
- }
56
-
57
- .sizeColumn {
58
- display: flex;
59
- flex-direction: column;
60
- gap: var(--prime-space-2);
61
- min-width: 0;
62
- }
63
-
64
39
  .column {
65
40
  display: flex;
66
41
  flex-direction: column;