prime-ui-kit 0.16.0 → 0.18.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 (477) hide show
  1. package/README.md +15 -18
  2. package/dist/chunks/{chunk-A7OQWH6R.js → chunk-IVS3J7AS.js} +1 -1
  3. package/dist/chunks/{chunk-6TPHKCUJ.js → chunk-MB4CXSLL.js} +27732 -26723
  4. package/dist/chunks/{chunk-4PSQ64S4.js → chunk-OAXJWF3L.js} +6818 -6264
  5. package/dist/chunks/{chunk-U3Q2I3MY.js → chunk-QFHE5GKW.js} +3 -2
  6. package/dist/chunks/{chunk-HDBQICPW.js → chunk-X3JT5CLR.js} +60 -20
  7. package/dist/color-picker.d.ts +1 -1
  8. package/dist/color-picker.js +3 -3
  9. package/dist/components/badge/Badge.d.ts +17 -0
  10. package/dist/components/breadcrumb/Breadcrumb.d.ts +12 -3
  11. package/dist/components/button/Button.d.ts +1 -1
  12. package/dist/components/button-group/ButtonGroup.d.ts +1 -1
  13. package/dist/components/card/Card.d.ts +8 -4
  14. package/dist/components/chart-frame/ChartFrame.d.ts +1 -1
  15. package/dist/components/chat/Chat.d.ts +3 -3
  16. package/dist/components/chat/ChatRows.d.ts +5 -1
  17. package/dist/components/chat/MessageList.d.ts +5 -1
  18. package/dist/components/chat/groupMessages.d.ts +12 -4
  19. package/dist/components/chat-list/ChatList.d.ts +18 -9
  20. package/dist/components/chat-list/formatChatTime.d.ts +3 -3
  21. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  22. package/dist/components/color-field/ColorField.d.ts +1 -1
  23. package/dist/components/color-picker/ColorPicker.d.ts +23 -1
  24. package/dist/components/color-picker/ColorPresets.d.ts +9 -1
  25. package/dist/components/crossfade/Crossfade.d.ts +1 -1
  26. package/dist/components/data-table/DataTable.d.ts +3 -1
  27. package/dist/components/data-table/Head.d.ts +3 -1
  28. package/dist/components/data-table/types.d.ts +5 -0
  29. package/dist/components/digit-input/DigitInput.d.ts +1 -1
  30. package/dist/components/drawer/Drawer.d.ts +3 -2
  31. package/dist/components/field-list/FieldList.d.ts +18 -6
  32. package/dist/components/hint/Hint.d.ts +8 -2
  33. package/dist/components/index.d.ts +6 -7
  34. package/dist/components/input/Input.d.ts +27 -5
  35. package/dist/components/input/inputSuggestions.d.ts +39 -0
  36. package/dist/components/kanban/Kanban.d.ts +4 -9
  37. package/dist/components/list/List.d.ts +19 -5
  38. package/dist/components/message/Message.d.ts +15 -3
  39. package/dist/components/message/MessageSticker.d.ts +27 -0
  40. package/dist/components/message/formatMessageTime.d.ts +5 -2
  41. package/dist/components/modal/Modal.d.ts +3 -2
  42. package/dist/components/native-select/NativeSelect.d.ts +1 -1
  43. package/dist/components/pagination/Pagination.d.ts +5 -1
  44. package/dist/components/popover/Popover.d.ts +1 -1
  45. package/dist/components/radio/Radio.d.ts +11 -2
  46. package/dist/components/rich-text/RichText.d.ts +23 -0
  47. package/dist/components/scroll-container/ScrollContainer.d.ts +1 -1
  48. package/dist/components/scroll-container/scrollGlide.d.ts +26 -0
  49. package/dist/components/scroll-container/useScrollMotion.d.ts +25 -0
  50. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  51. package/dist/components/select/selectContext.d.ts +7 -0
  52. package/dist/components/slider/Slider.d.ts +2 -2
  53. package/dist/components/smart-filter/SmartFilter.d.ts +4 -5
  54. package/dist/components/switch/Switch.d.ts +6 -1
  55. package/dist/components/tag-select/TagSelect.d.ts +1 -1
  56. package/dist/components/textarea/Textarea.d.ts +6 -1
  57. package/dist/components/timeline/Timeline.d.ts +1 -1
  58. package/dist/icon-set.js +2 -2
  59. package/dist/index.css +1 -1
  60. package/dist/index.js +7 -9
  61. package/dist/internal/ChoiceField.d.ts +3 -1
  62. package/dist/internal/FieldFrame.d.ts +8 -2
  63. package/dist/internal/barPlan.d.ts +44 -0
  64. package/dist/internal/fieldCell.d.ts +1 -1
  65. package/dist/internal/formatClock.d.ts +23 -2
  66. package/dist/internal/leaveGuard.d.ts +21 -0
  67. package/dist/internal/messageList.d.ts +2 -0
  68. package/dist/internal/overlay/DialogParts.d.ts +27 -2
  69. package/dist/internal/overlay/FloatingPanel.d.ts +1 -1
  70. package/dist/internal/overlay/focus.d.ts +3 -2
  71. package/dist/internal/parts.d.ts +1 -1
  72. package/dist/internal/slot.d.ts +0 -30
  73. package/dist/internal/swatch.d.ts +5 -0
  74. package/dist/internal/tokenDefaults.d.ts +1 -0
  75. package/dist/layout/app-shell/AppShell.d.ts +19 -38
  76. package/dist/layout/index.d.ts +3 -3
  77. package/dist/layout/page/Page.d.ts +302 -0
  78. package/dist/layout/sidebar/Sidebar.d.ts +1 -1
  79. package/dist/skill/SKILL.md +10 -10
  80. package/dist/skill/anti-slop.md +106 -5
  81. package/dist/skill/api-contract.md +15 -8
  82. package/dist/skill/cheatsheet.md +46 -26
  83. package/dist/skill/checklist.md +12 -3
  84. package/dist/skill/choosing.md +34 -20
  85. package/dist/skill/components.md +4 -5
  86. package/dist/skill/composition.md +193 -154
  87. package/dist/skill/foundations.md +9 -9
  88. package/dist/skill/layouts.md +42 -99
  89. package/dist/skill/reference/components/avatar/COMPONENT.md +2 -2
  90. package/dist/skill/reference/components/avatar/examples/team-group.tsx +1 -1
  91. package/dist/skill/reference/components/badge/COMPONENT.md +14 -1
  92. package/dist/skill/reference/components/badge/examples/examples.module.css +7 -0
  93. package/dist/skill/reference/components/badge/examples/tag-row.tsx +34 -0
  94. package/dist/skill/reference/components/banner/COMPONENT.md +4 -4
  95. package/dist/skill/reference/components/banner/examples/examples.module.css +6 -1
  96. package/dist/skill/reference/components/banner/examples/page-strip.tsx +24 -22
  97. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +18 -12
  98. package/dist/skill/reference/components/breadcrumb/examples/router.tsx +17 -0
  99. package/dist/skill/reference/components/button/COMPONENT.md +2 -1
  100. package/dist/skill/reference/components/button/examples/hold-to-confirm.tsx +1 -1
  101. package/dist/skill/reference/components/button/examples/on-colored-host.tsx +8 -8
  102. package/dist/skill/reference/components/button-group/COMPONENT.md +1 -0
  103. package/dist/skill/reference/components/card/COMPONENT.md +14 -8
  104. package/dist/skill/reference/components/card/examples/screen.module.css +1 -1
  105. package/dist/skill/reference/components/card/examples/screen.tsx +184 -198
  106. package/dist/skill/reference/components/card/examples/states.tsx +59 -0
  107. package/dist/skill/reference/components/chart-frame/COMPONENT.md +1 -1
  108. package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +9 -9
  109. package/dist/skill/reference/components/chat/COMPONENT.md +8 -5
  110. package/dist/skill/reference/components/chat/examples/screen.module.css +1 -1
  111. package/dist/skill/reference/components/chat/examples/screen.tsx +110 -117
  112. package/dist/skill/reference/components/chat/examples/time-zone.tsx +83 -0
  113. package/dist/skill/reference/components/chat-list/COMPONENT.md +14 -8
  114. package/dist/skill/reference/components/chat-list/examples/controlled.tsx +2 -2
  115. package/dist/skill/reference/components/chat-list/examples/examples.module.css +8 -0
  116. package/dist/skill/reference/components/chat-list/examples/links.tsx +1 -1
  117. package/dist/skill/reference/components/chat-list/examples/router.tsx +63 -0
  118. package/dist/skill/reference/components/checkbox/COMPONENT.md +1 -0
  119. package/dist/skill/reference/components/checkbox/examples/examples.module.css +3 -2
  120. package/dist/skill/reference/components/code-block/COMPONENT.md +1 -1
  121. package/dist/skill/reference/components/code-block/examples/color-scheme.tsx +2 -4
  122. package/dist/skill/reference/components/code-block/examples/examples.module.css +0 -11
  123. package/dist/skill/reference/components/color-field/COMPONENT.md +2 -1
  124. package/dist/skill/reference/components/color-picker/COMPONENT.md +31 -11
  125. package/dist/skill/reference/components/color-picker/examples/examples.module.css +2 -5
  126. package/dist/skill/reference/components/color-picker/examples/overview.tsx +5 -10
  127. package/dist/skill/reference/components/color-picker/examples/presets-custom.tsx +31 -0
  128. package/dist/skill/reference/components/color-picker/examples/sizes.tsx +4 -8
  129. package/dist/skill/reference/components/color-swatches/COMPONENT.md +1 -0
  130. package/dist/skill/reference/components/crossfade/COMPONENT.md +3 -3
  131. package/dist/skill/reference/components/crossfade/examples/screen.tsx +107 -112
  132. package/dist/skill/reference/components/data-table/COMPONENT.md +12 -7
  133. package/dist/skill/reference/components/data-table/examples/examples.module.css +9 -0
  134. package/dist/skill/reference/components/data-table/examples/numeric.tsx +9 -2
  135. package/dist/skill/reference/components/data-table/examples/screen.tsx +42 -52
  136. package/dist/skill/reference/components/data-table/examples/server.tsx +6 -2
  137. package/dist/skill/reference/components/datepicker/COMPONENT.md +3 -1
  138. package/dist/skill/reference/components/datepicker/examples/deadline.tsx +33 -0
  139. package/dist/skill/reference/components/datepicker/examples/examples.module.css +6 -0
  140. package/dist/skill/reference/components/datepicker/examples/inline-panel.tsx +3 -1
  141. package/dist/skill/reference/components/description-list/COMPONENT.md +1 -1
  142. package/dist/skill/reference/components/description-list/examples/screen.tsx +120 -127
  143. package/dist/skill/reference/components/digit-input/COMPONENT.md +1 -0
  144. package/dist/skill/reference/components/digit-input/examples/grouped.tsx +4 -4
  145. package/dist/skill/reference/components/digit-input/examples/validation.tsx +1 -1
  146. package/dist/skill/reference/components/divider/COMPONENT.md +2 -2
  147. package/dist/skill/reference/components/divider/examples/examples.module.css +4 -1
  148. package/dist/skill/reference/components/divider/examples/vertical.tsx +22 -9
  149. package/dist/skill/reference/components/dnd/examples/examples.module.css +3 -1
  150. package/dist/skill/reference/components/drawer/COMPONENT.md +16 -3
  151. package/dist/skill/reference/components/drawer/examples/client-card.tsx +32 -8
  152. package/dist/skill/reference/components/drawer/examples/placement.tsx +26 -31
  153. package/dist/skill/reference/components/drawer/examples/screen.tsx +137 -160
  154. package/dist/skill/reference/components/dropdown/COMPONENT.md +1 -1
  155. package/dist/skill/reference/components/example-frame/COMPONENT.md +3 -3
  156. package/dist/skill/reference/components/field-list/COMPONENT.md +15 -3
  157. package/dist/skill/reference/components/field-list/examples/saving.tsx +83 -0
  158. package/dist/skill/reference/components/field-list/examples/screen.module.css +1 -1
  159. package/dist/skill/reference/components/field-list/examples/screen.tsx +19 -19
  160. package/dist/skill/reference/components/field-list/examples/totals.tsx +82 -0
  161. package/dist/skill/reference/components/fieldset/COMPONENT.md +1 -1
  162. package/dist/skill/reference/components/fieldset/examples/states.tsx +1 -1
  163. package/dist/skill/reference/components/file-upload/COMPONENT.md +2 -1
  164. package/dist/skill/reference/components/file-upload/examples/screen.module.css +2 -2
  165. package/dist/skill/reference/components/file-upload/examples/screen.tsx +65 -81
  166. package/dist/skill/reference/components/gallery/COMPONENT.md +1 -0
  167. package/dist/skill/reference/components/gantt/COMPONENT.md +1 -1
  168. package/dist/skill/reference/components/gantt/examples/screen.module.css +1 -1
  169. package/dist/skill/reference/components/gantt/examples/screen.tsx +55 -73
  170. package/dist/skill/reference/components/hint/COMPONENT.md +16 -2
  171. package/dist/skill/reference/components/hint/examples/examples.module.css +10 -1
  172. package/dist/skill/reference/components/hint/examples/overview.tsx +1 -1
  173. package/dist/skill/reference/components/hint/examples/variants.tsx +48 -0
  174. package/dist/skill/reference/components/input/COMPONENT.md +39 -9
  175. package/dist/skill/reference/components/input/examples/affixes.tsx +4 -2
  176. package/dist/skill/reference/components/input/examples/dismiss.tsx +29 -0
  177. package/dist/skill/reference/components/input/examples/suggestions.tsx +26 -0
  178. package/dist/skill/reference/components/input/examples/time.tsx +24 -0
  179. package/dist/skill/reference/components/input/examples/with-select.tsx +44 -0
  180. package/dist/skill/reference/components/kanban/COMPONENT.md +7 -7
  181. package/dist/skill/reference/components/kanban/examples/columns.tsx +4 -2
  182. package/dist/skill/reference/components/kanban/examples/screen.module.css +1 -1
  183. package/dist/skill/reference/components/kanban/examples/screen.tsx +50 -65
  184. package/dist/skill/reference/components/kbd/COMPONENT.md +1 -1
  185. package/dist/skill/reference/components/label/examples/examples.module.css +12 -1
  186. package/dist/skill/reference/components/label/examples/overview.tsx +1 -1
  187. package/dist/skill/reference/components/list/COMPONENT.md +26 -10
  188. package/dist/skill/reference/components/list/examples/row-controls.tsx +80 -0
  189. package/dist/skill/reference/components/list/examples/with-icon.tsx +23 -2
  190. package/dist/skill/reference/components/login-form/COMPONENT.md +8 -7
  191. package/dist/skill/reference/components/login-form/examples/states.tsx +12 -14
  192. package/dist/skill/reference/components/media-viewer/examples/controlled.tsx +16 -16
  193. package/dist/skill/reference/components/media-viewer/examples/examples.module.css +1 -3
  194. package/dist/skill/reference/components/message/COMPONENT.md +30 -9
  195. package/dist/skill/reference/components/message/examples/preview.tsx +28 -0
  196. package/dist/skill/reference/components/message/examples/sticker.tsx +35 -0
  197. package/dist/skill/reference/components/modal/COMPONENT.md +15 -3
  198. package/dist/skill/reference/components/modal/examples/long-content.tsx +37 -18
  199. package/dist/skill/reference/components/native-select/COMPONENT.md +1 -0
  200. package/dist/skill/reference/components/notification/COMPONENT.md +1 -1
  201. package/dist/skill/reference/components/pagination/COMPONENT.md +11 -3
  202. package/dist/skill/reference/components/pagination/examples/controlled.tsx +2 -1
  203. package/dist/skill/reference/components/popover/COMPONENT.md +3 -2
  204. package/dist/skill/reference/components/popover/examples/width.tsx +13 -1
  205. package/dist/skill/reference/components/radio/COMPONENT.md +2 -0
  206. package/dist/skill/reference/components/rich-text/COMPONENT.md +93 -0
  207. package/dist/skill/reference/components/rich-text/examples/overview.tsx +19 -0
  208. package/dist/skill/reference/components/scroll-container/COMPONENT.md +8 -5
  209. package/dist/skill/reference/components/segmented-control/COMPONENT.md +1 -0
  210. package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +1 -1
  211. package/dist/skill/reference/components/select/COMPONENT.md +7 -3
  212. package/dist/skill/reference/components/slider/COMPONENT.md +4 -3
  213. package/dist/skill/reference/components/slider/examples/controlled.tsx +1 -1
  214. package/dist/skill/reference/components/slider/examples/states.tsx +14 -10
  215. package/dist/skill/reference/components/smart-filter/COMPONENT.md +13 -13
  216. package/dist/skill/reference/components/smart-filter/examples/examples.module.css +3 -0
  217. package/dist/skill/reference/components/smart-filter/examples/many-values.tsx +12 -8
  218. package/dist/skill/reference/components/smart-filter/examples/sizes.tsx +7 -3
  219. package/dist/skill/reference/components/sparkline/COMPONENT.md +1 -0
  220. package/dist/skill/reference/components/sparkline/examples/curve.tsx +16 -11
  221. package/dist/skill/reference/components/sparkline/examples/states.tsx +14 -10
  222. package/dist/skill/reference/components/switch/COMPONENT.md +2 -1
  223. package/dist/skill/reference/components/tabs/COMPONENT.md +1 -1
  224. package/dist/skill/reference/components/tag-select/COMPONENT.md +1 -0
  225. package/dist/skill/reference/components/textarea/COMPONENT.md +1 -0
  226. package/dist/skill/reference/components/timeline/COMPONENT.md +3 -3
  227. package/dist/skill/reference/components/timeline/examples/structure.tsx +2 -1
  228. package/dist/skill/reference/components/typography/COMPONENT.md +2 -2
  229. package/dist/skill/reference/foundation.md +15 -11
  230. package/dist/skill/reference/layout/app-shell/COMPONENT.md +25 -38
  231. package/dist/skill/reference/layout/app-shell/examples/footer.tsx +10 -10
  232. package/dist/skill/reference/layout/app-shell/examples/overview.tsx +20 -22
  233. package/dist/skill/reference/layout/app-shell/examples/screen.module.css +2 -2
  234. package/dist/skill/reference/layout/app-shell/examples/screen.tsx +25 -30
  235. package/dist/skill/reference/layout/app-shell/examples/template.tsx +13 -17
  236. package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +4 -3
  237. package/dist/skill/reference/layout/bottom-nav/examples/floating-action.tsx +10 -19
  238. package/dist/skill/reference/layout/bottom-nav/examples/floating.tsx +10 -19
  239. package/dist/skill/reference/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
  240. package/dist/skill/reference/layout/page/COMPONENT.md +382 -0
  241. package/dist/skill/reference/layout/page/examples/actions-collapse.tsx +45 -0
  242. package/dist/skill/reference/layout/page/examples/collapse.tsx +68 -0
  243. package/dist/skill/reference/layout/page/examples/examples.module.css +92 -0
  244. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/grid.tsx +15 -15
  245. package/dist/skill/reference/layout/page/examples/guard.tsx +87 -0
  246. package/dist/skill/reference/{components/page-content → layout/page}/examples/list-detail.tsx +14 -14
  247. package/dist/skill/reference/layout/page/examples/loading.tsx +57 -0
  248. package/dist/skill/reference/layout/page/examples/narrow.tsx +75 -0
  249. package/dist/skill/reference/layout/page/examples/overview.tsx +57 -0
  250. package/dist/skill/reference/{components/page-content → layout/page}/examples/screen.module.css +1 -1
  251. package/{src/components/page-content → dist/skill/reference/layout/page}/examples/screen.tsx +29 -19
  252. package/dist/skill/reference/{components/page-content → layout/page}/examples/sections.tsx +17 -24
  253. package/dist/skill/reference/layout/page/examples/structure.tsx +41 -0
  254. package/dist/skill/reference/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
  255. package/dist/skill/reference/layout/page/examples/top-bar.tsx +85 -0
  256. package/dist/skill/reference/{components/page-content → layout/page}/examples/variants.tsx +7 -7
  257. package/dist/skill/reference/layout/sidebar/COMPONENT.md +6 -4
  258. package/dist/skill/reference/layout/sidebar/examples/dismiss.tsx +10 -7
  259. package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +11 -8
  260. package/dist/skill/responsive.md +94 -75
  261. package/dist/skill/ux.md +5 -3
  262. package/dist/tokens/layers.d.ts +2 -0
  263. package/dist/tokens/primitives.d.ts +12 -2
  264. package/dist/tokens/semantic.d.ts +9 -0
  265. package/dist/tokens/themes/dark.d.ts +7 -2
  266. package/package.json +2 -2
  267. package/src/components/avatar/COMPONENT.md +2 -2
  268. package/src/components/avatar/examples/team-group.tsx +1 -1
  269. package/src/components/badge/COMPONENT.md +14 -1
  270. package/src/components/badge/examples/examples.module.css +7 -0
  271. package/src/components/badge/examples/tag-row.tsx +34 -0
  272. package/src/components/banner/COMPONENT.md +4 -4
  273. package/src/components/banner/examples/examples.module.css +6 -1
  274. package/src/components/banner/examples/page-strip.tsx +24 -22
  275. package/src/components/breadcrumb/COMPONENT.md +18 -12
  276. package/src/components/breadcrumb/examples/router.tsx +17 -0
  277. package/src/components/button/COMPONENT.md +2 -1
  278. package/src/components/button/examples/hold-to-confirm.tsx +1 -1
  279. package/src/components/button/examples/on-colored-host.tsx +8 -8
  280. package/src/components/button-group/COMPONENT.md +1 -0
  281. package/src/components/card/COMPONENT.md +14 -8
  282. package/src/components/card/examples/screen.module.css +1 -1
  283. package/src/components/card/examples/screen.tsx +184 -198
  284. package/src/components/card/examples/states.tsx +59 -0
  285. package/src/components/chart-frame/COMPONENT.md +1 -1
  286. package/src/components/chart-frame/examples/fill-height.tsx +9 -9
  287. package/src/components/chat/COMPONENT.md +8 -5
  288. package/src/components/chat/examples/screen.module.css +1 -1
  289. package/src/components/chat/examples/screen.tsx +110 -117
  290. package/src/components/chat/examples/time-zone.tsx +83 -0
  291. package/src/components/chat-list/COMPONENT.md +14 -8
  292. package/src/components/chat-list/examples/controlled.tsx +2 -2
  293. package/src/components/chat-list/examples/examples.module.css +8 -0
  294. package/src/components/chat-list/examples/links.tsx +1 -1
  295. package/src/components/chat-list/examples/router.tsx +63 -0
  296. package/src/components/checkbox/COMPONENT.md +1 -0
  297. package/src/components/checkbox/examples/examples.module.css +3 -2
  298. package/src/components/code-block/COMPONENT.md +1 -1
  299. package/src/components/code-block/examples/color-scheme.tsx +2 -4
  300. package/src/components/code-block/examples/examples.module.css +0 -11
  301. package/src/components/color-field/COMPONENT.md +2 -1
  302. package/src/components/color-picker/COMPONENT.md +31 -11
  303. package/src/components/color-picker/examples/examples.module.css +2 -5
  304. package/src/components/color-picker/examples/overview.tsx +5 -10
  305. package/src/components/color-picker/examples/presets-custom.tsx +31 -0
  306. package/src/components/color-picker/examples/sizes.tsx +4 -8
  307. package/src/components/color-swatches/COMPONENT.md +1 -0
  308. package/src/components/crossfade/COMPONENT.md +3 -3
  309. package/src/components/crossfade/examples/screen.tsx +107 -112
  310. package/src/components/data-table/COMPONENT.md +12 -7
  311. package/src/components/data-table/examples/examples.module.css +9 -0
  312. package/src/components/data-table/examples/numeric.tsx +9 -2
  313. package/src/components/data-table/examples/screen.tsx +42 -52
  314. package/src/components/data-table/examples/server.tsx +6 -2
  315. package/src/components/datepicker/COMPONENT.md +3 -1
  316. package/src/components/datepicker/examples/deadline.tsx +33 -0
  317. package/src/components/datepicker/examples/examples.module.css +6 -0
  318. package/src/components/datepicker/examples/inline-panel.tsx +3 -1
  319. package/src/components/description-list/COMPONENT.md +1 -1
  320. package/src/components/description-list/examples/screen.tsx +120 -127
  321. package/src/components/digit-input/COMPONENT.md +1 -0
  322. package/src/components/digit-input/examples/grouped.tsx +4 -4
  323. package/src/components/digit-input/examples/validation.tsx +1 -1
  324. package/src/components/divider/COMPONENT.md +2 -2
  325. package/src/components/divider/examples/examples.module.css +4 -1
  326. package/src/components/divider/examples/vertical.tsx +22 -9
  327. package/src/components/dnd/examples/examples.module.css +3 -1
  328. package/src/components/drawer/COMPONENT.md +16 -3
  329. package/src/components/drawer/examples/client-card.tsx +32 -8
  330. package/src/components/drawer/examples/placement.tsx +26 -31
  331. package/src/components/drawer/examples/screen.tsx +137 -160
  332. package/src/components/dropdown/COMPONENT.md +1 -1
  333. package/src/components/example-frame/COMPONENT.md +3 -3
  334. package/src/components/field-list/COMPONENT.md +15 -3
  335. package/src/components/field-list/examples/saving.tsx +83 -0
  336. package/src/components/field-list/examples/screen.module.css +1 -1
  337. package/src/components/field-list/examples/screen.tsx +19 -19
  338. package/src/components/field-list/examples/totals.tsx +82 -0
  339. package/src/components/fieldset/COMPONENT.md +1 -1
  340. package/src/components/fieldset/examples/states.tsx +1 -1
  341. package/src/components/file-upload/COMPONENT.md +2 -1
  342. package/src/components/file-upload/examples/screen.module.css +2 -2
  343. package/src/components/file-upload/examples/screen.tsx +65 -81
  344. package/src/components/gallery/COMPONENT.md +1 -0
  345. package/src/components/gantt/COMPONENT.md +1 -1
  346. package/src/components/gantt/examples/screen.module.css +1 -1
  347. package/src/components/gantt/examples/screen.tsx +55 -73
  348. package/src/components/hint/COMPONENT.md +16 -2
  349. package/src/components/hint/examples/examples.module.css +10 -1
  350. package/src/components/hint/examples/overview.tsx +1 -1
  351. package/src/components/hint/examples/variants.tsx +48 -0
  352. package/src/components/input/COMPONENT.md +39 -9
  353. package/src/components/input/examples/affixes.tsx +4 -2
  354. package/src/components/input/examples/dismiss.tsx +29 -0
  355. package/src/components/input/examples/suggestions.tsx +26 -0
  356. package/src/components/input/examples/time.tsx +24 -0
  357. package/src/components/input/examples/with-select.tsx +44 -0
  358. package/src/components/kanban/COMPONENT.md +7 -7
  359. package/src/components/kanban/examples/columns.tsx +4 -2
  360. package/src/components/kanban/examples/screen.module.css +1 -1
  361. package/src/components/kanban/examples/screen.tsx +50 -65
  362. package/src/components/kbd/COMPONENT.md +1 -1
  363. package/src/components/label/examples/examples.module.css +12 -1
  364. package/src/components/label/examples/overview.tsx +1 -1
  365. package/src/components/list/COMPONENT.md +26 -10
  366. package/src/components/list/examples/row-controls.tsx +80 -0
  367. package/src/components/list/examples/with-icon.tsx +23 -2
  368. package/src/components/login-form/COMPONENT.md +8 -7
  369. package/src/components/login-form/examples/states.tsx +12 -14
  370. package/src/components/media-viewer/examples/controlled.tsx +16 -16
  371. package/src/components/media-viewer/examples/examples.module.css +1 -3
  372. package/src/components/message/COMPONENT.md +30 -9
  373. package/src/components/message/examples/preview.tsx +28 -0
  374. package/src/components/message/examples/sticker.tsx +35 -0
  375. package/src/components/modal/COMPONENT.md +15 -3
  376. package/src/components/modal/examples/long-content.tsx +37 -18
  377. package/src/components/native-select/COMPONENT.md +1 -0
  378. package/src/components/notification/COMPONENT.md +1 -1
  379. package/src/components/pagination/COMPONENT.md +11 -3
  380. package/src/components/pagination/examples/controlled.tsx +2 -1
  381. package/src/components/popover/COMPONENT.md +3 -2
  382. package/src/components/popover/examples/width.tsx +13 -1
  383. package/src/components/radio/COMPONENT.md +2 -0
  384. package/src/components/rich-text/COMPONENT.md +93 -0
  385. package/src/components/rich-text/examples/overview.tsx +19 -0
  386. package/src/components/scroll-container/COMPONENT.md +8 -5
  387. package/src/components/segmented-control/COMPONENT.md +1 -0
  388. package/src/components/segmented-control/examples/in-form.tsx +1 -1
  389. package/src/components/select/COMPONENT.md +7 -3
  390. package/src/components/slider/COMPONENT.md +4 -3
  391. package/src/components/slider/examples/controlled.tsx +1 -1
  392. package/src/components/slider/examples/states.tsx +14 -10
  393. package/src/components/smart-filter/COMPONENT.md +13 -13
  394. package/src/components/smart-filter/examples/examples.module.css +3 -0
  395. package/src/components/smart-filter/examples/many-values.tsx +12 -8
  396. package/src/components/smart-filter/examples/sizes.tsx +7 -3
  397. package/src/components/sparkline/COMPONENT.md +1 -0
  398. package/src/components/sparkline/examples/curve.tsx +16 -11
  399. package/src/components/sparkline/examples/states.tsx +14 -10
  400. package/src/components/switch/COMPONENT.md +2 -1
  401. package/src/components/tabs/COMPONENT.md +1 -1
  402. package/src/components/tag-select/COMPONENT.md +1 -0
  403. package/src/components/textarea/COMPONENT.md +1 -0
  404. package/src/components/timeline/COMPONENT.md +3 -3
  405. package/src/components/timeline/examples/structure.tsx +2 -1
  406. package/src/components/typography/COMPONENT.md +2 -2
  407. package/src/layout/app-shell/COMPONENT.md +25 -38
  408. package/src/layout/app-shell/examples/footer.tsx +10 -10
  409. package/src/layout/app-shell/examples/overview.tsx +20 -22
  410. package/src/layout/app-shell/examples/screen.module.css +2 -2
  411. package/src/layout/app-shell/examples/screen.tsx +25 -30
  412. package/src/layout/app-shell/examples/template.tsx +13 -17
  413. package/src/layout/bottom-nav/COMPONENT.md +4 -3
  414. package/src/layout/bottom-nav/examples/floating-action.tsx +10 -19
  415. package/src/layout/bottom-nav/examples/floating.tsx +10 -19
  416. package/src/layout/bottom-nav/examples/in-app-shell.tsx +11 -19
  417. package/src/layout/page/COMPONENT.md +382 -0
  418. package/src/layout/page/examples/actions-collapse.tsx +45 -0
  419. package/src/layout/page/examples/collapse.tsx +68 -0
  420. package/src/layout/page/examples/examples.module.css +92 -0
  421. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/grid.tsx +15 -15
  422. package/src/layout/page/examples/guard.tsx +87 -0
  423. package/src/{components/page-content → layout/page}/examples/list-detail.tsx +14 -14
  424. package/src/layout/page/examples/loading.tsx +57 -0
  425. package/src/layout/page/examples/narrow.tsx +75 -0
  426. package/src/layout/page/examples/overview.tsx +57 -0
  427. package/src/{components/page-content → layout/page}/examples/screen.module.css +1 -1
  428. package/{dist/skill/reference/components/page-content → src/layout/page}/examples/screen.tsx +29 -19
  429. package/src/{components/page-content → layout/page}/examples/sections.tsx +17 -24
  430. package/src/layout/page/examples/structure.tsx +41 -0
  431. package/src/{components/page-toolbar/examples/narrow.tsx → layout/page/examples/tools.tsx} +38 -35
  432. package/src/layout/page/examples/top-bar.tsx +85 -0
  433. package/src/{components/page-content → layout/page}/examples/variants.tsx +7 -7
  434. package/src/layout/sidebar/COMPONENT.md +6 -4
  435. package/src/layout/sidebar/examples/dismiss.tsx +10 -7
  436. package/src/layout/sidebar/examples/narrow.tsx +11 -8
  437. package/src/styles/theme-dark.css +12 -10
  438. package/src/styles/theme-light.css +4 -0
  439. package/src/styles/tokens.css +3 -1
  440. package/dist/components/page-content/PageContent.d.ts +0 -192
  441. package/dist/components/page-toolbar/PageToolbar.d.ts +0 -55
  442. package/dist/components/scroll-container/useWheelToInline.d.ts +0 -10
  443. package/dist/layout/app-header/AppHeader.d.ts +0 -118
  444. package/dist/skill/reference/components/page-content/COMPONENT.md +0 -264
  445. package/dist/skill/reference/components/page-content/examples/examples.module.css +0 -56
  446. package/dist/skill/reference/components/page-content/examples/narrow.tsx +0 -25
  447. package/dist/skill/reference/components/page-content/examples/overview.tsx +0 -41
  448. package/dist/skill/reference/components/page-toolbar/COMPONENT.md +0 -147
  449. package/dist/skill/reference/components/page-toolbar/examples/examples.module.css +0 -16
  450. package/dist/skill/reference/components/page-toolbar/examples/overview.tsx +0 -113
  451. package/dist/skill/reference/components/page-toolbar/examples/save-changes.tsx +0 -43
  452. package/dist/skill/reference/components/page-toolbar/examples/without-search.tsx +0 -60
  453. package/dist/skill/reference/layout/app-header/COMPONENT.md +0 -187
  454. package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +0 -37
  455. package/dist/skill/reference/layout/app-header/examples/examples.module.css +0 -28
  456. package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +0 -67
  457. package/dist/skill/reference/layout/app-header/examples/narrow.tsx +0 -66
  458. package/dist/skill/reference/layout/app-header/examples/overview.tsx +0 -34
  459. package/dist/skill/reference/layout/app-header/examples/page-title.tsx +0 -78
  460. package/dist/skill/reference/layout/app-shell/examples/contained.tsx +0 -30
  461. package/src/components/page-content/COMPONENT.md +0 -264
  462. package/src/components/page-content/examples/examples.module.css +0 -56
  463. package/src/components/page-content/examples/narrow.tsx +0 -25
  464. package/src/components/page-content/examples/overview.tsx +0 -41
  465. package/src/components/page-toolbar/COMPONENT.md +0 -147
  466. package/src/components/page-toolbar/examples/examples.module.css +0 -16
  467. package/src/components/page-toolbar/examples/overview.tsx +0 -113
  468. package/src/components/page-toolbar/examples/save-changes.tsx +0 -43
  469. package/src/components/page-toolbar/examples/without-search.tsx +0 -60
  470. package/src/layout/app-header/COMPONENT.md +0 -187
  471. package/src/layout/app-header/examples/breadcrumbs.tsx +0 -37
  472. package/src/layout/app-header/examples/examples.module.css +0 -28
  473. package/src/layout/app-header/examples/in-app-shell.tsx +0 -67
  474. package/src/layout/app-header/examples/narrow.tsx +0 -66
  475. package/src/layout/app-header/examples/overview.tsx +0 -34
  476. package/src/layout/app-header/examples/page-title.tsx +0 -78
  477. package/src/layout/app-shell/examples/contained.tsx +0 -30
