prime-ui-kit 0.14.0 → 0.15.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 (490) hide show
  1. package/README.md +13 -14
  2. package/dist/chunks/{chunk-P6ZO37JM.js → chunk-2IKH55MI.js} +1 -1
  3. package/dist/chunks/{chunk-SYEX7OVT.js → chunk-THFZIHKU.js} +276 -263
  4. package/dist/chunks/{chunk-WXKRUVSE.js → chunk-XJAVS6FH.js} +49 -48
  5. package/dist/color-picker.js +2 -2
  6. package/dist/components/dnd/Dnd.d.ts +1 -1
  7. package/dist/components/login-form/LoginForm.d.ts +5 -1
  8. package/dist/index.css +1 -1
  9. package/dist/index.js +2 -2
  10. package/dist/internal/swatch.d.ts +6 -2
  11. package/dist/layout/app-header/AppHeader.d.ts +9 -28
  12. package/dist/layout/index.d.ts +1 -1
  13. package/dist/skill/SKILL.md +9 -7
  14. package/dist/skill/api-contract.md +2 -2
  15. package/dist/skill/cheatsheet.md +9 -2
  16. package/dist/skill/checklist.md +9 -5
  17. package/dist/skill/choosing.md +7 -9
  18. package/dist/skill/components.md +5 -12
  19. package/dist/skill/composition.md +281 -54
  20. package/dist/skill/foundations.md +1 -1
  21. package/dist/skill/layouts.md +70 -37
  22. package/dist/skill/reference/components/avatar/examples/states.tsx +4 -4
  23. package/dist/skill/reference/components/badge/examples/applied-filters.tsx +13 -19
  24. package/dist/skill/reference/components/badge/examples/examples.module.css +1 -8
  25. package/dist/skill/reference/components/badge/examples/server-tags.tsx +2 -6
  26. package/dist/skill/reference/components/banner/examples/examples.module.css +1 -5
  27. package/dist/skill/reference/components/banner/examples/page-strip.tsx +16 -22
  28. package/dist/skill/reference/components/breadcrumb/COMPONENT.md +4 -3
  29. package/dist/skill/reference/components/breadcrumb/examples/ellipsis.tsx +2 -2
  30. package/dist/skill/reference/components/button-group/COMPONENT.md +2 -2
  31. package/dist/skill/reference/components/button-group/examples/in-form.tsx +22 -2
  32. package/dist/skill/reference/components/button-group/examples/states.tsx +10 -1
  33. package/dist/skill/reference/components/card/COMPONENT.md +2 -1
  34. package/dist/skill/reference/components/card/examples/screen.tsx +362 -0
  35. package/dist/skill/reference/components/card/examples/variants.tsx +15 -1
  36. package/dist/skill/reference/components/chart-frame/COMPONENT.md +2 -1
  37. package/dist/skill/reference/components/chart-frame/examples/fill-height.tsx +119 -0
  38. package/dist/skill/reference/components/chart-frame/examples/states.tsx +3 -1
  39. package/dist/skill/reference/components/chat/COMPONENT.md +3 -1
  40. package/dist/skill/reference/components/chat/examples/group-chat.tsx +15 -2
  41. package/dist/skill/reference/components/chat/examples/reactions.tsx +121 -0
  42. package/dist/skill/reference/components/chat/examples/screen.module.css +9 -0
  43. package/dist/skill/{patterns/chat.tsx → reference/components/chat/examples/screen.tsx} +170 -351
  44. package/dist/skill/reference/components/chat-list/COMPONENT.md +1 -0
  45. package/dist/skill/reference/components/chat-list/examples/links.tsx +72 -0
  46. package/dist/skill/reference/components/checkbox/COMPONENT.md +1 -1
  47. package/dist/skill/reference/components/checkbox/examples/examples.module.css +5 -1
  48. package/dist/skill/reference/components/checkbox/examples/indicator.tsx +13 -7
  49. package/dist/skill/reference/components/checkbox/examples/states.tsx +6 -1
  50. package/dist/skill/reference/components/color-field/COMPONENT.md +1 -1
  51. package/dist/skill/reference/components/color-picker/COMPONENT.md +4 -3
  52. package/dist/skill/reference/components/color-picker/examples/controlled-open.tsx +37 -0
  53. package/dist/skill/reference/components/color-picker/examples/presets.tsx +2 -2
  54. package/dist/skill/reference/components/color-picker/examples/states.tsx +23 -14
  55. package/dist/skill/reference/components/composer/COMPONENT.md +2 -1
  56. package/dist/skill/reference/components/composer/examples/attach-menu.tsx +78 -0
  57. package/dist/skill/reference/components/composer/examples/attachments.tsx +2 -2
  58. package/dist/skill/reference/components/crossfade/COMPONENT.md +1 -0
  59. package/dist/skill/reference/components/crossfade/examples/screen.tsx +197 -0
  60. package/dist/skill/reference/components/data-table/COMPONENT.md +3 -2
  61. package/dist/skill/reference/components/data-table/examples/detail-panel.tsx +36 -37
  62. package/dist/skill/reference/components/data-table/examples/examples.module.css +0 -12
  63. package/dist/skill/reference/components/data-table/examples/numeric.tsx +36 -4
  64. package/dist/skill/reference/components/data-table/examples/overview.tsx +1 -0
  65. package/dist/skill/reference/components/data-table/examples/row-open.tsx +7 -36
  66. package/dist/skill/{patterns/list-page.module.css → reference/components/data-table/examples/screen.module.css} +1 -7
  67. package/dist/skill/{patterns/list-page.tsx → reference/components/data-table/examples/screen.tsx} +84 -64
  68. package/dist/skill/reference/components/datepicker/COMPONENT.md +5 -4
  69. package/dist/skill/reference/components/datepicker/examples/examples.module.css +2 -6
  70. package/dist/skill/reference/components/datepicker/examples/in-form.tsx +47 -55
  71. package/dist/skill/reference/components/datepicker/examples/locale.tsx +35 -0
  72. package/dist/skill/reference/components/datepicker/examples/range-presets.tsx +11 -2
  73. package/dist/skill/reference/components/datepicker/examples/states.tsx +9 -1
  74. package/dist/skill/reference/components/description-list/COMPONENT.md +1 -0
  75. package/dist/skill/{patterns/detail-page.module.css → reference/components/description-list/examples/screen.module.css} +2 -9
  76. package/dist/skill/reference/components/description-list/examples/screen.tsx +214 -0
  77. package/dist/skill/reference/components/description-list/examples/structure.tsx +1 -1
  78. package/dist/skill/reference/components/digit-input/COMPONENT.md +3 -1
  79. package/dist/skill/reference/components/digit-input/examples/states.tsx +3 -1
  80. package/dist/skill/reference/components/digit-input/examples/without-focus-ring.tsx +13 -0
  81. package/dist/skill/reference/components/divider/examples/with-icon.tsx +2 -2
  82. package/dist/skill/reference/components/dnd/COMPONENT.md +4 -2
  83. package/dist/skill/reference/components/dnd/examples/drop-zones.tsx +82 -49
  84. package/dist/skill/reference/components/dnd/examples/examples.module.css +50 -0
  85. package/dist/skill/reference/components/dnd/examples/states.tsx +54 -0
  86. package/dist/skill/reference/components/dnd/examples/table.tsx +113 -0
  87. package/dist/skill/reference/components/drawer/COMPONENT.md +1 -0
  88. package/dist/skill/reference/components/drawer/examples/dismiss.tsx +5 -3
  89. package/dist/skill/reference/components/drawer/examples/examples.module.css +0 -13
  90. package/dist/skill/reference/components/drawer/examples/header-actions.tsx +5 -9
  91. package/dist/skill/reference/components/drawer/examples/overview.tsx +6 -18
  92. package/dist/skill/reference/components/drawer/examples/screen.tsx +298 -0
  93. package/dist/skill/reference/components/dropdown/examples/examples.module.css +1 -5
  94. package/dist/skill/reference/components/empty-page/COMPONENT.md +1 -1
  95. package/dist/skill/reference/components/empty-page/examples/region-error.tsx +8 -2
  96. package/dist/skill/reference/components/example-frame/COMPONENT.md +3 -2
  97. package/dist/skill/reference/components/example-frame/examples/initial-view.tsx +44 -0
  98. package/dist/skill/reference/components/field-list/COMPONENT.md +2 -1
  99. package/dist/skill/reference/components/field-list/examples/errors.tsx +5 -2
  100. package/dist/skill/{patterns/record-editor.tsx → reference/components/field-list/examples/screen.tsx} +3 -43
  101. package/dist/skill/reference/components/file-upload/COMPONENT.md +7 -6
  102. package/dist/skill/reference/components/file-upload/examples/custom-body.tsx +2 -1
  103. package/dist/skill/reference/components/file-upload/examples/examples.module.css +1 -7
  104. package/dist/skill/reference/components/file-upload/examples/file-cards.tsx +10 -1
  105. package/dist/skill/reference/components/file-upload/examples/gallery.tsx +2 -2
  106. package/dist/skill/reference/components/file-upload/examples/in-form.tsx +4 -9
  107. package/dist/skill/reference/components/file-upload/examples/overview.tsx +5 -1
  108. package/dist/skill/reference/components/file-upload/examples/row-parts.tsx +24 -1
  109. package/dist/skill/{patterns/media-library.module.css → reference/components/file-upload/examples/screen.module.css} +2 -1
  110. package/dist/skill/reference/components/file-upload/examples/screen.tsx +646 -0
  111. package/dist/skill/reference/components/file-upload/examples/states.tsx +6 -2
  112. package/dist/skill/reference/components/file-upload/examples/validation.tsx +11 -2
  113. package/dist/skill/reference/components/file-upload/examples/variants.tsx +3 -20
  114. package/dist/skill/reference/components/gantt/COMPONENT.md +2 -1
  115. package/dist/skill/reference/components/gantt/examples/screen.module.css +14 -0
  116. package/dist/skill/{patterns/schedule.tsx → reference/components/gantt/examples/screen.tsx} +174 -170
  117. package/dist/skill/reference/components/gantt/examples/states.tsx +6 -2
  118. package/dist/skill/reference/components/input/COMPONENT.md +2 -2
  119. package/dist/skill/reference/components/input/examples/examples.module.css +0 -6
  120. package/dist/skill/reference/components/input/examples/in-form.tsx +1 -9
  121. package/dist/skill/reference/components/input/examples/password-strength.tsx +34 -8
  122. package/dist/skill/reference/components/input/examples/states.tsx +6 -1
  123. package/dist/skill/reference/components/kanban/COMPONENT.md +3 -2
  124. package/dist/skill/reference/components/kanban/examples/columns.tsx +8 -5
  125. package/dist/skill/reference/components/kanban/examples/screen.module.css +17 -0
  126. package/dist/skill/{patterns/kanban-board.tsx → reference/components/kanban/examples/screen.tsx} +130 -172
  127. package/dist/skill/reference/components/kanban/examples/states.tsx +17 -6
  128. package/dist/skill/reference/components/login-form/COMPONENT.md +6 -5
  129. package/dist/skill/reference/components/login-form/examples/examples.module.css +2 -21
  130. package/dist/skill/reference/components/login-form/examples/forgot-password.tsx +28 -32
  131. package/dist/skill/reference/components/login-form/examples/narrow.tsx +1 -1
  132. package/dist/skill/reference/components/login-form/examples/overview.tsx +45 -47
  133. package/dist/skill/reference/components/login-form/examples/register.tsx +64 -68
  134. package/dist/skill/reference/components/login-form/examples/reset-password.tsx +50 -47
  135. package/dist/skill/reference/components/login-form/examples/sizes.tsx +4 -6
  136. package/dist/skill/reference/components/login-form/examples/states.tsx +53 -57
  137. package/dist/skill/reference/components/login-form/examples/structure.tsx +18 -22
  138. package/dist/skill/reference/components/login-form/examples/verification-code.tsx +41 -45
  139. package/dist/skill/reference/components/media-viewer/COMPONENT.md +1 -1
  140. package/dist/skill/reference/components/media-viewer/examples/dismiss.tsx +5 -1
  141. package/dist/skill/reference/components/message/COMPONENT.md +4 -3
  142. package/dist/skill/reference/components/message/examples/file.tsx +5 -1
  143. package/dist/skill/reference/components/message/examples/media-open.tsx +48 -0
  144. package/dist/skill/reference/components/message/examples/status.tsx +21 -3
  145. package/dist/skill/reference/components/message/examples/text-formatting.tsx +7 -1
  146. package/dist/skill/reference/components/modal/COMPONENT.md +2 -1
  147. package/dist/skill/reference/components/modal/examples/custom-container.tsx +20 -20
  148. package/dist/skill/reference/components/modal/examples/dismiss.tsx +5 -3
  149. package/dist/skill/reference/components/modal/examples/enter-key.tsx +116 -0
  150. package/dist/skill/reference/components/modal/examples/examples.module.css +7 -13
  151. package/dist/skill/reference/components/modal/examples/structure.tsx +5 -2
  152. package/dist/skill/reference/components/native-select/COMPONENT.md +1 -1
  153. package/dist/skill/reference/components/native-select/examples/states.tsx +5 -1
  154. package/dist/skill/reference/components/notification/COMPONENT.md +1 -1
  155. package/dist/skill/reference/components/notification/examples/dismiss.tsx +2 -2
  156. package/dist/skill/reference/components/page-content/COMPONENT.md +1 -0
  157. package/dist/skill/reference/components/page-content/examples/list-detail.tsx +0 -3
  158. package/dist/skill/{patterns/settings-page.tsx → reference/components/page-content/examples/screen.tsx} +3 -3
  159. package/dist/skill/reference/components/page-content/examples/variants.tsx +4 -11
  160. package/dist/skill/reference/components/page-toolbar/COMPONENT.md +17 -15
  161. package/dist/skill/reference/components/page-toolbar/examples/narrow.tsx +6 -3
  162. package/dist/skill/reference/components/pagination/examples/controlled.tsx +29 -29
  163. package/dist/skill/reference/components/pagination/examples/examples.module.css +0 -2
  164. package/dist/skill/reference/components/progress-bar/COMPONENT.md +1 -1
  165. package/dist/skill/reference/components/progress-bar/examples/segments.tsx +2 -2
  166. package/dist/skill/reference/components/progress-circle/COMPONENT.md +1 -1
  167. package/dist/skill/reference/components/progress-circle/examples/segments.tsx +8 -3
  168. package/dist/skill/reference/components/radio/COMPONENT.md +1 -0
  169. package/dist/skill/reference/components/radio/examples/examples.module.css +14 -0
  170. package/dist/skill/reference/components/radio/examples/in-form.tsx +45 -0
  171. package/dist/skill/reference/components/scroll-container/COMPONENT.md +1 -0
  172. package/dist/skill/reference/components/scroll-container/examples/auto-scroll.tsx +3 -3
  173. package/dist/skill/reference/components/scroll-container/examples/chat.tsx +3 -3
  174. package/dist/skill/reference/components/scroll-container/examples/edges.tsx +6 -3
  175. package/dist/skill/reference/components/scroll-container/examples/examples.module.css +4 -17
  176. package/dist/skill/reference/components/scroll-container/examples/load-more.tsx +51 -0
  177. package/dist/skill/reference/components/scroll-container/examples/lock.tsx +3 -5
  178. package/dist/skill/reference/components/scroll-container/examples/overscroll.tsx +3 -3
  179. package/dist/skill/reference/components/scroll-container/examples/overview.tsx +3 -3
  180. package/dist/skill/reference/components/scroll-container/examples/scrollbar.tsx +13 -7
  181. package/dist/skill/reference/components/scroll-container/examples/variants.tsx +13 -7
  182. package/dist/skill/reference/components/segmented-control/COMPONENT.md +2 -2
  183. package/dist/skill/reference/components/segmented-control/examples/in-form.tsx +5 -1
  184. package/dist/skill/reference/components/segmented-control/examples/states.tsx +10 -1
  185. package/dist/skill/reference/components/select/COMPONENT.md +1 -1
  186. package/dist/skill/reference/components/select/examples/examples.module.css +2 -7
  187. package/dist/skill/reference/components/select/examples/states.tsx +13 -1
  188. package/dist/skill/reference/components/sheet/COMPONENT.md +2 -0
  189. package/dist/skill/reference/components/sheet/examples/guard.tsx +72 -0
  190. package/dist/skill/reference/components/sheet/examples/header-actions.tsx +56 -0
  191. package/dist/skill/reference/components/slider/COMPONENT.md +2 -1
  192. package/dist/skill/reference/components/slider/examples/examples.module.css +8 -0
  193. package/dist/skill/reference/components/slider/examples/in-form.tsx +47 -0
  194. package/dist/skill/reference/components/slider/examples/states.tsx +4 -1
  195. package/dist/skill/reference/components/smart-filter/COMPONENT.md +1 -1
  196. package/dist/skill/reference/components/smart-filter/examples/controlled.tsx +3 -3
  197. package/dist/skill/reference/components/smart-filter/examples/ranges.tsx +44 -10
  198. package/dist/skill/reference/components/sparkline/COMPONENT.md +1 -1
  199. package/dist/skill/reference/components/sparkline/examples/reference.tsx +2 -1
  200. package/dist/skill/reference/components/tabs/COMPONENT.md +1 -1
  201. package/dist/skill/reference/components/tabs/examples/sizes.tsx +1 -1
  202. package/dist/skill/reference/components/tag-select/COMPONENT.md +1 -1
  203. package/dist/skill/reference/components/tag-select/examples/states.tsx +8 -1
  204. package/dist/skill/reference/components/textarea/COMPONENT.md +1 -1
  205. package/dist/skill/reference/components/textarea/examples/examples.module.css +0 -6
  206. package/dist/skill/reference/components/textarea/examples/in-form.tsx +1 -9
  207. package/dist/skill/reference/components/textarea/examples/states.tsx +2 -1
  208. package/dist/skill/reference/components/thumbnail/COMPONENT.md +2 -1
  209. package/dist/skill/reference/components/thumbnail/examples/examples.module.css +1 -1
  210. package/dist/skill/reference/components/thumbnail/examples/fit.tsx +24 -0
  211. package/dist/skill/reference/components/thumbnail/examples/video.tsx +20 -1
  212. package/dist/skill/reference/components/timeline/COMPONENT.md +1 -1
  213. package/dist/skill/reference/components/timeline/examples/links.tsx +55 -14
  214. package/dist/skill/reference/components/tooltip/COMPONENT.md +1 -1
  215. package/dist/skill/reference/components/tooltip/examples/toolbar.tsx +2 -2
  216. package/dist/skill/reference/components/typography/examples/weights.tsx +3 -0
  217. package/dist/skill/reference/components/video-note/COMPONENT.md +2 -2
  218. package/dist/skill/reference/components/video-note/examples/controlled.tsx +19 -2
  219. package/dist/skill/reference/components/video-note/examples/in-message.tsx +5 -2
  220. package/dist/skill/reference/components/visually-hidden/COMPONENT.md +2 -1
  221. package/dist/skill/reference/components/visually-hidden/examples/assertive.tsx +39 -0
  222. package/dist/skill/reference/components/voice-player/COMPONENT.md +2 -2
  223. package/dist/skill/reference/components/voice-player/examples/call-recording.tsx +19 -9
  224. package/dist/skill/reference/components/voice-player/examples/controlled.tsx +20 -3
  225. package/dist/skill/reference/layout/app-header/COMPONENT.md +46 -63
  226. package/dist/skill/reference/layout/app-header/examples/breadcrumbs.tsx +10 -9
  227. package/dist/skill/reference/layout/app-header/examples/examples.module.css +1 -1
  228. package/dist/skill/reference/layout/app-header/examples/in-app-shell.tsx +0 -1
  229. package/dist/skill/reference/layout/app-header/examples/narrow.tsx +4 -5
  230. package/dist/skill/reference/layout/app-header/examples/overview.tsx +8 -10
  231. package/dist/skill/reference/layout/app-header/examples/page-title.tsx +3 -10
  232. package/dist/skill/reference/layout/app-shell/COMPONENT.md +4 -3
  233. package/dist/skill/reference/layout/app-shell/examples/overview.tsx +15 -30
  234. package/dist/skill/reference/layout/app-shell/examples/screen.tsx +262 -0
  235. package/dist/skill/reference/layout/app-shell/examples/template.tsx +29 -9
  236. package/dist/skill/reference/layout/sidebar/COMPONENT.md +7 -4
  237. package/dist/skill/reference/layout/sidebar/examples/account.tsx +2 -2
  238. package/dist/skill/reference/layout/sidebar/examples/collapsible-groups.tsx +12 -4
  239. package/dist/skill/reference/layout/sidebar/examples/custom-part.tsx +53 -0
  240. package/dist/skill/reference/layout/sidebar/examples/examples.module.css +5 -0
  241. package/dist/skill/reference/layout/sidebar/examples/narrow.tsx +53 -0
  242. package/dist/skill/reference/layout/sidebar/examples/persist.tsx +57 -0
  243. package/dist/skill/reference/layout/sidebar/examples/router.tsx +14 -2
  244. package/dist/skill/reference/layout/sidebar/examples/structure.tsx +7 -2
  245. package/dist/skill/responsive.md +2 -2
  246. package/package.json +1 -1
  247. package/src/components/avatar/examples/states.tsx +4 -4
  248. package/src/components/badge/examples/applied-filters.tsx +13 -19
  249. package/src/components/badge/examples/examples.module.css +1 -8
  250. package/src/components/badge/examples/server-tags.tsx +2 -6
  251. package/src/components/banner/examples/examples.module.css +1 -5
  252. package/src/components/banner/examples/page-strip.tsx +16 -22
  253. package/src/components/breadcrumb/COMPONENT.md +4 -3
  254. package/src/components/breadcrumb/examples/ellipsis.tsx +2 -2
  255. package/src/components/button-group/COMPONENT.md +2 -2
  256. package/src/components/button-group/examples/in-form.tsx +22 -2
  257. package/src/components/button-group/examples/states.tsx +10 -1
  258. package/src/components/card/COMPONENT.md +2 -1
  259. package/src/components/card/examples/screen.module.css +14 -0
  260. package/src/components/card/examples/screen.tsx +362 -0
  261. package/src/components/card/examples/variants.tsx +15 -1
  262. package/src/components/chart-frame/COMPONENT.md +2 -1
  263. package/src/components/chart-frame/examples/fill-height.tsx +119 -0
  264. package/src/components/chart-frame/examples/states.tsx +3 -1
  265. package/src/components/chat/COMPONENT.md +3 -1
  266. package/src/components/chat/examples/group-chat.tsx +15 -2
  267. package/src/components/chat/examples/reactions.tsx +121 -0
  268. package/src/components/chat/examples/screen.module.css +9 -0
  269. package/src/components/chat/examples/screen.tsx +718 -0
  270. package/src/components/chat-list/COMPONENT.md +1 -0
  271. package/src/components/chat-list/examples/links.tsx +72 -0
  272. package/src/components/checkbox/COMPONENT.md +1 -1
  273. package/src/components/checkbox/examples/examples.module.css +5 -1
  274. package/src/components/checkbox/examples/indicator.tsx +13 -7
  275. package/src/components/checkbox/examples/states.tsx +6 -1
  276. package/src/components/color-field/COMPONENT.md +1 -1
  277. package/src/components/color-picker/COMPONENT.md +4 -3
  278. package/src/components/color-picker/examples/controlled-open.tsx +37 -0
  279. package/src/components/color-picker/examples/presets.tsx +2 -2
  280. package/src/components/color-picker/examples/states.tsx +23 -14
  281. package/src/components/composer/COMPONENT.md +2 -1
  282. package/src/components/composer/examples/attach-menu.tsx +78 -0
  283. package/src/components/composer/examples/attachments.tsx +2 -2
  284. package/src/components/crossfade/COMPONENT.md +1 -0
  285. package/src/components/crossfade/examples/screen.module.css +40 -0
  286. package/src/components/crossfade/examples/screen.tsx +197 -0
  287. package/src/components/data-table/COMPONENT.md +3 -2
  288. package/src/components/data-table/examples/detail-panel.tsx +36 -37
  289. package/src/components/data-table/examples/examples.module.css +0 -12
  290. package/src/components/data-table/examples/numeric.tsx +36 -4
  291. package/src/components/data-table/examples/overview.tsx +1 -0
  292. package/src/components/data-table/examples/row-open.tsx +7 -36
  293. package/src/components/data-table/examples/screen.module.css +13 -0
  294. package/src/components/data-table/examples/screen.tsx +354 -0
  295. package/src/components/datepicker/COMPONENT.md +5 -4
  296. package/src/components/datepicker/examples/examples.module.css +2 -6
  297. package/src/components/datepicker/examples/in-form.tsx +47 -55
  298. package/src/components/datepicker/examples/locale.tsx +35 -0
  299. package/src/components/datepicker/examples/range-presets.tsx +11 -2
  300. package/src/components/datepicker/examples/states.tsx +9 -1
  301. package/src/components/description-list/COMPONENT.md +1 -0
  302. package/src/components/description-list/examples/screen.module.css +64 -0
  303. package/src/components/description-list/examples/screen.tsx +214 -0
  304. package/src/components/description-list/examples/structure.tsx +1 -1
  305. package/src/components/digit-input/COMPONENT.md +3 -1
  306. package/src/components/digit-input/examples/states.tsx +3 -1
  307. package/src/components/digit-input/examples/without-focus-ring.tsx +13 -0
  308. package/src/components/divider/examples/with-icon.tsx +2 -2
  309. package/src/components/dnd/COMPONENT.md +4 -2
  310. package/src/components/dnd/examples/drop-zones.tsx +82 -49
  311. package/src/components/dnd/examples/examples.module.css +50 -0
  312. package/src/components/dnd/examples/states.tsx +54 -0
  313. package/src/components/dnd/examples/table.tsx +113 -0
  314. package/src/components/drawer/COMPONENT.md +1 -0
  315. package/src/components/drawer/examples/dismiss.tsx +5 -3
  316. package/src/components/drawer/examples/examples.module.css +0 -13
  317. package/src/components/drawer/examples/header-actions.tsx +5 -9
  318. package/src/components/drawer/examples/overview.tsx +6 -18
  319. package/src/components/drawer/examples/screen.module.css +14 -0
  320. package/src/components/drawer/examples/screen.tsx +298 -0
  321. package/src/components/dropdown/examples/examples.module.css +1 -5
  322. package/src/components/empty-page/COMPONENT.md +1 -1
  323. package/src/components/empty-page/examples/region-error.tsx +8 -2
  324. package/src/components/example-frame/COMPONENT.md +3 -2
  325. package/src/components/example-frame/examples/initial-view.tsx +44 -0
  326. package/src/components/field-list/COMPONENT.md +2 -1
  327. package/src/components/field-list/examples/errors.tsx +5 -2
  328. package/src/components/field-list/examples/screen.module.css +18 -0
  329. package/src/components/field-list/examples/screen.tsx +316 -0
  330. package/src/components/file-upload/COMPONENT.md +7 -6
  331. package/src/components/file-upload/examples/custom-body.tsx +2 -1
  332. package/src/components/file-upload/examples/examples.module.css +1 -7
  333. package/src/components/file-upload/examples/file-cards.tsx +10 -1
  334. package/src/components/file-upload/examples/gallery.tsx +2 -2
  335. package/src/components/file-upload/examples/in-form.tsx +4 -9
  336. package/src/components/file-upload/examples/overview.tsx +5 -1
  337. package/src/components/file-upload/examples/row-parts.tsx +24 -1
  338. package/src/components/file-upload/examples/screen.module.css +45 -0
  339. package/src/components/file-upload/examples/screen.tsx +646 -0
  340. package/src/components/file-upload/examples/states.tsx +6 -2
  341. package/src/components/file-upload/examples/validation.tsx +11 -2
  342. package/src/components/file-upload/examples/variants.tsx +3 -20
  343. package/src/components/gantt/COMPONENT.md +2 -1
  344. package/src/components/gantt/examples/screen.module.css +14 -0
  345. package/src/components/gantt/examples/screen.tsx +726 -0
  346. package/src/components/gantt/examples/states.tsx +6 -2
  347. package/src/components/input/COMPONENT.md +2 -2
  348. package/src/components/input/examples/examples.module.css +0 -6
  349. package/src/components/input/examples/in-form.tsx +1 -9
  350. package/src/components/input/examples/password-strength.tsx +34 -8
  351. package/src/components/input/examples/states.tsx +6 -1
  352. package/src/components/kanban/COMPONENT.md +3 -2
  353. package/src/components/kanban/examples/columns.tsx +8 -5
  354. package/src/components/kanban/examples/screen.module.css +17 -0
  355. package/src/components/kanban/examples/screen.tsx +572 -0
  356. package/src/components/kanban/examples/states.tsx +17 -6
  357. package/src/components/login-form/COMPONENT.md +6 -5
  358. package/src/components/login-form/examples/examples.module.css +2 -21
  359. package/src/components/login-form/examples/forgot-password.tsx +28 -32
  360. package/src/components/login-form/examples/narrow.tsx +1 -1
  361. package/src/components/login-form/examples/overview.tsx +45 -47
  362. package/src/components/login-form/examples/register.tsx +64 -68
  363. package/src/components/login-form/examples/reset-password.tsx +50 -47
  364. package/src/components/login-form/examples/sizes.tsx +4 -6
  365. package/src/components/login-form/examples/states.tsx +53 -57
  366. package/src/components/login-form/examples/structure.tsx +18 -22
  367. package/src/components/login-form/examples/verification-code.tsx +41 -45
  368. package/src/components/media-viewer/COMPONENT.md +1 -1
  369. package/src/components/media-viewer/examples/dismiss.tsx +5 -1
  370. package/src/components/message/COMPONENT.md +4 -3
  371. package/src/components/message/examples/file.tsx +5 -1
  372. package/src/components/message/examples/media-open.tsx +48 -0
  373. package/src/components/message/examples/status.tsx +21 -3
  374. package/src/components/message/examples/text-formatting.tsx +7 -1
  375. package/src/components/modal/COMPONENT.md +2 -1
  376. package/src/components/modal/examples/custom-container.tsx +20 -20
  377. package/src/components/modal/examples/dismiss.tsx +5 -3
  378. package/src/components/modal/examples/enter-key.tsx +116 -0
  379. package/src/components/modal/examples/examples.module.css +7 -13
  380. package/src/components/modal/examples/structure.tsx +5 -2
  381. package/src/components/native-select/COMPONENT.md +1 -1
  382. package/src/components/native-select/examples/states.tsx +5 -1
  383. package/src/components/notification/COMPONENT.md +1 -1
  384. package/src/components/notification/examples/dismiss.tsx +2 -2
  385. package/src/components/page-content/COMPONENT.md +1 -0
  386. package/src/components/page-content/examples/list-detail.tsx +0 -3
  387. package/src/components/page-content/examples/screen.module.css +27 -0
  388. package/src/components/page-content/examples/screen.tsx +196 -0
  389. package/src/components/page-content/examples/variants.tsx +4 -11
  390. package/src/components/page-toolbar/COMPONENT.md +17 -15
  391. package/src/components/page-toolbar/examples/narrow.tsx +6 -3
  392. package/src/components/pagination/examples/controlled.tsx +29 -29
  393. package/src/components/pagination/examples/examples.module.css +0 -2
  394. package/src/components/progress-bar/COMPONENT.md +1 -1
  395. package/src/components/progress-bar/examples/segments.tsx +2 -2
  396. package/src/components/progress-circle/COMPONENT.md +1 -1
  397. package/src/components/progress-circle/examples/segments.tsx +8 -3
  398. package/src/components/radio/COMPONENT.md +1 -0
  399. package/src/components/radio/examples/examples.module.css +14 -0
  400. package/src/components/radio/examples/in-form.tsx +45 -0
  401. package/src/components/scroll-container/COMPONENT.md +1 -0
  402. package/src/components/scroll-container/examples/auto-scroll.tsx +3 -3
  403. package/src/components/scroll-container/examples/chat.tsx +3 -3
  404. package/src/components/scroll-container/examples/edges.tsx +6 -3
  405. package/src/components/scroll-container/examples/examples.module.css +4 -17
  406. package/src/components/scroll-container/examples/load-more.tsx +51 -0
  407. package/src/components/scroll-container/examples/lock.tsx +3 -5
  408. package/src/components/scroll-container/examples/overscroll.tsx +3 -3
  409. package/src/components/scroll-container/examples/overview.tsx +3 -3
  410. package/src/components/scroll-container/examples/scrollbar.tsx +13 -7
  411. package/src/components/scroll-container/examples/variants.tsx +13 -7
  412. package/src/components/segmented-control/COMPONENT.md +2 -2
  413. package/src/components/segmented-control/examples/in-form.tsx +5 -1
  414. package/src/components/segmented-control/examples/states.tsx +10 -1
  415. package/src/components/select/COMPONENT.md +1 -1
  416. package/src/components/select/examples/examples.module.css +2 -7
  417. package/src/components/select/examples/states.tsx +13 -1
  418. package/src/components/sheet/COMPONENT.md +2 -0
  419. package/src/components/sheet/examples/guard.tsx +72 -0
  420. package/src/components/sheet/examples/header-actions.tsx +56 -0
  421. package/src/components/slider/COMPONENT.md +2 -1
  422. package/src/components/slider/examples/examples.module.css +8 -0
  423. package/src/components/slider/examples/in-form.tsx +47 -0
  424. package/src/components/slider/examples/states.tsx +4 -1
  425. package/src/components/smart-filter/COMPONENT.md +1 -1
  426. package/src/components/smart-filter/examples/controlled.tsx +3 -3
  427. package/src/components/smart-filter/examples/ranges.tsx +44 -10
  428. package/src/components/sparkline/COMPONENT.md +1 -1
  429. package/src/components/sparkline/examples/reference.tsx +2 -1
  430. package/src/components/tabs/COMPONENT.md +1 -1
  431. package/src/components/tabs/examples/sizes.tsx +1 -1
  432. package/src/components/tag-select/COMPONENT.md +1 -1
  433. package/src/components/tag-select/examples/states.tsx +8 -1
  434. package/src/components/textarea/COMPONENT.md +1 -1
  435. package/src/components/textarea/examples/examples.module.css +0 -6
  436. package/src/components/textarea/examples/in-form.tsx +1 -9
  437. package/src/components/textarea/examples/states.tsx +2 -1
  438. package/src/components/thumbnail/COMPONENT.md +2 -1
  439. package/src/components/thumbnail/examples/examples.module.css +1 -1
  440. package/src/components/thumbnail/examples/fit.tsx +24 -0
  441. package/src/components/thumbnail/examples/video.tsx +20 -1
  442. package/src/components/timeline/COMPONENT.md +1 -1
  443. package/src/components/timeline/examples/links.tsx +55 -14
  444. package/src/components/tooltip/COMPONENT.md +1 -1
  445. package/src/components/tooltip/examples/toolbar.tsx +2 -2
  446. package/src/components/typography/examples/weights.tsx +3 -0
  447. package/src/components/video-note/COMPONENT.md +2 -2
  448. package/src/components/video-note/examples/controlled.tsx +19 -2
  449. package/src/components/video-note/examples/in-message.tsx +5 -2
  450. package/src/components/visually-hidden/COMPONENT.md +2 -1
  451. package/src/components/visually-hidden/examples/assertive.tsx +39 -0
  452. package/src/components/voice-player/COMPONENT.md +2 -2
  453. package/src/components/voice-player/examples/call-recording.tsx +19 -9
  454. package/src/components/voice-player/examples/controlled.tsx +20 -3
  455. package/src/layout/app-header/COMPONENT.md +46 -63
  456. package/src/layout/app-header/examples/breadcrumbs.tsx +10 -9
  457. package/src/layout/app-header/examples/examples.module.css +1 -1
  458. package/src/layout/app-header/examples/in-app-shell.tsx +0 -1
  459. package/src/layout/app-header/examples/narrow.tsx +4 -5
  460. package/src/layout/app-header/examples/overview.tsx +8 -10
  461. package/src/layout/app-header/examples/page-title.tsx +3 -10
  462. package/src/layout/app-shell/COMPONENT.md +4 -3
  463. package/src/layout/app-shell/examples/overview.tsx +15 -30
  464. package/src/layout/app-shell/examples/screen.module.css +11 -0
  465. package/src/layout/app-shell/examples/screen.tsx +262 -0
  466. package/src/layout/app-shell/examples/template.tsx +29 -9
  467. package/src/layout/sidebar/COMPONENT.md +7 -4
  468. package/src/layout/sidebar/examples/account.tsx +2 -2
  469. package/src/layout/sidebar/examples/collapsible-groups.tsx +12 -4
  470. package/src/layout/sidebar/examples/custom-part.tsx +53 -0
  471. package/src/layout/sidebar/examples/examples.module.css +5 -0
  472. package/src/layout/sidebar/examples/narrow.tsx +53 -0
  473. package/src/layout/sidebar/examples/persist.tsx +57 -0
  474. package/src/layout/sidebar/examples/router.tsx +14 -2
  475. package/src/layout/sidebar/examples/structure.tsx +7 -2
  476. package/dist/skill/patterns/app-shell.tsx +0 -303
  477. package/dist/skill/patterns/chat.module.css +0 -8
  478. package/dist/skill/patterns/dashboard.tsx +0 -340
  479. package/dist/skill/patterns/detail-page.tsx +0 -206
  480. package/dist/skill/patterns/form-drawer.tsx +0 -240
  481. package/dist/skill/patterns/kanban-board.module.css +0 -28
  482. package/dist/skill/patterns/media-library.tsx +0 -637
  483. package/dist/skill/patterns/schedule.module.css +0 -22
  484. package/dist/skill/patterns/screen-states.tsx +0 -187
  485. /package/dist/skill/{patterns/dashboard.module.css → reference/components/card/examples/screen.module.css} +0 -0
  486. /package/dist/skill/{patterns/screen-states.module.css → reference/components/crossfade/examples/screen.module.css} +0 -0
  487. /package/dist/skill/{patterns/form-drawer.module.css → reference/components/drawer/examples/screen.module.css} +0 -0
  488. /package/dist/skill/{patterns/record-editor.module.css → reference/components/field-list/examples/screen.module.css} +0 -0
  489. /package/dist/skill/{patterns/settings-page.module.css → reference/components/page-content/examples/screen.module.css} +0 -0
  490. /package/dist/skill/{patterns/app-shell.module.css → reference/layout/app-shell/examples/screen.module.css} +0 -0
