prime-ui-kit 0.9.2 → 0.10.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 (641) hide show
  1. package/README.md +18 -9
  2. package/THIRD_PARTY_NOTICES +76 -0
  3. package/dist/chunks/{chunk-ZEFCDEEQ.js → chunk-4TRNUP45.js} +1085 -526
  4. package/dist/chunks/chunk-EJ2ZVQYL.js +5805 -0
  5. package/dist/chunks/chunk-GFKDZFQR.js +1208 -0
  6. package/dist/chunks/{chunk-LXGRKN34.js → chunk-K4FACFQ2.js} +776 -484
  7. package/dist/chunks/{chunk-IQELQNMR.js → chunk-T7CLQXGB.js} +20 -5
  8. package/dist/color-picker.js +3 -2
  9. package/dist/components/button/Button.d.ts +24 -4
  10. package/dist/components/card/Card.d.ts +1 -1
  11. package/dist/components/code-block/CodeBlock.d.ts +1 -1
  12. package/dist/components/color-picker/ColorPicker.d.ts +1 -1
  13. package/dist/components/data-table/Row.d.ts +3 -1
  14. package/dist/components/data-table/rows.d.ts +4 -0
  15. package/dist/components/digit-input/DigitInput.d.ts +6 -1
  16. package/dist/components/index.d.ts +4 -1
  17. package/dist/components/input/Input.d.ts +16 -1
  18. package/dist/components/input/passwordStrength.d.ts +9 -0
  19. package/dist/components/progress-bar/ProgressBar.d.ts +16 -1
  20. package/dist/components/sparkline/Sparkline.d.ts +26 -0
  21. package/dist/hooks/useEdgeOverflow.d.ts +4 -0
  22. package/dist/icon-set.d.ts +501 -0
  23. package/dist/icons/Icon.d.ts +10 -18
  24. package/dist/icons/glyph.d.ts +40 -0
  25. package/dist/icons/glyphs/a-arrow-down.d.ts +2 -0
  26. package/dist/icons/glyphs/a-arrow-up.d.ts +2 -0
  27. package/dist/icons/glyphs/accessibility.d.ts +2 -0
  28. package/dist/icons/glyphs/activity.d.ts +2 -0
  29. package/dist/icons/glyphs/air-vent.d.ts +2 -0
  30. package/dist/icons/glyphs/airplay.d.ts +2 -0
  31. package/dist/icons/glyphs/alarm-clock-check.d.ts +2 -0
  32. package/dist/icons/glyphs/alarm-clock-minus.d.ts +2 -0
  33. package/dist/icons/glyphs/alarm-clock-plus.d.ts +2 -0
  34. package/dist/icons/glyphs/alarm-clock.d.ts +2 -0
  35. package/dist/icons/glyphs/alarm-smoke.d.ts +2 -0
  36. package/dist/icons/glyphs/align-horizontal-space-around.d.ts +2 -0
  37. package/dist/icons/glyphs/align-vertical-space-around.d.ts +2 -0
  38. package/dist/icons/glyphs/ambulance.d.ts +2 -0
  39. package/dist/icons/glyphs/angry.d.ts +2 -0
  40. package/dist/icons/glyphs/annoyed.d.ts +2 -0
  41. package/dist/icons/glyphs/archive.d.ts +2 -0
  42. package/dist/icons/glyphs/arrow-big-down-dash.d.ts +2 -0
  43. package/dist/icons/glyphs/arrow-big-down.d.ts +2 -0
  44. package/dist/icons/glyphs/arrow-big-left-dash.d.ts +2 -0
  45. package/dist/icons/glyphs/arrow-big-left.d.ts +2 -0
  46. package/dist/icons/glyphs/arrow-big-right-dash.d.ts +2 -0
  47. package/dist/icons/glyphs/arrow-big-right.d.ts +2 -0
  48. package/dist/icons/glyphs/arrow-big-up-dash.d.ts +2 -0
  49. package/dist/icons/glyphs/arrow-big-up.d.ts +2 -0
  50. package/dist/icons/glyphs/arrow-down-0-1.d.ts +2 -0
  51. package/dist/icons/glyphs/arrow-down-1-0.d.ts +2 -0
  52. package/dist/icons/glyphs/arrow-down-a-z.d.ts +2 -0
  53. package/dist/icons/glyphs/arrow-down-left.d.ts +2 -0
  54. package/dist/icons/glyphs/arrow-down-right.d.ts +2 -0
  55. package/dist/icons/glyphs/arrow-down-z-a.d.ts +2 -0
  56. package/dist/icons/glyphs/arrow-down.d.ts +2 -0
  57. package/dist/icons/glyphs/arrow-left.d.ts +2 -0
  58. package/dist/icons/glyphs/arrow-right.d.ts +2 -0
  59. package/dist/icons/glyphs/arrow-up-down.d.ts +2 -0
  60. package/dist/icons/glyphs/arrow-up-left.d.ts +2 -0
  61. package/dist/icons/glyphs/arrow-up-right.d.ts +2 -0
  62. package/dist/icons/glyphs/arrow-up.d.ts +2 -0
  63. package/dist/icons/glyphs/at-sign.d.ts +2 -0
  64. package/dist/icons/glyphs/atom.d.ts +2 -0
  65. package/dist/icons/glyphs/audio-lines.d.ts +2 -0
  66. package/dist/icons/glyphs/axe.d.ts +2 -0
  67. package/dist/icons/glyphs/badge-alert.d.ts +2 -0
  68. package/dist/icons/glyphs/badge-percent.d.ts +2 -0
  69. package/dist/icons/glyphs/ban.d.ts +2 -0
  70. package/dist/icons/glyphs/banana.d.ts +2 -0
  71. package/dist/icons/glyphs/battery-charging.d.ts +2 -0
  72. package/dist/icons/glyphs/battery-full.d.ts +2 -0
  73. package/dist/icons/glyphs/battery-low.d.ts +2 -0
  74. package/dist/icons/glyphs/battery-medium.d.ts +2 -0
  75. package/dist/icons/glyphs/battery-plus.d.ts +2 -0
  76. package/dist/icons/glyphs/battery-warning.d.ts +2 -0
  77. package/dist/icons/glyphs/battery.d.ts +2 -0
  78. package/dist/icons/glyphs/bell-electric.d.ts +2 -0
  79. package/dist/icons/glyphs/bell.d.ts +2 -0
  80. package/dist/icons/glyphs/biceps-flexed.d.ts +2 -0
  81. package/dist/icons/glyphs/binary.d.ts +2 -0
  82. package/dist/icons/glyphs/blocks.d.ts +2 -0
  83. package/dist/icons/glyphs/bluetooth-connected.d.ts +2 -0
  84. package/dist/icons/glyphs/bluetooth-off.d.ts +2 -0
  85. package/dist/icons/glyphs/bluetooth-searching.d.ts +2 -0
  86. package/dist/icons/glyphs/bluetooth.d.ts +2 -0
  87. package/dist/icons/glyphs/bold.d.ts +2 -0
  88. package/dist/icons/glyphs/bone.d.ts +2 -0
  89. package/dist/icons/glyphs/book-open.d.ts +2 -0
  90. package/dist/icons/glyphs/book-text.d.ts +2 -0
  91. package/dist/icons/glyphs/bookmark-check.d.ts +2 -0
  92. package/dist/icons/glyphs/bookmark-minus.d.ts +2 -0
  93. package/dist/icons/glyphs/bookmark-plus.d.ts +2 -0
  94. package/dist/icons/glyphs/bookmark-x.d.ts +2 -0
  95. package/dist/icons/glyphs/bookmark.d.ts +2 -0
  96. package/dist/icons/glyphs/bot-message-square.d.ts +2 -0
  97. package/dist/icons/glyphs/bot.d.ts +2 -0
  98. package/dist/icons/glyphs/box.d.ts +2 -0
  99. package/dist/icons/glyphs/boxes.d.ts +2 -0
  100. package/dist/icons/glyphs/brain.d.ts +2 -0
  101. package/dist/icons/glyphs/briefcase-business.d.ts +2 -0
  102. package/dist/icons/glyphs/calendar-check-2.d.ts +2 -0
  103. package/dist/icons/glyphs/calendar-check.d.ts +2 -0
  104. package/dist/icons/glyphs/calendar-cog.d.ts +2 -0
  105. package/dist/icons/glyphs/calendar-days.d.ts +2 -0
  106. package/dist/icons/glyphs/calendar.d.ts +2 -0
  107. package/dist/icons/glyphs/car.d.ts +2 -0
  108. package/dist/icons/glyphs/cast.d.ts +2 -0
  109. package/dist/icons/glyphs/cctv.d.ts +2 -0
  110. package/dist/icons/glyphs/chart-bar-decreasing.d.ts +2 -0
  111. package/dist/icons/glyphs/chart-bar-increasing.d.ts +2 -0
  112. package/dist/icons/glyphs/chart-column-decreasing.d.ts +2 -0
  113. package/dist/icons/glyphs/chart-column-increasing.d.ts +2 -0
  114. package/dist/icons/glyphs/chart-column.d.ts +2 -0
  115. package/dist/icons/glyphs/chart-line.d.ts +2 -0
  116. package/dist/icons/glyphs/chart-no-axes-column-decreasing.d.ts +2 -0
  117. package/dist/icons/glyphs/chart-no-axes-column-increasing.d.ts +2 -0
  118. package/dist/icons/glyphs/chart-pie.d.ts +2 -0
  119. package/dist/icons/glyphs/chart-scatter.d.ts +2 -0
  120. package/dist/icons/glyphs/chart-spline.d.ts +2 -0
  121. package/dist/icons/glyphs/check-check.d.ts +2 -0
  122. package/dist/icons/glyphs/check.d.ts +2 -0
  123. package/dist/icons/glyphs/chess-bishop.d.ts +2 -0
  124. package/dist/icons/glyphs/chess-king.d.ts +2 -0
  125. package/dist/icons/glyphs/chess-knight.d.ts +2 -0
  126. package/dist/icons/glyphs/chess-pawn.d.ts +2 -0
  127. package/dist/icons/glyphs/chevron-down.d.ts +2 -0
  128. package/dist/icons/glyphs/chevron-first.d.ts +2 -0
  129. package/dist/icons/glyphs/chevron-left.d.ts +2 -0
  130. package/dist/icons/glyphs/chevron-right.d.ts +2 -0
  131. package/dist/icons/glyphs/chevron-up.d.ts +2 -0
  132. package/dist/icons/glyphs/chevrons-down-up.d.ts +2 -0
  133. package/dist/icons/glyphs/chevrons-left-right.d.ts +2 -0
  134. package/dist/icons/glyphs/chevrons-left.d.ts +2 -0
  135. package/dist/icons/glyphs/chevrons-right-left.d.ts +2 -0
  136. package/dist/icons/glyphs/chevrons-up-down.d.ts +2 -0
  137. package/dist/icons/glyphs/chromium.d.ts +2 -0
  138. package/dist/icons/glyphs/cigarette-off.d.ts +2 -0
  139. package/dist/icons/glyphs/cigarette.d.ts +2 -0
  140. package/dist/icons/glyphs/circle-check.d.ts +2 -0
  141. package/dist/icons/glyphs/circle-chevron-down.d.ts +2 -0
  142. package/dist/icons/glyphs/circle-chevron-left.d.ts +2 -0
  143. package/dist/icons/glyphs/circle-chevron-right.d.ts +2 -0
  144. package/dist/icons/glyphs/circle-chevron-up.d.ts +2 -0
  145. package/dist/icons/glyphs/circle-dashed.d.ts +2 -0
  146. package/dist/icons/glyphs/circle-dollar-sign.d.ts +2 -0
  147. package/dist/icons/glyphs/circle-gauge.d.ts +2 -0
  148. package/dist/icons/glyphs/circle-question-mark.d.ts +2 -0
  149. package/dist/icons/glyphs/circle-x.d.ts +2 -0
  150. package/dist/icons/glyphs/circle.d.ts +2 -0
  151. package/dist/icons/glyphs/clapperboard.d.ts +2 -0
  152. package/dist/icons/glyphs/clipboard-check.d.ts +2 -0
  153. package/dist/icons/glyphs/clock.d.ts +2 -0
  154. package/dist/icons/glyphs/cloud-backup.d.ts +2 -0
  155. package/dist/icons/glyphs/cloud-cog.d.ts +2 -0
  156. package/dist/icons/glyphs/cloud-download.d.ts +2 -0
  157. package/dist/icons/glyphs/cloud-lightning.d.ts +2 -0
  158. package/dist/icons/glyphs/cloud-off.d.ts +2 -0
  159. package/dist/icons/glyphs/cloud-rain-wind.d.ts +2 -0
  160. package/dist/icons/glyphs/cloud-rain.d.ts +2 -0
  161. package/dist/icons/glyphs/cloud-snow.d.ts +2 -0
  162. package/dist/icons/glyphs/cloud-sun.d.ts +2 -0
  163. package/dist/icons/glyphs/cloud-sync.d.ts +2 -0
  164. package/dist/icons/glyphs/cloud-upload.d.ts +2 -0
  165. package/dist/icons/glyphs/code-xml.d.ts +2 -0
  166. package/dist/icons/glyphs/coffee.d.ts +2 -0
  167. package/dist/icons/glyphs/cog.d.ts +2 -0
  168. package/dist/icons/glyphs/compass.d.ts +2 -0
  169. package/dist/icons/glyphs/concierge-bell.d.ts +2 -0
  170. package/dist/icons/glyphs/construction.d.ts +2 -0
  171. package/dist/icons/glyphs/contrast.d.ts +2 -0
  172. package/dist/icons/glyphs/cooking-pot.d.ts +2 -0
  173. package/dist/icons/glyphs/copy.d.ts +2 -0
  174. package/dist/icons/glyphs/corner-down-left.d.ts +2 -0
  175. package/dist/icons/glyphs/corner-down-right.d.ts +2 -0
  176. package/dist/icons/glyphs/corner-left-down.d.ts +2 -0
  177. package/dist/icons/glyphs/corner-left-up.d.ts +2 -0
  178. package/dist/icons/glyphs/corner-right-down.d.ts +2 -0
  179. package/dist/icons/glyphs/corner-right-up.d.ts +2 -0
  180. package/dist/icons/glyphs/corner-up-left.d.ts +2 -0
  181. package/dist/icons/glyphs/corner-up-right.d.ts +2 -0
  182. package/dist/icons/glyphs/cpu.d.ts +2 -0
  183. package/dist/icons/glyphs/credit-card.d.ts +2 -0
  184. package/dist/icons/glyphs/cup-soda.d.ts +2 -0
  185. package/dist/icons/glyphs/database-backup.d.ts +2 -0
  186. package/dist/icons/glyphs/delete.d.ts +2 -0
  187. package/dist/icons/glyphs/disc-3.d.ts +2 -0
  188. package/dist/icons/glyphs/dollar-sign.d.ts +2 -0
  189. package/dist/icons/glyphs/download.d.ts +2 -0
  190. package/dist/icons/glyphs/dribbble.d.ts +2 -0
  191. package/dist/icons/glyphs/droplet.d.ts +2 -0
  192. package/dist/icons/glyphs/drum.d.ts +2 -0
  193. package/dist/icons/glyphs/earth.d.ts +2 -0
  194. package/dist/icons/glyphs/ellipsis.d.ts +2 -0
  195. package/dist/icons/glyphs/euro.d.ts +2 -0
  196. package/dist/icons/glyphs/ev-charger.d.ts +2 -0
  197. package/dist/icons/glyphs/expand.d.ts +2 -0
  198. package/dist/icons/glyphs/external-link.d.ts +2 -0
  199. package/dist/icons/glyphs/eye-off.d.ts +2 -0
  200. package/dist/icons/glyphs/eye.d.ts +2 -0
  201. package/dist/icons/glyphs/facebook.d.ts +2 -0
  202. package/dist/icons/glyphs/fan.d.ts +2 -0
  203. package/dist/icons/glyphs/feather.d.ts +2 -0
  204. package/dist/icons/glyphs/figma.d.ts +2 -0
  205. package/dist/icons/glyphs/file-chart-line.d.ts +2 -0
  206. package/dist/icons/glyphs/file-check-corner.d.ts +2 -0
  207. package/dist/icons/glyphs/file-check.d.ts +2 -0
  208. package/dist/icons/glyphs/file-cog.d.ts +2 -0
  209. package/dist/icons/glyphs/file-pen-line.d.ts +2 -0
  210. package/dist/icons/glyphs/file-stack.d.ts +2 -0
  211. package/dist/icons/glyphs/file-text.d.ts +2 -0
  212. package/dist/icons/glyphs/fingerprint-pattern.d.ts +2 -0
  213. package/dist/icons/glyphs/fish-symbol.d.ts +2 -0
  214. package/dist/icons/glyphs/flame.d.ts +2 -0
  215. package/dist/icons/glyphs/flask-conical.d.ts +2 -0
  216. package/dist/icons/glyphs/folder-archive.d.ts +2 -0
  217. package/dist/icons/glyphs/folder-check.d.ts +2 -0
  218. package/dist/icons/glyphs/folder-clock.d.ts +2 -0
  219. package/dist/icons/glyphs/folder-code.d.ts +2 -0
  220. package/dist/icons/glyphs/folder-cog.d.ts +2 -0
  221. package/dist/icons/glyphs/folder-dot.d.ts +2 -0
  222. package/dist/icons/glyphs/folder-down.d.ts +2 -0
  223. package/dist/icons/glyphs/folder-git-2.d.ts +2 -0
  224. package/dist/icons/glyphs/folder-git.d.ts +2 -0
  225. package/dist/icons/glyphs/folder-heart.d.ts +2 -0
  226. package/dist/icons/glyphs/folder-input.d.ts +2 -0
  227. package/dist/icons/glyphs/folder-kanban.d.ts +2 -0
  228. package/dist/icons/glyphs/folder-key.d.ts +2 -0
  229. package/dist/icons/glyphs/folder-lock.d.ts +2 -0
  230. package/dist/icons/glyphs/folder-minus.d.ts +2 -0
  231. package/dist/icons/glyphs/folder-open.d.ts +2 -0
  232. package/dist/icons/glyphs/folder-output.d.ts +2 -0
  233. package/dist/icons/glyphs/folder-plus.d.ts +2 -0
  234. package/dist/icons/glyphs/folder-root.d.ts +2 -0
  235. package/dist/icons/glyphs/folder-sync.d.ts +2 -0
  236. package/dist/icons/glyphs/folder-tree.d.ts +2 -0
  237. package/dist/icons/glyphs/folder-up.d.ts +2 -0
  238. package/dist/icons/glyphs/folder-x.d.ts +2 -0
  239. package/dist/icons/glyphs/folders.d.ts +2 -0
  240. package/dist/icons/glyphs/frame.d.ts +2 -0
  241. package/dist/icons/glyphs/frown.d.ts +2 -0
  242. package/dist/icons/glyphs/gallery-horizontal-end.d.ts +2 -0
  243. package/dist/icons/glyphs/gallery-thumbnails.d.ts +2 -0
  244. package/dist/icons/glyphs/gallery-vertical-end.d.ts +2 -0
  245. package/dist/icons/glyphs/gauge.d.ts +2 -0
  246. package/dist/icons/glyphs/gavel.d.ts +2 -0
  247. package/dist/icons/glyphs/georgian-lari.d.ts +2 -0
  248. package/dist/icons/glyphs/git-branch.d.ts +2 -0
  249. package/dist/icons/glyphs/git-commit-horizontal.d.ts +2 -0
  250. package/dist/icons/glyphs/git-commit-vertical.d.ts +2 -0
  251. package/dist/icons/glyphs/git-compare-arrows.d.ts +2 -0
  252. package/dist/icons/glyphs/git-compare.d.ts +2 -0
  253. package/dist/icons/glyphs/git-fork.d.ts +2 -0
  254. package/dist/icons/glyphs/git-graph.d.ts +2 -0
  255. package/dist/icons/glyphs/git-merge.d.ts +2 -0
  256. package/dist/icons/glyphs/git-pull-request-closed.d.ts +2 -0
  257. package/dist/icons/glyphs/git-pull-request-create.d.ts +2 -0
  258. package/dist/icons/glyphs/git-pull-request.d.ts +2 -0
  259. package/dist/icons/glyphs/github.d.ts +2 -0
  260. package/dist/icons/glyphs/gitlab.d.ts +2 -0
  261. package/dist/icons/glyphs/graduation-cap.d.ts +2 -0
  262. package/dist/icons/glyphs/grip-horizontal.d.ts +2 -0
  263. package/dist/icons/glyphs/grip-vertical.d.ts +2 -0
  264. package/dist/icons/glyphs/grip.d.ts +2 -0
  265. package/dist/icons/glyphs/hammer.d.ts +2 -0
  266. package/dist/icons/glyphs/hand-coins.d.ts +2 -0
  267. package/dist/icons/glyphs/hand-fist.d.ts +2 -0
  268. package/dist/icons/glyphs/hand-grab.d.ts +2 -0
  269. package/dist/icons/glyphs/hand-heart.d.ts +2 -0
  270. package/dist/icons/glyphs/hand-helping.d.ts +2 -0
  271. package/dist/icons/glyphs/hand-metal.d.ts +2 -0
  272. package/dist/icons/glyphs/hand.d.ts +2 -0
  273. package/dist/icons/glyphs/hard-drive-download.d.ts +2 -0
  274. package/dist/icons/glyphs/hard-drive-upload.d.ts +2 -0
  275. package/dist/icons/glyphs/hard-drive.d.ts +2 -0
  276. package/dist/icons/glyphs/hat-glasses.d.ts +2 -0
  277. package/dist/icons/glyphs/heart-handshake.d.ts +2 -0
  278. package/dist/icons/glyphs/heart-pulse.d.ts +2 -0
  279. package/dist/icons/glyphs/heart.d.ts +2 -0
  280. package/dist/icons/glyphs/history.d.ts +2 -0
  281. package/dist/icons/glyphs/hourglass.d.ts +2 -0
  282. package/dist/icons/glyphs/house.d.ts +2 -0
  283. package/dist/icons/glyphs/id-card.d.ts +2 -0
  284. package/dist/icons/glyphs/image.d.ts +2 -0
  285. package/dist/icons/glyphs/inbox.d.ts +2 -0
  286. package/dist/icons/glyphs/indian-rupee.d.ts +2 -0
  287. package/dist/icons/glyphs/info.d.ts +2 -0
  288. package/dist/icons/glyphs/instagram.d.ts +2 -0
  289. package/dist/icons/glyphs/italic.d.ts +2 -0
  290. package/dist/icons/glyphs/japanese-yen.d.ts +2 -0
  291. package/dist/icons/glyphs/key-round.d.ts +2 -0
  292. package/dist/icons/glyphs/key-square.d.ts +2 -0
  293. package/dist/icons/glyphs/key.d.ts +2 -0
  294. package/dist/icons/glyphs/keyboard.d.ts +2 -0
  295. package/dist/icons/glyphs/languages.d.ts +2 -0
  296. package/dist/icons/glyphs/laptop-minimal-check.d.ts +2 -0
  297. package/dist/icons/glyphs/laugh.d.ts +2 -0
  298. package/dist/icons/glyphs/layers.d.ts +2 -0
  299. package/dist/icons/glyphs/layout-dashboard.d.ts +2 -0
  300. package/dist/icons/glyphs/layout-grid.d.ts +2 -0
  301. package/dist/icons/glyphs/layout-panel-top.d.ts +2 -0
  302. package/dist/icons/glyphs/leaf.d.ts +2 -0
  303. package/dist/icons/glyphs/leafy-green.d.ts +2 -0
  304. package/dist/icons/glyphs/link-2.d.ts +2 -0
  305. package/dist/icons/glyphs/link.d.ts +2 -0
  306. package/dist/icons/glyphs/linkedin.d.ts +2 -0
  307. package/dist/icons/glyphs/list-filter.d.ts +2 -0
  308. package/dist/icons/glyphs/list-todo.d.ts +2 -0
  309. package/dist/icons/glyphs/list.d.ts +2 -0
  310. package/dist/icons/glyphs/loader-circle.d.ts +2 -0
  311. package/dist/icons/glyphs/loader-pinwheel.d.ts +2 -0
  312. package/dist/icons/glyphs/loader.d.ts +2 -0
  313. package/dist/icons/glyphs/lock-keyhole-open.d.ts +2 -0
  314. package/dist/icons/glyphs/lock-keyhole.d.ts +2 -0
  315. package/dist/icons/glyphs/lock-open.d.ts +2 -0
  316. package/dist/icons/glyphs/lock.d.ts +2 -0
  317. package/dist/icons/glyphs/log-in.d.ts +2 -0
  318. package/dist/icons/glyphs/log-out.d.ts +2 -0
  319. package/dist/icons/glyphs/mail-check.d.ts +2 -0
  320. package/dist/icons/glyphs/mail.d.ts +2 -0
  321. package/dist/icons/glyphs/mailbox.d.ts +2 -0
  322. package/dist/icons/glyphs/map-pin-check-inside.d.ts +2 -0
  323. package/dist/icons/glyphs/map-pin-check.d.ts +2 -0
  324. package/dist/icons/glyphs/map-pin-house.d.ts +2 -0
  325. package/dist/icons/glyphs/map-pin-minus-inside.d.ts +2 -0
  326. package/dist/icons/glyphs/map-pin-minus.d.ts +2 -0
  327. package/dist/icons/glyphs/map-pin-off.d.ts +2 -0
  328. package/dist/icons/glyphs/map-pin-plus-inside.d.ts +2 -0
  329. package/dist/icons/glyphs/map-pin-plus.d.ts +2 -0
  330. package/dist/icons/glyphs/map-pin-x-inside.d.ts +2 -0
  331. package/dist/icons/glyphs/map-pin.d.ts +2 -0
  332. package/dist/icons/glyphs/maximize-2.d.ts +2 -0
  333. package/dist/icons/glyphs/maximize.d.ts +2 -0
  334. package/dist/icons/glyphs/meh.d.ts +2 -0
  335. package/dist/icons/glyphs/menu.d.ts +2 -0
  336. package/dist/icons/glyphs/message-circle-check.d.ts +2 -0
  337. package/dist/icons/glyphs/message-circle-dashed.d.ts +2 -0
  338. package/dist/icons/glyphs/message-circle-more.d.ts +2 -0
  339. package/dist/icons/glyphs/message-circle-plus.d.ts +2 -0
  340. package/dist/icons/glyphs/message-circle-x.d.ts +2 -0
  341. package/dist/icons/glyphs/message-circle.d.ts +2 -0
  342. package/dist/icons/glyphs/message-square-check.d.ts +2 -0
  343. package/dist/icons/glyphs/message-square-dashed.d.ts +2 -0
  344. package/dist/icons/glyphs/message-square-more.d.ts +2 -0
  345. package/dist/icons/glyphs/message-square-plus.d.ts +2 -0
  346. package/dist/icons/glyphs/message-square-x.d.ts +2 -0
  347. package/dist/icons/glyphs/message-square.d.ts +2 -0
  348. package/dist/icons/glyphs/mic-off.d.ts +2 -0
  349. package/dist/icons/glyphs/mic.d.ts +2 -0
  350. package/dist/icons/glyphs/minimize.d.ts +2 -0
  351. package/dist/icons/glyphs/minus.d.ts +2 -0
  352. package/dist/icons/glyphs/monitor-check.d.ts +2 -0
  353. package/dist/icons/glyphs/monitor-cog.d.ts +2 -0
  354. package/dist/icons/glyphs/monitor.d.ts +2 -0
  355. package/dist/icons/glyphs/moon.d.ts +2 -0
  356. package/dist/icons/glyphs/mouse-pointer-click.d.ts +2 -0
  357. package/dist/icons/glyphs/nfc.d.ts +2 -0
  358. package/dist/icons/glyphs/package.d.ts +2 -0
  359. package/dist/icons/glyphs/palette.d.ts +2 -0
  360. package/dist/icons/glyphs/panel-left-close.d.ts +2 -0
  361. package/dist/icons/glyphs/panel-left-open.d.ts +2 -0
  362. package/dist/icons/glyphs/panel-right-open.d.ts +2 -0
  363. package/dist/icons/glyphs/paperclip.d.ts +2 -0
  364. package/dist/icons/glyphs/party-popper.d.ts +2 -0
  365. package/dist/icons/glyphs/pause.d.ts +2 -0
  366. package/dist/icons/glyphs/pen-tool.d.ts +2 -0
  367. package/dist/icons/glyphs/philippine-peso.d.ts +2 -0
  368. package/dist/icons/glyphs/phone-call.d.ts +2 -0
  369. package/dist/icons/glyphs/phone-forwarded.d.ts +2 -0
  370. package/dist/icons/glyphs/phone-incoming.d.ts +2 -0
  371. package/dist/icons/glyphs/phone-missed.d.ts +2 -0
  372. package/dist/icons/glyphs/phone-off.d.ts +2 -0
  373. package/dist/icons/glyphs/phone.d.ts +2 -0
  374. package/dist/icons/glyphs/pickaxe.d.ts +2 -0
  375. package/dist/icons/glyphs/pipette.d.ts +2 -0
  376. package/dist/icons/glyphs/plane-landing.d.ts +2 -0
  377. package/dist/icons/glyphs/plane-takeoff.d.ts +2 -0
  378. package/dist/icons/glyphs/plane.d.ts +2 -0
  379. package/dist/icons/glyphs/play.d.ts +2 -0
  380. package/dist/icons/glyphs/plug-zap.d.ts +2 -0
  381. package/dist/icons/glyphs/plus.d.ts +2 -0
  382. package/dist/icons/glyphs/pound-sterling.d.ts +2 -0
  383. package/dist/icons/glyphs/projector.d.ts +2 -0
  384. package/dist/icons/glyphs/rabbit.d.ts +2 -0
  385. package/dist/icons/glyphs/radio-tower.d.ts +2 -0
  386. package/dist/icons/glyphs/radio.d.ts +2 -0
  387. package/dist/icons/glyphs/receipt-cent.d.ts +2 -0
  388. package/dist/icons/glyphs/receipt-euro.d.ts +2 -0
  389. package/dist/icons/glyphs/receipt-indian-rupee.d.ts +2 -0
  390. package/dist/icons/glyphs/receipt-japanese-yen.d.ts +2 -0
  391. package/dist/icons/glyphs/receipt-pound-sterling.d.ts +2 -0
  392. package/dist/icons/glyphs/receipt-russian-ruble.d.ts +2 -0
  393. package/dist/icons/glyphs/receipt-swiss-franc.d.ts +2 -0
  394. package/dist/icons/glyphs/receipt-text.d.ts +2 -0
  395. package/dist/icons/glyphs/receipt-turkish-lira.d.ts +2 -0
  396. package/dist/icons/glyphs/receipt.d.ts +2 -0
  397. package/dist/icons/glyphs/redo-dot.d.ts +2 -0
  398. package/dist/icons/glyphs/redo.d.ts +2 -0
  399. package/dist/icons/glyphs/refresh-ccw-dot.d.ts +2 -0
  400. package/dist/icons/glyphs/refresh-ccw.d.ts +2 -0
  401. package/dist/icons/glyphs/refresh-cw-off.d.ts +2 -0
  402. package/dist/icons/glyphs/refresh-cw.d.ts +2 -0
  403. package/dist/icons/glyphs/rocket.d.ts +2 -0
  404. package/dist/icons/glyphs/rocking-chair.d.ts +2 -0
  405. package/dist/icons/glyphs/roller-coaster.d.ts +2 -0
  406. package/dist/icons/glyphs/rotate-ccw.d.ts +2 -0
  407. package/dist/icons/glyphs/rotate-cw.d.ts +2 -0
  408. package/dist/icons/glyphs/route.d.ts +2 -0
  409. package/dist/icons/glyphs/router.d.ts +2 -0
  410. package/dist/icons/glyphs/russian-ruble.d.ts +2 -0
  411. package/dist/icons/glyphs/satellite-dish.d.ts +2 -0
  412. package/dist/icons/glyphs/saudi-riyal.d.ts +2 -0
  413. package/dist/icons/glyphs/scan-face.d.ts +2 -0
  414. package/dist/icons/glyphs/scan-text.d.ts +2 -0
  415. package/dist/icons/glyphs/search.d.ts +2 -0
  416. package/dist/icons/glyphs/send.d.ts +2 -0
  417. package/dist/icons/glyphs/server-cog.d.ts +2 -0
  418. package/dist/icons/glyphs/server-crash.d.ts +2 -0
  419. package/dist/icons/glyphs/server.d.ts +2 -0
  420. package/dist/icons/glyphs/settings.d.ts +2 -0
  421. package/dist/icons/glyphs/shield-check.d.ts +2 -0
  422. package/dist/icons/glyphs/ship-wheel.d.ts +2 -0
  423. package/dist/icons/glyphs/ship.d.ts +2 -0
  424. package/dist/icons/glyphs/shopping-cart.d.ts +2 -0
  425. package/dist/icons/glyphs/shower-head.d.ts +2 -0
  426. package/dist/icons/glyphs/shredder.d.ts +2 -0
  427. package/dist/icons/glyphs/shrink.d.ts +2 -0
  428. package/dist/icons/glyphs/sliders-horizontal.d.ts +2 -0
  429. package/dist/icons/glyphs/smartphone-charging.d.ts +2 -0
  430. package/dist/icons/glyphs/smartphone-nfc.d.ts +2 -0
  431. package/dist/icons/glyphs/smartphone.d.ts +2 -0
  432. package/dist/icons/glyphs/smile-plus.d.ts +2 -0
  433. package/dist/icons/glyphs/smile.d.ts +2 -0
  434. package/dist/icons/glyphs/snowflake.d.ts +2 -0
  435. package/dist/icons/glyphs/soup.d.ts +2 -0
  436. package/dist/icons/glyphs/sparkles.d.ts +2 -0
  437. package/dist/icons/glyphs/spray-can.d.ts +2 -0
  438. package/dist/icons/glyphs/square-activity.d.ts +2 -0
  439. package/dist/icons/glyphs/square-arrow-down.d.ts +2 -0
  440. package/dist/icons/glyphs/square-arrow-left.d.ts +2 -0
  441. package/dist/icons/glyphs/square-arrow-right.d.ts +2 -0
  442. package/dist/icons/glyphs/square-arrow-up.d.ts +2 -0
  443. package/dist/icons/glyphs/square-chevron-down.d.ts +2 -0
  444. package/dist/icons/glyphs/square-chevron-left.d.ts +2 -0
  445. package/dist/icons/glyphs/square-chevron-right.d.ts +2 -0
  446. package/dist/icons/glyphs/square-chevron-up.d.ts +2 -0
  447. package/dist/icons/glyphs/square-pen.d.ts +2 -0
  448. package/dist/icons/glyphs/square-stack.d.ts +2 -0
  449. package/dist/icons/glyphs/stamp.d.ts +2 -0
  450. package/dist/icons/glyphs/stethoscope.d.ts +2 -0
  451. package/dist/icons/glyphs/sun-dim.d.ts +2 -0
  452. package/dist/icons/glyphs/sun-medium.d.ts +2 -0
  453. package/dist/icons/glyphs/sun-moon.d.ts +2 -0
  454. package/dist/icons/glyphs/sun.d.ts +2 -0
  455. package/dist/icons/glyphs/sunset.d.ts +2 -0
  456. package/dist/icons/glyphs/swiss-franc.d.ts +2 -0
  457. package/dist/icons/glyphs/switch-camera.d.ts +2 -0
  458. package/dist/icons/glyphs/syringe.d.ts +2 -0
  459. package/dist/icons/glyphs/tablet.d.ts +2 -0
  460. package/dist/icons/glyphs/telescope.d.ts +2 -0
  461. package/dist/icons/glyphs/terminal.d.ts +2 -0
  462. package/dist/icons/glyphs/text-align-center.d.ts +2 -0
  463. package/dist/icons/glyphs/text-align-end.d.ts +2 -0
  464. package/dist/icons/glyphs/text-align-start.d.ts +2 -0
  465. package/dist/icons/glyphs/thermometer.d.ts +2 -0
  466. package/dist/icons/glyphs/thumbs-down.d.ts +2 -0
  467. package/dist/icons/glyphs/thumbs-up.d.ts +2 -0
  468. package/dist/icons/glyphs/ticket.d.ts +2 -0
  469. package/dist/icons/glyphs/timer.d.ts +2 -0
  470. package/dist/icons/glyphs/tornado.d.ts +2 -0
  471. package/dist/icons/glyphs/train-track.d.ts +2 -0
  472. package/dist/icons/glyphs/trash-2.d.ts +2 -0
  473. package/dist/icons/glyphs/tree-deciduous.d.ts +2 -0
  474. package/dist/icons/glyphs/tree-pine.d.ts +2 -0
  475. package/dist/icons/glyphs/trending-down.d.ts +2 -0
  476. package/dist/icons/glyphs/trending-up-down.d.ts +2 -0
  477. package/dist/icons/glyphs/trending-up.d.ts +2 -0
  478. package/dist/icons/glyphs/triangle-alert.d.ts +2 -0
  479. package/dist/icons/glyphs/truck.d.ts +2 -0
  480. package/dist/icons/glyphs/turkish-lira.d.ts +2 -0
  481. package/dist/icons/glyphs/twitch.d.ts +2 -0
  482. package/dist/icons/glyphs/twitter.d.ts +2 -0
  483. package/dist/icons/glyphs/underline.d.ts +2 -0
  484. package/dist/icons/glyphs/undo-dot.d.ts +2 -0
  485. package/dist/icons/glyphs/undo.d.ts +2 -0
  486. package/dist/icons/glyphs/unplug.d.ts +2 -0
  487. package/dist/icons/glyphs/upload.d.ts +2 -0
  488. package/dist/icons/glyphs/user-check.d.ts +2 -0
  489. package/dist/icons/glyphs/user-plus.d.ts +2 -0
  490. package/dist/icons/glyphs/user-round-check.d.ts +2 -0
  491. package/dist/icons/glyphs/user-round-cog.d.ts +2 -0
  492. package/dist/icons/glyphs/user-round-plus.d.ts +2 -0
  493. package/dist/icons/glyphs/user-round.d.ts +2 -0
  494. package/dist/icons/glyphs/user.d.ts +2 -0
  495. package/dist/icons/glyphs/users-round.d.ts +2 -0
  496. package/dist/icons/glyphs/users.d.ts +2 -0
  497. package/dist/icons/glyphs/vibrate.d.ts +2 -0
  498. package/dist/icons/glyphs/volume.d.ts +2 -0
  499. package/dist/icons/glyphs/wallet.d.ts +2 -0
  500. package/dist/icons/glyphs/washing-machine.d.ts +2 -0
  501. package/dist/icons/glyphs/waves-arrow-down.d.ts +2 -0
  502. package/dist/icons/glyphs/waves-arrow-up.d.ts +2 -0
  503. package/dist/icons/glyphs/waves-ladder.d.ts +2 -0
  504. package/dist/icons/glyphs/waves.d.ts +2 -0
  505. package/dist/icons/glyphs/waypoints.d.ts +2 -0
  506. package/dist/icons/glyphs/webhook.d.ts +2 -0
  507. package/dist/icons/glyphs/wifi-cog.d.ts +2 -0
  508. package/dist/icons/glyphs/wifi-low.d.ts +2 -0
  509. package/dist/icons/glyphs/wifi-pen.d.ts +2 -0
  510. package/dist/icons/glyphs/wifi-sync.d.ts +2 -0
  511. package/dist/icons/glyphs/wifi.d.ts +2 -0
  512. package/dist/icons/glyphs/wind-arrow-down.d.ts +2 -0
  513. package/dist/icons/glyphs/wind.d.ts +2 -0
  514. package/dist/icons/glyphs/workflow.d.ts +2 -0
  515. package/dist/icons/glyphs/wrench.d.ts +2 -0
  516. package/dist/icons/glyphs/x.d.ts +2 -0
  517. package/dist/icons/glyphs/youtube.d.ts +2 -0
  518. package/dist/icons/glyphs/zap-off.d.ts +2 -0
  519. package/dist/icons/glyphs/zap.d.ts +2 -0
  520. package/dist/icons/iconPlay.d.ts +2 -0
  521. package/dist/icons/registry.d.ts +81 -78
  522. package/dist/icons.js +996 -0
  523. package/dist/index.css +1257 -399
  524. package/dist/index.d.ts +1 -0
  525. package/dist/index.js +13 -5
  526. package/dist/internal/CheckMark.d.ts +12 -0
  527. package/dist/internal/ChoiceField.d.ts +1 -1
  528. package/dist/internal/FieldFrame.d.ts +17 -0
  529. package/dist/internal/MorphText.d.ts +12 -0
  530. package/dist/internal/RollingNumber.d.ts +14 -0
  531. package/dist/internal/surfaceDepth.d.ts +25 -0
  532. package/dist/internal/swatch.d.ts +4 -1
  533. package/dist/layout/app-shell/AppShell.d.ts +2 -2
  534. package/dist/motion/celebrate.d.ts +18 -0
  535. package/dist/tokens/layers.d.ts +37 -0
  536. package/dist/tokens/naming.d.ts +1 -1
  537. package/dist/tokens/primitives.d.ts +1 -0
  538. package/dist/tokens/semantic.d.ts +67 -56
  539. package/dist/tokens/themes/dark.d.ts +7 -14
  540. package/package.json +11 -4
  541. package/src/components/accordion/COMPONENT.md +4 -4
  542. package/src/components/avatar/COMPONENT.md +1 -1
  543. package/src/components/button/COMPONENT.md +30 -7
  544. package/src/components/button/examples/download.tsx +45 -0
  545. package/src/components/button/examples/hold-to-confirm.tsx +23 -0
  546. package/src/components/button/examples/in-form.tsx +15 -3
  547. package/src/components/button/examples/label-morph.tsx +38 -0
  548. package/src/components/button/examples/variants.tsx +1 -0
  549. package/src/components/card/COMPONENT.md +4 -2
  550. package/src/components/card/examples/narrow.tsx +2 -2
  551. package/src/components/card/examples/panel-chart.tsx +1 -1
  552. package/src/components/card/examples/variants.tsx +1 -1
  553. package/src/components/checkbox/COMPONENT.md +1 -1
  554. package/src/components/checkbox/examples/examples.module.css +1 -1
  555. package/src/components/code-block/COMPONENT.md +6 -6
  556. package/src/components/code-block/examples/overview.tsx +1 -1
  557. package/src/components/code-block/examples/variants.tsx +1 -1
  558. package/src/components/color-picker/COMPONENT.md +3 -3
  559. package/src/components/color-picker/examples/in-form.tsx +13 -5
  560. package/src/components/color-picker/examples/validation.tsx +10 -4
  561. package/src/components/color-swatches/COMPONENT.md +6 -6
  562. package/src/components/color-swatches/examples/in-form.tsx +11 -5
  563. package/src/components/command-menu/COMPONENT.md +1 -1
  564. package/src/components/crossfade/examples/overview.tsx +3 -3
  565. package/src/components/data-table/COMPONENT.md +5 -4
  566. package/src/components/datepicker/COMPONENT.md +3 -3
  567. package/src/components/datepicker/examples/in-form.tsx +30 -9
  568. package/src/components/datepicker/examples/validation.tsx +20 -10
  569. package/src/components/digit-input/COMPONENT.md +8 -6
  570. package/src/components/digit-input/examples/in-form.tsx +22 -4
  571. package/src/components/digit-input/examples/on-complete.tsx +7 -6
  572. package/src/components/digit-input/examples/validation.tsx +12 -5
  573. package/src/components/dnd/COMPONENT.md +1 -1
  574. package/src/components/dnd/examples/examples.module.css +4 -4
  575. package/src/components/drawer/COMPONENT.md +1 -1
  576. package/src/components/drawer/examples/in-form.tsx +7 -2
  577. package/src/components/dropdown/COMPONENT.md +1 -1
  578. package/src/components/dropdown/examples/examples.module.css +1 -1
  579. package/src/components/empty-page/examples/examples.module.css +1 -1
  580. package/src/components/example-frame/COMPONENT.md +1 -1
  581. package/src/components/file-upload/COMPONENT.md +3 -3
  582. package/src/components/file-upload/examples/in-form.tsx +28 -4
  583. package/src/components/file-upload/examples/validation.tsx +37 -6
  584. package/src/components/input/COMPONENT.md +13 -4
  585. package/src/components/input/examples/in-form.tsx +42 -7
  586. package/src/components/input/examples/password-strength.tsx +12 -0
  587. package/src/components/input/examples/validation.tsx +38 -13
  588. package/src/components/kanban/COMPONENT.md +4 -4
  589. package/src/components/login-form/COMPONENT.md +4 -4
  590. package/src/components/login-form/examples/register.tsx +2 -2
  591. package/src/components/login-form/examples/reset-password.tsx +2 -2
  592. package/src/components/modal/COMPONENT.md +3 -3
  593. package/src/components/modal/examples/examples.module.css +2 -2
  594. package/src/components/modal/examples/in-form.tsx +7 -2
  595. package/src/components/native-select/COMPONENT.md +3 -3
  596. package/src/components/native-select/examples/examples.module.css +2 -0
  597. package/src/components/native-select/examples/in-form.tsx +18 -3
  598. package/src/components/native-select/examples/validation.tsx +8 -3
  599. package/src/components/page-content/examples/examples.module.css +1 -1
  600. package/src/components/popover/COMPONENT.md +2 -2
  601. package/src/components/popover/examples/in-form.tsx +27 -5
  602. package/src/components/progress-bar/COMPONENT.md +5 -1
  603. package/src/components/progress-bar/examples/examples.module.css +7 -0
  604. package/src/components/progress-bar/examples/milestone.tsx +43 -0
  605. package/src/components/progress-bar/examples/steps.tsx +35 -0
  606. package/src/components/radio/COMPONENT.md +1 -1
  607. package/src/components/select/COMPONENT.md +3 -3
  608. package/src/components/select/examples/examples.module.css +1 -0
  609. package/src/components/select/examples/in-form.tsx +25 -3
  610. package/src/components/select/examples/validation.tsx +8 -3
  611. package/src/components/skeleton/examples/with-crossfade.tsx +3 -3
  612. package/src/components/slider/COMPONENT.md +1 -1
  613. package/src/components/sparkline/COMPONENT.md +98 -0
  614. package/src/components/sparkline/examples/examples.module.css +13 -0
  615. package/src/components/sparkline/examples/overview.tsx +27 -0
  616. package/src/components/sparkline/examples/period.tsx +46 -0
  617. package/src/components/switch/COMPONENT.md +1 -1
  618. package/src/components/tabs/COMPONENT.md +15 -16
  619. package/src/components/tabs/examples/examples.module.css +14 -0
  620. package/src/components/tabs/examples/orientation.tsx +87 -33
  621. package/src/components/tag-select/COMPONENT.md +3 -3
  622. package/src/components/tag-select/examples/examples.module.css +1 -0
  623. package/src/components/tag-select/examples/in-form.tsx +19 -2
  624. package/src/components/tag-select/examples/validation.tsx +7 -2
  625. package/src/components/textarea/COMPONENT.md +3 -3
  626. package/src/components/textarea/examples/in-form.tsx +20 -8
  627. package/src/components/textarea/examples/validation.tsx +24 -8
  628. package/src/components/tooltip/COMPONENT.md +8 -6
  629. package/src/components/tooltip/examples/examples.module.css +2 -2
  630. package/src/layout/app-header/COMPONENT.md +1 -1
  631. package/src/layout/app-header/examples/examples.module.css +4 -4
  632. package/src/layout/app-shell/COMPONENT.md +8 -8
  633. package/src/layout/app-shell/examples/examples.module.css +3 -3
  634. package/src/layout/bottom-nav/COMPONENT.md +1 -1
  635. package/src/layout/bottom-nav/examples/examples.module.css +1 -1
  636. package/src/layout/sidebar/COMPONENT.md +4 -4
  637. package/src/layout/sidebar/examples/examples.module.css +5 -5
  638. package/src/styles/globals.css +125 -2
  639. package/src/styles/theme-dark.css +37 -13
  640. package/src/styles/theme-light.css +61 -16
  641. package/src/styles/tokens.css +1 -0
