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
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
7
7
 
8
8
  **A calm, precise React 19 UI kit for product interfaces** — admin panels, dashboards, settings, forms
9
- and data tables. 80 components on one design contract, one API vocabulary and one set of tokens, so
9
+ and data tables. 78 components on one design contract, one API vocabulary and one set of tokens, so
10
10
  every screen you build looks like it was drawn by the same hand.
11
11
 
12
12
  - **Graphite design language.** Depth from fill, not lines — a surface ladder where every nested
@@ -76,7 +76,7 @@ pathname to `AppShell.Template scrollResetKey` and use `asChild` for router link
76
76
 
77
77
  ```tsx
78
78
  import "prime-ui-kit/bundle.css"; // tokens, light and dark themes, component styles
79
- import "prime-ui-kit/fonts.css"; // optional: Golos Text + JetBrains Mono from Google Fonts
79
+ import "prime-ui-kit/fonts.css"; // optional: Golos Text + JetBrains Mono, metric-matched fallbacks
80
80
  import "prime-ui-kit/reset.css"; // optional: minimal document reset (skip if the app has its own)
81
81
  import { applyTheme } from "prime-ui-kit";
82
82
 
@@ -117,7 +117,7 @@ components.
117
117
  ## Quick start
118
118
 
119
119
  ```tsx
120
- import { AppHeader, AppShell, Button, Input, PageContent, Sidebar } from "prime-ui-kit";
120
+ import { AppShell, Button, Icon, Input, Page, Sidebar } from "prime-ui-kit";
121
121
 