@@ -1,6 +1,6 @@
1
1
  # LoginForm
2
2
 
3
- **Category:** composition
3
+ **Category:** page
4
4
  **Kind:** composite
5
5
 
6
6
  > A sign-in card with a logo, title, provider buttons and a form; covers sign-in, sign-up, password reset and code confirmation.
@@ -54,7 +54,7 @@ Every part is optional except `Root`, `Title` and `Form`. Fields, buttons, divid
54
54
  `ref` → `HTMLElement`. `<header>` with the logo, title and description, laid out by Root `align`. Native props.
55
55
 
56
56
  ### LoginForm.Logo
57
- `ref` → `HTMLDivElement`. A tile for the product mark or an icon (accent tile with `start`, round with `center`); decorative unless it has an `aria-label`. Native `<div>` props.
57
+ `ref` → `HTMLDivElement`. A tile for the product mark or an icon (accent tile with `start`, round with `center`); decorative unless it has an `aria-label` — then it is the product mark image (`role="img"`). Native `<div>` props.
58
58
 
59
59
  ### LoginForm.Title
60
60
  `ref` → `HTMLHeadingElement`. The heading (kit Typography, text role by the tier).
@@ -119,7 +119,7 @@ Root carries `data-size`, `data-align` and `data-flat`.
119
119
  ## Layout & spacing