@@ -10,6 +10,10 @@ export type ColorPresetsLabels = {
10
10
  list: string;
11
11
  /** The "no color" swatch (`allowEmpty`) and the trigger name for an empty value. */
12
12
  empty: string;
13
+ /** Label of the hex field under the swatches (`allowCustom`). */
14
+ custom: string;
15
+ /** Error of the hex field when Enter finds no hex color in it. */
16
+ customInvalid: string;
13
17
  };
14
18
  export declare const COLOR_PRESETS_LABELS: ColorPresetsLabels;
15
19
  export type ColorPresetsRootProps = {
@@ -65,6 +69,10 @@ export type ColorPresetsRootProps = {
65
69
  * Adds the «no color» swatch after the presets (value `null`).
66
70
  */
67
71
  allowEmpty?: boolean;
72
+ /**
73
+ * Any color beyond the palette: a hex field under the swatches (`labels.custom`) shows the typed color, Enter picks it as `#rrggbb`; invalid text gets `labels.customInvalid`.
74
+ */
75
+ allowCustom?: boolean;
68
76
  /**
69
77
  * Close the panel after a pick (focus returns to the trigger).
70
78
  */
@@ -78,7 +86,7 @@ export type ColorPresetsRootProps = {
78
86
  */
79
87
  children: React.ReactNode;
80
88
  };
81
- declare function ColorPresetsRoot({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, closeOnEscape, closeOnOutsideClick, presets, columns: columnsProp, size: sizeProp, disabled: disabledProp, allowEmpty, closeOnSelect, labels: labelsProp, children, }: ColorPresetsRootProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
89
+ declare function ColorPresetsRoot({ value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, closeOnEscape, closeOnOutsideClick, presets, columns: columnsProp, size: sizeProp, disabled: disabledProp, allowEmpty, allowCustom, closeOnSelect, labels: labelsProp, children, }: ColorPresetsRootProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
82
90
  declare namespace ColorPresetsRoot {
83
91
  var displayName: string;
84
92
  }
@@ -5,7 +5,7 @@ export type CrossfadeProps = React.HTMLAttributes<HTMLDivElement> & {
5
5
  */
6
6
  state: string | number;
7
7
  /**
8
- * The region takes its parent's height (a flex or grid item, or a sized block) and every state stretches to it; the height never glides.
8
+ * The region takes its parent's height (a flex or grid item, or a sized block) and every state stretches to it; the height never glides. A `Crossfade` that is the child of a `Page.Cell` fills it unless `fill` is set.
9
9
  */
10
10
  fill?: boolean;
11
11
  ref?: React.Ref<HTMLDivElement>;
@@ -38,6 +38,8 @@ export type DataTableLabels = {
38
38
  expandGroup: string;
39
39
  /** `aria-label` of the toggle of an expanded group; `{group}` is the group key. */
40
40
  collapseGroup: string;
41
+ /** Name of the info glyph of a column with a `description` (the tooltip holds the text). */
42
+ columnInfo: string;
41
43
  };
42
44
  export declare const DATA_TABLE_LABELS: DataTableLabels;
43
45
  export type DataTableProps<Row> = Omit<React.HTMLAttributes<HTMLDivElement>, "children"> & {
@@ -184,7 +186,7 @@ export type DataTableProps<Row> = Omit<React.HTMLAttributes<HTMLDivElement>, "ch
184
186
  */
185
187
  scrollHeight?: number | string;
186
188
  /**
187
- * The table spans its container; `false` sizes it by its content.
189
+ * The table spans its container; `false` sizes the table and its surface by its content (up to the container's width, then it scrolls).
188
190
  */
189
191
  fullWidth?: boolean;
190
192
  /**
@@ -11,6 +11,8 @@ type HeadProps<Row> = {
11
11
  /** Sticky head and first column: the leading head cells stick to both edges. */
12
12
  stickyCorner: boolean;
13
13
  expandEnabled: boolean;
14
+ /** Name of the info glyph of a column with a `description`. */
15
+ infoLabel: string;
14
16
  /** A leading column of row handles (`onReorder`). */
15
17
  reorderable?: boolean;
16
18
  selectAll?: {
@@ -21,5 +23,5 @@ type HeadProps<Row> = {
21
23
  onToggle: () => void;
22
24
  };
23
25
  };
24
- export declare function Head<Row>({ columns, size, sort, onSort, stickyFirstColumn, stickyHeader, stickyCorner, expandEnabled, reorderable, selectAll, }: HeadProps<Row>): import("react/jsx-runtime").JSX.Element;
26
+ export declare function Head<Row>({ columns, size, sort, onSort, stickyFirstColumn, stickyHeader, stickyCorner, expandEnabled, infoLabel, reorderable, selectAll, }: HeadProps<Row>): import("react/jsx-runtime").JSX.Element;
25
27
  export {};
@@ -32,6 +32,11 @@ export type DataTableColumn<Row> = {
32
32
  * empty, the `<th>` keeps `header` as its name.
33
33
  */
34
34
  hideHeader?: boolean;
35
+ /**
36
+ * What the column means, for a header that cannot say it all: an info glyph after the header
37
+ * opens it as a tooltip, and the header cell is described by it (`aria-describedby`).
38
+ */
39
+ description?: string;
35
40
  width?: string;
36
41
  minWidth?: string;
37
42
  maxWidth?: string;
@@ -83,4 +83,4 @@ export type DigitInputProps = FieldRootDomProps & FieldFrameProps & FieldFocusRi
83
83
  labels?: Partial<DigitInputLabels>;
84
84
  };
85
85
  /** A one-time code or PIN split into cells, with the field label, hint and error. */
86
- export declare function DigitInput({ length, size: sizeProp, fullWidth, name, groupSize, mask, autoFocus, value: valueProp, defaultValue, onValueChange, onComplete, disabled: disabledProp, invalid, success, focusRing, label, required, optional, hint, error, id, "aria-describedby": ariaDescribedBy, labels: labelsProp, className, ...rest }: DigitInputProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
86
+ export declare function DigitInput({ length, size: sizeProp, fullWidth, name, groupSize, mask, autoFocus, value: valueProp, defaultValue, onValueChange, onComplete, disabled: disabledProp, invalid, success, focusRing, label, required, optional, hint, hintTone, error, id, "aria-describedby": ariaDescribedBy, labels: labelsProp, className, ...rest }: DigitInputProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
@@ -1,9 +1,9 @@
1
1
  import type * as React from "react";
2
2
  import { DialogGuard } from "../../internal/overlay/DialogGuard";
3
- import { DialogActions, DialogBody, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogIcon, type DialogLabels, DialogMeta, DialogTitle, DialogTrigger } from "../../internal/overlay/DialogParts";
3
+ import { DialogActions, DialogBody, DialogClose, DialogDescription, DialogFooter, DialogHeader, DialogIcon, type DialogLabels, DialogMeta, DialogSection, DialogTitle, DialogTrigger } from "../../internal/overlay/DialogParts";
4
4
  import { type ControlSize } from "../../internal/states";
5
5
  export type { DialogGuardProps as DrawerGuardProps } from "../../internal/overlay/DialogGuard";
6
- export type { DialogActionsProps as DrawerActionsProps, DialogBodyProps as DrawerBodyProps, DialogCloseProps as DrawerCloseProps, DialogDescriptionProps as DrawerDescriptionProps, DialogFooterProps as DrawerFooterProps, DialogHeaderProps as DrawerHeaderProps, DialogIconProps as DrawerIconProps, DialogMetaProps as DrawerMetaProps, DialogTitleProps as DrawerTitleProps, DialogTriggerProps as DrawerTriggerProps, } from "../../internal/overlay/DialogParts";
6
+ export type { DialogActionsProps as DrawerActionsProps, DialogBodyProps as DrawerBodyProps, DialogCloseProps as DrawerCloseProps, DialogDescriptionProps as DrawerDescriptionProps, DialogFooterProps as DrawerFooterProps, DialogHeaderProps as DrawerHeaderProps, DialogIconProps as DrawerIconProps, DialogMetaProps as DrawerMetaProps, DialogSectionProps as DrawerSectionProps, DialogTitleProps as DrawerTitleProps, DialogTriggerProps as DrawerTriggerProps, } from "../../internal/overlay/DialogParts";
7
7
  export type DrawerSide = "left" | "right";
8
8
  export type DrawerLabels = DialogLabels;
9
9
  export type DrawerRootProps = {
@@ -69,6 +69,7 @@ export declare const Drawer: {
69
69
  Description: typeof DialogDescription;
70
70
  Actions: typeof DialogActions;
71
71
  Body: typeof DialogBody;
72
+ Section: typeof DialogSection;
72
73
  Footer: typeof DialogFooter;
73
74
  Meta: typeof DialogMeta;
74
75
  Close: typeof DialogClose;
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import type { HintTone } from "../hint/Hint";
2
3
  import { type FieldRootDomProps } from "../../internal/FieldFrame";
3
4
  import type { ControlSize } from "../../internal/states";
4
5
  export type FieldListLabels = {
@@ -14,16 +15,19 @@ export type FieldListLabels = {
14
15
  locked: string;
15
16
  /** Text beside the disabled add button once the list holds `max` rows; `{max}` is the limit. */
16
17
  maxReached: string;
18
+ /** Name of the totals row (`renderTotals`), shown in its first cell when that has no total. */
19
+ totals: string;
17
20
  };
18
21
  export declare const FIELD_LIST_LABELS: FieldListLabels;
19
22
  /** Width of a column: the same track in the heading row and in every row. */
20
- export type FieldListColumnWidth = "fill" | "compact" | "s" | "m";
23
+ export type FieldListColumnWidth = "fill" | "compact" | "xs" | "s" | "m";
21
24
  export type FieldListColumn = {
22
25
  /** Column heading, shown once above the rows; it names the field of this column in every row. */
23
26
  label: string;
24
27
  /**
25
28
  * `fill` (default) shares the free width; `compact` fits an icon-only control (an icon Select,
26
- * a swatch button, a checkbox); `s` a short value (a quantity, a code); `m` an amount or a date.
29
+ * a swatch button, a checkbox); `xs` a number of a few digits (a share, a percent); `s` a short
30
+ * value (a quantity, a code); `m` an amount or a date.
27
31
  */
28
32
  width?: FieldListColumnWidth;
29
33
  /** A red `*` after the heading (decorative): every field of the column is required. */
@@ -48,21 +52,25 @@ export type FieldListProps<T extends object> = Omit<FieldRootDomProps, "onChange
48
52
  */
49
53
  defaultValue?: readonly T[];
50
54
  /**
51
- * The new list after an edit (`row.update`), an added, removed or moved row.
55
+ * The new list after an edit (`row.update`), an add, a remove or a move. Return the save's promise: the new list shows while it is pending, the owner's again on a reject (say why with `error`).
52
56
  */
53
- onValueChange?: (value: T[]) => void;
57
+ onValueChange?: (value: T[]) => void | Promise<void>;
54
58
  /**
55
59
  * Stable unique id of an item: the row key and the drag id.
56
60
  */
57
61
  getId: (item: T) => string;
58
62
  /**
59
- * The columns in cell order: `label` (the heading; it names the field of the column in every row), `width` (`fill` | `compact` | `s` | `m`), `required` (a `*` after the heading).
63
+ * The columns in cell order: `label` (the heading; it names the field of the column in every row), `width` (`fill` | `compact` | `xs` | `s` | `m`), `required` (a `*` after the heading).
60
64
  */
61
65
  columns: readonly FieldListColumn[];
62
66
  /**
63
67
  * The cells of a row, one element per column (a fragment): kit fields without `label`. `row` has `index`, `update(patch)` and `remove()`.
64
68
  */
65
69
  renderItem: (item: T, row: FieldListRow<T>) => React.ReactNode;
70
+ /**
71
+ * The totals row under the rows: one node per column (a fragment), `null` where a column has none. The first cell without a total reads `labels.totals`, the row's group name.
72
+ */
73
+ renderTotals?: (items: readonly T[]) => React.ReactNode;
66
74
  /**
67
75
  * A new empty item; with it the add button shows under the rows and focus goes to the new row's first field.
68
76
  */
@@ -99,6 +107,10 @@ export type FieldListProps<T extends object> = Omit<FieldRootDomProps, "onChange
99
107
  * Help text under the list; hidden while `error` shows.
100
108
  */
101
109
  hint?: React.ReactNode;
110
+ /**
111
+ * Status color of `hint` («Осталось 12 дней» in `warning`). The words carry the status, the color repeats it; an `error` replaces the hint and its tone. A validation error is `error`, never a `danger` hint.
112
+ */
113
+ hintTone?: HintTone;
102
114
  /**
103
115
  * A problem of the list as a whole («Добавьте хотя бы одну позицию»); a field's own error goes on that field.
104
116
  */
@@ -122,7 +134,7 @@ export type FieldListProps<T extends object> = Omit<FieldRootDomProps, "onChange
122
134
  * reorder and pinned rows. In a narrow container the rows stack into blocks and each field shows
123
135
  * its own label.
124
136
  */
125
- export declare function FieldList<T extends object>({ value: valueProp, defaultValue, onValueChange, getId, columns, renderItem, createItem, addLabel, getLabel, getLocked, reorderable, min, max, label, hint, error, disabled: disabledProp, size: sizeProp, labels: labelsProp, className, ref, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest }: FieldListProps<T>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
137
+ export declare function FieldList<T extends object>({ value: valueProp, defaultValue, onValueChange, getId, columns, renderItem, renderTotals, createItem, addLabel, getLabel, getLocked, reorderable, min, max, label, hint, hintTone, error, disabled: disabledProp, size: sizeProp, labels: labelsProp, className, ref, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...rest }: FieldListProps<T>): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
126
138
  export declare namespace FieldList {
127
139
  var displayName: string;
128
140
  }
@@ -1,10 +1,16 @@
1
1
  import type * as React from "react";
2
- import type { ControlSize } from "../../internal/states";
2
+ import type { ControlSize, Tone } from "../../internal/states";
3
+ /** The status a hint's words carry (a deadline that nears, a check that passed). */
4
+ export type HintTone = Extract<Tone, "neutral" | "success" | "warning" | "danger">;
3
5
  export type HintRootProps = React.HTMLAttributes<HTMLParagraphElement> & {
4
6
  /**
5
7
  * Tier of the paired field: 12/16 for xs–m, 13/20 for l and xl. Without it the tier of its host, else `m`.
6
8
  */
7
9
  size?: ControlSize;
10
+ /**
11
+ * Status color of the text (a deadline that nears, a check that passed). The words carry the status, the color repeats it; `invalid` and `disabled` take over the color.
12
+ */
13
+ tone?: HintTone;
8
14
  /**
9
15
  * Error styling: danger text that drops in (fade + 4 px from above).
10
16
  */
@@ -15,7 +21,7 @@ export type HintRootProps = React.HTMLAttributes<HTMLParagraphElement> & {
15
21
  disabled?: boolean;
16
22
  ref?: React.Ref<HTMLParagraphElement>;
17
23
  };
18
- declare function HintRoot({ className, size: sizeProp, invalid, disabled: disabledProp, children, ...rest }: HintRootProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
24
+ declare function HintRoot({ className, size: sizeProp, tone, invalid, disabled: disabledProp, children, ...rest }: HintRootProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
19
25
  declare namespace HintRoot {
20
26
  var displayName: string;
21
27
  }
@@ -6,7 +6,7 @@ export type { AccordionContentProps, AccordionHeaderProps, AccordionHeadingLevel
6
6
  export { Accordion } from "./accordion/Accordion";
7
7
  export type { AvatarFallbackProps, AvatarGroupProps, AvatarImageProps, AvatarOverflowProps, AvatarPresence, AvatarRootProps, AvatarSize, AvatarStatusLabels, AvatarStatusProps, } from "./avatar/Avatar";
8
8
  export { Avatar } from "./avatar/Avatar";
9
- export type { BadgeActionProps, BadgeDotProps, BadgeIconProps, BadgeLabels, BadgeRootProps, } from "./badge/Badge";
9
+ export type { BadgeActionProps, BadgeDotProps, BadgeGroupProps, BadgeIconProps, BadgeLabels, BadgeRootProps, } from "./badge/Badge";
10
10
  export { Badge } from "./badge/Badge";
11
11
  export type { BannerActionsProps, BannerContentProps, BannerDescriptionProps, BannerIconProps, BannerLabels, BannerRootProps, BannerTitleProps, } from "./banner/Banner";
12
12
  export { Banner } from "./banner/Banner";
@@ -82,7 +82,7 @@ export type { LabelDescriptionProps, LabelIconProps, LabelLabels, LabelRootProps
82
82
  export { Label } from "./label/Label";
83
83
  export type { LinkButtonProps } from "./link-button/LinkButton";
84
84
  export { LinkButton } from "./link-button/LinkButton";
85
- export type { ListItemCountProps, ListItemDescriptionProps, ListItemIconProps, ListItemMetaProps, ListItemProps, ListItemTextProps, ListLabels, ListRootProps, } from "./list/List";
85
+ export type { ListItemActionsProps, ListItemCountProps, ListItemDescriptionProps, ListItemIconProps, ListItemMetaProps, ListItemProps, ListItemTextProps, ListLabels, ListRootProps, } from "./list/List";
86
86
  export { List } from "./list/List";
87
87
  export type { LoginFormActionsProps, LoginFormBodyProps, LoginFormDescriptionProps, LoginFormFooterProps, LoginFormFormProps, LoginFormHeaderProps, LoginFormLogoProps, LoginFormRootProps, LoginFormTitleProps, } from "./login-form/LoginForm";
88
88
  export { LoginForm } from "./login-form/LoginForm";
@@ -94,7 +94,8 @@ export { Message } from "./message/Message";
94
94
  export type { MessageContactProps, MessageLinkPreviewProps, MessageLocationLabels, MessageLocationProps, } from "./message/MessageCards";
95
95
  export type { MessageFileLabels, MessageFileProps } from "./message/MessageFile";
96
96
  export type { MessageMediaProps } from "./message/MessageMedia";
97
- export type { ModalActionsProps, ModalBodyProps, ModalCloseProps, ModalConfirmProps, ModalContentProps, ModalDescriptionProps, ModalFooterProps, ModalGuardProps, ModalHeaderProps, ModalIconProps, ModalLabels, ModalMetaProps, ModalPlacement, ModalRootProps, ModalTitleProps, ModalTriggerProps, } from "./modal/Modal";
97
+ export type { MessageStickerProps } from "./message/MessageSticker";
98
+ export type { ModalActionsProps, ModalBodyProps, ModalCloseProps, ModalConfirmProps, ModalContentProps, ModalDescriptionProps, ModalFooterProps, ModalGuardProps, ModalHeaderProps, ModalIconProps, ModalLabels, ModalMetaProps, ModalPlacement, ModalRootProps, ModalSectionProps, ModalTitleProps, ModalTriggerProps, } from "./modal/Modal";
98
99
  export { Modal } from "./modal/Modal";
99
100
  export type { NativeSelectLabels, NativeSelectProps } from "./native-select/NativeSelect";
100
101
  export { NativeSelect } from "./native-select/NativeSelect";
@@ -102,10 +103,6 @@ export type { NotificationAction, NotificationCardProps, NotificationDismissReas
102
103
  export { NotificationCard } from "./notification/Notification";
103
104
  export type { NotificationProviderProps } from "./notification/NotificationStore";
104
105
  export { NotificationProvider, useNotifications, } from "./notification/NotificationStore";
105
- export type { PageContentActionsProps, PageContentBackButtonProps, PageContentBodyProps, PageContentCellProps, PageContentCellRows, PageContentCellSpan, PageContentDescriptionMeasure, PageContentDescriptionProps, PageContentGridProps, PageContentHeaderProps, PageContentLabels, PageContentMaxWidth, PageContentPanelKind, PageContentPanelProps, PageContentRootAs, PageContentRootProps, PageContentSectionLayout, PageContentSectionProps, PageContentSplitProps, PageContentTitleProps, } from "./page-content/PageContent";
106
- export { PageContent } from "./page-content/PageContent";
107
- export type { PageToolbarActionsProps, PageToolbarChipsProps, PageToolbarRootProps, PageToolbarSectionsProps, PageToolbarToolsProps, PageToolbarViewProps, } from "./page-toolbar/PageToolbar";
108
- export { PageToolbar } from "./page-toolbar/PageToolbar";
109
106
  export type { PaginationLabels, PaginationProps } from "./pagination/Pagination";
110
107
  export { Pagination } from "./pagination/Pagination";
111
108
  export type { PopoverActionsProps, PopoverAnchorProps, PopoverCloseProps, PopoverContentProps, PopoverDescriptionProps, PopoverHeaderProps, PopoverRootProps, PopoverTitleProps, PopoverTriggerProps, } from "./popover/Popover";
@@ -116,6 +113,8 @@ export type { ProgressCircleLabels, ProgressCircleProps, } from "./progress-circ
116
113
  export { ProgressCircle } from "./progress-circle/ProgressCircle";
117
114
  export type { RadioGroupLabels, RadioGroupProps, RadioLabelProps, RadioRootProps, } from "./radio/Radio";
118
115
  export { Radio } from "./radio/Radio";
116
+ export type { RichTextLabels, RichTextProps } from "./rich-text/RichText";
117
+ export { RichText } from "./rich-text/RichText";
119
118
  export type { ScrollContainerAxis, ScrollContainerEdges, ScrollContainerProps, } from "./scroll-container/ScrollContainer";
120
119
  export { ScrollContainer } from "./scroll-container/ScrollContainer";
121
120
  export type { SegmentedControlCountProps, SegmentedControlDescriptionProps, SegmentedControlIconProps, SegmentedControlItemProps, SegmentedControlLabelProps, SegmentedControlLabels, SegmentedControlRootProps, } from "./segmented-control/SegmentedControl";
@@ -1,4 +1,5 @@
1
1
  import * as React from "react";
2
+ import type { HintTone } from "../hint/Hint";
2
3
  import { type FieldActionButtonProps } from "../../internal/FieldAction";
3
4
  import { type FieldCommitHandler } from "../../internal/FieldCommit";
4
5
  import { type FieldFocusRingProps, type FieldRootDomProps } from "../../internal/FieldFrame";
@@ -32,6 +33,11 @@ export type InputLabels = {
32
33
  strengthHard: string;
33
34
  };
34
35
  export declare const INPUT_LABELS: InputLabels;
36
+ /**
37
+ * Inside `Input.Wrapper`: a Select there drops its own frame and draws its trigger as the box's
38
+ * start segment, so the pick and the text read as one field.
39
+ */
40
+ export declare const InputSegmentContext: React.Context<boolean>;
35
41
  export type InputRootProps = FieldRootDomProps & FieldFocusRingProps & {
36
42
  /**
37
43
  * Tier for height, padding, radius, text, label and hint. Without it the field takes the tier of its host (LoginForm, Popover, a panel with a size), else `m`. Also provided to nested controls via the control-size context.
@@ -57,6 +63,10 @@ export type InputRootProps = FieldRootDomProps & FieldFocusRingProps & {
57
63
  * Help text under the field. Hidden while `error` is shown.
58
64
  */
59
65
  hint?: React.ReactNode;
66
+ /**
67
+ * Status color of `hint` («Осталось 12 дней» in `warning`). The words carry the status, the color repeats it; an `error` replaces the hint and its tone. A validation error is `error`, never a `danger` hint.
68
+ */
69
+ hintTone?: HintTone;
60
70
  /**
61
71
  * Error message in the hint slot; implies `invalid`.
62
72
  */
@@ -85,6 +95,18 @@ export type InputRootProps = FieldRootDomProps & FieldFocusRingProps & {
85
95
  * Inline save: fires with a changed value on blur and Enter; Escape reverts. Return a Promise: the field shows a spinner and stays editable; a rejection restores the value — show why through `error`.
86
96
  */
87
97
  onCommit?: FieldCommitHandler;
98
+ /**
99
+ * Suggestions for free text (a combobox): a list under the box shows those containing the text; a pick goes into the field as typing would. Any text stays allowed; a value from a list only is `Select`.
100
+ */
101
+ suggestions?: readonly string[];
102
+ /**
103
+ * Escape closes the `suggestions` list; the text and the focus stay in the field.
104
+ */
105
+ closeOnEscape?: boolean;
106
+ /**
107
+ * A press outside the field and the `suggestions` list closes the list.
108
+ */
109
+ closeOnOutsideClick?: boolean;
88
110
  /**
89
111
  * Built-in strings, see Labels.
90
112
  */
@@ -94,7 +116,7 @@ export type InputRootProps = FieldRootDomProps & FieldFocusRingProps & {
94
116
  */
95
117
  children: React.ReactNode;
96
118
  };
97
- declare function InputRoot({ size: sizeProp, invalid, focusRing, label, required, optional, hint, error, counter, reserveSupportRow, id, strength, getStrength, onCommit, labels: labelsProp, children, className, ...rest }: InputRootProps): import("react/jsx-runtime").JSX.Element;
119
+ declare function InputRoot({ size: sizeProp, invalid, focusRing, label, required, optional, hint, hintTone, error, counter, reserveSupportRow, id, strength, getStrength, onCommit, suggestions, closeOnEscape, closeOnOutsideClick, labels: labelsProp, children, className, ...rest }: InputRootProps): import("react/jsx-runtime").JSX.Element;
98
120
  declare namespace InputRoot {
99
121
  var displayName: string;
100
122
  }
@@ -105,7 +127,7 @@ export type InputWrapperProps = React.HTMLAttributes<HTMLDivElement> & {
105
127
  children: React.ReactNode;
106
128
  ref?: React.Ref<HTMLDivElement>;
107
129
  };
108
- declare function InputWrapper({ children, className, ...rest }: InputWrapperProps): import("react/jsx-runtime").JSX.Element;
130
+ declare function InputWrapper({ children, className, ref, ...rest }: InputWrapperProps): import("react/jsx-runtime").JSX.Element;
109
131
  declare namespace InputWrapper {
110
132
  var displayName: string;
111
133
  }
@@ -117,7 +139,7 @@ export type InputFieldProps = Omit<React.InputHTMLAttributes<HTMLInputElement>,
117
139
  ref?: React.Ref<HTMLInputElement>;
118
140
  };
119
141
  /** The `<input>`; its id comes from `Input.Root` so the label, hint and error stay linked. */
120
- declare function InputField({ className, "aria-describedby": ariaDescribedBy, required, disabled: disabledProp, type, onChange, onValueChange, onFocus, onBlur, onKeyDown, ref, ...rest }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
142
+ declare function InputField({ className, "aria-describedby": ariaDescribedBy, required, disabled: disabledProp, type, onChange, onValueChange, onFocus, onBlur, onKeyDown, onClick, ref, ...rest }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
121
143
  declare namespace InputField {
122
144
  var displayName: string;
123
145
  }
@@ -147,7 +169,7 @@ export type InputAffixProps = Omit<React.HTMLAttributes<HTMLDivElement>, "childr
147
169
  children: React.ReactNode;
148
170
  ref?: React.Ref<HTMLDivElement>;
149
171
  };
150
- declare function InputAffix({ side, children, className, ...rest }: InputAffixProps): import("react/jsx-runtime").JSX.Element;
172
+ declare function InputAffix({ side, children, className, id, "aria-label": spokenText, ...rest }: InputAffixProps): import("react/jsx-runtime").JSX.Element;
151
173
  declare namespace InputAffix {
152
174
  var displayName: string;
153
175
  }
@@ -162,7 +184,7 @@ export type InputInlineAffixProps = Omit<React.HTMLAttributes<HTMLSpanElement>,
162
184
  children: React.ReactNode;
163
185
  ref?: React.Ref<HTMLSpanElement>;
164
186
  };
165
- declare function InputInlineAffix({ side, children, className, ...rest }: InputInlineAffixProps): import("react/jsx-runtime").JSX.Element;
187
+ declare function InputInlineAffix({ side, children, className, id, "aria-label": spokenText, ...rest }: InputInlineAffixProps): import("react/jsx-runtime").JSX.Element;
166
188
  declare namespace InputInlineAffix {
167
189
  var displayName: string;
168
190
  }
@@ -0,0 +1,39 @@
1
+ import * as React from "react";
2
+ import { type Store } from "../../internal/listbox";
3
+ import type { ControlSize } from "../../internal/states";
4
+ /** The suggestion list of a free-text field (`Input.Root suggestions`): a combobox. */
5
+ export type InputSuggestions = {
6
+ listboxId: string;
7
+ /** The name of the list: the field's label. */
8
+ labelledBy: string | undefined;
9
+ closeOnEscape: boolean;
10
+ closeOnOutsideClick: boolean;
11
+ /** The field box: the panel's anchor, as wide as it. */
12
+ anchorRef: React.RefObject<HTMLDivElement | null>;
13
+ matches: string[];
14
+ query: string;
15
+ shown: boolean;
16
+ highlight: Store<string | undefined>;
17
+ setOpen: (open: boolean) => void;
18
+ pick: (item: string) => void;
19
+ /** The input's combobox attributes and handlers, run after the consumer's. */
20
+ onInput: (value: string) => void;
21
+ onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
22
+ onClick: () => void;
23
+ onBlur: () => void;
24
+ };
25
+ /**
26
+ * Suggestions under a free-text field: the field keeps the focus and its text is the value; the
27
+ * list shows the suggestions that contain the text, the arrows move a virtual highlight
28
+ * (`aria-activedescendant`), Enter or a press puts the highlighted one into the field (as typing
29
+ * would), Escape closes the list. `null` without suggestions.
30
+ */
31
+ export declare function useInputSuggestions(items: readonly string[] | undefined, inputRef: React.RefObject<HTMLInputElement | null>, listboxId: string, labelledBy: string | undefined, { closeOnEscape, closeOnOutsideClick }: {
32
+ closeOnEscape: boolean;
33
+ closeOnOutsideClick: boolean;
34
+ }): InputSuggestions | null;
35
+ /** The floating list of an `Input.Root` with `suggestions`, anchored to the field box. */
36
+ export declare function InputSuggestionList({ suggest, size, }: {
37
+ suggest: InputSuggestions;
38
+ size: ControlSize;
39
+ }): import("react/jsx-runtime").JSX.Element;
@@ -126,9 +126,9 @@ export type KanbanRootProps<T> = Omit<React.HTMLAttributes<HTMLDivElement>, "chi
126
126
  */
127
127
  renderColumnActions?: (column: KanbanColumn) => React.ReactNode;
128
128
  /**
129
- * The meta line under a column's title and description: the stage's figures («12 сделок · 4,8 млн ₽»). Like `description`, it describes the column's list.
129
+ * The meta under a column's title and description: the stage's figures («12 сделок · 4,8 млн ₽»); an array is a line per entry, in order. Describes the column's list.
130
130
  */
131
- renderColumnMeta?: (column: KanbanColumn) => React.ReactNode;
131
+ renderColumnMeta?: (column: KanbanColumn) => React.ReactNode | readonly React.ReactNode[];
132
132
  /**
133
133
  * A workflow rule: refuses card `id` in column `columnId` — `false`, or a string that says why (spoken and shown under the carried card). The column turns `danger` before the release.
134
134
  */
@@ -151,11 +151,6 @@ export type KanbanRootProps<T> = Omit<React.HTMLAttributes<HTMLDivElement>, "chi
151
151
  labels?: Partial<KanbanLabels>;
152
152
  ref?: React.Ref<HTMLDivElement>;
153
153
  };
154
- /**
155
- * A board of columns: cards move within and between columns by pointer, touch (a hold) and
156
- * keyboard (Alt + arrows, Dnd's linked lists). Its `Dnd.Root` joins a drag session already above
157
- * it.
158
- */
159
154
  declare function KanbanRoot<T>(props: KanbanRootProps<T>): import("react/jsx-runtime").JSX.Element;
160
155
  declare namespace KanbanRoot {
161
156
  var displayName: string;
@@ -206,8 +201,8 @@ declare namespace KanbanItemDescription {
206
201
  export type KanbanItemBadgesProps = React.HTMLAttributes<HTMLDivElement> & {
207
202
  ref?: React.Ref<HTMLDivElement>;
208
203
  };
209
- /** A wrapping row of `Badge`s: labels, priority. */
210
- declare function KanbanItemBadges({ className, ...rest }: KanbanItemBadgesProps): import("react/jsx-runtime").JSX.Element;
204
+ /** A wrapping row of `Badge`s: labels, priority (a `Badge.Group`). */
205
+ declare function KanbanItemBadges(props: KanbanItemBadgesProps): import("react/jsx-runtime").JSX.Element;
211
206
  declare namespace KanbanItemBadges {
212
207
  var displayName: string;
213
208
  }
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import type { ControlSize, PaletteColor } from "../../internal/states";
2
+ import { type ControlSize, type PaletteColor } from "../../internal/states";
3
3
  export type ListLabels = {
4
4
  /** `aria-label` of a row's drag handle (`onReorder`); `{label}` is the row's text. */
5
5
  reorderItem: string;
@@ -35,14 +35,15 @@ declare namespace ListRoot {
35
35
  }
36
36
  export type ListItemIconProps = Omit<React.HTMLAttributes<HTMLSpanElement>, "children"> & {
37
37
  /**
38
- * An `Avatar.Root` or an `Icon`.
38
+ * An `Avatar.Root`, an `Icon`, or a `Badge.Dot` with `color` (a stage, a project): the large dot.
39
39
  */
40
40
  children: React.ReactNode;
41
41
  ref?: React.Ref<HTMLSpanElement>;
42
42
  };
43
43
  /**
44
- * The leading picture of a row: an avatar of the row tier, or an icon. After the text it is a
45
- * quiet trailing glyph. Decorative: the text names the row.
44
+ * The leading picture of a row: an avatar of the row tier, an icon, or a colour dot
45
+ * (`Badge.Dot color`) in a box as wide as an icon, so the rows' text lines up. After the text it is
46
+ * a quiet trailing glyph. Decorative: the text names the row.
46
47
  */
47
48
  declare function ListItemIcon({ className, children, ...rest }: ListItemIconProps): import("react/jsx-runtime").JSX.Element;
48
49
  declare namespace ListItemIcon {
@@ -88,6 +89,18 @@ declare function ListItemCount({ color, className, ...rest }: ListItemCountProps
88
89
  declare namespace ListItemCount {
89
90
  var displayName: string;
90
91
  }
92
+ export type ListItemActionsProps = React.HTMLAttributes<HTMLDivElement> & {
93
+ ref?: React.Ref<HTMLDivElement>;
94
+ };
95
+ /**
96
+ * The row's own controls (a Switch, a Dropdown with its icon Button, an icon Button): at the end of
97
+ * the row, beside its button or link and never inside it, one tier below the row. The row's fills
98
+ * cover them.
99
+ */
100
+ declare function ListItemActions({ className, ...rest }: ListItemActionsProps): import("react/jsx-runtime").JSX.Element;
101
+ declare namespace ListItemActions {
102
+ var displayName: string;
103
+ }
91
104
  type ListItemOwnProps = {
92
105
  /**
93
106
  * Stable id of the row; required in a reorderable list (`onReorder` reports it).
@@ -106,7 +119,7 @@ type ListItemOwnProps = {
106
119
  */
107
120
  asChild?: boolean;
108
121
  /**
109
- * `List.ItemIcon`, `List.ItemText`, `List.ItemDescription`, `List.ItemMeta`, `List.ItemCount`; loose text becomes the text line.
122
+ * `List.ItemIcon`, `List.ItemText`, `List.ItemDescription`, `List.ItemMeta`, `List.ItemCount`, `List.ItemActions`; loose text becomes the text line.
110
123
  */
111
124
  children?: React.ReactNode;
112
125
  };
@@ -138,5 +151,6 @@ export declare const List: {
138
151
  ItemDescription: typeof ListItemDescription;
139
152
  ItemMeta: typeof ListItemMeta;
140
153
  ItemCount: typeof ListItemCount;
154
+ ItemActions: typeof ListItemActions;
141
155
  };
142
156
  export {};
@@ -4,6 +4,7 @@ import { MessageContact, MessageLinkPreview, MessageLocation } from "./MessageCa
4
4
  import { MessageFile } from "./MessageFile";
5
5
  import { MessageMedia } from "./MessageMedia";
6
6
  import { MessageAuthor, MessageAuthorIcon, MessageAvatar, MessageForwarded, type MessageLabels, MessageMenu, MessageReactions, MessageReply, MessageText } from "./MessageParts";
7
+ import { MessageSticker } from "./MessageSticker";
7
8
  import { MessageTyping } from "./MessageTyping";
8
9
  import type { MessageDirection, MessagePosition } from "./types";
9
10
  export type { MessageAuthorIconProps, MessageAuthorProps, MessageAvatarProps, MessageForwardedLabels, MessageForwardedProps, MessageLabels, MessageMenuProps, MessageReaction, MessageReactionsLabels, MessageReactionsProps, MessageReplyLabels, MessageReplyProps, MessageTextProps, } from "./MessageParts";
@@ -50,9 +51,13 @@ export type MessageRootProps = Omit<React.HTMLAttributes<HTMLElement>, "role"> &
50
51
  */
51
52
  time?: Date | string;
52
53
  /**
53
- * Display of a `Date` time.
54
+ * The IANA zone the time is read in (`"Asia/Vladivostok"`): a profile's zone, not the browser's.
54
55
  */
55
- formatTime?: (date: Date) => string;
56
+ timeZone?: string;
57
+ /**
58
+ * Display of a `Date` time; gets the `timeZone` in force.
59
+ */
60
+ formatTime?: (date: Date, timeZone?: string) => string;
56
61
  /**
57
62
  * The text was edited: `labels.edited` before the time.
58
63
  */
@@ -61,6 +66,10 @@ export type MessageRootProps = Omit<React.HTMLAttributes<HTMLElement>, "role"> &
61
66
  * Delivery of an outgoing message: a clock, one check, two checks (accent), or a danger mark; the glyphs cross-fade from one state to the next. Named for assistive tech by `labels`.
62
67
  */
63
68
  status?: MessageStatus;
69
+ /**
70
+ * A picture of the message outside a chat (a bot's settings): no menu, reactions, retry or row focus, `Message.Actions` inert; links and players still work.
71
+ */
72
+ preview?: boolean;
64
73
  /**
65
74
  * Sends a failed message again: a ghost danger button beside the bubble. A returned promise shows `sending` until it settles; a rejection leaves it failed.
66
75
  */
@@ -82,8 +91,10 @@ export type MessageRootProps = Omit<React.HTMLAttributes<HTMLElement>, "role"> &
82
91
  * reactions row, a transcript) is a disclosure that glides in layout. The row is a `role="article"`
83
92
  * named «{author}, {time}» (an `option` in selection mode); right click, a long press, Enter or
84
93
  * Shift+F10 open `Message.Menu` where the pointer is; a double tap puts the chat's quick reaction.
94
+ * A `preview` is the same message as a picture of itself: no menu, reactions, retry or row focus,
95
+ * its inline keyboard inert; its content (links, players, spoilers) still works.
85
96
  */
86
- declare function MessageRoot({ value: valueProp, direction, position, time: timeProp, formatTime, edited, status, onRetry, onReactionToggle, labels: labelsProp, className, style, children, onContextMenu, onKeyDown, onPointerDown, onMouseDown, onClick, onDoubleClick, "aria-label": ariaLabel, ref, ...rest }: MessageRootProps): import("react/jsx-runtime").JSX.Element;
97
+ declare function MessageRoot({ value: valueProp, direction, position, time: timeProp, timeZone: timeZoneProp, formatTime, edited, status, preview, onRetry, onReactionToggle, labels: labelsProp, className, style, children, onContextMenu, onKeyDown, onPointerDown, onMouseDown, onClick, onDoubleClick, "aria-label": ariaLabel, ref, ...rest }: MessageRootProps): import("react/jsx-runtime").JSX.Element;
87
98
  declare namespace MessageRoot {
88
99
  var displayName: string;
89
100
  }
@@ -100,6 +111,7 @@ export declare const Message: {
100
111
  Location: typeof MessageLocation;
101
112
  Contact: typeof MessageContact;
102
113
  LinkPreview: typeof MessageLinkPreview;
114
+ Sticker: typeof MessageSticker;
103
115
  Reactions: typeof MessageReactions;
104
116
  Actions: typeof MessageActions;
105
117
  Menu: typeof MessageMenu;
@@ -0,0 +1,27 @@
1
+ import * as React from "react";
2
+ export type MessageStickerProps = Omit<React.HTMLAttributes<HTMLDivElement>, "role" | "aria-label"> & {
3
+ /**
4
+ * A still or animated picture (webp, gif, apng), decoded before it shows. Without it the children are the sticker.
5
+ */
6
+ src?: string;
7
+ /**
8
+ * Your player in the children is not ready yet: the `Skeleton` stays over the box.
9
+ */
10
+ loading?: boolean;
11
+ /**
12
+ * The sticker's name («Стикер «Класс»», or its emoji); shown in its box when `src` fails.
13
+ */
14
+ "aria-label": string;
15
+ ref?: React.Ref<HTMLDivElement>;
16
+ };
17
+ /**
18
+ * A sticker: a square picture with no bubble, the meta on a pill over its corner. The kit draws a
19
+ * still or animated image from `src` (webp, gif, apng); any other format — a Lottie (.tgs) or a
20
+ * video sticker — is the consumer's own player as children, which the sticker sizes to its box
21
+ * (the kit has no runtime dependencies). A `Skeleton` holds the box until the picture is decoded
22
+ * or `loading` ends, then fades out; a picture that fails shows its name instead.
23
+ */
24
+ export declare function MessageSticker({ src, loading, className, children, "aria-label": ariaLabel, ref, ...rest }: MessageStickerProps): import("react/jsx-runtime").JSX.Element;
25
+ export declare namespace MessageSticker {
26
+ var displayName: string;
27
+ }
@@ -1,2 +1,5 @@
1
- /** «09:05»: hours and minutes, 24-hour — the default `Message.Root formatTime`. */
2
- export declare function formatMessageTime(date: Date): string;
1
+ /**
2
+ * «09:05»: hours and minutes, 24-hour, in `timeZone` or the browser's zone — the default
3
+ * `Message.Root formatTime`.
4
+ */
5
+ export declare function formatMessageTime(date: Date, timeZone?: string): string;
@@ -1,8 +1,8 @@
1
1
  import { DialogGuard } from "../../internal/overlay/DialogGuard";
2
- import { DialogActions, DialogBody, DialogClose, DialogConfirm, DialogDescription, DialogFooter, DialogHeader, DialogIcon, DialogMeta, DialogTitle, DialogTrigger } from "../../internal/overlay/DialogParts";
2
+ import { DialogActions, DialogBody, DialogClose, DialogConfirm, DialogDescription, DialogFooter, DialogHeader, DialogIcon, DialogMeta, DialogSection, DialogTitle, DialogTrigger } from "../../internal/overlay/DialogParts";
3
3
  import { ModalContent, ModalRoot } from "../../internal/overlay/ModalDialog";
4
4
  export type { DialogGuardProps as ModalGuardProps } from "../../internal/overlay/DialogGuard";
5
- export type { DialogActionsProps as ModalActionsProps, DialogBodyProps as ModalBodyProps, DialogCloseProps as ModalCloseProps, DialogConfirmProps as ModalConfirmProps, DialogDescriptionProps as ModalDescriptionProps, DialogFooterProps as ModalFooterProps, DialogHeaderProps as ModalHeaderProps, DialogIconProps as ModalIconProps, DialogMetaProps as ModalMetaProps, DialogTitleProps as ModalTitleProps, DialogTriggerProps as ModalTriggerProps, } from "../../internal/overlay/DialogParts";
5
+ export type { DialogActionsProps as ModalActionsProps, DialogBodyProps as ModalBodyProps, DialogCloseProps as ModalCloseProps, DialogConfirmProps as ModalConfirmProps, DialogDescriptionProps as ModalDescriptionProps, DialogFooterProps as ModalFooterProps, DialogHeaderProps as ModalHeaderProps, DialogIconProps as ModalIconProps, DialogMetaProps as ModalMetaProps, DialogSectionProps as ModalSectionProps, DialogTitleProps as ModalTitleProps, DialogTriggerProps as ModalTriggerProps, } from "../../internal/overlay/DialogParts";
6
6
  export type { ModalContentProps, ModalLabels, ModalPlacement, ModalRootProps, } from "../../internal/overlay/ModalDialog";
7
7
  export declare const Modal: {
8
8
  Root: typeof ModalRoot;
@@ -14,6 +14,7 @@ export declare const Modal: {
14
14
  Description: typeof DialogDescription;
15
15
  Actions: typeof DialogActions;
16
16
  Body: typeof DialogBody;
17
+ Section: typeof DialogSection;
17
18
  Footer: typeof DialogFooter;
18
19
  Meta: typeof DialogMeta;
19
20
  Close: typeof DialogClose;
@@ -37,7 +37,7 @@ export type NativeSelectProps = FieldFrameProps & FieldFocusRingProps & Omit<Rea
37
37
  * The system `<select>` in the field look: the OS picker opens on touch devices. Options are
38
38
  * plain `<option>` / `<optgroup>` elements.
39
39
  */
40
- export declare function NativeSelect({ size: sizeProp, label, required, optional, hint, error, invalid, focusRing, disabled: disabledProp, placeholder, id, value, defaultValue, onChange, onValueChange, labels: labelsProp, className, children, "aria-describedby": ariaDescribedBy, ...rest }: NativeSelectProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
40
+ export declare function NativeSelect({ size: sizeProp, label, required, optional, hint, hintTone, error, invalid, focusRing, disabled: disabledProp, placeholder, id, value, defaultValue, onChange, onValueChange, labels: labelsProp, className, children, "aria-describedby": ariaDescribedBy, ...rest }: NativeSelectProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
41
41
  export declare namespace NativeSelect {
42
42
  var displayName: string;
43
43
  }