prime-ui-kit 0.17.0 → 0.19.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 (286) hide show
  1. package/README.md +2 -1
  2. package/dist/chunks/{chunk-PRP4B6OG.js → chunk-IVS3J7AS.js} +1 -1
  3. package/dist/chunks/{chunk-2ODXLPW3.js → chunk-QFHE5GKW.js} +1 -0
  4. package/dist/chunks/{chunk-7WWZYGRC.js → chunk-RZNGLELR.js} +4497 -3896
  5. package/dist/chunks/{chunk-A4WE3UNC.js → chunk-WYCTXD63.js} +18399 -17624
  6. package/dist/chunks/{chunk-SVFWPLNW.js → chunk-ZTZ2ML2B.js} +14 -3
  7. package/dist/color-picker.js +3 -3
  8. package/dist/components/badge/Badge.d.ts +17 -0
  9. package/dist/components/breadcrumb/Breadcrumb.d.ts +11 -2
  10. package/dist/components/button/Button.d.ts +1 -1
  11. package/dist/components/button-group/ButtonGroup.d.ts +1 -1
  12. package/dist/components/card/Card.d.ts +8 -4
  13. package/dist/components/chat/Chat.d.ts +3 -3
  14. package/dist/components/chat/MessageList.d.ts +5 -1
  15. package/dist/components/chat/groupMessages.d.ts +12 -4
  16. package/dist/components/chat-list/ChatList.d.ts +18 -9
  17. package/dist/components/chat-list/formatChatTime.d.ts +3 -3
  18. package/dist/components/checkbox/Checkbox.d.ts +6 -1
  19. package/dist/components/color-field/ColorField.d.ts +1 -1
  20. package/dist/components/color-picker/ColorPicker.d.ts +6 -1
  21. package/dist/components/color-picker/ColorPresets.d.ts +9 -1
  22. package/dist/components/crossfade/Crossfade.d.ts +1 -1
  23. package/dist/components/data-table/ColumnsMenu.d.ts +16 -20
  24. package/dist/components/data-table/DataTable.d.ts +16 -11
  25. package/dist/components/data-table/Head.d.ts +10 -1
  26. package/dist/components/data-table/Row.d.ts +7 -1
  27. package/dist/components/data-table/StateRows.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 +24 -12
  32. package/dist/components/hint/Hint.d.ts +8 -2
  33. package/dist/components/index.d.ts +7 -4
  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 +8 -9
  37. package/dist/components/list/List.d.ts +25 -6
  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/radio/Radio.d.ts +11 -2
  44. package/dist/components/rich-text/RichText.d.ts +23 -0
  45. package/dist/components/scroll-container/ScrollContainer.d.ts +1 -1
  46. package/dist/components/scroll-container/scrollGlide.d.ts +26 -0
  47. package/dist/components/scroll-container/useScrollMotion.d.ts +25 -0
  48. package/dist/components/segmented-control/SegmentedControl.d.ts +1 -1
  49. package/dist/components/select/selectContext.d.ts +7 -0
  50. package/dist/components/slider/Slider.d.ts +1 -1
  51. package/dist/components/switch/Switch.d.ts +6 -1
  52. package/dist/components/tag-select/TagSelect.d.ts +1 -1
  53. package/dist/components/textarea/Textarea.d.ts +6 -1
  54. package/dist/components/timeline/Timeline.d.ts +1 -1
  55. package/dist/icon-set.js +2 -2
  56. package/dist/index.css +1 -1
  57. package/dist/index.js +5 -3
  58. package/dist/internal/ChoiceField.d.ts +3 -1
  59. package/dist/internal/FieldFrame.d.ts +8 -2
  60. package/dist/internal/fieldCell.d.ts +7 -1
  61. package/dist/internal/formatClock.d.ts +23 -2
  62. package/dist/internal/leaveGuard.d.ts +27 -0
  63. package/dist/internal/messageList.d.ts +2 -0
  64. package/dist/internal/overlay/DialogGuard.d.ts +3 -2
  65. package/dist/internal/overlay/DialogParts.d.ts +40 -6
  66. package/dist/internal/swatch.d.ts +5 -0
  67. package/dist/internal/tokenDefaults.d.ts +1 -0
  68. package/dist/layout/index.d.ts +1 -1
  69. package/dist/layout/page/Page.d.ts +48 -15
  70. package/dist/skill/anti-slop.md +28 -0
  71. package/dist/skill/api-contract.md +14 -7
  72. package/dist/skill/cheatsheet.md +28 -9
  73. package/dist/skill/checklist.md +9 -0
  74. package/dist/skill/choosing.md +25 -12
  75. package/dist/skill/components.md +1 -0
  76. package/dist/skill/composition.md +88 -16
  77. package/dist/skill/layouts.md +6 -4
  78. package/dist/skill/reference/components/badge/COMPONENT.md +14 -1
  79. package/dist/skill/reference/components/badge/examples/examples.module.css +7 -0
  80. package/dist/skill/reference/components/badge/examples/tag-row.tsx +34 -0
  81. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +9 -4
  82. package/dist/skill/reference/components/breadcrumb/examples/router.tsx +17 -0
  83. package/dist/skill/reference/components/button/COMPONENT.md +1 -1
  84. package/dist/skill/reference/components/button-group/COMPONENT.md +1 -0
  85. package/dist/skill/reference/components/card/COMPONENT.md +7 -1
  86. package/dist/skill/reference/components/card/examples/states.tsx +59 -0
  87. package/dist/skill/reference/components/chat/COMPONENT.md +4 -1
  88. package/dist/skill/reference/components/chat/examples/time-zone.tsx +83 -0
  89. package/dist/skill/reference/components/chat-list/COMPONENT.md +12 -6
  90. package/dist/skill/reference/components/chat-list/examples/links.tsx +1 -1
  91. package/dist/skill/reference/components/chat-list/examples/router.tsx +63 -0
  92. package/dist/skill/reference/components/checkbox/COMPONENT.md +1 -0
  93. package/dist/skill/reference/components/color-field/COMPONENT.md +2 -1
  94. package/dist/skill/reference/components/color-picker/COMPONENT.md +14 -5
  95. package/dist/skill/reference/components/color-picker/examples/presets-custom.tsx +31 -0
  96. package/dist/skill/reference/components/color-swatches/COMPONENT.md +1 -0
  97. package/dist/skill/reference/components/confirm-dialog/COMPONENT.md +1 -1
  98. package/dist/skill/reference/components/crossfade/COMPONENT.md +1 -1
  99. package/dist/skill/reference/components/data-table/COMPONENT.md +46 -41
  100. package/dist/skill/reference/components/data-table/examples/actions-column.tsx +154 -0
  101. package/dist/skill/reference/components/data-table/examples/columns-visibility.tsx +3 -12
  102. package/dist/skill/reference/components/data-table/examples/controlled.tsx +1 -1
  103. package/dist/skill/reference/components/data-table/examples/narrow.tsx +4 -11
  104. package/dist/skill/reference/components/data-table/examples/numeric.tsx +9 -2
  105. package/dist/skill/reference/components/data-table/examples/row-link.tsx +18 -22
  106. package/dist/skill/reference/components/data-table/examples/screen.tsx +12 -1
  107. package/dist/skill/reference/components/data-table/examples/toolbar.tsx +26 -32
  108. package/dist/skill/reference/components/datepicker/COMPONENT.md +3 -1
  109. package/dist/skill/reference/components/datepicker/examples/deadline.tsx +33 -0
  110. package/dist/skill/reference/components/digit-input/COMPONENT.md +1 -0
  111. package/dist/skill/reference/components/dnd/COMPONENT.md +4 -3
  112. package/dist/skill/reference/components/dnd/examples/examples.module.css +4 -3
  113. package/dist/skill/reference/components/dnd/examples/handle.tsx +5 -5
  114. package/dist/skill/reference/components/dnd/examples/locked.tsx +1 -1
  115. package/dist/skill/reference/components/dnd/examples/table.tsx +6 -6
  116. package/dist/skill/reference/components/drawer/COMPONENT.md +38 -9
  117. package/dist/skill/reference/components/drawer/examples/client-card.tsx +32 -8
  118. package/dist/skill/reference/components/drawer/examples/header-actions.tsx +1 -1
  119. package/dist/skill/reference/components/drawer/examples/loading.tsx +58 -0
  120. package/dist/skill/reference/components/field-list/COMPONENT.md +40 -24
  121. package/dist/skill/reference/components/field-list/examples/base-row.tsx +2 -1
  122. package/dist/skill/reference/components/field-list/examples/locked.tsx +11 -11
  123. package/dist/skill/reference/components/field-list/examples/reorder.tsx +1 -1
  124. package/dist/skill/reference/components/field-list/examples/saving.tsx +83 -0
  125. package/dist/skill/reference/components/field-list/examples/screen.module.css +1 -1
  126. package/dist/skill/reference/components/field-list/examples/screen.tsx +168 -162
  127. package/dist/skill/reference/components/field-list/examples/totals.tsx +83 -0
  128. package/dist/skill/reference/components/file-upload/COMPONENT.md +1 -0
  129. package/dist/skill/reference/components/hint/COMPONENT.md +16 -2
  130. package/dist/skill/reference/components/hint/examples/variants.tsx +48 -0
  131. package/dist/skill/reference/components/input/COMPONENT.md +39 -9
  132. package/dist/skill/reference/components/input/examples/affixes.tsx +4 -2
  133. package/dist/skill/reference/components/input/examples/dismiss.tsx +29 -0
  134. package/dist/skill/reference/components/input/examples/suggestions.tsx +26 -0
  135. package/dist/skill/reference/components/input/examples/time.tsx +24 -0
  136. package/dist/skill/reference/components/input/examples/with-select.tsx +44 -0
  137. package/dist/skill/reference/components/kanban/COMPONENT.md +12 -8
  138. package/dist/skill/reference/components/kanban/examples/columns.tsx +4 -2
  139. package/dist/skill/reference/components/kanban/examples/states.tsx +7 -5
  140. package/dist/skill/reference/components/list/COMPONENT.md +39 -13
  141. package/dist/skill/reference/components/list/examples/reorder.tsx +42 -7
  142. package/dist/skill/reference/components/list/examples/row-controls.tsx +80 -0
  143. package/dist/skill/reference/components/list/examples/with-icon.tsx +23 -2
  144. package/dist/skill/reference/components/login-form/COMPONENT.md +8 -7
  145. package/dist/skill/reference/components/login-form/examples/states.tsx +12 -14
  146. package/dist/skill/reference/components/message/COMPONENT.md +30 -9
  147. package/dist/skill/reference/components/message/examples/preview.tsx +28 -0
  148. package/dist/skill/reference/components/message/examples/sticker.tsx +35 -0
  149. package/dist/skill/reference/components/modal/COMPONENT.md +35 -10
  150. package/dist/skill/reference/components/modal/examples/long-content.tsx +37 -18
  151. package/dist/skill/reference/components/native-select/COMPONENT.md +1 -0
  152. package/dist/skill/reference/components/notification/COMPONENT.md +1 -1
  153. package/dist/skill/reference/components/radio/COMPONENT.md +2 -0
  154. package/dist/skill/reference/components/rich-text/COMPONENT.md +93 -0
  155. package/dist/skill/reference/components/rich-text/examples/overview.tsx +19 -0
  156. package/dist/skill/reference/components/scroll-container/COMPONENT.md +8 -5
  157. package/dist/skill/reference/components/segmented-control/COMPONENT.md +4 -2
  158. package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +1 -1
  159. package/dist/skill/reference/components/select/COMPONENT.md +7 -3
  160. package/dist/skill/reference/components/sheet/COMPONENT.md +18 -7
  161. package/dist/skill/reference/components/slider/COMPONENT.md +1 -0
  162. package/dist/skill/reference/components/slider/examples/controlled.tsx +1 -1
  163. package/dist/skill/reference/components/switch/COMPONENT.md +1 -0
  164. package/dist/skill/reference/components/tag-select/COMPONENT.md +1 -0
  165. package/dist/skill/reference/components/textarea/COMPONENT.md +1 -0
  166. package/dist/skill/reference/components/timeline/COMPONENT.md +3 -3
  167. package/dist/skill/reference/components/timeline/examples/structure.tsx +2 -1
  168. package/dist/skill/reference/layout/app-shell/COMPONENT.md +2 -2
  169. package/dist/skill/reference/layout/bottom-nav/COMPONENT.md +1 -0
  170. package/dist/skill/reference/layout/page/COMPONENT.md +42 -20
  171. package/dist/skill/reference/layout/page/examples/examples.module.css +7 -0
  172. package/dist/skill/reference/layout/page/examples/guard.tsx +87 -0
  173. package/dist/skill/reference/layout/page/examples/loading.tsx +57 -0
  174. package/dist/skill/reference/layout/page/examples/screen.module.css +1 -1
  175. package/dist/skill/reference/layout/page/examples/screen.tsx +93 -104
  176. package/dist/skill/reference/layout/page/examples/sections.tsx +2 -15
  177. package/dist/skill/reference/layout/sidebar/COMPONENT.md +1 -0
  178. package/dist/skill/responsive.md +19 -12
  179. package/dist/skill/ux.md +5 -3
  180. package/dist/tokens/semantic.d.ts +3 -1
  181. package/dist/tokens/themes/dark.d.ts +1 -1
  182. package/package.json +2 -2
  183. package/src/components/badge/COMPONENT.md +14 -1
  184. package/src/components/badge/examples/examples.module.css +7 -0
  185. package/src/components/badge/examples/tag-row.tsx +34 -0
  186. package/src/components/breadcrumb/COMPONENT.md +9 -4
  187. package/src/components/breadcrumb/examples/router.tsx +17 -0
  188. package/src/components/button/COMPONENT.md +1 -1
  189. package/src/components/button-group/COMPONENT.md +1 -0
  190. package/src/components/card/COMPONENT.md +7 -1
  191. package/src/components/card/examples/states.tsx +59 -0
  192. package/src/components/chat/COMPONENT.md +4 -1
  193. package/src/components/chat/examples/time-zone.tsx +83 -0
  194. package/src/components/chat-list/COMPONENT.md +12 -6
  195. package/src/components/chat-list/examples/links.tsx +1 -1
  196. package/src/components/chat-list/examples/router.tsx +63 -0
  197. package/src/components/checkbox/COMPONENT.md +1 -0
  198. package/src/components/color-field/COMPONENT.md +2 -1
  199. package/src/components/color-picker/COMPONENT.md +14 -5
  200. package/src/components/color-picker/examples/presets-custom.tsx +31 -0
  201. package/src/components/color-swatches/COMPONENT.md +1 -0
  202. package/src/components/confirm-dialog/COMPONENT.md +1 -1
  203. package/src/components/crossfade/COMPONENT.md +1 -1
  204. package/src/components/data-table/COMPONENT.md +46 -41
  205. package/src/components/data-table/examples/actions-column.tsx +154 -0
  206. package/src/components/data-table/examples/columns-visibility.tsx +3 -12
  207. package/src/components/data-table/examples/controlled.tsx +1 -1
  208. package/src/components/data-table/examples/narrow.tsx +4 -11
  209. package/src/components/data-table/examples/numeric.tsx +9 -2
  210. package/src/components/data-table/examples/row-link.tsx +18 -22
  211. package/src/components/data-table/examples/screen.tsx +12 -1
  212. package/src/components/data-table/examples/toolbar.tsx +26 -32
  213. package/src/components/datepicker/COMPONENT.md +3 -1
  214. package/src/components/datepicker/examples/deadline.tsx +33 -0
  215. package/src/components/digit-input/COMPONENT.md +1 -0
  216. package/src/components/dnd/COMPONENT.md +4 -3
  217. package/src/components/dnd/examples/examples.module.css +4 -3
  218. package/src/components/dnd/examples/handle.tsx +5 -5
  219. package/src/components/dnd/examples/locked.tsx +1 -1
  220. package/src/components/dnd/examples/table.tsx +6 -6
  221. package/src/components/drawer/COMPONENT.md +38 -9
  222. package/src/components/drawer/examples/client-card.tsx +32 -8
  223. package/src/components/drawer/examples/header-actions.tsx +1 -1
  224. package/src/components/drawer/examples/loading.tsx +58 -0
  225. package/src/components/field-list/COMPONENT.md +40 -24
  226. package/src/components/field-list/examples/base-row.tsx +2 -1
  227. package/src/components/field-list/examples/locked.tsx +11 -11
  228. package/src/components/field-list/examples/reorder.tsx +1 -1
  229. package/src/components/field-list/examples/saving.tsx +83 -0
  230. package/src/components/field-list/examples/screen.module.css +1 -1
  231. package/src/components/field-list/examples/screen.tsx +168 -162
  232. package/src/components/field-list/examples/totals.tsx +83 -0
  233. package/src/components/file-upload/COMPONENT.md +1 -0
  234. package/src/components/hint/COMPONENT.md +16 -2
  235. package/src/components/hint/examples/variants.tsx +48 -0
  236. package/src/components/input/COMPONENT.md +39 -9
  237. package/src/components/input/examples/affixes.tsx +4 -2
  238. package/src/components/input/examples/dismiss.tsx +29 -0
  239. package/src/components/input/examples/suggestions.tsx +26 -0
  240. package/src/components/input/examples/time.tsx +24 -0
  241. package/src/components/input/examples/with-select.tsx +44 -0
  242. package/src/components/kanban/COMPONENT.md +12 -8
  243. package/src/components/kanban/examples/columns.tsx +4 -2
  244. package/src/components/kanban/examples/states.tsx +7 -5
  245. package/src/components/list/COMPONENT.md +39 -13
  246. package/src/components/list/examples/reorder.tsx +42 -7
  247. package/src/components/list/examples/row-controls.tsx +80 -0
  248. package/src/components/list/examples/with-icon.tsx +23 -2
  249. package/src/components/login-form/COMPONENT.md +8 -7
  250. package/src/components/login-form/examples/states.tsx +12 -14
  251. package/src/components/message/COMPONENT.md +30 -9
  252. package/src/components/message/examples/preview.tsx +28 -0
  253. package/src/components/message/examples/sticker.tsx +35 -0
  254. package/src/components/modal/COMPONENT.md +35 -10
  255. package/src/components/modal/examples/long-content.tsx +37 -18
  256. package/src/components/native-select/COMPONENT.md +1 -0
  257. package/src/components/notification/COMPONENT.md +1 -1
  258. package/src/components/radio/COMPONENT.md +2 -0
  259. package/src/components/rich-text/COMPONENT.md +93 -0
  260. package/src/components/rich-text/examples/overview.tsx +19 -0
  261. package/src/components/scroll-container/COMPONENT.md +8 -5
  262. package/src/components/segmented-control/COMPONENT.md +4 -2
  263. package/src/components/segmented-control/examples/in-form.tsx +1 -1
  264. package/src/components/select/COMPONENT.md +7 -3
  265. package/src/components/sheet/COMPONENT.md +18 -7
  266. package/src/components/slider/COMPONENT.md +1 -0
  267. package/src/components/slider/examples/controlled.tsx +1 -1
  268. package/src/components/switch/COMPONENT.md +1 -0
  269. package/src/components/tag-select/COMPONENT.md +1 -0
  270. package/src/components/textarea/COMPONENT.md +1 -0
  271. package/src/components/timeline/COMPONENT.md +3 -3
  272. package/src/components/timeline/examples/structure.tsx +2 -1
  273. package/src/layout/app-shell/COMPONENT.md +2 -2
  274. package/src/layout/bottom-nav/COMPONENT.md +1 -0
  275. package/src/layout/page/COMPONENT.md +42 -20
  276. package/src/layout/page/examples/examples.module.css +7 -0
  277. package/src/layout/page/examples/guard.tsx +87 -0
  278. package/src/layout/page/examples/loading.tsx +57 -0
  279. package/src/layout/page/examples/screen.module.css +1 -1
  280. package/src/layout/page/examples/screen.tsx +93 -104
  281. package/src/layout/page/examples/sections.tsx +2 -15
  282. package/src/layout/sidebar/COMPONENT.md +1 -0
  283. package/src/styles/theme-dark.css +1 -1
  284. package/src/styles/theme-light.css +2 -1
  285. package/dist/components/data-table/context.d.ts +0 -14
  286. package/dist/components/scroll-container/useWheelToInline.d.ts +0 -10