120
120
  - header → body `--prime-space-8` (gap on Root); provider buttons → divider → form `--prime-space-4`; field → field → submit `--prime-space-5`; submit → back action `--prime-space-3`; form → footer `--prime-space-6`.
121
121
  - Spacing is `gap` on parents; no margins between parts.
122
- - The card has no border and is capped at the small modal width. To center it on a page, wrap it in your own flex container on the page.
122
+ - The card has no border, takes the full width up to the small modal width. To center it on a page, wrap it in your own flex container on the page.
123
123
  - The form is a layer of the surface ladder like Card (`data-depth`): on the page it is white in light with the raised whisper, fields inside are one step off it.
124
124
 
125
125
  ## Accessibility
@@ -129,6 +129,7 @@ No keyboard interaction.
129
129
 
130
130
  ### ARIA
131
131
  - The title is a real heading (`h1` by default) and the form is a native `<form>`: Enter submits.
132
+ - The logo is decorative; with an `aria-label` it is the product mark image (`role="img"`).
132
133
  - Give `LoginForm.Form` an `aria-label` (or `aria-labelledby` pointing to the title id) so the form is a landmark.
133
134
  - Fields use `autoComplete` (`email`, `current-password`, `new-password`, `one-time-code`) so password managers and OTP autofill work.