@@ -1,40 +1,94 @@
1
- /** Tabs over the panel and a side list of sections that stacks on top below 600px — `orientation`. */
2
- import { Tabs, Typography } from "prime-ui-kit";
1
+ /** Account settings with a side list of sections: the active section reaches out of the panel, and below 600px the list moves above it — `orientation`. */
2
+ import { Button, Icon, Input, Switch, Tabs, Typography } from "prime-ui-kit";
3
3
 
4
4
  import styles from "./examples.module.css";
5
5
 
6
- const SECTIONS = [
7
- { value: "profile", label: "Профиль", text: "Имя, должность и контакты сотрудника." },
8
- { value: "notifications", label: "Уведомления", text: "Письма о заказах и еженедельная сводка." },
9
- { value: "deletion", label: "Удаление", text: "Аккаунт и все данные будут удалены." },
10
- ];
11
-
12
6
  export default function TabsOrientationExample() {
13
7
  return (
14
- <>
15
- {(["horizontal", "vertical"] as const).map((orientation) => (
16
- <Tabs.Root
17
- key={orientation}
18
- orientation={orientation}
19
- defaultValue="notifications"
20
- className={styles.frame}
21
- >
22
- <Tabs.List aria-label="Настройки">
23
- {SECTIONS.map((section) => (
24
- <Tabs.Item key={section.value} value={section.value}>
25
- {section.label}
26
- </Tabs.Item>
27
- ))}
28
- </Tabs.List>
29
- {SECTIONS.map((section) => (
30
- <Tabs.Panel key={section.value} value={section.value}>
31
- <Typography variant="body-m" tone="secondary">
32
- {section.text}
33
- </Typography>
34
- </Tabs.Panel>
35
- ))}
36
- </Tabs.Root>
37
- ))}
38
- </>
8
+ <Tabs.Root orientation="vertical" defaultValue="notifications" className={styles.wide}>
9
+ <Tabs.List aria-label="Настройки аккаунта">
10
+ <Tabs.Item value="profile">
11
+ <Tabs.Icon>
12
+ <Icon name="object.user" />
13
+ </Tabs.Icon>
14
+ <Tabs.Label>Профиль</Tabs.Label>
15
+ </Tabs.Item>
16
+ <Tabs.Item value="notifications">
17
+ <Tabs.Icon>
18
+ <Icon name="object.bell" />
19
+ </Tabs.Icon>
20
+ <Tabs.Label>Уведомления</Tabs.Label>
21
+ </Tabs.Item>
22
+ <Tabs.Item value="security">
23
+ <Tabs.Icon>
24
+ <Icon name="object.key" />
25
+ </Tabs.Icon>
26
+ <Tabs.Label>Безопасность</Tabs.Label>
27
+ </Tabs.Item>
28
+ <Tabs.Separator />
29
+ <Tabs.Item value="deletion">
30
+ <Tabs.Icon>
31
+ <Icon name="action.delete" />
32
+ </Tabs.Icon>
33
+ <Tabs.Label>Удаление</Tabs.Label>
34
+ </Tabs.Item>
35
+ </Tabs.List>
36
+
37
+ <Tabs.Panel value="profile">
38
+ <div className={styles.form}>
39
+ <Input.Root label="Имя и фамилия">
40
+ <Input.Wrapper>
41
+ <Input.Field defaultValue="Анна Смирнова" autoComplete="name" />
42
+ </Input.Wrapper>
43
+ </Input.Root>
44
+ <Input.Root label="Должность">
45
+ <Input.Wrapper>
46
+ <Input.Field defaultValue="Руководитель отдела продаж" />
47
+ </Input.Wrapper>
48
+ </Input.Root>
49
+ </div>
50
+ </Tabs.Panel>
51
+
52
+ <Tabs.Panel value="notifications">
53
+ <div className={styles.form}>
54
+ <Switch.Root defaultChecked hint="Письмо, как только заказ оплачен или отменён">
55
+ <Switch.Label>Статусы заказов</Switch.Label>
56
+ </Switch.Root>
57
+ <Switch.Root defaultChecked hint="По понедельникам в 09:00">
58
+ <Switch.Label>Сводка за неделю</Switch.Label>
59
+ </Switch.Root>
60
+ <Switch.Root hint="Новые функции и вебинары">
61
+ <Switch.Label>Новости продукта</Switch.Label>
62
+ </Switch.Root>
63
+ </div>
64
+ </Tabs.Panel>
65
+
66
+ <Tabs.Panel value="security">
67
+ <div className={styles.form}>
68
+ <Input.Root label="Новый пароль" hint="Не короче 12 символов">
69
+ <Input.Wrapper>
70
+ <Input.Field type="password" autoComplete="new-password" />
71
+ </Input.Wrapper>
72
+ </Input.Root>
73
+ <Switch.Root defaultChecked hint="Код из приложения при каждом входе">
74
+ <Switch.Label>Двухфакторная проверка</Switch.Label>
75
+ </Switch.Root>
76
+ </div>
77
+ </Tabs.Panel>
78
+
79
+ <Tabs.Panel value="deletion">
80
+ <div className={styles.form}>
81
+ <Typography variant="body-m" tone="secondary">
82
+ Аккаунт и все данные будут удалены через 30 дней. До этого срока удаление можно
83
+ отменить.
84
+ </Typography>
85
+ <div>
86
+ <Button.Root tone="danger" variant="soft">
87
+ Удалить аккаунт
88
+ </Button.Root>
89
+ </div>
90
+ </div>
91
+ </Tabs.Panel>
92
+ </Tabs.Root>
39
93
  );
40
94
  }