122
122
  export function App() {
123
123
  return (
@@ -126,28 +126,31 @@ export function App() {
126
126
  nav={
127
127
  <Sidebar.Root>
128
128
  <Sidebar.Content>
129
- <Sidebar.Item current>Clients</Sidebar.Item>
129
+ <Sidebar.Item href="/clients" current>
130
+ <Sidebar.ItemIcon>
131
+ <Icon name="object.users" />
132
+ </Sidebar.ItemIcon>
133
+ Клиенты
134
+ </Sidebar.Item>
130
135
  </Sidebar.Content>
131
136
  </Sidebar.Root>
132
137
  }
133
- header={
134
- <AppHeader.Root>
135
- <AppHeader.Start>
136
- <AppHeader.Title>New client</AppHeader.Title>
137
- </AppHeader.Start>
138
- </AppHeader.Root>
139
- }
140
138
  >
141
- <PageContent.Page>
142
- <PageContent.Body>
143
- <Input.Root label="Email" required hint="We will send an invitation">
139
+ <Page.Root>
140
+ <Page.TopBar>
141
+ <Page.Heading>
142
+ <Page.Title>Новый клиент</Page.Title>
143
+ </Page.Heading>
144
+ </Page.TopBar>
145
+ <Page.Body>
146
+ <Input.Root label="Рабочая почта" required hint="Отправим на неё приглашение">
144
147
  <Input.Wrapper>
145
148
  <Input.Field type="email" placeholder="name@company.ru" />
146
149
  </Input.Wrapper>
147
150
  </Input.Root>
148
- <Button.Root>Invite</Button.Root>
149
- </PageContent.Body>
150
- </PageContent.Page>
151
+ <Button.Root>Пригласить клиента</Button.Root>
152
+ </Page.Body>
153
+ </Page.Root>
151
154
  </AppShell.Template>
152
155
  );
153
156
  }
@@ -186,6 +189,13 @@ The full contract lives in [`docs/foundation.md`](https://github.com/esurkov1/pr
186
189
  Every link opens the full reference: anatomy, every prop with its default, every variant, states,
187
190
  accessibility, examples and common mistakes.
188
191
 
192
+ <!-- components:start -->
193
+ ### Foundations (`foundations`)
194
+
195
+ | Component | What it is for |
196
+ |---|---|
197
+ | [**Typography**](https://github.com/esurkov1/prime-ui/blob/main/src/components/typography/COMPONENT.md) | Text roles of the Golos Text type scale applied to any text element, with reading-width guidance. |
198
+
189
199
  ### Actions (`actions`)
190
200
 
191
201
  | Component | What it is for |
@@ -198,14 +208,14 @@ accessibility, examples and common mistakes.
198
208
 
199
209
  | Component | What it is for |
200
210
  |---|---|
201
- | [**Input**](https://github.com/esurkov1/prime-ui/blob/main/src/components/input/COMPONENT.md) | Single-line text field with label, hint, error and slots for icons, affixes, clear / copy / reveal / action segments and a counter; a password strength meter (`strength`). |
202
- | [**Textarea**](https://github.com/esurkov1/prime-ui/blob/main/src/components/textarea/COMPONENT.md) | Multi-line text field with label, hint, error and a character counter; grows with its content from `rows` up to `maxRows`. |
203
- | [**DigitInput**](https://github.com/esurkov1/prime-ui/blob/main/src/components/digit-input/COMPONENT.md) | A row of square single-digit cells for a fixed-length code (OTP from SMS, PIN, pickup code). |
204
- | [**FileUpload**](https://github.com/esurkov1/prime-ui/blob/main/src/components/file-upload/COMPONENT.md) | Files and the image gallery in one component: a document field (rows), file cards, an image gallery with a cover or an attachment tray; uploads through a queue, reorder and server saves. |
211
+ | [**Input**](https://github.com/esurkov1/prime-ui/blob/main/src/components/input/COMPONENT.md) | Single-line text field with label, hint, error and slots for icons, affixes, a clear button and a counter. |
212
+ | [**Textarea**](https://github.com/esurkov1/prime-ui/blob/main/src/components/textarea/COMPONENT.md) | Multi-line text field with label, hint, error and a character counter; grows with its content by default. |
213
+ | [**DigitInput**](https://github.com/esurkov1/prime-ui/blob/main/src/components/digit-input/COMPONENT.md) | A row of square single-digit cells for a fixed-length code (OTP from SMS, PIN, pickup code), with the field label, hint and error. |
214
+ | [**FileUpload**](https://github.com/esurkov1/prime-ui/blob/main/src/components/file-upload/COMPONENT.md) | One component for every set of files a person adds: a document field, file cards, an **image gallery with a cover**, an attachment tray — `trigger` picks how files are added, `layout` how they lie, `cover` makes the first tile the cover; uploads go through a queue, the order and removals can be saved on a server. |
205
215
  | [**Label**](https://github.com/esurkov1/prime-ui/blob/main/src/components/label/COMPONENT.md) | Field label (native `<label>`) with required and optional markers. |
206
216
  | [**Hint**](https://github.com/esurkov1/prime-ui/blob/main/src/components/hint/COMPONENT.md) | Help text or a validation error under a field. |
207
- | [**Fieldset**](https://github.com/esurkov1/prime-ui/blob/main/src/components/fieldset/COMPONENT.md) | A frameless group of form fields: a `title-s` legend, the form rhythm and one `disabled` for all of them. |
208
- | [**FieldList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/field-list/COMPONENT.md) | An editable list of records of one shape: one row of fields per record, the column headings once, add, remove, reorder and pinned rows. |
217
+ | [**Fieldset**](https://github.com/esurkov1/prime-ui/blob/main/src/components/fieldset/COMPONENT.md) | A frameless group of related form fields: a native `<fieldset>` with a `title-s` legend, the form rhythm between its fields and one `disabled` for all of them. |
218
+ | [**FieldList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/field-list/COMPONENT.md) | An editable list of records of one shape — invoice lines, specs, contacts, prices by period: one row per record, the column headings once above the rows, a remove button per row and an add button under them. |
209
219
 
210
220
  ### Selection (`selection`)
211
221
 
@@ -216,45 +226,45 @@ accessibility, examples and common mistakes.
216
226
  | [**Switch**](https://github.com/esurkov1/prime-ui/blob/main/src/components/switch/COMPONENT.md) | An on/off switch for a setting that takes effect immediately. |
217
227
  | [**SegmentedControl**](https://github.com/esurkov1/prime-ui/blob/main/src/components/segmented-control/COMPONENT.md) | A switch between 2–5 mutually exclusive options or modes that takes effect immediately. |
218
228
  | [**Slider**](https://github.com/esurkov1/prime-ui/blob/main/src/components/slider/COMPONENT.md) | A slider for picking an approximate numeric value within a range, with an optional label and value readout. |
219
- | [**Select**](https://github.com/esurkov1/prime-ui/blob/main/src/components/select/COMPONENT.md) | A dropdown field for choosing one value (or several with `multiple`) from a closed list. |
220
- | [**NativeSelect**](https://github.com/esurkov1/prime-ui/blob/main/src/components/native-select/COMPONENT.md) | The system `<select>` in the kit's field frame: plain text options, native picker on phones. |
221
- | [**TagSelect**](https://github.com/esurkov1/prime-ui/blob/main/src/components/tag-select/COMPONENT.md) | A multi-select field that shows the chosen values as coloured tags, filters as you type and can create new tags. |
222
- | [**SmartFilter**](https://github.com/esurkov1/prime-ui/blob/main/src/components/smart-filter/COMPONENT.md) | The search and filter bar of lists and tables: the search first, a filter button with a panel of values, applied filters as tags, and a show / hide choice for every value. |
229
+ | [**Select**](https://github.com/esurkov1/prime-ui/blob/main/src/components/select/COMPONENT.md) | A field for choosing one value (or several with `multiple`) from a closed list. |
230
+ | [**NativeSelect**](https://github.com/esurkov1/prime-ui/blob/main/src/components/native-select/COMPONENT.md) | The system `<select>` in the kit's field look: the operating system's picker opens on phones. |
231
+ | [**TagSelect**](https://github.com/esurkov1/prime-ui/blob/main/src/components/tag-select/COMPONENT.md) | A multi-value field that shows the picked values as coloured tags, filters as you type and can create new tags. |
232
+ | [**SmartFilter**](https://github.com/esurkov1/prime-ui/blob/main/src/components/smart-filter/COMPONENT.md) | The search and filter bar of lists and tables: the search first and a filter button with a panel of values and ranges, applied filters as removable tags, and a "show / hide" choice for every value. |
223
233
  | [**Datepicker**](https://github.com/esurkov1/prime-ui/blob/main/src/components/datepicker/COMPONENT.md) | A calendar for picking a date or a date range: a field with a popover (`Datepicker.Root`) or an embedded panel (`Datepicker.Panel`). |
224
- | [**ColorField**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-field/COMPONENT.md) | A form field for any color: the swatch and its hex in a field box that opens the ColorPicker in a popover (`prime-ui-kit/color-picker`). |
225
- | [**ColorPicker**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-picker/COMPONENT.md) | Color selection: a full picker (area, channel sliders, hex and channel fields, eyedropper, swatches) and `ColorPresets` for a quick color from a fixed palette. |
226
- | [**ColorSwatches**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-swatches/COMPONENT.md) | An inline color choice: a wrapping grid of preset swatches inside a form, without a popover. |
234
+ | [**ColorField**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-field/COMPONENT.md) | A form field for any color: the swatch and its hex in a field box that opens the ColorPicker in a popover. |
235
+ | [**ColorPicker**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-picker/COMPONENT.md) | Color selection: a full picker (hex field, area, channel sliders and fields, eyedropper, swatches) and `ColorPresets` for a quick color from a fixed palette. |
236
+ | [**ColorSwatches**](https://github.com/esurkov1/prime-ui/blob/main/src/components/color-swatches/COMPONENT.md) | An inline color choice: preset swatches that fill the width of a form or panel and wrap, without a popover. |
227
237
 
228
238
  ### Data display (`data-display`)
229
239
 
230
240
  | Component | What it is for |
231
241
  |---|---|
232
- | [**Badge**](https://github.com/esurkov1/prime-ui/blob/main/src/components/badge/COMPONENT.md) | The kit's one chip: a status, category or count label, a removable value or applied filter, and a pressable toggle with a hover action, in a palette color. |
233
- | [**Avatar**](https://github.com/esurkov1/prime-ui/blob/main/src/components/avatar/COMPONENT.md) | A round photo of a person or entity with an initials or icon fallback, presence dot and overlapping groups. |
234
- | [**Thumbnail**](https://github.com/esurkov1/prime-ui/blob/main/src/components/thumbnail/COMPONENT.md) | A preview of an object — product, vehicle, file, cover — at a fixed aspect ratio, with a colored icon fallback. |
235
- | [**Sparkline**](https://github.com/esurkov1/prime-ui/blob/main/src/components/sparkline/COMPONENT.md) | A small chart — a smooth line over a fading area, a bare line or bars — with its headline: the value at rest, its change and its date; any point can be scrubbed. |
236
- | [**ChartFrame**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chart-frame/COMPONENT.md) | A dashboard panel around any chart (Recharts, ECharts, visx, Chart.js or a hand-drawn SVG): title, headline value, a measured plot area, a series legend, a tooltip body and a data table for screen readers. |
242
+ | [**Badge**](https://github.com/esurkov1/prime-ui/blob/main/src/components/badge/COMPONENT.md) | The kit's one chip: a static label for a status, category or count, a removable value or applied filter, and a pressable toggle with a hover action — in a palette color. |
243
+ | [**Avatar**](https://github.com/esurkov1/prime-ui/blob/main/src/components/avatar/COMPONENT.md) | A round photo of a person or organization with an initials or icon fallback, a presence dot and overlapping groups. |
244
+ | [**Thumbnail**](https://github.com/esurkov1/prime-ui/blob/main/src/components/thumbnail/COMPONENT.md) | A preview of an object — product, vehicle, file, cover, video — at a fixed aspect ratio, with a colored icon fallback; it can open the object or be selected. |
237
245
  | [**Kbd**](https://github.com/esurkov1/prime-ui/blob/main/src/components/kbd/COMPONENT.md) | A key cap for a keyboard key or a shortcut, rendered as a native `<kbd>`. |
238
246
  | [**Card**](https://github.com/esurkov1/prime-ui/blob/main/src/components/card/COMPONENT.md) | A filled surface block with structural templates for metrics, charts, lists, calls to action and covers. |
239
- | [**DescriptionList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/description-list/COMPONENT.md) | Read-only properties of a record: «label — value» pairs on a `<dl>` that stack where the room is narrow, with a muted dash for an empty value. |
240
- | [**DataTable**](https://github.com/esurkov1/prime-ui/blob/main/src/components/data-table/COMPONENT.md) | A data table with sorting, pagination or infinite scroll on the client or by the server, row selection, row groups, rows reordered by drag, rows that open a record, a column chooser, nested rows and loading / empty / error states. |
241
- | [**Kanban**](https://github.com/esurkov1/prime-ui/blob/main/src/components/kanban/COMPONENT.md) | A board of status columns: cross-column moves by pointer, touch and keyboard, columns reordered by a grip, WIP limits, loading and empty states. |
242
- | [**Gantt**](https://github.com/esurkov1/prime-ui/blob/main/src/components/gantt/COMPONENT.md) | A resource or project schedule: rows with bars on a day / week / month axis, lanes for overlaps, milestones, a today line, moves, resizes and new bars by pointer and keyboard, thousands of rows virtualized. |
247
+ | [**DataTable**](https://github.com/esurkov1/prime-ui/blob/main/src/components/data-table/COMPONENT.md) | A data table with sorting, pages or infinite scroll, row selection, row groups, rows that open a record, a column chooser, nested rows and loading / empty / error states. |
248
+ | [**Kanban**](https://github.com/esurkov1/prime-ui/blob/main/src/components/kanban/COMPONENT.md) | A board of status columns: cards reorder within a column and move between columns by pointer, touch hold and keyboard, with announcements, WIP limits, loading and empty states and a layout that scrolls inside itself at any width. |
249
+ | [**Gantt**](https://github.com/esurkov1/prime-ui/blob/main/src/components/gantt/COMPONENT.md) | A resource or project schedule: rows of people, rooms, vehicles or tasks with bars on a day / week / month axis, edited by pointer and keyboard. |
243
250
  | [**Timeline**](https://github.com/esurkov1/prime-ui/blob/main/src/components/timeline/COMPONENT.md) | An event feed: dots on a thin line, event title and date, an optional amount on the right, grouped under labels. |
244
251
  | [**CodeBlock**](https://github.com/esurkov1/prime-ui/blob/main/src/components/code-block/COMPONENT.md) | A static TypeScript / TSX snippet with syntax highlighting, on a filled panel or bare inside a host. |
245
252
  | [**Accordion**](https://github.com/esurkov1/prime-ui/blob/main/src/components/accordion/COMPONENT.md) | Collapsible sections: FAQ, settings groups, checkout steps. |
253
+ | [**Sparkline**](https://github.com/esurkov1/prime-ui/blob/main/src/components/sparkline/COMPONENT.md) | A small chart — a smooth line over a fading area, a bare line or bars — with its headline: the value at rest, its change and its date; any point can be scrubbed. |
254
+ | [**ChartFrame**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chart-frame/COMPONENT.md) | A dashboard panel around any chart — Recharts, ECharts, visx, Chart.js or a hand-drawn SVG — with the title, a headline value, a measured plot area, a series legend, a tooltip body and a data table for screen readers. |
255
+ | [**DescriptionList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/description-list/COMPONENT.md) | Read-only properties of a record: «label — value» pairs on a `<dl>` that stack by themselves where the room is narrow, with a muted dash for an empty value. |
246
256
 
247
257
  ### Messages (`messages`)
248
258
 
249
259
  | Component | What it is for |
250
260
  |---|---|
251
- | [**Chat**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chat/COMPONENT.md) | A conversation assembled: the header with the status that turns into typing, search through the messages, pinned messages, the virtualized message list from data (dates, runs, unread, selection, jumps, read receipts, history paging, group-chat author headers) and the Composer in its footer. |
252
- | [**Message**](https://github.com/esurkov1/prime-ui/blob/main/src/components/message/COMPONENT.md) | One chat message in its shell: bubble, picture or circle, time and delivery ticks, the author's header with a tag, replies, forwards, reactions with the reaction bar, a context menu, and every content kind — text, albums, round videos, voice, files, locations, contacts, link previews; the typing bubble. |
253
- | [**Gallery**](https://github.com/esurkov1/prime-ui/blob/main/src/components/gallery/COMPONENT.md) | Photos and videos as a messenger album: up to ten laid out from their aspect ratios with nothing measured, video tiles, the transfer of each tile, tiles that open the album in MediaViewer. |
254
- | [**VoicePlayer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/voice-player/COMPONENT.md) | A voice message player: a round play disk, a waveform that is the seek slider, and the time with the playback speed; one sound at a time, `getWaveform` for audio without levels. |
255
- | [**VideoNote**](https://github.com/esurkov1/prime-ui/blob/main/src/components/video-note/COMPONENT.md) | A round video message: a still first frame with the play disk, played with sound on a press; the same player API as VoicePlayer — transcript, transfer either way, one sound at a time. |
256
- | [**Composer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/composer/COMPONENT.md) | The message input of a chat: a growing field, Enter to send, attachments, reply / edit bar, Markdown formatting, voice and video messages with pause, the typing signal. |
257
- | [**ChatList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chat-list/COMPONENT.md) | The conversation list of a messenger: avatars with presence, names, times, the last message with its author or media word, unread / muted / mention counts, typing and drafts, a row menu, search, rows that glide to a new order, long lists rendered around the view. |
261
+ | [**Chat**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chat/COMPONENT.md) | A conversation, assembled: the header with who it is with, search, pinned messages, the virtualized message list with dates, runs, selection and jumps, typing, and the Composer at the bottom. |
262
+ | [**Message**](https://github.com/esurkov1/prime-ui/blob/main/src/components/message/COMPONENT.md) | One chat message in its shell: a speech bubble, a picture or a circle, incoming or outgoing, the tail that ends a run, the time and delivery ticks in the corner, reactions, the menu, a group chat's author header, and every content kind of a messenger. |
263
+ | [**VoicePlayer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/voice-player/COMPONENT.md) | A voice message player: a round play disk, a waveform that is the seek slider, and the time with the playback speed — the same player API as VideoNote. |
264
+ | [**VideoNote**](https://github.com/esurkov1/prime-ui/blob/main/src/components/video-note/COMPONENT.md) | A round video message: a still first frame with the play disk that plays with sound on a press — the same player API as VoicePlayer. |
265
+ | [**Composer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/composer/COMPONENT.md) | The message input of a chat: a field that grows from one line, Enter to send, attachments, a reply / edit bar, Markdown formatting of a selection, and voice or round video messages from the same button. |
266
+ | [**Gallery**](https://github.com/esurkov1/prime-ui/blob/main/src/components/gallery/COMPONENT.md) | Photos and videos as a messenger album: one, or up to ten laid out from their aspect ratios alone, every box final before a byte loads; a tile opens the album in MediaViewer. |
267
+ | [**ChatList**](https://github.com/esurkov1/prime-ui/blob/main/src/components/chat-list/COMPONENT.md) | The conversation list of a messenger: the pane where the reader picks a dialog — avatar, name, time, the last message, counts, «печатает…» and drafts. |
258
268
 
259
269
  ### Status and loading (`status`)
260
270
 
@@ -266,21 +276,21 @@ accessibility, examples and common mistakes.
266
276
  | [**ProgressCircle**](https://github.com/esurkov1/prime-ui/blob/main/src/components/progress-circle/COMPONENT.md) | Circular progress — the ring version of ProgressBar: one value or `segments` that split a whole, with status colors and optional content in the center. |
267
277
  | [**Spinner**](https://github.com/esurkov1/prime-ui/blob/main/src/components/spinner/COMPONENT.md) | An indeterminate loading indicator: the kit ring with the share unknown — a quarter arc turning on a faint track while a request runs. |
268
278
  | [**Skeleton**](https://github.com/esurkov1/prime-ui/blob/main/src/components/skeleton/COMPONENT.md) | A placeholder in the shape of the content that is loading — text lines, a control, an avatar, a block — so the layout is in place before the data arrives. |
279
+ | [**EmptyPage**](https://github.com/esurkov1/prime-ui/blob/main/src/components/empty-page/COMPONENT.md) | Empty or failed state of a page, a block or a menu: icon, title, explanation and an action — a retry for a failed load. |
269
280
  | [**Crossfade**](https://github.com/esurkov1/prime-ui/blob/main/src/components/crossfade/COMPONENT.md) | A region that cross-fades between its states (loading → data → empty → error) and glides to the new height, so the page below does not jump. |
270
- | [**EmptyPage**](https://github.com/esurkov1/prime-ui/blob/main/src/components/empty-page/COMPONENT.md) | Empty or failed state of a page or a block: icon, title, explanation and an action — a retry for a failed load. |
271
281
  | [**VisuallyHidden**](https://github.com/esurkov1/prime-ui/blob/main/src/components/visually-hidden/COMPONENT.md) | Text that screen readers read and nobody sees: the words behind an icon, a badge or a change on the screen. |
272
282
 
273
283
  ### Navigation (`navigation`)
274
284
 
275
285
  | Component | What it is for |
276
286
  |---|---|
277
- | [**Tabs**](https://github.com/esurkov1/prime-ui/blob/main/src/components/tabs/COMPONENT.md) | Tabs for navigating between content panels of one screen. |
287
+ | [**Tabs**](https://github.com/esurkov1/prime-ui/blob/main/src/components/tabs/COMPONENT.md) | A tab bar of folder tabs for navigating between content panels of one screen: the active tab is the host's surface rising into the strip, the panel is the host's content with no frame or padding of its own. |
278
288
  | [**Breadcrumb**](https://github.com/esurkov1/prime-ui/blob/main/src/components/breadcrumb/COMPONENT.md) | Breadcrumbs: the path to the current page. |
279
289
  | [**Pagination**](https://github.com/esurkov1/prime-ui/blob/main/src/components/pagination/COMPONENT.md) | Page-by-page navigation: arrows, page numbers with ellipsis and a compact «3 / 12» view. |
280
- | [**List**](https://github.com/esurkov1/prime-ui/blob/main/src/components/list/COMPONENT.md) | A selectable list of rows — the list half of a list + detail screen: conversations, tickets, mail, records. |
281
- | [**Stepper**](https://github.com/esurkov1/prime-ui/blob/main/src/components/stepper/COMPONENT.md) | Steps of a multi-step process with pending, active, completed and danger statuses. |
290
+ | [**Stepper**](https://github.com/esurkov1/prime-ui/blob/main/src/components/stepper/COMPONENT.md) | Steps of a multi-step process with pending, current, completed and danger statuses. |
282
291
  | [**Sidebar**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/sidebar/COMPONENT.md) | App side navigation in three modes — expanded, compact, hidden — and an off-canvas panel on narrow screens. |
283
- | [**BottomNav**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/bottom-nav/COMPONENT.md) | Phone navigation bar: 2–6 sections, flat or a floating glass capsule, with an optional round action. |
292
+ | [**BottomNav**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/bottom-nav/COMPONENT.md) | Phone navigation: a bar of 2–6 main sections at the bottom of the screen, optionally with a round action beside it. |
293
+ | [**List**](https://github.com/esurkov1/prime-ui/blob/main/src/components/list/COMPONENT.md) | A selectable navigation list of rows: the master half of a list + detail screen (tickets, mail, records). |
284
294
 
285
295
  ### Overlays (`overlays`)
286
296
 
@@ -288,49 +298,43 @@ accessibility, examples and common mistakes.
288
298
  |---|---|
289
299
  | [**Tooltip**](https://github.com/esurkov1/prime-ui/blob/main/src/components/tooltip/COMPONENT.md) | A short hint that appears next to an element on hover or keyboard focus. |
290
300
  | [**Popover**](https://github.com/esurkov1/prime-ui/blob/main/src/components/popover/COMPONENT.md) | A non-modal floating panel anchored to a trigger: short forms, filters, confirmations, explanations. |
291
- | [**Dropdown**](https://github.com/esurkov1/prime-ui/blob/main/src/components/dropdown/COMPONENT.md) | A menu of actions that opens from a trigger: groups, a profile header and destructive items. |
292
- | [**Modal**](https://github.com/esurkov1/prime-ui/blob/main/src/components/modal/COMPONENT.md) | A dialog over the page for confirmations, short forms and important text. |
301
+ | [**Dropdown**](https://github.com/esurkov1/prime-ui/blob/main/src/components/dropdown/COMPONENT.md) | A menu of actions that opens from a trigger: picking an item runs it and closes the menu. |
302
+ | [**Modal**](https://github.com/esurkov1/prime-ui/blob/main/src/components/modal/COMPONENT.md) | A dialog over the page for a short form or important text that must be finished or acknowledged before the page goes on. |
293
303
  | [**ConfirmDialog**](https://github.com/esurkov1/prime-ui/blob/main/src/components/confirm-dialog/COMPONENT.md) | The confirm of a destructive or weighty action in one piece: the question, the consequence, Cancel and an action that runs its own request. |
294
- | [**Drawer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/drawer/COMPONENT.md) | A modal side panel that slides in from the side: filters, forms and record details. |
304
+ | [**Drawer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/drawer/COMPONENT.md) | A modal panel that slides in from the side: filters, forms and record details without leaving the page. |
305
+ | [**Command Menu**](https://github.com/esurkov1/prime-ui/blob/main/src/components/command-menu/COMPONENT.md) | A search palette over the page: the query filters commands and pages, Enter runs the active one. |
295
306
  | [**Sheet**](https://github.com/esurkov1/prime-ui/blob/main/src/components/sheet/COMPONENT.md) | A panel raised from the bottom edge for a short task that ends by itself: pick a date, choose an action, leave a few words. |
296
- | [**CommandMenu**](https://github.com/esurkov1/prime-ui/blob/main/src/components/command-menu/COMPONENT.md) | A command palette in a dialog: a search field that filters a list of commands and pages (⌘K). |
297
- | [**MediaViewer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/media-viewer/COMPONENT.md) | A full-screen viewer of photos and videos: paging under the finger, pinch and double-tap zoom, momentum pan, swipe to close, opening out of its thumbnail. |
307
+ | [**MediaViewer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/media-viewer/COMPONENT.md) | A full-screen viewer of photos and videos that behaves like a native one: pages follow the finger, pictures zoom and pan with momentum, a swipe closes it, and it opens out of the thumbnail it came from. |
298
308
 
299
309
  ### Page (`page`)
300
310
 
301
311
  | Component | What it is for |
302
312
  |---|---|
303
- | [**AppShell**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/app-shell/COMPONENT.md) | The app frame: a content panel that is the page itself and a navigation rail one layer above it. |
304
- | [**AppHeader**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/app-header/COMPONENT.md) | The page's bar at the top of the app: the page title with a line of data, the page's own buttons and tools, the phone menu button. |
305
- | [**PageContent**](https://github.com/esurkov1/prime-ui/blob/main/src/components/page-content/COMPONENT.md) | Page structure inside the main column: title, page actions, titled sections and a bento tile grid; full-height pages and list + detail. |
306
- | [**PageToolbar**](https://github.com/esurkov1/prime-ui/blob/main/src/components/page-toolbar/COMPONENT.md) | The panel at the top of a page — search and filter, sections, view options and the primary action — one row when wide, stacked rows when narrow. |
307
- | [**Divider**](https://github.com/esurkov1/prime-ui/blob/main/src/components/divider/COMPONENT.md) | A hairline separator, horizontal or vertical, with or without a label. |
308
- | [**ScrollContainer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/scroll-container/COMPONENT.md) | A scroll region with the kit's thin scrollbar that shrinks correctly inside flex and grid parents; a chat pinned to its end, edge events for loading more. |
313
+ | [**AppShell**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/app-shell/COMPONENT.md) | The app frame — navigation and the page: a content panel that is the page itself and a navigation rail one layer above it. |
314
+ | [**Page**](https://github.com/esurkov1/prime-ui/blob/main/src/layout/page/COMPONENT.md) | The page inside the app frame: everything at the top belongs to it — a top bar with the title, tools and buttons, the large document title in the flow — then sections, the tile grid and the list + detail layout. |
315
+ | [**Divider**](https://github.com/esurkov1/prime-ui/blob/main/src/components/divider/COMPONENT.md) | A hairline separator inside one surface, horizontal or vertical, with or without a label. |
316
+ | [**ScrollContainer**](https://github.com/esurkov1/prime-ui/blob/main/src/components/scroll-container/COMPONENT.md) | The kit's one scroll region: a thin scrollbar, soft edges wherever content is hidden, and correct shrinking inside flex and grid parents. |
309
317
  | [**LoginForm**](https://github.com/esurkov1/prime-ui/blob/main/src/components/login-form/COMPONENT.md) | A sign-in card with a logo, title, provider buttons and a form; covers sign-in, sign-up, password reset and code confirmation. |
310
318
 
311
319
  ### Interaction (`interaction`)
312
320
 
313
321
  | Component | What it is for |
314
322
  |---|---|
315
- | [**Dnd**](https://github.com/esurkov1/prime-ui/blob/main/src/components/dnd/COMPONENT.md) | Pointer-driven drag and drop: reorderable lists, draggable items and drop zones, with touch and keyboard support. |
316
-
317
- ### Foundations (`foundations`)
318
-
319
- | Component | What it is for |
320
- |---|---|
321
- | [**Typography**](https://github.com/esurkov1/prime-ui/blob/main/src/components/typography/COMPONENT.md) | Text roles of the Golos Text type scale applied to any text element, with reading-width guidance. |
323
+ | [**Dnd**](https://github.com/esurkov1/prime-ui/blob/main/src/components/dnd/COMPONENT.md) | Pointer-driven drag and drop: reorderable lists, draggable items and drop zones on one shared session, with a lifted clone, a gap where the item lands, auto-scroll, touch support and a keyboard path. |
322
324
 
323
325
  ### Infrastructure (`infrastructure`)
324
326
 
325
327
  | Component | What it is for |
326
328
  |---|---|
327
329
  | [**ExampleFrame**](https://github.com/esurkov1/prime-ui/blob/main/src/components/example-frame/COMPONENT.md) | A documentation frame: live preview, source code and device width in one block. |
330
+ <!-- components:end -->
328
331
 
329
332
  ## Providers and helpers
330
333
 
331
334
  | API | Purpose |
332
335
  |---|---|
333
336
  | `NotificationProvider` + `useNotifications()` | Toast queue: `notify`, `dismiss`, `dismissAll`. Place the provider once at the app root. |
337
+ | `useAppShellNav()` | The app shell's navigation for a trigger outside the Sidebar rail (a BottomNav «Ещё», your own menu button). |
334
338
  | `ControlSizeProvider` | Default `size` for every control in a subtree (dense toolbars, compact forms). |
335
339
  | `Tooltip.Provider` | Shared open delay for a group of tooltips. |
336
340
  | `applyTheme(scheme, element?)` | Switch the theme without transition flashes. |
@@ -343,6 +347,7 @@ accessibility, examples and common mistakes.
343
347
  | `moveBefore(items, id, beforeId, getId)` | Applies a `Dnd` or DataTable `onReorder` to your array. |
344
348
  | `matchesSmartFilter`, `resolveSmartFilterValues` | Apply a SmartFilter value to your rows. |
345
349
  | `datepickerPresets`, `formatDatepickerValue` | Quick ranges and value display for `Datepicker`. |
350
+ | `formatDateValue(date, { withTime })` | A date as the local `yyyy-MM-dd` (`THH:mm`) value for a form or a query. |
346
351
  | `chartColors` | The chart palette as CSS values for a chart library; follows the theme. |
347
352
  | `useTokenValue(token)` | A length token in px for geometry CSS cannot take (SVG, canvas). |
348
353
  | `<Icon name="…" />`, `createIcon(glyph)` | The kit icon set: Lucide drawings, each with a small gesture that plays when its host is hovered or pressed; `createIcon` turns any SVG icon component (a `lucide-react` glyph you install, an SVGR import) into a kit icon. |
@@ -354,7 +359,7 @@ Each component folder ships with the package:
354
359
  ```
355
360
  node_modules/prime-ui-kit/src/components/<name>/COMPONENT.md full reference
356
361
  node_modules/prime-ui-kit/src/components/<name>/examples/*.tsx one scenario per file, copyable
357
- node_modules/prime-ui-kit/src/layout/<name>/… AppShell, AppHeader, Sidebar, BottomNav
362
+ node_modules/prime-ui-kit/src/layout/<name>/… AppShell, Sidebar, BottomNav, Page
358
363
  node_modules/prime-ui-kit/dist/skill/SKILL.md the agent skill (see below)
359
364
  ```
360
365
 
@@ -368,9 +373,9 @@ with the kit the way its author would: the screen-building process, the design r
368
373
  the API cheat sheet, how to choose between similar components, what to do when a component is missing,
369
374
  page recipes (dashboard, list with table, settings, forms, detail page, screen states, messenger, auth), anti-patterns
370
375
  and a review checklist. The package ships it built as one self-contained folder,
371
- `node_modules/prime-ui-kit/dist/skill/`: `SKILL.md`, the guides, and every component's `COMPONENT.md`
372
- and `examples/` under `reference/` (whole screens included, as `examples/screen.tsx`), so it always
373
- matches the installed version.
376
+ `node_modules/prime-ui-kit/dist/skill/`: `SKILL.md`, the guides, and under `reference/` every
377
+ component's `COMPONENT.md` and `examples/` (whole screens included, as `examples/screen.tsx`) and the
378
+ design contract, so it always matches the installed version.
374
379
 
375
380
  ### Install the skill
376
381
 
@@ -405,7 +410,7 @@ the kit, run the command again: it replaces the folder with the skill of the new
405
410
  | `prime-ui-kit/color-picker` | `ColorPicker`, `ColorField` and `parseColor` — the only code on the optional peer `react-aria-components`. |
406
411
  | `prime-ui-kit/icons` | The full animated glyph set as named components (`<BellIcon />`): Lucide drawings, one gesture each; only what you import is bundled. |
407
412
  | `prime-ui-kit/bundle.css` | Tokens, both themes, base rules (focus ring, reduced motion) and every component's CSS. |
408
- | `prime-ui-kit/fonts.css` | Optional: Golos Text and JetBrains Mono from Google Fonts. |
413
+ | `prime-ui-kit/fonts.css` | Optional: Golos Text and JetBrains Mono from Google Fonts, with metric-matched local fallbacks, so text does not move when a face arrives. |
409
414
  | `prime-ui-kit/reset.css` | Optional: minimal document reset. |
410
415
  | `prime-ui-kit/tokens.css`, `theme-light.css`, `theme-dark.css` | The token layers alone (already inside `bundle.css`), for styling without components. |
411
416
 
@@ -17,12 +17,34 @@ function useControlSize(sizeProp) {
17
17
  const host = React.useContext(ControlSizeContext);
18
18
  return sizeProp ?? host ?? "m";
19
19
  }
20
+ function useHostTier(sizeProp) {
21
+ const size = useControlSize(sizeProp);
22
+ const provide = React.useCallback(
23
+ (children) => /* @__PURE__ */ jsx(ControlSizeContext.Provider, { value: size, children }),
24
+ [size]
25
+ );
26
+ return { size, provide };
27
+ }
20
28
 
21
29
  // src/internal/cx.ts
22
30
  function cx(...classNames) {
23
31
  return classNames.filter(Boolean).join(" ");
24
32
  }
25
33
 
34
+ // src/internal/fieldTier.module.css
35
+ var fieldTier_default = {
36
+ tier: "fieldTier_tier",
37
+ iconXs: "fieldTier_iconXs",
38
+ iconS: "fieldTier_iconS",
39
+ iconM: "fieldTier_iconM",
40
+ iconL: "fieldTier_iconL",
41
+ iconXl: "fieldTier_iconXl",
42
+ labelText: "fieldTier_labelText",
43
+ hintText: "fieldTier_hintText",
44
+ inputText: "fieldTier_inputText",
45
+ codeCell: "fieldTier_codeCell"
46
+ };
47
+
26
48
  // src/internal/iconBox.module.css
27
49
  var iconBox_default = {
28
50
  box: "iconBox_box",
@@ -31,13 +53,24 @@ var iconBox_default = {
31
53
  m: "iconBox_m",
32
54
  l: "iconBox_l",
33
55
  xl: "iconBox_xl",
34
- inherit: "iconBox_inherit"
56
+ inherit: "iconBox_inherit",
57
+ slot: "iconBox_slot",
58
+ tile: "iconBox_tile"
35
59
  };
36
60
 
37
61
  // src/internal/iconBox.ts
62
+ var TIER_ICON = {
63
+ xs: fieldTier_default.iconXs,
64
+ s: fieldTier_default.iconS,
65
+ m: fieldTier_default.iconM,
66
+ l: fieldTier_default.iconL,
67
+ xl: fieldTier_default.iconXl
68
+ };
38
69
  function iconBoxClass(size, tier) {
39
- return cx(iconBox_default.box, iconBox_default[size ?? tier ?? "m"], size === void 0 && iconBox_default.inherit);
70
+ if (size !== void 0) return cx(iconBox_default.box, iconBox_default[size]);
71
+ return cx(iconBox_default.box, iconBox_default.inherit, TIER_ICON[tier ?? "m"]);
40
72
  }
73
+ var iconSlotClass = iconBox_default.slot;
41
74
 
42
75
  // src/internal/palette.module.css
43
76
  var palette_default = {
@@ -72,7 +105,105 @@ var Icon_default = {
72
105
  };
73
106
 
74
107
  // src/icons/iconPlay.ts
108
+ import * as React3 from "react";
109
+
110
+ // src/hooks/usePresence.ts
75
111
  import * as React2 from "react";
112
+
113
+ // src/internal/tokenDefaults.ts
114
+ var TOKEN_DEFAULTS = {
115
+ "--prime-gallery-max-size": 360,
116
+ "--prime-message-video-note-box": 268,
117
+ "--prime-motion-duration-base": 380,
118
+ "--prime-motion-duration-fast": 230,
119
+ "--prime-motion-duration-slow": 570,
120
+ "--prime-motion-duration-xfast": 150,
121
+ "--prime-motion-hold-confirm": 1200,
122
+ "--prime-motion-stagger": 80,
123
+ "--prime-panel-offset": 4,
124
+ "--prime-space-2": 8,
125
+ "--prime-space-6": 24,
126
+ "--prime-space-8": 32,
127
+ "--prime-space-20": 80
128
+ };
129
+
130
+ // src/internal/motionTiming.ts
131
+ var TIMEOUT_SLACK_MS = 50;
132
+ function parseDurationMs(raw) {
133
+ const value = raw.trim();
134
+ if (value === "") return null;
135
+ const n = Number.parseFloat(value);
136
+ if (Number.isNaN(n)) return null;
137
+ if (value.endsWith("ms")) return n;
138
+ if (value.endsWith("s")) return n * 1e3;
139
+ return null;
140
+ }
141
+ function motionToken(name) {
142
+ if (typeof document === "undefined") return "";
143
+ return getComputedStyle(document.documentElement).getPropertyValue(name).trim();
144
+ }
145
+ function readCssDurationMs(name) {
146
+ if (typeof document === "undefined") return TOKEN_DEFAULTS[name];
147
+ const raw = getComputedStyle(document.documentElement).getPropertyValue(name);
148
+ return parseDurationMs(raw) ?? TOKEN_DEFAULTS[name];
149
+ }
150
+ function readElementDurationMs(element, name) {
151
+ return parseDurationMs(getComputedStyle(element).getPropertyValue(name)) ?? 0;
152
+ }
153
+ function motionDurationMs(token) {
154
+ return readCssDurationMs(`--prime-motion-duration-${token}`);
155
+ }
156
+ function afterMotionMs(ms) {
157
+ return ms + TIMEOUT_SLACK_MS;
158
+ }
159
+ function exitTimeoutMs(token) {
160
+ return afterMotionMs(motionDurationMs(token));
161
+ }
162
+ var timingCache = /* @__PURE__ */ new Map();
163
+ function motionTiming(duration, curve = "standard") {
164
+ const key = `${duration}|${curve}`;
165
+ const cached = timingCache.get(key);
166
+ if (cached) return { ...cached };
167
+ const easing = motionToken(`--prime-motion-easing-${curve}`);
168
+ const timing = easing ? { duration: motionDurationMs(duration), easing } : { duration: motionDurationMs(duration) };
169
+ if (typeof requestAnimationFrame === "function") {
170
+ if (timingCache.size === 0) requestAnimationFrame(() => timingCache.clear());
171
+ timingCache.set(key, timing);
172
+ }
173
+ return { ...timing };
174
+ }
175
+
176
+ // src/hooks/breakpoints.ts
177
+ var COMPACT_QUERY = "(max-width: 639px)";
178
+ var OFF_CANVAS_QUERY = "(max-width: 767px)";
179
+ var TOUCH_QUERY = "(hover: none) and (pointer: coarse)";
180
+ var HOVER_QUERY = "(hover: hover)";
181
+ var REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
182
+
183
+ // src/hooks/usePresence.ts
184
+ function prefersReducedMotion() {
185
+ return typeof window !== "undefined" && typeof window.matchMedia === "function" && window.matchMedia(REDUCED_MOTION_QUERY).matches;
186
+ }
187
+ function usePresence(open, options = {}) {
188
+ const { exitDuration = "base" } = options;
189
+ const [mounted, setMounted] = React2.useState(open);
190
+ if (open && !mounted) setMounted(true);
191
+ if (!open && mounted && prefersReducedMotion()) setMounted(false);
192
+ const openRef = React2.useRef(open);
193
+ openRef.current = open;
194
+ React2.useEffect(() => {
195
+ if (open || !mounted) return;
196
+ const id = window.setTimeout(() => setMounted(false), exitTimeoutMs(exitDuration));
197
+ return () => window.clearTimeout(id);
198
+ }, [open, mounted, exitDuration]);
199
+ const onExitEnd = React2.useCallback((event) => {
200
+ if (event.target !== event.currentTarget) return;
201
+ if (!openRef.current) setMounted(false);
202
+ }, []);
203
+ return { mounted: open || mounted, state: open ? "open" : "closed", onExitEnd };
204
+ }
205
+
206
+ // src/icons/iconPlay.ts
76
207
  var OWNER = [
77
208
  "a[href]",
78
209
  "button",
@@ -96,9 +227,6 @@ var ICON = "svg[data-icon-motion]";
96
227
  var DISABLED = ':disabled, [aria-disabled="true"], [data-disabled="true"], [data-loading="true"]';
97
228
  var installed = false;
98
229
  var currentOwner = null;
99
- function reducedMotion() {
100
- return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
101
- }
102
230
  function play(icon) {
103
231
  if (!icon.hasAttribute("data-play")) icon.setAttribute("data-play", "");
104
232
  }
@@ -106,7 +234,7 @@ function ownerOf(target) {
106
234
  return target.closest(OWNER) ?? target.closest(ICON);
107
235
  }
108
236
  function playOwner(owner) {
109
- if (reducedMotion()) return;
237
+ if (prefersReducedMotion()) return;
110
238
  if (owner.matches(ICON)) {
111
239
  play(owner);
112
240
  return;
@@ -145,7 +273,7 @@ function install() {
145
273
  document.addEventListener("animationcancel", onAnimationEnd);
146
274
  }
147
275
  function useIconPlay(animated) {
148
- React2.useEffect(() => {
276
+ React3.useEffect(() => {
149
277
  if (animated) install();
150
278
  }, [animated]);
151
279
  }
@@ -159,10 +287,12 @@ function useIconRoot({
159
287
  color,
160
288
  label,
161
289
  animated = true,
290
+ drawn,
162
291
  motion
163
292
  }) {
164
293
  const tier = useOptionalControlSize();
165
- useIconPlay(animated);
294
+ const plays = animated && drawn === void 0;
295
+ useIconPlay(plays);
166
296
  return {
167
297
  className: cx(
168
298
  Icon_default.root,
@@ -177,7 +307,8 @@ function useIconRoot({
177
307
  role: label === void 0 ? void 0 : "img",
178
308
  "aria-label": label,
179
309
  "aria-hidden": label === void 0 ? true : void 0,
180
- "data-icon-motion": animated ? motion : void 0
310
+ "data-icon-motion": plays ? motion : void 0,
311
+ "data-drawn": drawn === void 0 ? void 0 : String(drawn)
181
312
  };
182
313
  }
183
314
  function defineGlyph(source, body) {
@@ -188,10 +319,20 @@ function defineGlyph(source, body) {
188
319
  color,
189
320
  label,
190
321
  animated,
322
+ drawn,
191
323
  strokeWidth = 1.75,
192
324
  ...rest
193
325
  }) {
194
- const root = useIconRoot({ className, size, tone, color, label, animated, motion: "glyph" });
326
+ const root = useIconRoot({
327
+ className,
328
+ size,
329
+ tone,
330
+ color,
331
+ label,
332
+ animated,
333
+ drawn,
334
+ motion: "glyph"
335
+ });
195
336
  return (
196
337
  // biome-ignore lint/a11y/noSvgWithoutTitle: `root` makes it aria-hidden, or role="img" named by `label`
197
338
  /* @__PURE__ */ jsx2(
@@ -1605,8 +1746,26 @@ export {
1605
1746
  ControlSizeProvider,
1606
1747
  useOptionalControlSize,
1607
1748
  useControlSize,
1749
+ useHostTier,
1750
+ TOKEN_DEFAULTS,
1608
1751
  cx,
1752
+ motionToken,
1753
+ readCssDurationMs,
1754
+ readElementDurationMs,
1755
+ motionDurationMs,
1756
+ afterMotionMs,
1757
+ exitTimeoutMs,
1758
+ motionTiming,
1759
+ COMPACT_QUERY,
1760
+ OFF_CANVAS_QUERY,
1761
+ TOUCH_QUERY,
1762
+ HOVER_QUERY,
1763
+ prefersReducedMotion,
1764
+ usePresence,
1765
+ fieldTier_default,
1766
+ iconBox_default,
1609
1767
  iconBoxClass,
1768
+ iconSlotClass,
1610
1769
  textTone_default,
1611
1770
  palette_default,
1612
1771
  useIconRoot,