134
135
  - Server errors in a Banner need `role="alert"`; field errors come from the fields (`aria-invalid`, described by the error).
@@ -141,9 +142,9 @@ No `labels`.
141
142
  ## Examples
142
143
  | Example | Shows |
143
144
  |---|---|
144
- | [overview.tsx](examples/overview.tsx) | Sign in with a provider button, e-mail and password, a «forgot password» link and a sign-up link under a centered header — `align`, `LoginForm.Actions`, `LoginForm.Form`, `LoginForm.Footer`. |
145
+ | [overview.tsx](examples/overview.tsx) | Sign in with a provider button, e-mail and password, a «forgot password» link and a sign-up link under a centered header with the product's named mark — `align`, `LoginForm.Logo`, `LoginForm.Actions`, `LoginForm.Form`, `LoginForm.Footer`. |
145
146
  | [sizes.tsx](examples/sizes.tsx) | Padding, gaps and text roles of the card follow the tier; the fields and buttons take the same one — `size`. |
146
- | [structure.tsx](examples/structure.tsx) | The minimal form: no logo, description or footer, and no shadow for a host that already is a surface — `flat`. |
147
+ | [structure.tsx](examples/structure.tsx) | The minimal form: no logo, description or footer, no shadow for a host that already is a surface and a second-level title under the host page's own heading — `flat`, `as`. |
147
148
  | [register.tsx](examples/register.tsx) | Sign-up: five fields in one column, a strength meter on the new password and a mismatch shown as the field error — `strength`, `error`, `LoginForm.Form`. |