@@ -96,7 +96,7 @@ No `variant` or `tone`. The control is the field look; chips are soft Badges on
96
96
  | collapsed / expanded | focus inside or the list open | `data-expanded="true"` on the control: every chip on up to three rows (then scroll with edge fades); the height animates |
97
97
  | open | focus, typing, arrows | `data-state="open"` on the control; list `data-state`, `data-side` |
98
98
  | overflow | more chips than fit at rest | a «+N» Badge button with `labels.more` and the hidden labels in `title` |
99
- | invalid | `invalid` or `error` | `data-invalid="true"`, `aria-invalid` on the input |
99
+ | invalid | `invalid` or `error` | `data-invalid="true"`, `aria-invalid` on the input; the control shakes once when an error arrives (`data-shake` on the frame) |
100
100
  | disabled | `disabled` | `data-disabled="true"`, native `disabled` on the input |
101
101
  | option highlighted / selected / disabled | keyboard and pointer / value / option `disabled` | `data-highlighted`, `aria-selected` + checked indicator, `data-disabled` |
102
102
 
@@ -147,13 +147,13 @@ No `variant` or `tone`. The control is the field look; chips are soft Badges on
147
147
  | [overview.tsx](examples/overview.tsx) | A labelled tag field: focus opens the list, typing filters it, picked tags become chips — `label`, `options`. |