@@ -1,4 +1,4 @@
1
- /** A settings page as a document: the path in the top bar that repeats the title once it scrolls away, the large title in the flow, sections with a heading column and a panel, a form saved by its own button, switches that apply at once and a danger zone with a confirm — `collapse`, `layout`, `maxWidth`. */
1
+ /** A settings page as a document: the path in the top bar that repeats the title once it scrolls away, the large title in the flow, each section a card with its own heading, a form saved by its own button, switches that apply at once and a danger zone with a confirm — `collapse`, `maxWidth`, `Card.Header`. */
2
2
  import {
3
3
  Breadcrumb,
4
4
  Button,
@@ -88,118 +88,107 @@ export default function PageScreenExample() {
88
88
  </Page.Heading>
89
89
  </Page.Header>
90
90
  <Page.Body>
91
- <Page.Section
92
- layout="aside"
93
- label="Компания"
94
- description="Попадают в счета, акты и письма клиентам."
95
- >
96
- <form noValidate onSubmit={save} onReset={() => setInnError(undefined)}>
97
- <Card.Root variant="panel">
98
- <Card.Body>
99
- <Fieldset disabled={saving}>
100
- <Input.Root label="Название">
91
+ <form noValidate onSubmit={save} onReset={() => setInnError(undefined)}>
92
+ <Card.Root variant="panel">
93
+ <Card.Header>
94
+ <Card.Title as="h2">Компания</Card.Title>
95
+ <Card.Description>Попадают в счета, акты и письма клиентам.</Card.Description>
96
+ </Card.Header>
97
+ <Card.Body>
98
+ <Fieldset disabled={saving}>
99
+ <Input.Root label="Название">
100
+ <Input.Wrapper>
101
+ <Input.Field name="name" defaultValue="ООО «Прайм Софт»" />
102
+ </Input.Wrapper>
103
+ </Input.Root>
104
+ <div className={styles.pair}>
105
+ <Input.Root label="ИНН" error={innError} hint="10 или 12 цифр" reserveSupportRow>
101
106
  <Input.Wrapper>
102
- <Input.Field name="name" defaultValue="ООО «Прайм Софт»" />
107
+ <Input.Field name="inn" inputMode="numeric" defaultValue="7704512908" />
103
108
  </Input.Wrapper>
104
109
  </Input.Root>
105
- <div className={styles.pair}>
106
- <Input.Root
107
- label="ИНН"
108
- error={innError}
109
- hint="10 или 12 цифр"
110
- reserveSupportRow
111
- >
112
- <Input.Wrapper>
113
- <Input.Field name="inn" inputMode="numeric" defaultValue="7704512908" />
114
- </Input.Wrapper>
115
- </Input.Root>
116
- <Select.Root label="Часовой пояс" defaultValue="Europe/Moscow">
117
- <Select.Trigger>
118
- <Select.Value />
119
- </Select.Trigger>
120
- <Select.Content searchable>
121
- {TIMEZONES.map((zone) => (
122
- <Select.Item key={zone.value} value={zone.value}>
123
- {zone.label}
124
- </Select.Item>
125
- ))}
126
- </Select.Content>
127
- </Select.Root>
128
- </div>
129
- <Textarea.Root
130
- name="address"
131
- label="Юридический адрес"
132
- optional
133
- rows={2}
134
- defaultValue="125009, Москва, ул. Тверская, д. 7, офис 412"
135
- />
136
- </Fieldset>
137
- </Card.Body>
138
- <Card.Footer>
139
- <Button.Root type="reset" variant="ghost" tone="neutral" disabled={saving}>
140
- Отменить изменения
141
- </Button.Root>
142
- <Button.Root type="submit" loading={saving}>
143
- {saved ? "Сохранено" : "Сохранить"}
144
- </Button.Root>
145
- </Card.Footer>
146
- </Card.Root>
147
- </form>
148
- </Page.Section>
149
-
150
- <Page.Section
151
- layout="aside"
152
- label="Уведомления"
153
- description="Включаются сразу, без сохранения."
154
- >
155
- <Card.Root variant="panel">
156
- <Card.Body>
157
- <Fieldset aria-label="Уведомления">
158
- {ALERTS.map((alert) => (
159
- <Switch.Root
160
- key={alert.name}
161
- name={alert.name}
162
- defaultChecked={alert.defaultChecked}
163
- hint={alert.hint}
164
- >
165
- <Switch.Label>{alert.label}</Switch.Label>
166
- </Switch.Root>
167
- ))}
110
+ <Select.Root label="Часовой пояс" defaultValue="Europe/Moscow">
111
+ <Select.Trigger>
112
+ <Select.Value />
113
+ </Select.Trigger>
114
+ <Select.Content searchable>
115
+ {TIMEZONES.map((zone) => (
116
+ <Select.Item key={zone.value} value={zone.value}>
117
+ {zone.label}
118
+ </Select.Item>
119
+ ))}
120
+ </Select.Content>
121
+ </Select.Root>
122
+ </div>
123
+ <Textarea.Root
124
+ name="address"
125
+ label="Юридический адрес"
126
+ optional
127
+ rows={2}
128
+ defaultValue="125009, Москва, ул. Тверская, д. 7, офис 412"
129
+ />
168
130
  </Fieldset>
169
131
  </Card.Body>
132
+ <Card.Footer>
133
+ <Button.Root type="reset" variant="ghost" tone="neutral" disabled={saving}>
134
+ Отменить изменения
135
+ </Button.Root>
136
+ <Button.Root type="submit" loading={saving}>
137
+ {saved ? "Сохранено" : "Сохранить"}
138
+ </Button.Root>
139
+ </Card.Footer>
170
140
  </Card.Root>
171
- </Page.Section>
141
+ </form>
172
142
 
173
- <Page.Section
174
- layout="aside"
175
- label="Рабочее пространство"
176
- description="Действия, которые нельзя отменить."
177
- >
178
- <Card.Root variant="panel">
179
- <Card.Body>
180
- <div className={styles.danger}>
181
- <div className={styles.dangerText}>
182
- <Typography variant="title-s">Удалить пространство</Typography>
183
- <Typography variant="body-s" tone="secondary">
184
- Счета, клиенты и история будут удалены для всех участников.
185
- </Typography>
186
- </div>
187
- <ConfirmDialog.Root
188
- title="Удалить «Прайм Софт»?"
189
- description="312 счетов, 48 клиентов и вся история удалятся без возможности восстановления."
190
- confirmLabel="Удалить пространство"
191
- onConfirm={removeWorkspace}
143
+ <Card.Root variant="panel">
144
+ <Card.Header>
145
+ <Card.Title as="h2">Уведомления</Card.Title>
146
+ <Card.Description>Включаются сразу, без сохранения.</Card.Description>
147
+ </Card.Header>
148
+ <Card.Body>
149
+ <Fieldset aria-label="Уведомления">
150
+ {ALERTS.map((alert) => (
151
+ <Switch.Root
152
+ key={alert.name}
153
+ name={alert.name}
154
+ defaultChecked={alert.defaultChecked}
155
+ hint={alert.hint}
192
156
  >
193
- <ConfirmDialog.Trigger>
194
- <Button.Root variant="outline" tone="danger">
195
- Удалить
196
- </Button.Root>
197
- </ConfirmDialog.Trigger>
198
- </ConfirmDialog.Root>
157
+ <Switch.Label>{alert.label}</Switch.Label>
158
+ </Switch.Root>
159
+ ))}
160
+ </Fieldset>
161
+ </Card.Body>
162
+ </Card.Root>
163
+
164
+ <Card.Root variant="panel">
165
+ <Card.Header>
166
+ <Card.Title as="h2">Рабочее пространство</Card.Title>
167
+ <Card.Description>Действия, которые нельзя отменить.</Card.Description>
168
+ </Card.Header>
169
+ <Card.Body>
170
+ <div className={styles.danger}>
171
+ <div className={styles.dangerText}>
172
+ <Typography variant="title-s">Удалить пространство</Typography>
173
+ <Typography variant="body-s" tone="secondary">
174
+ Счета, клиенты и история будут удалены для всех участников.
175
+ </Typography>
199
176
  </div>
200
- </Card.Body>
201
- </Card.Root>
202
- </Page.Section>
177
+ <ConfirmDialog.Root
178
+ title="Удалить «Прайм Софт»?"
179
+ description="312 счетов, 48 клиентов и вся история удалятся без возможности восстановления."
180
+ confirmLabel="Удалить пространство"
181
+ onConfirm={removeWorkspace}
182
+ >
183
+ <ConfirmDialog.Trigger>
184
+ <Button.Root variant="outline" tone="danger">
185
+ Удалить
186
+ </Button.Root>
187
+ </ConfirmDialog.Trigger>
188
+ </ConfirmDialog.Root>
189
+ </div>
190
+ </Card.Body>
191
+ </Card.Root>
203
192
  </Page.Body>
204
193
  </Page.Root>
205
194
  );
@@ -1,5 +1,5 @@
1
- /** A page with titled sections: tiles of one screen close together, a new topic set off by air, a link at the end of the heading, a heading column beside a panel — `Page.Section`, `label`, `description`, `Page.Actions`, `layout`. */
2
- import { Card, DataTable, type DataTableColumn, LinkButton, Page, Typography } from "prime-ui-kit";
1
+ /** A page with titled sections: tiles of one screen close together, a new topic set off by air, a link at the end of the heading — `Page.Section`, `label`, `description`, `Page.Actions`. */
2
+ import { Card, DataTable, type DataTableColumn, LinkButton, Page } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
5
5
 
@@ -55,19 +55,6 @@ export default function PageSectionsExample() {
55
55
  </Page.Actions>
56
56
  <DataTable columns={COLUMNS} rows={INVOICES} getRowKey={(row) => row.id} paging="none" />
57
57
  </Page.Section>
58
- <Page.Section
59
- layout="aside"
60
- label="Реквизиты в счетах"
61
- description="Попадают в каждый новый счёт."
62
- >
63
- <Card.Root variant="panel">
64
- <Card.Body>
65
- <Typography variant="body-m" tone="secondary">
66
- ООО «Прайм Софт», ИНН 7701234567, р/с в Т-Банке.
67
- </Typography>
68
- </Card.Body>
69
- </Card.Root>
70
- </Page.Section>
71
58
  </Page.Body>
72
59
  </div>
73
60
  );
@@ -299,6 +299,7 @@ Put `<Sidebar.Toggle variant="header" />` next to `Sidebar.Brand` in the header,
299
299
  ## States
300
300
  | State | Driven by | DOM |
301
301
  |---|---|---|
302
+ | held | a `Page.Guard` that is `busy` or `dirty` on the page | a press on `Sidebar.Item` or `Sidebar.Brand` stops before it navigates (a router link included) and the panel stays; `dirty` asks first, then repeats it |
302
303
  | mode | `mode` / `defaultMode` | Root `data-mode`, `data-panel-mode` (the last visible mode while hidden); `<nav inert>` while hidden |
303
304
  | off-canvas | `offCanvas="always"`, or `"auto"` + viewport < 768px | Root `data-off-canvas`, `data-state="open" \| "closed"`; `<nav inert>` while closed; the kit scrim (`role="presentation"`) while open; in an `AppShell` the shell Root `data-off-canvas` |
304
305
  | placing | the viewport crossed the off-canvas breakpoint (not a person's choice) | Root `data-placing` for one painted frame: the rail lands at its new width with no motion (no growing from 0, no folding rows, no sliding panel) |
@@ -6,7 +6,7 @@
6
6
  --prime-color-accent-soft: var(--prime-ref-color-cobalt-950);
7
7
  --prime-color-accent-soft-hover: color-mix(in srgb, var(--prime-ref-color-cobalt-500) 28%, transparent);
8
8
  --prime-color-accent-text: var(--prime-ref-color-cobalt-400);
9
- --prime-color-bg-edge-shadow: color-mix(in srgb, var(--prime-ref-color-black) 50%, transparent);
9
+ --prime-color-bg-edge-shadow: color-mix(in srgb, var(--prime-ref-color-black) 28%, transparent);
10
10
  --prime-color-bg-glass: color-mix(in srgb, var(--prime-ref-color-gray-875) 76%, transparent);
11
11
  --prime-color-bg-glass-edge: color-mix(in srgb, var(--prime-ref-color-white) 28%, transparent);
12
12
  --prime-color-bg-inverse: var(--prime-ref-color-gray-100);
@@ -69,7 +69,7 @@
69
69
  --prime-color-accent-soft: var(--prime-ref-color-cobalt-100);
70
70
  --prime-color-accent-soft-hover: var(--prime-ref-color-cobalt-200);
71
71
  --prime-color-accent-text: var(--prime-ref-color-cobalt-700);
72
- --prime-color-bg-edge-shadow: color-mix(in srgb, var(--prime-ref-color-gray-925) 14%, transparent);
72
+ --prime-color-bg-edge-shadow: color-mix(in srgb, var(--prime-ref-color-gray-925) 8%, transparent);
73
73
  --prime-color-bg-glass: color-mix(in srgb, var(--prime-ref-color-white) 72%, transparent);
74
74
  --prime-color-bg-glass-edge: color-mix(in srgb, var(--prime-ref-color-white) 85%, transparent);
75
75
  --prime-color-bg-glass-solid: var(--prime-color-layer-floating-bg);
@@ -367,6 +367,7 @@
367
367
  --prime-message-padding-x: var(--prime-ref-space-3);
368
368
  --prime-message-padding-y: var(--prime-ref-space-2);
369
369
  --prime-message-radius: var(--prime-ref-radius-14);
370
+ --prime-message-sticker: 10rem;
370
371
  --prime-message-tail-height: var(--prime-ref-space-4);
371
372
  --prime-message-tail-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 16' preserveAspectRatio='none'%3E%3Cpath d='M8 0C8 7 6.5 12.5 0.6 15.3C0.2 15.5 0.3 16 0.8 16H8Z'/%3E%3C/svg%3E");
372
373
  --prime-message-tail-width: var(--prime-ref-space-2);
@@ -1,14 +0,0 @@
1
- import * as React from "react";
2
- import type { ControlSize } from "../../internal/states";
3
- import type { DataTableLabels } from "./DataTable";
4
- import type { DataTableColumn } from "./types";
5
- /** What `DataTable.ColumnsMenu` reads from the table it sits in (through `toolbar`). */
6
- export type DataTableColumnsContextValue = {
7
- /** Every column, hidden ones included, in table order. */
8
- columns: DataTableColumn<never>[];
9
- hidden: ReadonlySet<string>;
10
- setHidden: (hidden: string[]) => void;
11
- labels: DataTableLabels;
12
- size: ControlSize;
13
- };
14
- export declare const DataTableColumnsContext: React.Context<DataTableColumnsContextValue | null>;
@@ -1,10 +0,0 @@
1
- import * as React from "react";
2
- /**
3
- * A vertical wheel over a strip that scrolls only sideways (`axis="horizontal"`) scrolls the strip:
4
- * a mouse has no other way to reach what is hidden to the side. The browser's own sideways wheel
5
- * (a trackpad swipe, Shift + wheel) stays native, and so does a page scroll that passes over the
6
- * strip (a wheel gesture that began outside it keeps scrolling the page) or a strip already at the
7
- * edge in that direction (the wheel chains to the page). The steps glide to an accumulated target
8
- * (instant under reduced motion), so fast wheeling loses no distance.
9
- */
10
- export declare function useWheelToInline(ref: React.RefObject<HTMLElement | null>, enabled: boolean): void;