148
149
  | [forgot-password.tsx](examples/forgot-password.tsx) | Password reset request: one field, the primary action and a quiet way back — `LoginForm.Actions`. |
149
150
  | [reset-password.tsx](examples/reset-password.tsx) | A new password after the e-mail link: a strength meter on the first field and a mismatch error under the second one — `strength`, `error`. |
@@ -1,25 +1,6 @@
1
1
  /* Layout helpers for the LoginForm examples. Semantic tokens only. */
2
2
 
3
- /* Centers one card on the stage (the card itself is capped at the modal width). */
4
- .stage {
5
- display: flex;
6
- justify-content: center;
7
- width: 100%;
8
- min-width: 0;
9
- }
10
-
11
- /* Several cards side by side, wrapping on narrow stages. */
12
- .row {
13
- display: flex;
14
- flex-wrap: wrap;
15
- align-items: flex-start;
16
- justify-content: center;
17
- gap: var(--prime-space-6);
18
- width: 100%;
19
- min-width: 0;
20
- }
21
-
22
- /* A field with a link under it, aligned to the field's end edge. */
3
+ /* overview.tsx: a field with a link under it, aligned to the field's end edge. */
23
4
  .withLink {
24
5
  display: flex;
25
6
  flex-direction: column;
@@ -31,7 +12,7 @@
31
12
  align-self: stretch;
32
13
  }