148
148
  | [sizes.tsx](examples/sizes.tsx) | Every size tier with two picked tags; chips sit one tier below the field — `size`. |
149
149
  | [states.tsx](examples/states.tsx) | A default field next to a disabled and an invalid one, with a disabled option in the list — `disabled`, `invalid`. |
150
- | [validation.tsx](examples/validation.tsx) | Required and optional markers, a hint, and an error that replaces the hint in the same row — `required`, `optional`, `hint`, `error`. |
150
+ | [validation.tsx](examples/validation.tsx) | Live validation: removing the last region shakes the field and drops the error in, adding one clears it; required and optional markers and a hint — `required`, `optional`, `hint`, `error`. |
151
151
  | [creatable.tsx](examples/creatable.tsx) | A typed text that is not in the list becomes a new tag from the Create row or Enter — `creatable`, `onCreate`, `defaultColor`. |
152
152
  | [many-tags.tsx](examples/many-tags.tsx) | More tags than fit: at rest one row with «+N», focused every tag on up to three wrapped rows that scroll — `defaultValue`. |
153
153
  | [manage-tags.tsx](examples/manage-tags.tsx) | Users keep their own tag dictionary: the row «⋯» menu renames, recolors or deletes an option — `onOptionUpdate`, `onOptionDelete`. |