33
14
 
34
- /* narrow.tsx: a phone-width stage. */
15
+ /* narrow.tsx: a phone-width stage (320). */
35
16
  .narrow {
36
17
  display: flex;
37
18
  justify-content: center;
@@ -1,39 +1,35 @@
1
1
  /** Password reset request: one field, the primary action and a quiet way back — `LoginForm.Actions`. */
2
2
  import { Button, Icon, Input, LoginForm } from "prime-ui-kit";
3
3
 
4
- import styles from "./examples.module.css";
5
-
6
4
  export default function LoginFormForgotPasswordExample() {
7
5
  return (
8
- <div className={styles.stage}>
9
- <LoginForm.Root>
10
- <LoginForm.Header>
11
- <LoginForm.Logo>
12
- <Icon name="object.key" />
13
- </LoginForm.Logo>
14
- <LoginForm.Title>Сброс пароля</LoginForm.Title>
15
- <LoginForm.Description>
16
- Введите email от аккаунта — отправим ссылку для смены пароля
17
- </LoginForm.Description>
18
- </LoginForm.Header>
19
- <LoginForm.Body>
20
- <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
21
- <Input.Root label="Email" required>
22
- <Input.Wrapper>
23
- <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
24
- </Input.Wrapper>
25
- </Input.Root>
26
- <LoginForm.Actions>
27
- <Button.Root type="submit" fullWidth>
28
- Отправить ссылку
29
- </Button.Root>
30
- <Button.Root variant="ghost" tone="neutral" fullWidth>
31
- Вернуться ко входу
32
- </Button.Root>
33
- </LoginForm.Actions>
34
- </LoginForm.Form>
35
- </LoginForm.Body>
36
- </LoginForm.Root>
37
- </div>
6
+ <LoginForm.Root>
7
+ <LoginForm.Header>
8
+ <LoginForm.Logo>
9
+ <Icon name="object.key" />
10
+ </LoginForm.Logo>
11
+ <LoginForm.Title>Сброс пароля</LoginForm.Title>
12
+ <LoginForm.Description>
13
+ Введите email от аккаунта — отправим ссылку для смены пароля
14
+ </LoginForm.Description>
15
+ </LoginForm.Header>
16
+ <LoginForm.Body>
17
+ <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
18
+ <Input.Root label="Email" required>
19
+ <Input.Wrapper>
20
+ <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
21
+ </Input.Wrapper>
22
+ </Input.Root>
23
+ <LoginForm.Actions>
24
+ <Button.Root type="submit" fullWidth>
25
+ Отправить ссылку
26
+ </Button.Root>
27
+ <Button.Root variant="ghost" tone="neutral" fullWidth>
28
+ Вернуться ко входу
29
+ </Button.Root>
30
+ </LoginForm.Actions>
31
+ </LoginForm.Form>
32
+ </LoginForm.Body>
33
+ </LoginForm.Root>
38
34
  );
39
35
  }
@@ -6,7 +6,7 @@ import styles from "./examples.module.css";
6
6
  export default function LoginFormNarrowExample() {
7
7
  return (
8
8
  <div className={styles.narrow}>
9
- <LoginForm.Root size="s">
9
+ <LoginForm.Root>
10
10
  <LoginForm.Header>
11
11
  <LoginForm.Title>Вход в кабинет поставщика</LoginForm.Title>
12
12
  <LoginForm.Description>Пришлём ссылку для входа на рабочую почту</LoginForm.Description>
@@ -1,58 +1,56 @@
1
- /** Sign in with a provider button, e-mail and password, a «forgot password» link and a sign-up link under a centered header — `align`, `LoginForm.Actions`, `LoginForm.Form`, `LoginForm.Footer`. */
1
+ /** Sign in with a provider button, e-mail and password, a «forgot password» link and a sign-up link under a centered header with the product's named mark — `align`, `LoginForm.Logo`, `LoginForm.Actions`, `LoginForm.Form`, `LoginForm.Footer`. */
2
2
  import { Button, Divider, Icon, Input, LinkButton, LoginForm } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
5
5
 
6
6
  export default function LoginFormOverviewExample() {
7
7
  return (
8
- <div className={styles.stage}>
9
- <LoginForm.Root align="center">
10
- <LoginForm.Header>
11
- <LoginForm.Logo>
12
- <Icon name="action.send" />
13
- </LoginForm.Logo>
14
- <LoginForm.Title>Войти в аккаунт</LoginForm.Title>
15
- <LoginForm.Description>Введите данные для входа в кабинет</LoginForm.Description>
16
- </LoginForm.Header>
17
- <LoginForm.Body>
18
- <LoginForm.Actions>
19
- <Button.Root variant="outline" tone="neutral" fullWidth>
20
- <Button.Icon>
21
- <Icon name="object.key" />
22
- </Button.Icon>
23
- Войти через SSO компании
24
- </Button.Root>
25
- </LoginForm.Actions>
26
- <Divider>или</Divider>
27
- <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
28
- <Input.Root label="Email" required>
8
+ <LoginForm.Root align="center">
9
+ <LoginForm.Header>
10
+ <LoginForm.Logo aria-label="Маршрут">
11
+ <Icon name="action.send" />
12
+ </LoginForm.Logo>
13
+ <LoginForm.Title>Войти в аккаунт</LoginForm.Title>
14
+ <LoginForm.Description>Введите данные для входа в кабинет</LoginForm.Description>
15
+ </LoginForm.Header>
16
+ <LoginForm.Body>
17
+ <LoginForm.Actions>
18
+ <Button.Root variant="outline" tone="neutral" fullWidth>
19
+ <Button.Icon>
20
+ <Icon name="object.key" />
21
+ </Button.Icon>
22
+ Войти через SSO компании
23
+ </Button.Root>
24
+ </LoginForm.Actions>
25
+ <Divider>или</Divider>
26
+ <LoginForm.Form aria-label="Вход по почте" onSubmit={(e) => e.preventDefault()}>
27
+ <Input.Root label="Email" required>
28
+ <Input.Wrapper>
29
+ <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
30
+ </Input.Wrapper>
31
+ </Input.Root>
32
+ <div className={styles.withLink}>
33
+ <Input.Root label="Пароль" required>
29
34
  <Input.Wrapper>
30
- <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
35
+ <Input.Field
36
+ type="password"
37
+ autoComplete="current-password"
38
+ placeholder="********"
39
+ />
31
40
  </Input.Wrapper>
32
41
  </Input.Root>
33
- <div className={styles.withLink}>
34
- <Input.Root label="Пароль" required>
35
- <Input.Wrapper>
36
- <Input.Field
37
- type="password"
38
- autoComplete="current-password"
39
- placeholder="********"
40
- />
41
- </Input.Wrapper>
42
- </Input.Root>
43
- <LinkButton href="#" size="s" tone="neutral">
44
- Забыли пароль?
45
- </LinkButton>
46
- </div>
47
- <Button.Root type="submit" fullWidth>
48
- Войти
49
- </Button.Root>
50
- </LoginForm.Form>
51
- <LoginForm.Footer>
52
- Нет аккаунта? <LinkButton href="#">Зарегистрироваться</LinkButton>
53
- </LoginForm.Footer>
54
- </LoginForm.Body>
55
- </LoginForm.Root>
56
- </div>
42
+ <LinkButton href="#" size="s" tone="neutral">
43
+ Забыли пароль?
44
+ </LinkButton>
45
+ </div>
46
+ <Button.Root type="submit" fullWidth>
47
+ Войти
48
+ </Button.Root>
49
+ </LoginForm.Form>
50
+ <LoginForm.Footer>
51
+ Нет аккаунта? <LinkButton href="#">Зарегистрироваться</LinkButton>
52
+ </LoginForm.Footer>
53
+ </LoginForm.Body>
54
+ </LoginForm.Root>
57
55
  );
58
56
  }
@@ -2,79 +2,75 @@
2
2
  import { Button, Divider, Icon, Input, LinkButton, LoginForm } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
5
- import styles from "./examples.module.css";
6
-
7
5
  export default function LoginFormRegisterExample() {
8
6
  const [password, setPassword] = React.useState("");
9
7
  const [confirm, setConfirm] = React.useState("");
10
8
  const mismatch = confirm.length > 0 && confirm !== password;
11
9
 
12
10
  return (
13
- <div className={styles.stage}>
14
- <LoginForm.Root>
15
- <LoginForm.Header>
16
- <LoginForm.Logo>
17
- <Icon name="action.send" />
18
- </LoginForm.Logo>
19
- <LoginForm.Title>Регистрация</LoginForm.Title>
20
- <LoginForm.Description>Создайте аккаунт за минуту</LoginForm.Description>
21
- </LoginForm.Header>
22
- <LoginForm.Body>
23
- <LoginForm.Actions>
24
- <Button.Root variant="outline" tone="neutral" fullWidth>
25
- <Button.Icon>
26
- <Icon name="object.key" />
27
- </Button.Icon>
28
- Войти через SSO компании
29
- </Button.Root>
30
- </LoginForm.Actions>
31
- <Divider>или</Divider>
32
- <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
33
- <Input.Root label="Ваше имя" required>
34
- <Input.Wrapper>
35
- <Input.Field autoComplete="name" placeholder="Анна Смирнова" />
36
- </Input.Wrapper>
37
- </Input.Root>
38
- <Input.Root label="Email" required>
39
- <Input.Wrapper>
40
- <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
41
- </Input.Wrapper>
42
- </Input.Root>
43
- <Input.Root label="Пароль" required hint="Минимум 8 символов" strength>
44
- <Input.Wrapper>
45
- <Input.Field
46
- type="password"
47
- autoComplete="new-password"
48
- placeholder="********"
49
- value={password}
50
- onValueChange={setPassword}
51
- />
52
- </Input.Wrapper>
53
- </Input.Root>
54
- <Input.Root
55
- label="Повторите пароль"
56
- required
57
- error={mismatch ? "Пароли не совпадают" : undefined}
58
- >
59
- <Input.Wrapper>
60
- <Input.Field
61
- type="password"
62
- autoComplete="new-password"
63
- placeholder="********"
64
- value={confirm}
65
- onValueChange={setConfirm}
66
- />
67
- </Input.Wrapper>
68
- </Input.Root>
69
- <Button.Root type="submit" fullWidth disabled={mismatch}>
70
- Создать аккаунт
71
- </Button.Root>
72
- </LoginForm.Form>
73
- <LoginForm.Footer>
74
- Уже есть аккаунт? <LinkButton href="#">Войти</LinkButton>
75
- </LoginForm.Footer>
76
- </LoginForm.Body>
77
- </LoginForm.Root>
78
- </div>
11
+ <LoginForm.Root>
12
+ <LoginForm.Header>
13
+ <LoginForm.Logo>
14
+ <Icon name="action.send" />
15
+ </LoginForm.Logo>
16
+ <LoginForm.Title>Регистрация</LoginForm.Title>
17
+ <LoginForm.Description>Создайте аккаунт за минуту</LoginForm.Description>
18
+ </LoginForm.Header>
19
+ <LoginForm.Body>
20
+ <LoginForm.Actions>
21
+ <Button.Root variant="outline" tone="neutral" fullWidth>
22
+ <Button.Icon>
23
+ <Icon name="object.key" />
24
+ </Button.Icon>
25
+ Войти через SSO компании
26
+ </Button.Root>
27
+ </LoginForm.Actions>
28
+ <Divider>или</Divider>
29
+ <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
30
+ <Input.Root label="Ваше имя" required>
31
+ <Input.Wrapper>
32
+ <Input.Field autoComplete="name" placeholder="Анна Смирнова" />
33
+ </Input.Wrapper>
34
+ </Input.Root>
35
+ <Input.Root label="Email" required>
36
+ <Input.Wrapper>
37
+ <Input.Field type="email" autoComplete="email" placeholder="name@company.ru" />
38
+ </Input.Wrapper>
39
+ </Input.Root>
40
+ <Input.Root label="Пароль" required hint="Минимум 8 символов" strength>
41
+ <Input.Wrapper>
42
+ <Input.Field
43
+ type="password"
44
+ autoComplete="new-password"
45
+ placeholder="********"
46
+ value={password}
47
+ onValueChange={setPassword}
48
+ />
49
+ </Input.Wrapper>
50
+ </Input.Root>
51
+ <Input.Root
52
+ label="Повторите пароль"
53
+ required
54
+ error={mismatch ? "Пароли не совпадают" : undefined}
55
+ >
56
+ <Input.Wrapper>
57
+ <Input.Field
58
+ type="password"
59
+ autoComplete="new-password"
60
+ placeholder="********"
61
+ value={confirm}
62
+ onValueChange={setConfirm}
63
+ />
64
+ </Input.Wrapper>
65
+ </Input.Root>
66
+ <Button.Root type="submit" fullWidth disabled={mismatch}>
67
+ Создать аккаунт
68
+ </Button.Root>
69
+ </LoginForm.Form>
70
+ <LoginForm.Footer>
71
+ Уже есть аккаунт? <LinkButton href="#">Войти</LinkButton>
72
+ </LoginForm.Footer>
73
+ </LoginForm.Body>
74
+ </LoginForm.Root>
79
75
  );
80
76
  }
@@ -2,7 +2,7 @@
2
2
  import { Button, Icon, Input, LoginForm } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
5
- import styles from "./examples.module.css";
5
+ const MIN_LENGTH = 8;
6
6
 
7
7
  export default function LoginFormResetPasswordExample() {
8
8
  const [password, setPassword] = React.useState("");
@@ -10,51 +10,54 @@ export default function LoginFormResetPasswordExample() {
10
10
  const mismatch = confirm.length > 0 && confirm !== password;
11
11
 
12
12
  return (
13
- <div className={styles.stage}>
14
- <LoginForm.Root>
15
- <LoginForm.Header>
16
- <LoginForm.Logo>
17
- <Icon name="status.locked" />
18
- </LoginForm.Logo>
19
- <LoginForm.Title>Создайте новый пароль</LoginForm.Title>
20
- <LoginForm.Description>
21
- Придумайте пароль и храните его в надёжном месте
22
- </LoginForm.Description>
23
- </LoginForm.Header>
24
- <LoginForm.Body>
25
- <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
26
- <Input.Root label="Новый пароль" required hint="Минимум 8 символов" strength>
27
- <Input.Wrapper>
28
- <Input.Field
29
- type="password"
30
- autoComplete="new-password"
31
- placeholder="********"
32
- value={password}
33
- onValueChange={setPassword}
34
- />
35
- </Input.Wrapper>
36
- </Input.Root>
37
- <Input.Root
38
- label="Повторите новый пароль"
39
- required
40
- error={mismatch ? "Пароли не совпадают" : undefined}
41
- >
42
- <Input.Wrapper>
43
- <Input.Field
44
- type="password"
45
- autoComplete="new-password"
46
- placeholder="********"
47
- value={confirm}
48
- onValueChange={setConfirm}
49
- />
50
- </Input.Wrapper>
51
- </Input.Root>
52
- <Button.Root type="submit" fullWidth disabled={mismatch || password.length < 6}>
53
- Сохранить
54
- </Button.Root>
55
- </LoginForm.Form>
56
- </LoginForm.Body>
57
- </LoginForm.Root>
58
- </div>
13
+ <LoginForm.Root>
14
+ <LoginForm.Header>
15
+ <LoginForm.Logo>
16
+ <Icon name="status.locked" />
17
+ </LoginForm.Logo>
18
+ <LoginForm.Title>Создайте новый пароль</LoginForm.Title>
19
+ <LoginForm.Description>
20
+ Придумайте пароль и храните его в надёжном месте
21
+ </LoginForm.Description>
22
+ </LoginForm.Header>
23
+ <LoginForm.Body>
24
+ <LoginForm.Form onSubmit={(e) => e.preventDefault()}>
25
+ <Input.Root
26
+ label="Новый пароль"
27
+ required
28
+ hint={`Минимум ${MIN_LENGTH} символов`}
29
+ strength
30
+ >
31
+ <Input.Wrapper>
32
+ <Input.Field
33
+ type="password"
34
+ autoComplete="new-password"
35
+ placeholder="********"
36
+ value={password}
37
+ onValueChange={setPassword}
38
+ />
39
+ </Input.Wrapper>
40
+ </Input.Root>
41
+ <Input.Root
42
+ label="Повторите новый пароль"
43
+ required
44
+ error={mismatch ? "Пароли не совпадают" : undefined}
45
+ >
46
+ <Input.Wrapper>
47
+ <Input.Field
48
+ type="password"
49
+ autoComplete="new-password"
50
+ placeholder="********"
51
+ value={confirm}
52
+ onValueChange={setConfirm}
53
+ />
54
+ </Input.Wrapper>
55
+ </Input.Root>
56
+ <Button.Root type="submit" fullWidth disabled={mismatch || password.length < MIN_LENGTH}>
57
+ Сохранить
58
+ </Button.Root>
59
+ </LoginForm.Form>
60
+ </LoginForm.Body>
61
+ </LoginForm.Root>
59
62
  );
60
63
  }
@@ -1,14 +1,12 @@
1
1
  /** Padding, gaps and text roles of the card follow the tier; the fields and buttons take the same one — `size`. */
2
2
  import { Button, Input, LoginForm } from "prime-ui-kit";
3
3
 
4
- import styles from "./examples.module.css";
5
-
6
- const sizes = ["s", "m", "l"] as const;
4
+ const SIZES = ["s", "m", "l"] as const;
7
5
 
8
6
  export default function LoginFormSizesExample() {
9
7
  return (
10
- <div className={styles.row}>
11
- {sizes.map((size) => (
8
+ <>
9
+ {SIZES.map((size) => (
12
10
  <LoginForm.Root key={size} size={size}>
13
11
  <LoginForm.Header>
14
12
  <LoginForm.Title>Войти в аккаунт</LoginForm.Title>
@@ -33,6 +31,6 @@ export default function LoginFormSizesExample() {
33
31
  </LoginForm.Body>
34
32
  </LoginForm.Root>
35
33
  ))}
36
- </div>
34
+ </>
37
35
  );
38
36
  }