154
154
  | [controlled.tsx](examples/controlled.tsx) | The parent owns the value: a preset button replaces the tags and the count follows them — `value`, `onValueChange`. |
155
155
  | [controlled-open.tsx](examples/controlled-open.tsx) | The parent owns the list: a button opens it from code, Escape or an outside press closes it — `open`, `onOpenChange`. |
156
- | [in-form.tsx](examples/in-form.tsx) | A new task form: the required labels field is checked on submit and its error replaces the hint — `required`, `error`, `creatable`. |
156
+ | [in-form.tsx](examples/in-form.tsx) | A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task — `required`, `error`, `creatable`. |
157
157
 
158
158
  ## Mistakes
159
159
  - `TagSelect.Root` → TagSelect is a single export: `<TagSelect …/>`.
@@ -10,6 +10,7 @@
10
10
 
11
11
  .actions {
12
12
  display: flex;
13
+ align-items: center;
13
14
  justify-content: flex-end;
14
15
  gap: var(--prime-space-2);
15
16
  }
@@ -1,4 +1,4 @@
1
- /** A new task form: the required labels field is checked on submit and its error replaces the hint — `required`, `error`, `creatable`. */
1
+ /** A new task form: the required labels field is checked on submit, its error shakes the field and leaves once a label is added, a calm note confirms the task — `required`, `error`, `creatable`. */
2
2
  import { Button, Input, TagSelect, type TagSelectOption, Typography } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
@@ -19,10 +19,12 @@ const PEOPLE: TagSelectOption[] = [
19
19
  export default function TagSelectInFormExample() {
20
20
  const [labels, setLabels] = React.useState<string[]>([]);
21
21
  const [error, setError] = React.useState<string>();
22
+ const [saved, setSaved] = React.useState(false);
22
23
 
23
24
  const submit = (event: React.FormEvent<HTMLFormElement>) => {
24
25
  event.preventDefault();
25
26
  setError(labels.length ? undefined : "Добавьте хотя бы одну метку");
27
+ setSaved(labels.length > 0);
26
28
  };
27
29
 
28
30
  return (
@@ -45,13 +47,28 @@ export default function TagSelectInFormExample() {
45
47
  onValueChange={(next) => {
46
48
  setLabels(next);
47
49
  setError(undefined);
50
+ setSaved(false);
48
51
  }}
49
52
  creatable
50
53
  placeholder="Добавить метку"
51
54
  />
52
55
  <TagSelect label="Наблюдатели" optional options={PEOPLE} placeholder="Добавить человека" />
53
56
  <div className={styles.actions}>
54
- <Button.Root variant="ghost" tone="neutral" type="reset">
57
+ {saved ? (
58
+ <Typography as="p" variant="body-s" tone="secondary">
59
+ Задача создана
60
+ </Typography>
61
+ ) : null}
62
+ <Button.Root
63
+ variant="ghost"
64
+ tone="neutral"
65
+ type="reset"
66
+ onClick={() => {
67
+ setLabels([]);
68
+ setError(undefined);
69
+ setSaved(false);
70
+ }}
71
+ >
55
72
  Отмена
56
73
  </Button.Root>
57
74
  <Button.Root type="submit">Создать задачу</Button.Root>
@@ -1,5 +1,6 @@
1
- /** Required and optional markers, a hint, and an error that replaces the hint in the same row — `required`, `optional`, `hint`, `error`. */
1
+ /** Live validation: removing the last region shakes the field and drops the error in, adding one clears it; required and optional markers and a hint — `required`, `optional`, `hint`, `error`. */
2
2
  import { TagSelect, type TagSelectOption } from "prime-ui-kit";
3
+ import * as React from "react";
3
4
 
4
5
  const CITIES: TagSelectOption[] = [
5
6
  { value: "msk", label: "Москва", color: "blue" },
@@ -13,6 +14,8 @@ const PEOPLE: TagSelectOption[] = [
13
14
  ];
14
15
 
15
16
  export default function TagSelectValidationExample() {
17
+ const [regions, setRegions] = React.useState(["msk"]);
18
+
16
19
  return (
17
20
  <>
18
21
  <TagSelect
@@ -25,8 +28,10 @@ export default function TagSelectValidationExample() {
25
28
  <TagSelect
26
29
  label="Регионы"
27
30
  required
28
- error="Добавьте хотя бы один регион"
31
+ error={regions.length ? undefined : "Добавьте хотя бы один регион"}
29
32
  options={CITIES}
33
+ value={regions}
34
+ onValueChange={setRegions}
30
35
  placeholder="Добавить регион"
31
36
  />
32
37
  <TagSelect label="Наблюдатели" optional options={PEOPLE} placeholder="Добавить человека" />
@@ -100,7 +100,7 @@ Textarea has no `variant` or `tone`: one field treatment (fill, no visible borde
100
100
  | hover | — | fill darkens (not when focused, disabled or read-only) |
101
101
  | focus | keyboard focus | focus fill and inset focus ring on the field box; clicking the box padding focuses the textarea |
102
102
  | no focus ring | `focusRing={false}` | `data-focus-ring="false"` on the field box |
103
- | invalid | `invalid` or non-empty `error` | `data-invalid="true"` on the outer wrapper and the field box, `aria-invalid="true"`, danger ring |
103
+ | invalid | `invalid` or non-empty `error` | `data-invalid="true"` on the outer wrapper and the field box, `aria-invalid="true"`, danger ring; the control shakes once when an error arrives (`data-shake` on the frame) |
104
104
  | disabled | `disabled` | `data-disabled="true"` on the field box, disabled fill and text; label and hint dimmed |
105
105
  | read-only | `readOnly` | `data-readonly="true"` on the field box, no hover, default cursor |
106
106
  | reserved support row | `reserveSupportRow` | `data-reserve="true"` on the support row |
@@ -141,11 +141,11 @@ Textarea has no `variant` or `tone`: one field treatment (fill, no visible borde
141
141
  | [overview.tsx](examples/overview.tsx) | A labelled multi-line field with a hint; the height follows the text — `label`, `hint`. |
142
142
  | [sizes.tsx](examples/sizes.tsx) | Every size tier; text, padding, label and hint follow the tier — `size`. |
143
143
  | [states.tsx](examples/states.tsx) | A default field next to a read-only and a disabled one — `readOnly`, `disabled`. |
144
- | [validation.tsx](examples/validation.tsx) | Required and optional markers, a hint, an error and a support row that does not shift — `required`, `optional`, `hint`, `error`, `reserveSupportRow`. |
144
+ | [validation.tsx](examples/validation.tsx) | Live validation: an error shakes the field as it arrives, drops in and leaves as soon as the text is fixed; required and optional markers, a hint and a support row that does not shift — `required`, `optional`, `hint`, `error`, `reserveSupportRow`. |
145
145
  | [auto-resize.tsx](examples/auto-resize.tsx) | A field that grows with its text next to a fixed one with a resize handle — `autoResize`, `rows`. |
146
146
  | [without-focus-ring.tsx](examples/without-focus-ring.tsx) | A single reply composer where the caret and the lighter fill show focus — `focusRing`. |
147
147
  | [controlled.tsx](examples/controlled.tsx) | The parent owns the text; the counter follows it and `maxLength` stops extra input — `value`, `onValueChange`, `Textarea.Counter`, `maxLength`. |
148
- | [in-form.tsx](examples/in-form.tsx) | Support request form: the description is checked on submit and its error does not shift the form — `required`, `error`, `reserveSupportRow`. |
148
+ | [in-form.tsx](examples/in-form.tsx) | Support request form: the description is checked on submit, its error leaves as soon as the text is long enough and does not shift the form, a sent request turns the button green — `required`, `error`, `reserveSupportRow`. |
149
149
 
150
150
  ## Mistakes
151
151
  - `<Textarea.Root><textarea /></Textarea.Root>` → Textarea.Root renders the textarea itself; pass native props to the root.
@@ -1,4 +1,4 @@
1
- /** Support request form: the description is checked on submit and its error does not shift the form — `required`, `error`, `reserveSupportRow`. */
1
+ /** Support request form: the description is checked on submit, its error leaves as soon as the text is long enough and does not shift the form, a sent request turns the button green — `required`, `error`, `reserveSupportRow`. */
2
2
  import { Button, Input, Textarea, Typography } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
@@ -9,13 +9,16 @@ const MIN_LENGTH = 20;
9
9
 
10
10
  export default function TextareaInFormExample() {
11
11
  const [message, setMessage] = React.useState("");
12
- const [error, setError] = React.useState<string>();
12
+ const [checked, setChecked] = React.useState(false);
13
+ const [sent, setSent] = React.useState(false);
14
+ const tooShort = message.trim().length < MIN_LENGTH;
15
+ // After the first submit the check is live: the error leaves as soon as the text is long enough.
16
+ const error = checked && tooShort ? "Опишите проблему хотя бы в 20 символах" : undefined;
13
17
 
14
18
  const submit = (event: React.FormEvent<HTMLFormElement>) => {
15
19
  event.preventDefault();
16
- setError(
17
- message.trim().length < MIN_LENGTH ? "Опишите проблему хотя бы в 20 символах" : undefined,
18
- );
20
+ setChecked(true);
21
+ setSent(!tooShort);
19
22
  };
20
23
 
21
24
  return (
@@ -44,7 +47,10 @@ export default function TextareaInFormExample() {
44
47
  error={error}
45
48
  value={message}
46
49
  maxLength={LIMIT}
47
- onValueChange={setMessage}
50
+ onValueChange={(value) => {
51
+ setMessage(value);
52
+ setSent(false);
53
+ }}
48
54
  counter={<Textarea.Counter current={message.length} max={LIMIT} />}
49
55
  />
50
56
  </div>
@@ -53,11 +59,17 @@ export default function TextareaInFormExample() {
53
59
  variant="ghost"
54
60
  tone="neutral"
55
61
  type="reset"
56
- onClick={() => setError(undefined)}
62
+ onClick={() => {
63
+ setMessage("");
64
+ setChecked(false);
65
+ setSent(false);
66
+ }}
57
67
  >
58
68
  Отменить
59
69
  </Button.Root>
60
- <Button.Root type="submit">Отправить</Button.Root>
70
+ <Button.Root type="submit" tone={sent ? "success" : "accent"}>
71
+ {sent ? "Отправлено" : "Отправить"}
72
+ </Button.Root>
61
73
  </div>
62
74
  </form>
63
75
  );
@@ -1,9 +1,15 @@
1
- /** Required and optional markers, a hint, an error and a support row that does not shift — `required`, `optional`, `hint`, `error`, `reserveSupportRow`. */
1
+ /** Live validation: an error shakes the field as it arrives, drops in and leaves as soon as the text is fixed; required and optional markers, a hint and a support row that does not shift — `required`, `optional`, `hint`, `error`, `reserveSupportRow`. */
2
2
  import { Button, Textarea } from "prime-ui-kit";
3
3
  import * as React from "react";
4
4
 
5
+ const MIN_REASON = 20;
6
+
5
7
  export default function TextareaValidationExample() {
6
- const [checked, setChecked] = React.useState(false);
8
+ const [reason, setReason] = React.useState("Нет");
9
+ const [comment, setComment] = React.useState("Оплата частями");
10
+ const [commentError, setCommentError] = React.useState<string>();
11
+
12
+ const send = () => setCommentError(/\d{3,}/.test(comment) ? undefined : "Укажите номер договора");
7
13
 
8
14
  return (
9
15
  <>
@@ -16,18 +22,28 @@ export default function TextareaValidationExample() {
16
22
  <Textarea.Root
17
23
  label="Причина отказа"
18
24
  required
19
- defaultValue="Нет"
20
- error="Опишите причину хотя бы в 20 символах"
25
+ value={reason}
26
+ onValueChange={setReason}
27
+ hint="Клиент получит её в письме"
28
+ error={
29
+ reason.trim().length < MIN_REASON
30
+ ? `Опишите причину хотя бы в ${MIN_REASON} символах`
31
+ : undefined
32
+ }
21
33
  />
22
34
  <Textarea.Root
23
35
  label="Комментарий для бухгалтерии"
24
36
  optional
25
37
  reserveSupportRow
26
- defaultValue="Оплата частями"
27
- error={checked ? "Укажите номер договора" : undefined}
38
+ value={comment}
39
+ onValueChange={(value) => {
40
+ setComment(value);
41
+ setCommentError(undefined);
42
+ }}
43
+ error={commentError}
28
44
  />
29
- <Button.Root variant="soft" tone="neutral" onClick={() => setChecked((value) => !value)}>
30
- {checked ? "Сбросить проверку" : "Проверить комментарий"}
45
+ <Button.Root variant="soft" tone="neutral" onClick={send}>
46
+ Отправить в бухгалтерию
31
47
  </Button.Root>
32
48
  </>
33
49
  );
@@ -74,16 +74,18 @@ No DOM: clones the single child, composes its `ref`, appends the tooltip id to i
74
74
  | `…rest` | `Omit<HTMLAttributes<HTMLDivElement>, "id" \| "role" \| "onPointerEnter" \| "onPointerLeave">` | — | `className`, `style` and the other attributes of the chip. |
75
75
 
76
76
  ## Variants
77
- Tooltip has no `variant` or `tone`: it is always a flat inverse chip (`tooltip-bg`, `tooltip-text`) with an arrow and no shadow, so it reads the same on canvas, cards and floating layers. The arrow (`--prime-tooltip-arrow-width` × `--prime-tooltip-arrow-height`) always points at the trigger's centre, also after flipping, aligning or shifting, and never slides into the chip's rounded corner.
77
+ Tooltip has no `variant` or `tone`: it is always a flat inverse chip (`tooltip-bg`, `tooltip-text`) — dark in the light theme, light in the dark one — with an arrow and no shadow, so it reads the same on every layer. The chip is a host of its own: it points the text and fill roles at `tooltip-muted` / `tooltip-fill`, so a Kbd or a secondary line inside reads on it. Content flows inline: a label and its key stay on one line, block children stack. The arrow (`--prime-tooltip-arrow-width` × `--prime-tooltip-arrow-height`) always points at the trigger's centre, also after flipping, aligning or shifting, and never slides into the chip's rounded corner.
78
78
 
79
79
  ### size (Content)
80
+ A chip of tier T is as tall as a menu item of tier T; text, padding and radius step together (`--prime-tooltip-<tier>-*`).
81
+
80
82
  | Value | Looks like | Use when | Default |
81
83
  |---|---|---|---|
82
- | `xs` | caption 12/16, padding 4 × 8 | Next to xs controls | |
83
- | `s` | caption 12/16, padding 4 × 8 | Dense toolbars, s controls | |
84
- | `m` | caption 12/16, padding 4 × 8 | Most controls | yes |
85
- | `l` | body-s 13/20, padding 4 × 8 | l controls, longer sentences | |
86
- | `xl` | body-s 13/20, padding 8 × 12 | xl controls | |
84
+ | `xs` | 12/16, padding 4 × 6, radius 4 — 24 tall | Next to xs controls | |
85
+ | `s` | 12/16, padding 6 × 8, radius 6 — 28 tall | Dense toolbars, s controls | |
86
+ | `m` | 13/20, padding 6 × 10, radius 6 — 32 tall | Most controls | yes |
87
+ | `l` | 14/20, padding 8 × 12, radius 8 — 36 tall | l controls, longer sentences | |
88
+ | `xl` | 16/24, padding 8 × 16, radius 8 — 40 tall | xl controls | |
87
89
 
88
90
  ### side (Content)
89
91
  | Value | Looks like | Use when | Default |
@@ -7,8 +7,8 @@
7
7
  gap: var(--prime-space-1);
8
8
  padding: var(--prime-space-1);
9
9
  border-radius: var(--prime-radius-l);
10
- background: var(--prime-color-card-bg);
11
- box-shadow: var(--prime-card-shadow);
10
+ background: var(--prime-color-layer-nested);
11
+ box-shadow: var(--prime-shadow-raised);
12
12
  }
13
13
 
14
14
  /* disabled-trigger.tsx: a focusable wrapper around the disabled button, with the outer ring. */
@@ -134,7 +134,7 @@ AppHeader.Root <header>, one sticky row as high as the Sidebar bra
134
134
  - Gaps: `--prime-space-3` between zones, `--prime-space-2` inside Start and Actions; `AppHeader.Separator` adds `--prime-space-2` on each side (16 in all) and is 20 high.
135
135
  - `AppHeader.Icon` is a 36 tile with the radius and fill of a soft neutral button m, so it lines up with the buttons on the bar.
136
136
  - On the panel surface with no divider or shadow (depth from fill); `z-index: --prime-z-sticky`.
137
- - Search: up to 288 wide, shrinks first; field tier m and the surface field fill. Controls inside are size `m`.
137
+ - Search: up to 288 wide, shrinks first; field tier m and the fill of the panel layer it sits on. Controls inside are size `m`.
138
138
 
139
139
  ## Accessibility
140
140
 
@@ -1,12 +1,12 @@
1
1
  /* Layout of the AppHeader scenarios: an app window and a phone-wide screen. Semantic tokens only. */
2
2
 
3
- /* The top of an app window: the content panel surface with the header on it. */
3
+ /* The top of an app window: the content panel (the page) with the header on it. */
4
4
  .window {
5
5
  box-sizing: border-box;
6
6
  width: 100%;
7
7
  overflow: hidden;
8
8
  border-radius: var(--prime-card-radius);
9
- background: var(--prime-color-bg-surface);
9
+ background: var(--prime-color-layer-current);
10
10
  box-shadow:
11
11
  0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
12
12
  var(--prime-shadow-raised);
@@ -18,7 +18,7 @@
18
18
  margin-inline: auto;
19
19
  }
20
20
 
21
- /* in-app-shell.tsx: a whole app window with the rail on the canvas. */
21
+ /* in-app-shell.tsx: a whole app window with the rail on the page. */
22
22
  .stage {
23
23
  box-sizing: border-box;
24
24
  display: flex;
@@ -26,7 +26,7 @@
26
26
  height: calc(var(--prime-space-24) * 4);
27
27
  overflow: hidden;
28
28
  border-radius: var(--prime-card-radius);
29
- background: var(--prime-color-bg-canvas);
29
+ background: var(--prime-color-layer-current);
30
30
  box-shadow:
31
31
  0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
32
32
  var(--prime-shadow-raised);
@@ -3,11 +3,11 @@
3
3
  **Category:** page
4
4
  **Kind:** layout
5
5
 
6
- > The app frame: a navigation rail on the canvas and a content panel on the surface.
6
+ > The app frame: a content panel that is the page itself and a navigation rail one layer above it.
7
7
 
8
8
  ## When to use
9
9
  - The root layout of an application: navigation column, an optional AppHeader, scrolling main column, a bottom bar for phone navigation.
10
- - Any page that needs the kit's responsive gutters and the surface context for cards and fields.
10
+ - Any page that needs the kit's responsive gutters and the surface ladder for cards and fields.
11
11
 
12
12
  ## When not to use
13
13
  - The navigation itself → use [Sidebar](../sidebar/COMPONENT.md) inside `AppShell.Nav`, [BottomNav](../bottom-nav/COMPONENT.md) inside `AppShell.Footer`.
@@ -23,8 +23,8 @@ import { AppShell } from "prime-ui-kit";
23
23
 
24
24
  ## Anatomy
25
25
  ```
26
- AppShell.Root grid: nav column | content panel (bg-surface)
27
- ├─ AppShell.Nav navigation column on the canvas (usually Sidebar.Root)
26
+ AppShell.Root grid: nav column | content panel (the page, layer 0)
27
+ ├─ AppShell.Nav navigation column (usually Sidebar.Root, a surface one layer above the page)
28
28
  ├─ AppHeader.Root sticky top bar of the panel (a separate component)
29
29
  ├─ AppShell.Main <main>, scrolls, carries the gutters
30
30
  └─ AppShell.Footer sticky bottom bar of the panel (usually BottomNav.Root)
@@ -37,7 +37,7 @@ Every child of Root that is not `AppShell.Nav` is placed into the content panel.
37
37
  <!-- Generated from api.ts by `bun run docs:build`. Edit api.ts, not this section. -->
38
38
 
39
39
  ### AppShell.Root
40
- `ref` → `HTMLDivElement`. Grid of the nav column (canvas) and the content panel (surface); every child that is not `AppShell.Nav` goes into the panel.
40
+ `ref` → `HTMLDivElement`. Grid of the nav column (Sidebar, a surface one layer above the page) and the content panel (the page itself); every child that is not `AppShell.Nav` goes into the panel.
41
41
 
42
42
  | Prop | Type | Default | Description |
43
43
  |---|---|---|---|
@@ -96,7 +96,7 @@ Every child of Root that is not `AppShell.Nav` is placed into the content panel.
96
96
  ### Structure
97
97
  | Value | Looks like | Use when | Default |
98
98
  |---|---|---|---|
99
- | with `AppShell.Nav` | Two columns: canvas rail + surface panel | Apps with navigation | |
99
+ | with `AppShell.Nav` | Two columns: a rail one layer above the page + the panel that is the page | Apps with navigation | |
100
100
  | without Nav | Panel takes the full width | Single-page tools, auth screens | |
101
101
  | with `AppHeader.Root` | Sticky bar at the top of the panel | Title or breadcrumbs, global search, actions, the mobile menu button | |
102
102
  | with `AppShell.Footer` | Sticky bar at the bottom of the panel, shown while it holds a visible bar | BottomNav on a phone | |
@@ -111,10 +111,10 @@ Every child of Root that is not `AppShell.Nav` is placed into the content panel.
111
111
  | footer bar | panel width (container `prime-shell-footer` on Footer) | BottomNav inside leaves from 640px of panel width; the empty footer takes no room |
112
112
 
113
113
  ## Layout & spacing
114
- - Two full-height planes edge to edge: no inset, radius, shadow or border — the boundary is the fill change (canvas → surface).
114
+ - Two full-height planes edge to edge: no inset, radius, shadow or border — the boundary is the fill change (the Sidebar rail is layer 1, the panel the page: white rail beside a gray page in light, a rail one step lighter than the near-black page in dark).
115
115
  - Gutters in Main: `--prime-layout-gutter-s` (16) → `-m` (24) from 640px → `-l` (32) from 1024px. Main top padding `--prime-space-6` (24) → `--prime-space-10` (40) from 1024px; bottom `--prime-space-16`.
116
116
  - Footer: no padding of its own (BottomNav keeps the bottom safe-area inset), sticky at the bottom, `z-index: --prime-z-sticky`.
117
- - The panel is a surface context: fields use the surface field fill, Cards inside become sunken tiles without shadow.
117
+ - The panel is the page (layer 0 of the surface ladder, gray in light): fields on it take the page fill, a Card inside is layer 1 — white in light with the raised whisper — and cards in cards go deeper.
118
118
 
119
119
  ## Accessibility
120
120
 
@@ -7,8 +7,8 @@
7
7
  height: calc(var(--prime-space-24) * 5);
8
8
  overflow: hidden;
9
9
  border-radius: var(--prime-card-radius);
10
- background: var(--prime-color-bg-canvas);
11
- /* The rail shares the preview's canvas fill: a hairline keeps the window edge visible. */
10
+ background: var(--prime-color-layer-current);
11
+ /* The window is a page on the preview's page: a hairline keeps its edge visible. */
12
12
  box-shadow:
13
13
  0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
14
14
  var(--prime-shadow-raised);
@@ -37,7 +37,7 @@
37
37
  margin-inline: auto;
38
38
  overflow: hidden;
39
39
  border-radius: var(--prime-card-radius);
40
- background: var(--prime-color-bg-surface);
40
+ background: var(--prime-color-layer-current);
41
41
  box-shadow:
42
42
  0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
43
43
  var(--prime-shadow-raised);
@@ -99,7 +99,7 @@ Without flags the bar is flat at the screen edge on the surface, with a faint to
99
99
  | disabled | `disabled` | `disabled` / `aria-disabled`, `data-disabled` |
100
100
  | hidden | inside `AppShell.Footer` 640px wide or more | `display: none` (container `prime-shell-footer`) |
101
101
  | floating / icon only | `floating` / `iconOnly` | `data-floating="true"` / `data-icon-only="true"` on the `<nav>` |
102
- | less transparency | `prefers-reduced-transparency: reduce` | a floating capsule turns opaque (`--prime-color-bg-raised`), no blur |
102
+ | less transparency | `prefers-reduced-transparency: reduce` | a floating capsule turns opaque (`--prime-color-layer-floating-bg`), no blur |
103
103
 
104
104
  Motion: the color of the icon and the label changes over `fast`; in the floating capsule the selection capsule grows in from 92% and fades in (`fast`, enter easing), instant under reduced motion. No hover or press feedback: an item is either current or not.
105
105
 
@@ -10,7 +10,7 @@
10
10
  margin-inline: auto;
11
11
  overflow: hidden;
12
12
  border-radius: var(--prime-card-radius);
13
- background: var(--prime-color-bg-surface);
13
+ background: var(--prime-color-layer-current);
14
14
  box-shadow:
15
15
  0 0 0 var(--prime-border-width) var(--prime-color-border-subtle),
16
16
  var(--prime-shadow-raised);
@@ -243,7 +243,7 @@ Hook for custom parts inside `Sidebar.Root` (throws outside). Returns the fields
243
243
  | `size · navId · labels` | `ControlSize · string · SidebarLabels` | — | Tier, id of the `<nav>` (for `aria-controls` on your own menu button), resolved strings. |
244
244
 
245
245
  ## Variants
246
- The rail sits on `bg-canvas` without a border or card; items are transparent rows with `text-secondary`, `fill-subtle` on hover; the current item is lifted to `bg-surface` + `shadow-raised` with primary text.
246
+ The rail is a surface beside the page, one layer above it on the surface ladder (`data-depth`): white on the light gray page, one step lighter than the near-black page in dark; no border or card. Items are transparent rows with `text-secondary`, `fill-subtle` on hover; the current item takes the rail's fill two ladder steps off it (`fill-muted-hover`) with primary text.
247
247
 
248
248
  ### mode (Root)
249
249
  | Value | Looks like | Use when | Default |
@@ -311,9 +311,9 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
311
311
  ## Layout & spacing
312
312
  - Panel padding: `--prime-space-3` block, `--prime-space-2` inline; regions 8 apart; groups 16 apart, items 4 apart.
313
313
  - Item horizontal padding is derived from the compact width so icons and the brand logo sit on one axis in every mode (the account avatar joins that axis on the rail).
314
- - Header is one row of the item height + 8. The header toggle (xs, 28) sits at its end, 8 from the rail edge; in compact mode it moves half past the edge, scales to 3/4, turns round and gets a canvas ring. The root clips with `clip-path`, reaching past the edge by the toggle's half-width and ring beside the header only; everywhere else the panel ends exactly at the spacer edge.
314
+ - Header is one row of the item height + 8. The header toggle (xs, 28) sits at its end, 8 from the rail edge; in compact mode it moves half past the edge, scales to 3/4, turns round and gets a ring in the rail color. The root clips with `clip-path`, reaching past the edge by the toggle's half-width and ring beside the header only; everywhere else the panel ends exactly at the spacer edge.
315
315
  - Collapsible group: heading 28 high with the chevron (14) at its end, aligned with the item trail; items start 4 below. A folded group's attention dot sits before the chevron.
316
- - On the rail a heading keeps its 28 and its layout: the text slides 8 toward the edge, scales to 0.85 and is cut at the rail box with a 12 fade into the canvas. A folded group adds one `…` row under its heading. The items and the row share one place: folding or unfolding on the rail glides the group's height one way (list ↔ row) while the two cross-fade, so the rows below never move back.
316
+ - On the rail a heading keeps its 28 and its layout: the text slides 8 toward the edge, scales to 0.85 and is cut at the rail box with a 12 fade into the rail. A folded group adds one `…` row under its heading. The items and the row share one place: folding or unfolding on the rail glides the group's height one way (list ↔ row) while the two cross-fade, so the rows below never move back.
317
317
  - Sub-list: a 1px `border-default` guide line on the parent icon's centre; every child branches off it with an 8 elbow and a 6 bend; child labels line up with the parent label.
318
318
  - Trail (count, key hint, trailing icon) sits at the row end; a row action (one tier down) appears there on hover / focus (always on touch screens) and the trail moves aside.
319
319
  - Footer: items 4 apart; the account is set 8 apart below them. It is its own card-like row: the
@@ -322,7 +322,7 @@ Leaving the narrow viewport closes the off-canvas panel; navigating from an `hre
322
322
  so the row is the avatar + 2 × gap high (48 at m). On the compact rail the start inset becomes the
323
323
  one that centres the avatar on the icon axis, as part of the rail motion.
324
324
  - Compact flyout: the kit Popover (flush) to the right, aligned with the parent row, with the metrics of a kit menu — rows of the tier's menu item height (32 at m), the panel padding, no title (the row names it), no guide line; current child is a `fill-subtle-active` wash.
325
- - Motion: two layers on one clock. `Sidebar.Root` is the spacer: it reserves the rail width in the page, paints the canvas and clips the panel to its own box; its width is the only layout that moves (the page column follows). The `<nav>` panel inside is positioned at the expanded width in every mode and never lays out again, so nothing re-wraps and nothing switches at the end. Every part is a plain CSS transition over `base` with the `standard` (ease-in-out) easing, started by the same mode change and ending with the rail: text fades through its fill colour (paint-only, no compositor layer per label), chevrons through their stroke, trailing boxes (a coloured count, a key hint) through `opacity`; coloured counts turn into dots; the account avatar slides onto the icon axis; the header toggle rides the edge by `translate` / `scale`. Rows stay full width: a row with a fill or a ring (current, on the active path, hovered, open, focused) draws them on a pseudo-element whose end edge travels to the icon box and clips its content there, so it always ends rail padding before the moving edge and is a rounded square around the icon at rest. Group headings keep their height and layout: their text slides toward the edge and scales down by transform while the moving cut ends it with a fade; the text box narrows only once the rail has closed (under the cut, never seen), so the dot and the chevron after it stay in place and fade. The `…` row of a folded group grows in and out on the same clock (grid track height), as do the attention dots (opacity and scale). Hidden keeps the look of the last visible mode and is clipped as one piece; the header toggle stays at its place and fades, and coming back from hidden it fades in at its final place. Collapsible groups that open for the rail and sub-lists that close for it move on the same clock (grid track height); chevrons rotate (base). All durations are tokens: under reduced motion every mode change is instant.
325
+ - Motion: two layers on one clock. `Sidebar.Root` is the spacer: it reserves the rail width in the page, paints the rail and clips the panel to its own box; its width is the only layout that moves (the page column follows). The `<nav>` panel inside is positioned at the expanded width in every mode and never lays out again, so nothing re-wraps and nothing switches at the end. Every part is a plain CSS transition over `base` with the `standard` (ease-in-out) easing, started by the same mode change and ending with the rail: text fades through its fill colour (paint-only, no compositor layer per label), chevrons through their stroke, trailing boxes (a coloured count, a key hint) through `opacity`; coloured counts turn into dots; the account avatar slides onto the icon axis; the header toggle rides the edge by `translate` / `scale`. Rows stay full width: a row with a fill or a ring (current, on the active path, hovered, open, focused) draws them on a pseudo-element whose end edge travels to the icon box and clips its content there, so it always ends rail padding before the moving edge and is a rounded square around the icon at rest. Group headings keep their height and layout: their text slides toward the edge and scales down by transform while the moving cut ends it with a fade; the text box narrows only once the rail has closed (under the cut, never seen), so the dot and the chevron after it stay in place and fade. The `…` row of a folded group grows in and out on the same clock (grid track height), as do the attention dots (opacity and scale). Hidden keeps the look of the last visible mode and is clipped as one piece; the header toggle stays at its place and fades, and coming back from hidden it fades in at its final place. Collapsible groups that open for the rail and sub-lists that close for it move on the same clock (grid track height); chevrons rotate (base). All durations are tokens: under reduced motion every mode change is instant.
326
326
  - Layers of a row on the rail (compact tooltips, the sub-list flyout, a `Dropdown` around `Sidebar.Account`) anchor to the visible part of the row — the icon box — not to its full-width box. The brand has no compact tooltip: the logo speaks for itself and a tooltip would cover the edge toggle.
327
327
  - Off-canvas panel width: min(sidebar width, 100% − `--prime-space-12`).
328
328
  - Inside `AppShell.Nav` the rail takes the full height. The root is `height: 100%` and the panel is