@teseor/css 1.14.3 → 1.15.1

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 (464) hide show
  1. package/package.json +1 -1
  2. package/src/base/docs.html +19 -0
  3. package/src/base/typography/docs.html +159 -0
  4. package/src/components/actions/button/docs.html +73 -0
  5. package/src/components/actions/button/{button.visual.spec.ts → visual.spec.ts} +4 -4
  6. package/src/components/actions/button-group/docs.html +44 -0
  7. package/src/components/actions/button-group/{button-group.visual.spec.ts → visual.spec.ts} +4 -4
  8. package/src/components/actions/close-button/docs.html +74 -0
  9. package/src/components/actions/close-button/{close-button.visual.spec.ts → visual.spec.ts} +4 -4
  10. package/src/components/content/divider/docs.html +25 -0
  11. package/src/components/content/divider/{divider.visual.spec.ts → visual.spec.ts} +4 -4
  12. package/src/components/content/scroll-area/docs.html +127 -0
  13. package/src/components/content/scroll-area/visual.png +0 -0
  14. package/src/components/content/scroll-area/{scroll-area.visual.spec.ts → visual.spec.ts} +4 -4
  15. package/src/components/content/spacer/docs.html +20 -0
  16. package/src/components/content/spacer/{spacer.visual.spec.ts → visual.spec.ts} +4 -4
  17. package/src/components/data-display/avatar/docs.html +64 -0
  18. package/src/components/data-display/avatar/{avatar.visual.spec.ts → visual.spec.ts} +4 -4
  19. package/src/components/data-display/badge/docs.html +37 -0
  20. package/src/components/data-display/badge/{badge.visual.spec.ts → visual.spec.ts} +4 -4
  21. package/src/components/data-display/card/docs.html +33 -0
  22. package/src/components/data-display/card/visual.png +0 -0
  23. package/src/components/data-display/card/{card.visual.spec.ts → visual.spec.ts} +4 -4
  24. package/src/components/data-display/data-list/docs.html +94 -0
  25. package/src/components/data-display/data-list/{data-list-visual.png → visual.png} +0 -0
  26. package/src/components/data-display/data-list/{data-list.visual.spec.ts → visual.spec.ts} +4 -4
  27. package/src/components/data-display/icon/docs.html +69 -0
  28. package/src/components/data-display/icon/{icon.visual.spec.ts → visual.spec.ts} +4 -4
  29. package/src/components/data-display/image/docs.html +64 -0
  30. package/src/components/data-display/image/visual.png +0 -0
  31. package/src/components/data-display/image/{image.visual.spec.ts → visual.spec.ts} +4 -4
  32. package/src/components/data-display/stat/docs.html +32 -0
  33. package/src/components/data-display/stat/{stat.visual.spec.ts → visual.spec.ts} +4 -4
  34. package/src/components/data-display/status/docs.html +64 -0
  35. package/src/components/data-display/status/{status.visual.spec.ts → visual.spec.ts} +4 -4
  36. package/src/components/data-display/table/docs.html +70 -0
  37. package/src/components/data-display/table/{table.visual.spec.ts → visual.spec.ts} +4 -4
  38. package/src/components/data-display/tag/docs.html +39 -0
  39. package/src/components/data-display/tag/{tag.visual.spec.ts → visual.spec.ts} +4 -4
  40. package/src/components/disclosure/accordion/docs.html +80 -0
  41. package/src/components/disclosure/accordion/{accordion.visual.spec.ts → visual.spec.ts} +4 -4
  42. package/src/components/disclosure/disclosure/docs.html +48 -0
  43. package/src/components/disclosure/disclosure/{disclosure.visual.spec.ts → visual.spec.ts} +4 -4
  44. package/src/components/feedback/alert/docs.html +87 -0
  45. package/src/components/feedback/alert/{alert.visual.spec.ts → visual.spec.ts} +4 -4
  46. package/src/components/feedback/progress/docs.html +62 -0
  47. package/src/components/feedback/progress/{progress.visual.spec.ts → visual.spec.ts} +4 -4
  48. package/src/components/feedback/progress-circle/docs.html +62 -0
  49. package/src/components/feedback/progress-circle/{progress-circle.visual.spec.ts → visual.spec.ts} +4 -4
  50. package/src/components/feedback/skeleton/docs.html +37 -0
  51. package/src/components/feedback/skeleton/{skeleton.visual.spec.ts → visual.spec.ts} +4 -4
  52. package/src/components/feedback/spinner/docs.html +26 -0
  53. package/src/components/feedback/spinner/{spinner.visual.spec.ts → visual.spec.ts} +4 -4
  54. package/src/components/feedback/toast/docs.html +106 -0
  55. package/src/components/feedback/toast/visual.png +0 -0
  56. package/src/components/feedback/toast/{toast.visual.spec.ts → visual.spec.ts} +4 -4
  57. package/src/components/forms/checkbox/docs.html +30 -0
  58. package/src/components/forms/checkbox/{checkbox.visual.spec.ts → visual.spec.ts} +4 -4
  59. package/src/components/forms/checkbox-group/docs.html +101 -0
  60. package/src/components/forms/checkbox-group/{checkbox-group.visual.spec.ts → visual.spec.ts} +4 -4
  61. package/src/components/forms/field/docs.html +60 -0
  62. package/src/components/forms/field/{field.visual.spec.ts → visual.spec.ts} +4 -4
  63. package/src/components/forms/fieldset/docs.html +119 -0
  64. package/src/components/forms/fieldset/{fieldset.visual.spec.ts → visual.spec.ts} +4 -4
  65. package/src/components/forms/form/docs.html +129 -0
  66. package/src/components/forms/form/{form.visual.spec.ts → visual.spec.ts} +4 -4
  67. package/src/components/forms/form-error/docs.html +15 -0
  68. package/src/components/forms/form-error/{form-error.visual.spec.ts → visual.spec.ts} +4 -4
  69. package/src/components/forms/form-helper/docs.html +39 -0
  70. package/src/components/forms/form-helper/{form-helper.visual.spec.ts → visual.spec.ts} +4 -4
  71. package/src/components/forms/input/docs.html +66 -0
  72. package/src/components/forms/input/visual.png +0 -0
  73. package/src/components/forms/input/{input.visual.spec.ts → visual.spec.ts} +4 -4
  74. package/src/components/forms/label/docs.html +26 -0
  75. package/src/components/forms/label/visual.png +0 -0
  76. package/src/components/forms/label/{label.visual.spec.ts → visual.spec.ts} +4 -4
  77. package/src/components/forms/number-input/docs.html +97 -0
  78. package/src/components/forms/number-input/visual.png +0 -0
  79. package/src/components/forms/number-input/{number-input.visual.spec.ts → visual.spec.ts} +4 -4
  80. package/src/components/forms/password-input/docs.html +85 -0
  81. package/src/components/forms/password-input/visual.png +0 -0
  82. package/src/components/forms/password-input/{password-input.visual.spec.ts → visual.spec.ts} +4 -4
  83. package/src/components/forms/radio/docs.html +49 -0
  84. package/src/components/forms/radio/{radio.visual.spec.ts → visual.spec.ts} +4 -4
  85. package/src/components/forms/radio-group/docs.html +97 -0
  86. package/src/components/forms/radio-group/{radio-group.visual.spec.ts → visual.spec.ts} +4 -4
  87. package/src/components/forms/search-input/docs.html +84 -0
  88. package/src/components/forms/search-input/visual.png +0 -0
  89. package/src/components/forms/search-input/{search-input.visual.spec.ts → visual.spec.ts} +4 -4
  90. package/src/components/forms/select/docs.html +67 -0
  91. package/src/components/forms/select/visual.png +0 -0
  92. package/src/components/forms/select/{select.visual.spec.ts → visual.spec.ts} +4 -4
  93. package/src/components/forms/slider/docs.html +22 -0
  94. package/src/components/forms/slider/visual.png +0 -0
  95. package/src/components/forms/slider/{slider.visual.spec.ts → visual.spec.ts} +4 -4
  96. package/src/components/forms/textarea/docs.html +36 -0
  97. package/src/components/forms/textarea/visual.png +0 -0
  98. package/src/components/forms/textarea/{textarea.visual.spec.ts → visual.spec.ts} +4 -4
  99. package/src/components/forms/toggle/docs.html +61 -0
  100. package/src/components/forms/toggle/{toggle.visual.spec.ts → visual.spec.ts} +4 -4
  101. package/src/components/navigation/breadcrumb/docs.html +57 -0
  102. package/src/components/navigation/breadcrumb/{breadcrumb.visual.spec.ts → visual.spec.ts} +4 -4
  103. package/src/components/navigation/dropdown-menu/docs.html +103 -0
  104. package/src/components/navigation/dropdown-menu/visual.png +0 -0
  105. package/src/components/navigation/dropdown-menu/{dropdown-menu.visual.spec.ts → visual.spec.ts} +4 -4
  106. package/src/components/navigation/menu/docs.html +119 -0
  107. package/src/components/navigation/menu/{menu.visual.spec.ts → visual.spec.ts} +4 -4
  108. package/src/components/navigation/nav/docs.html +71 -0
  109. package/src/components/navigation/nav/{nav.visual.spec.ts → visual.spec.ts} +4 -4
  110. package/src/components/navigation/pagination/docs.html +113 -0
  111. package/src/components/navigation/pagination/visual.png +0 -0
  112. package/src/components/navigation/pagination/{pagination.visual.spec.ts → visual.spec.ts} +4 -4
  113. package/src/components/navigation/tabs/docs.html +63 -0
  114. package/src/components/navigation/tabs/{tabs.visual.spec.ts → visual.spec.ts} +4 -4
  115. package/src/components/overlays/dialog/docs.html +58 -0
  116. package/src/components/overlays/dialog/{dialog.visual.spec.ts → visual.spec.ts} +4 -4
  117. package/src/components/overlays/drawer/docs.html +87 -0
  118. package/src/components/overlays/drawer/visual.png +0 -0
  119. package/src/components/overlays/drawer/{drawer.visual.spec.ts → visual.spec.ts} +4 -4
  120. package/src/components/overlays/modal/docs.html +66 -0
  121. package/src/components/overlays/modal/{modal.visual.spec.ts → visual.spec.ts} +4 -4
  122. package/src/components/overlays/overlay/docs.html +27 -0
  123. package/src/components/overlays/overlay/{overlay.visual.spec.ts → visual.spec.ts} +4 -4
  124. package/src/components/overlays/popover/docs.html +38 -0
  125. package/src/components/overlays/popover/{popover.visual.spec.ts → visual.spec.ts} +4 -4
  126. package/src/components/overlays/tooltip/docs.html +30 -0
  127. package/src/components/overlays/tooltip/{tooltip.visual.spec.ts → visual.spec.ts} +4 -4
  128. package/src/components/typography/blockquote/docs.html +21 -0
  129. package/src/components/typography/blockquote/{blockquote.visual.spec.ts → visual.spec.ts} +4 -4
  130. package/src/components/typography/code/docs.html +20 -0
  131. package/src/components/typography/code/visual.png +0 -0
  132. package/src/components/typography/code/{code.visual.spec.ts → visual.spec.ts} +4 -4
  133. package/src/components/typography/code-block/docs.html +84 -0
  134. package/src/components/typography/code-block/visual.png +0 -0
  135. package/src/components/typography/code-block/{code-block.visual.spec.ts → visual.spec.ts} +4 -4
  136. package/src/components/typography/heading/docs.html +23 -0
  137. package/src/components/typography/heading/visual.png +0 -0
  138. package/src/components/typography/heading/{heading.visual.spec.ts → visual.spec.ts} +4 -4
  139. package/src/components/typography/kbd/docs.html +14 -0
  140. package/src/components/typography/kbd/{kbd.visual.spec.ts → visual.spec.ts} +4 -4
  141. package/src/components/typography/link/docs.html +30 -0
  142. package/src/components/typography/link/{link.visual.spec.ts → visual.spec.ts} +4 -4
  143. package/src/components/typography/list/docs.html +76 -0
  144. package/src/components/typography/list/{list.visual.spec.ts → visual.spec.ts} +4 -4
  145. package/src/components/typography/mark/docs.html +10 -0
  146. package/src/components/typography/mark/{mark.visual.spec.ts → visual.spec.ts} +4 -4
  147. package/src/config/guides/accessibility.docs.html +106 -0
  148. package/src/config/guides/getting-started.docs.html +45 -0
  149. package/src/config/guides/theming.docs.html +69 -0
  150. package/src/config/tokens/colors/docs.html +73 -0
  151. package/src/config/tokens/docs.html +115 -0
  152. package/src/config/tokens/grid/docs.html +10 -0
  153. package/src/config/tokens/spacing/docs.html +31 -0
  154. package/src/debug/docs.html +27 -0
  155. package/src/layout/app-shell/docs.html +100 -0
  156. package/src/layout/app-shell/visual.png +0 -0
  157. package/src/layout/app-shell/visual.spec.ts +13 -0
  158. package/src/layout/aspect-ratio/docs.html +38 -0
  159. package/src/layout/aspect-ratio/{aspect-ratio.visual.spec.ts → visual.spec.ts} +4 -4
  160. package/src/layout/box/docs.html +24 -0
  161. package/src/layout/box/visual.png +0 -0
  162. package/src/layout/box/visual.spec.ts +13 -0
  163. package/src/layout/center/docs.html +23 -0
  164. package/src/layout/center/visual.spec.ts +13 -0
  165. package/src/layout/column/docs.html +29 -0
  166. package/src/layout/column/visual.spec.ts +13 -0
  167. package/src/layout/container/docs.html +34 -0
  168. package/src/layout/content/docs.html +35 -0
  169. package/src/layout/content/{content-visual.png → visual.png} +0 -0
  170. package/src/layout/content/visual.spec.ts +18 -0
  171. package/src/layout/footer/docs.html +70 -0
  172. package/src/layout/footer/visual.png +0 -0
  173. package/src/layout/footer/visual.spec.ts +18 -0
  174. package/src/layout/grid/docs.html +85 -0
  175. package/src/layout/grid/visual.spec.ts +13 -0
  176. package/src/layout/main/docs.html +28 -0
  177. package/src/layout/nav-rail/docs.html +39 -0
  178. package/src/layout/nav-rail/visual.png +0 -0
  179. package/src/layout/nav-rail/visual.spec.ts +18 -0
  180. package/src/layout/page-header/docs.html +49 -0
  181. package/src/layout/page-header/{page-header.visual.spec.ts → visual.spec.ts} +8 -4
  182. package/src/layout/row/docs.html +44 -0
  183. package/src/layout/row/{row.visual.spec.ts → visual.spec.ts} +4 -4
  184. package/src/layout/sidebar/docs.html +27 -0
  185. package/src/layout/sidebar/visual.png +0 -0
  186. package/src/layout/sidebar/visual.spec.ts +18 -0
  187. package/src/layout/sidebar-nav/docs.html +232 -0
  188. package/src/layout/sidebar-nav/{sidebar-nav.visual.spec.ts → visual.spec.ts} +7 -3
  189. package/src/layout/topbar/docs.html +61 -0
  190. package/src/layout/topbar/visual.png +0 -0
  191. package/src/layout/topbar/visual.spec.ts +18 -0
  192. package/src/utilities/container/docs.html +31 -0
  193. package/src/utilities/display/docs.html +27 -0
  194. package/src/utilities/scroll-animation/docs.html +29 -0
  195. package/src/utilities/scroll-snap/docs.html +77 -0
  196. package/src/utilities/spacing/docs.html +26 -0
  197. package/src/utilities/text/docs.html +63 -0
  198. package/src/utilities/view-transition/docs.html +49 -0
  199. package/src/utilities/visually-hidden/docs.html +16 -0
  200. package/src/base/root.docs.json +0 -35
  201. package/src/base/typography/typography.docs.json +0 -328
  202. package/src/components/actions/button/button.docs.json +0 -264
  203. package/src/components/actions/button-group/button-group.docs.json +0 -151
  204. package/src/components/actions/close-button/close-button.docs.json +0 -265
  205. package/src/components/content/divider/divider.docs.json +0 -113
  206. package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
  207. package/src/components/content/scroll-area/scroll-area.docs.json +0 -273
  208. package/src/components/content/spacer/spacer.docs.json +0 -102
  209. package/src/components/data-display/avatar/avatar.docs.json +0 -245
  210. package/src/components/data-display/badge/badge.docs.json +0 -114
  211. package/src/components/data-display/card/card-visual.png +0 -0
  212. package/src/components/data-display/card/card.docs.json +0 -229
  213. package/src/components/data-display/data-list/data-list.docs.json +0 -259
  214. package/src/components/data-display/icon/icon.docs.json +0 -307
  215. package/src/components/data-display/image/image-visual.png +0 -0
  216. package/src/components/data-display/image/image.docs.json +0 -337
  217. package/src/components/data-display/stat/stat.docs.json +0 -114
  218. package/src/components/data-display/status/status.docs.json +0 -147
  219. package/src/components/data-display/table/table.docs.json +0 -184
  220. package/src/components/data-display/tag/tag.docs.json +0 -146
  221. package/src/components/disclosure/accordion/accordion.docs.json +0 -206
  222. package/src/components/disclosure/disclosure/disclosure.docs.json +0 -154
  223. package/src/components/feedback/alert/alert.docs.json +0 -325
  224. package/src/components/feedback/progress/progress.docs.json +0 -315
  225. package/src/components/feedback/progress-circle/progress-circle.docs.json +0 -378
  226. package/src/components/feedback/skeleton/skeleton.docs.json +0 -142
  227. package/src/components/feedback/spinner/spinner.docs.json +0 -121
  228. package/src/components/feedback/toast/toast-visual.png +0 -0
  229. package/src/components/feedback/toast/toast.docs.json +0 -418
  230. package/src/components/forms/checkbox/checkbox.docs.json +0 -166
  231. package/src/components/forms/checkbox-group/checkbox-group.docs.json +0 -339
  232. package/src/components/forms/field/field.docs.json +0 -276
  233. package/src/components/forms/fieldset/fieldset.docs.json +0 -520
  234. package/src/components/forms/form/form.docs.json +0 -482
  235. package/src/components/forms/form-error/form-error.docs.json +0 -61
  236. package/src/components/forms/form-helper/form-helper.docs.json +0 -151
  237. package/src/components/forms/input/input-visual.png +0 -0
  238. package/src/components/forms/input/input.docs.json +0 -306
  239. package/src/components/forms/label/label-visual.png +0 -0
  240. package/src/components/forms/label/label.docs.json +0 -110
  241. package/src/components/forms/number-input/number-input-visual.png +0 -0
  242. package/src/components/forms/number-input/number-input.docs.json +0 -311
  243. package/src/components/forms/password-input/password-input-visual.png +0 -0
  244. package/src/components/forms/password-input/password-input.docs.json +0 -316
  245. package/src/components/forms/radio/radio.docs.json +0 -236
  246. package/src/components/forms/radio-group/radio-group.docs.json +0 -351
  247. package/src/components/forms/search-input/search-input-visual.png +0 -0
  248. package/src/components/forms/search-input/search-input.docs.json +0 -293
  249. package/src/components/forms/select/select-visual.png +0 -0
  250. package/src/components/forms/select/select.docs.json +0 -231
  251. package/src/components/forms/slider/slider-visual.png +0 -0
  252. package/src/components/forms/slider/slider.docs.json +0 -144
  253. package/src/components/forms/textarea/textarea-visual.png +0 -0
  254. package/src/components/forms/textarea/textarea.docs.json +0 -229
  255. package/src/components/forms/toggle/toggle.docs.json +0 -229
  256. package/src/components/navigation/breadcrumb/breadcrumb.docs.json +0 -240
  257. package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
  258. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +0 -290
  259. package/src/components/navigation/menu/menu.docs.json +0 -326
  260. package/src/components/navigation/nav/nav.docs.json +0 -304
  261. package/src/components/navigation/pagination/pagination-visual.png +0 -0
  262. package/src/components/navigation/pagination/pagination.docs.json +0 -483
  263. package/src/components/navigation/tabs/tabs.docs.json +0 -243
  264. package/src/components/overlays/dialog/dialog.docs.json +0 -200
  265. package/src/components/overlays/drawer/drawer-visual.png +0 -0
  266. package/src/components/overlays/drawer/drawer.docs.json +0 -307
  267. package/src/components/overlays/modal/modal.docs.json +0 -252
  268. package/src/components/overlays/overlay/overlay.docs.json +0 -138
  269. package/src/components/overlays/popover/popover.docs.json +0 -154
  270. package/src/components/overlays/tooltip/tooltip.docs.json +0 -133
  271. package/src/components/typography/blockquote/blockquote.docs.json +0 -89
  272. package/src/components/typography/code/code-visual.png +0 -0
  273. package/src/components/typography/code/code.docs.json +0 -104
  274. package/src/components/typography/code-block/code-block-visual.png +0 -0
  275. package/src/components/typography/code-block/code-block.docs.json +0 -308
  276. package/src/components/typography/heading/heading-visual.png +0 -0
  277. package/src/components/typography/heading/heading.docs.json +0 -120
  278. package/src/components/typography/kbd/kbd.docs.json +0 -61
  279. package/src/components/typography/link/link.docs.json +0 -149
  280. package/src/components/typography/list/list.docs.json +0 -296
  281. package/src/components/typography/mark/mark.docs.json +0 -60
  282. package/src/config/guides/accessibility.docs.json +0 -126
  283. package/src/config/guides/getting-started.docs.json +0 -106
  284. package/src/config/guides/theming.docs.json +0 -289
  285. package/src/config/tokens/colors/colors.docs.json +0 -316
  286. package/src/config/tokens/design-tokens.docs.json +0 -239
  287. package/src/config/tokens/grid/grid.docs.json +0 -54
  288. package/src/config/tokens/spacing/spacing.docs.json +0 -114
  289. package/src/debug/debug.docs.json +0 -96
  290. package/src/layout/app-shell/app-shell-visual.png +0 -0
  291. package/src/layout/app-shell/app-shell.docs.json +0 -155
  292. package/src/layout/app-shell/app-shell.visual.spec.ts +0 -13
  293. package/src/layout/aspect-ratio/aspect-ratio.docs.json +0 -193
  294. package/src/layout/box/box-visual.png +0 -0
  295. package/src/layout/box/box.docs.json +0 -93
  296. package/src/layout/box/box.visual.spec.ts +0 -13
  297. package/src/layout/center/center.docs.json +0 -63
  298. package/src/layout/center/center.visual.spec.ts +0 -13
  299. package/src/layout/column/column.docs.json +0 -157
  300. package/src/layout/column/column.visual.spec.ts +0 -13
  301. package/src/layout/container/container.docs.json +0 -85
  302. package/src/layout/content/content.docs.json +0 -82
  303. package/src/layout/content/content.visual.spec.ts +0 -14
  304. package/src/layout/footer/footer-visual.png +0 -0
  305. package/src/layout/footer/footer.docs.json +0 -119
  306. package/src/layout/footer/footer.visual.spec.ts +0 -14
  307. package/src/layout/grid/grid.docs.json +0 -493
  308. package/src/layout/grid/grid.visual.spec.ts +0 -13
  309. package/src/layout/main/main.docs.json +0 -87
  310. package/src/layout/nav-rail/nav-rail-visual.png +0 -0
  311. package/src/layout/nav-rail/nav-rail.docs.json +0 -76
  312. package/src/layout/nav-rail/nav-rail.visual.spec.ts +0 -14
  313. package/src/layout/page-header/page-header.docs.json +0 -124
  314. package/src/layout/row/row.docs.json +0 -237
  315. package/src/layout/sidebar/sidebar-visual.png +0 -0
  316. package/src/layout/sidebar/sidebar.docs.json +0 -63
  317. package/src/layout/sidebar/sidebar.visual.spec.ts +0 -14
  318. package/src/layout/sidebar-nav/sidebar-nav.docs.json +0 -833
  319. package/src/layout/topbar/topbar-visual.png +0 -0
  320. package/src/layout/topbar/topbar.docs.json +0 -110
  321. package/src/layout/topbar/topbar.visual.spec.ts +0 -14
  322. package/src/utilities/container/container.docs.json +0 -121
  323. package/src/utilities/display/display.docs.json +0 -83
  324. package/src/utilities/scroll-animation/scroll-animation.docs.json +0 -100
  325. package/src/utilities/scroll-snap/scroll-snap.docs.json +0 -333
  326. package/src/utilities/spacing/spacing.docs.json +0 -133
  327. package/src/utilities/text/text.docs.json +0 -191
  328. package/src/utilities/view-transition/view-transition.docs.json +0 -63
  329. package/src/utilities/visually-hidden/visually-hidden.docs.json +0 -44
  330. /package/src/components/actions/button/{button.api.json → api.json} +0 -0
  331. /package/src/components/actions/button/{button-visual.png → visual.png} +0 -0
  332. /package/src/components/actions/button-group/{button-group.api.json → api.json} +0 -0
  333. /package/src/components/actions/button-group/{button-group-visual.png → visual.png} +0 -0
  334. /package/src/components/actions/close-button/{close-button.api.json → api.json} +0 -0
  335. /package/src/components/actions/close-button/{close-button-visual.png → visual.png} +0 -0
  336. /package/src/components/content/divider/{divider.api.json → api.json} +0 -0
  337. /package/src/components/content/divider/{divider-visual.png → visual.png} +0 -0
  338. /package/src/components/content/scroll-area/{scroll-area.api.json → api.json} +0 -0
  339. /package/src/components/content/spacer/{spacer.api.json → api.json} +0 -0
  340. /package/src/components/content/spacer/{spacer-visual.png → visual.png} +0 -0
  341. /package/src/components/data-display/avatar/{avatar.api.json → api.json} +0 -0
  342. /package/src/components/data-display/avatar/{avatar-visual.png → visual.png} +0 -0
  343. /package/src/components/data-display/badge/{badge.api.json → api.json} +0 -0
  344. /package/src/components/data-display/badge/{badge-visual.png → visual.png} +0 -0
  345. /package/src/components/data-display/card/{card.api.json → api.json} +0 -0
  346. /package/src/components/data-display/data-list/{data-list.api.json → api.json} +0 -0
  347. /package/src/components/data-display/icon/{icon.api.json → api.json} +0 -0
  348. /package/src/components/data-display/icon/{icon-visual.png → visual.png} +0 -0
  349. /package/src/components/data-display/image/{image.api.json → api.json} +0 -0
  350. /package/src/components/data-display/stat/{stat.api.json → api.json} +0 -0
  351. /package/src/components/data-display/stat/{stat-visual.png → visual.png} +0 -0
  352. /package/src/components/data-display/status/{status.api.json → api.json} +0 -0
  353. /package/src/components/data-display/status/{status-visual.png → visual.png} +0 -0
  354. /package/src/components/data-display/table/{table.api.json → api.json} +0 -0
  355. /package/src/components/data-display/table/{table-visual.png → visual.png} +0 -0
  356. /package/src/components/data-display/tag/{tag.api.json → api.json} +0 -0
  357. /package/src/components/data-display/tag/{tag-visual.png → visual.png} +0 -0
  358. /package/src/components/disclosure/accordion/{accordion.api.json → api.json} +0 -0
  359. /package/src/components/disclosure/accordion/{accordion-visual.png → visual.png} +0 -0
  360. /package/src/components/disclosure/disclosure/{disclosure.api.json → api.json} +0 -0
  361. /package/src/components/disclosure/disclosure/{disclosure-visual.png → visual.png} +0 -0
  362. /package/src/components/feedback/alert/{alert.api.json → api.json} +0 -0
  363. /package/src/components/feedback/alert/{alert-visual.png → visual.png} +0 -0
  364. /package/src/components/feedback/progress/{progress.api.json → api.json} +0 -0
  365. /package/src/components/feedback/progress/{progress-visual.png → visual.png} +0 -0
  366. /package/src/components/feedback/progress-circle/{progress-circle.api.json → api.json} +0 -0
  367. /package/src/components/feedback/progress-circle/{progress-circle-visual.png → visual.png} +0 -0
  368. /package/src/components/feedback/skeleton/{skeleton.api.json → api.json} +0 -0
  369. /package/src/components/feedback/skeleton/{skeleton-visual.png → visual.png} +0 -0
  370. /package/src/components/feedback/spinner/{spinner.api.json → api.json} +0 -0
  371. /package/src/components/feedback/spinner/{spinner-visual.png → visual.png} +0 -0
  372. /package/src/components/feedback/toast/{toast.api.json → api.json} +0 -0
  373. /package/src/components/forms/checkbox/{checkbox.api.json → api.json} +0 -0
  374. /package/src/components/forms/checkbox/{checkbox-visual.png → visual.png} +0 -0
  375. /package/src/components/forms/checkbox-group/{checkbox-group.api.json → api.json} +0 -0
  376. /package/src/components/forms/checkbox-group/{checkbox-group-visual.png → visual.png} +0 -0
  377. /package/src/components/forms/field/{field.api.json → api.json} +0 -0
  378. /package/src/components/forms/field/{field-visual.png → visual.png} +0 -0
  379. /package/src/components/forms/fieldset/{fieldset.api.json → api.json} +0 -0
  380. /package/src/components/forms/fieldset/{fieldset-visual.png → visual.png} +0 -0
  381. /package/src/components/forms/form/{form.api.json → api.json} +0 -0
  382. /package/src/components/forms/form/{form-visual.png → visual.png} +0 -0
  383. /package/src/components/forms/form-error/{form-error.api.json → api.json} +0 -0
  384. /package/src/components/forms/form-error/{form-error-visual.png → visual.png} +0 -0
  385. /package/src/components/forms/form-helper/{form-helper.api.json → api.json} +0 -0
  386. /package/src/components/forms/form-helper/{form-helper-visual.png → visual.png} +0 -0
  387. /package/src/components/forms/input/{input.api.json → api.json} +0 -0
  388. /package/src/components/forms/label/{label.api.json → api.json} +0 -0
  389. /package/src/components/forms/number-input/{number-input.api.json → api.json} +0 -0
  390. /package/src/components/forms/password-input/{password-input.api.json → api.json} +0 -0
  391. /package/src/components/forms/radio/{radio.api.json → api.json} +0 -0
  392. /package/src/components/forms/radio/{radio-visual.png → visual.png} +0 -0
  393. /package/src/components/forms/radio-group/{radio-group.api.json → api.json} +0 -0
  394. /package/src/components/forms/radio-group/{radio-group-visual.png → visual.png} +0 -0
  395. /package/src/components/forms/search-input/{search-input.api.json → api.json} +0 -0
  396. /package/src/components/forms/select/{select.api.json → api.json} +0 -0
  397. /package/src/components/forms/slider/{slider.api.json → api.json} +0 -0
  398. /package/src/components/forms/textarea/{textarea.api.json → api.json} +0 -0
  399. /package/src/components/forms/toggle/{toggle.api.json → api.json} +0 -0
  400. /package/src/components/forms/toggle/{toggle-visual.png → visual.png} +0 -0
  401. /package/src/components/navigation/breadcrumb/{breadcrumb.api.json → api.json} +0 -0
  402. /package/src/components/navigation/breadcrumb/{breadcrumb-visual.png → visual.png} +0 -0
  403. /package/src/components/navigation/dropdown-menu/{dropdown-menu.api.json → api.json} +0 -0
  404. /package/src/components/navigation/menu/{menu.api.json → api.json} +0 -0
  405. /package/src/components/navigation/menu/{menu-visual.png → visual.png} +0 -0
  406. /package/src/components/navigation/nav/{nav.api.json → api.json} +0 -0
  407. /package/src/components/navigation/nav/{nav-visual.png → visual.png} +0 -0
  408. /package/src/components/navigation/pagination/{pagination.api.json → api.json} +0 -0
  409. /package/src/components/navigation/tabs/{tabs.api.json → api.json} +0 -0
  410. /package/src/components/navigation/tabs/{tabs-visual.png → visual.png} +0 -0
  411. /package/src/components/overlays/dialog/{dialog.api.json → api.json} +0 -0
  412. /package/src/components/overlays/dialog/{dialog-visual.png → visual.png} +0 -0
  413. /package/src/components/overlays/drawer/{drawer.api.json → api.json} +0 -0
  414. /package/src/components/overlays/modal/{modal.api.json → api.json} +0 -0
  415. /package/src/components/overlays/modal/{modal-visual.png → visual.png} +0 -0
  416. /package/src/components/overlays/overlay/{overlay.api.json → api.json} +0 -0
  417. /package/src/components/overlays/overlay/{overlay-visual.png → visual.png} +0 -0
  418. /package/src/components/overlays/popover/{popover.api.json → api.json} +0 -0
  419. /package/src/components/overlays/popover/{popover-visual.png → visual.png} +0 -0
  420. /package/src/components/overlays/tooltip/{tooltip.api.json → api.json} +0 -0
  421. /package/src/components/overlays/tooltip/{tooltip-visual.png → visual.png} +0 -0
  422. /package/src/components/typography/blockquote/{blockquote.api.json → api.json} +0 -0
  423. /package/src/components/typography/blockquote/{blockquote-visual.png → visual.png} +0 -0
  424. /package/src/components/typography/code/{code.api.json → api.json} +0 -0
  425. /package/src/components/typography/code-block/{code-block.api.json → api.json} +0 -0
  426. /package/src/components/typography/heading/{heading.api.json → api.json} +0 -0
  427. /package/src/components/typography/kbd/{kbd.api.json → api.json} +0 -0
  428. /package/src/components/typography/kbd/{kbd-visual.png → visual.png} +0 -0
  429. /package/src/components/typography/link/{link.api.json → api.json} +0 -0
  430. /package/src/components/typography/link/{link-visual.png → visual.png} +0 -0
  431. /package/src/components/typography/list/{list.api.json → api.json} +0 -0
  432. /package/src/components/typography/list/{list-visual.png → visual.png} +0 -0
  433. /package/src/components/typography/mark/{mark.api.json → api.json} +0 -0
  434. /package/src/components/typography/mark/{mark-visual.png → visual.png} +0 -0
  435. /package/src/layout/app-shell/{app-shell.api.json → api.json} +0 -0
  436. /package/src/layout/aspect-ratio/{aspect-ratio.api.json → api.json} +0 -0
  437. /package/src/layout/aspect-ratio/{aspect-ratio-visual.png → visual.png} +0 -0
  438. /package/src/layout/box/{box.api.json → api.json} +0 -0
  439. /package/src/layout/center/{center.api.json → api.json} +0 -0
  440. /package/src/layout/center/{center-visual.png → visual.png} +0 -0
  441. /package/src/layout/column/{column.api.json → api.json} +0 -0
  442. /package/src/layout/column/{column-visual.png → visual.png} +0 -0
  443. /package/src/layout/container/{container.api.json → api.json} +0 -0
  444. /package/src/layout/content/{content.api.json → api.json} +0 -0
  445. /package/src/layout/footer/{footer.api.json → api.json} +0 -0
  446. /package/src/layout/grid/{grid.api.json → api.json} +0 -0
  447. /package/src/layout/grid/{grid-visual.png → visual.png} +0 -0
  448. /package/src/layout/main/{main.api.json → api.json} +0 -0
  449. /package/src/layout/nav-rail/{nav-rail.api.json → api.json} +0 -0
  450. /package/src/layout/page-header/{page-header.api.json → api.json} +0 -0
  451. /package/src/layout/page-header/{page-header-visual.png → visual.png} +0 -0
  452. /package/src/layout/row/{row.api.json → api.json} +0 -0
  453. /package/src/layout/row/{row-visual.png → visual.png} +0 -0
  454. /package/src/layout/sidebar/{sidebar.api.json → api.json} +0 -0
  455. /package/src/layout/sidebar-nav/{sidebar-nav.api.json → api.json} +0 -0
  456. /package/src/layout/topbar/{topbar.api.json → api.json} +0 -0
  457. /package/src/utilities/container/{container.api.json → api.json} +0 -0
  458. /package/src/utilities/display/{display.api.json → api.json} +0 -0
  459. /package/src/utilities/scroll-animation/{scroll-animation.api.json → api.json} +0 -0
  460. /package/src/utilities/scroll-snap/{scroll-snap.api.json → api.json} +0 -0
  461. /package/src/utilities/spacing/{spacing.api.json → api.json} +0 -0
  462. /package/src/utilities/text/{text.api.json → api.json} +0 -0
  463. /package/src/utilities/view-transition/{view-transition.api.json → api.json} +0 -0
  464. /package/src/utilities/visually-hidden/{visually-hidden.api.json → api.json} +0 -0
@@ -0,0 +1,232 @@
1
+ ---
2
+ title: Sidebar Nav
3
+ description: Navigation component for sidebars with support for groups, nested items, icons, and badges.
4
+ ---
5
+
6
+ <!-- @basic -->
7
+ <!-- Simple navigation with grouped items. -->
8
+ <nav class="ui-sidebar-nav" aria-label="Main navigation" style="block-size: 400px;">
9
+ <div class="ui-sidebar-nav__header">
10
+ <strong>App Name</strong>
11
+ </div>
12
+ <div class="ui-sidebar-nav__content">
13
+ <div class="ui-sidebar-nav__group">
14
+ <span class="ui-sidebar-nav__group-label">Main</span>
15
+ <ul class="ui-sidebar-nav__group-items">
16
+ <li>
17
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--active" href="#" aria-current="page">
18
+ <span class="ui-sidebar-nav__label">Dashboard</span>
19
+ </a>
20
+ </li>
21
+ <li>
22
+ <a class="ui-sidebar-nav__item" href="#">
23
+ <span class="ui-sidebar-nav__label">Projects</span>
24
+ </a>
25
+ </li>
26
+ <li>
27
+ <a class="ui-sidebar-nav__item" href="#">
28
+ <span class="ui-sidebar-nav__label">Tasks</span>
29
+ </a>
30
+ </li>
31
+ </ul>
32
+ </div>
33
+ <div class="ui-sidebar-nav__group">
34
+ <span class="ui-sidebar-nav__group-label">Settings</span>
35
+ <ul class="ui-sidebar-nav__group-items">
36
+ <li>
37
+ <a class="ui-sidebar-nav__item" href="#">
38
+ <span class="ui-sidebar-nav__label">Profile</span>
39
+ </a>
40
+ </li>
41
+ <li>
42
+ <a class="ui-sidebar-nav__item" href="#">
43
+ <span class="ui-sidebar-nav__label">Preferences</span>
44
+ </a>
45
+ </li>
46
+ </ul>
47
+ </div>
48
+ </div>
49
+ <div class="ui-sidebar-nav__footer">
50
+ <a class="ui-sidebar-nav__item" href="#">
51
+ <span class="ui-sidebar-nav__label">Logout</span>
52
+ </a>
53
+ </div>
54
+ </nav>
55
+
56
+ <!-- @with_icons -->
57
+ <!-- Navigation items with icons for visual clarity. -->
58
+ <nav class="ui-sidebar-nav" aria-label="Navigation" style="block-size: 300px;">
59
+ <div class="ui-sidebar-nav__content">
60
+ <ul class="ui-sidebar-nav__group-items">
61
+ <li>
62
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--active" href="#" aria-current="page">
63
+ <span class="ui-sidebar-nav__icon">
64
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
65
+ <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
66
+ </svg>
67
+ </span>
68
+ <span class="ui-sidebar-nav__label">Home</span>
69
+ </a>
70
+ </li>
71
+ <li>
72
+ <a class="ui-sidebar-nav__item" href="#">
73
+ <span class="ui-sidebar-nav__icon">
74
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
75
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
76
+ <circle cx="9" cy="7" r="4"></circle>
77
+ </svg>
78
+ </span>
79
+ <span class="ui-sidebar-nav__label">Users</span>
80
+ </a>
81
+ </li>
82
+ <li>
83
+ <a class="ui-sidebar-nav__item" href="#">
84
+ <span class="ui-sidebar-nav__icon">
85
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
86
+ <circle cx="12" cy="12" r="3"></circle>
87
+ <path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path>
88
+ </svg>
89
+ </span>
90
+ <span class="ui-sidebar-nav__label">Settings</span>
91
+ </a>
92
+ </li>
93
+ </ul>
94
+ </div>
95
+ </nav>
96
+
97
+ <!-- @with_badges -->
98
+ <!-- Navigation items with badges for counts or status indicators. -->
99
+ <nav class="ui-sidebar-nav" aria-label="Navigation" style="block-size: 200px;">
100
+ <div class="ui-sidebar-nav__content">
101
+ <ul class="ui-sidebar-nav__group-items">
102
+ <li>
103
+ <a class="ui-sidebar-nav__item" href="#">
104
+ <span class="ui-sidebar-nav__label">Inbox</span>
105
+ <span class="ui-sidebar-nav__badge">
106
+ <span class="ui-badge ui-badge--primary">12</span>
107
+ </span>
108
+ </a>
109
+ </li>
110
+ <li>
111
+ <a class="ui-sidebar-nav__item" href="#">
112
+ <span class="ui-sidebar-nav__label">Notifications</span>
113
+ <span class="ui-sidebar-nav__badge">
114
+ <span class="ui-badge ui-badge--danger">3</span>
115
+ </span>
116
+ </a>
117
+ </li>
118
+ <li>
119
+ <a class="ui-sidebar-nav__item" href="#">
120
+ <span class="ui-sidebar-nav__label">Updates</span>
121
+ <span class="ui-sidebar-nav__badge">
122
+ <span class="ui-status ui-status--success"></span>
123
+ </span>
124
+ </a>
125
+ </li>
126
+ </ul>
127
+ </div>
128
+ </nav>
129
+
130
+ <!-- @nested_items -->
131
+ <!-- Navigation with nested/indented items for sub-sections. -->
132
+ <nav class="ui-sidebar-nav" aria-label="Navigation" style="block-size: 280px;">
133
+ <div class="ui-sidebar-nav__content">
134
+ <div class="ui-sidebar-nav__group">
135
+ <span class="ui-sidebar-nav__group-label">Components</span>
136
+ <ul class="ui-sidebar-nav__group-items">
137
+ <li>
138
+ <div class="ui-sidebar-nav__subgroup">
139
+ <span class="ui-sidebar-nav__subgroup-label">Actions</span>
140
+ </div>
141
+ </li>
142
+ <li>
143
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--nested" href="#">
144
+ <span class="ui-sidebar-nav__label">Button</span>
145
+ </a>
146
+ </li>
147
+ <li>
148
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--nested ui-sidebar-nav__item--active" href="#" aria-current="page">
149
+ <span class="ui-sidebar-nav__label">Button Group</span>
150
+ </a>
151
+ </li>
152
+ <li>
153
+ <span class="ui-sidebar-nav__subgroup-label">Forms</span>
154
+ </li>
155
+ <li>
156
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--nested" href="#">
157
+ <span class="ui-sidebar-nav__label">Input</span>
158
+ </a>
159
+ </li>
160
+ <li>
161
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--nested" href="#">
162
+ <span class="ui-sidebar-nav__label">Select</span>
163
+ </a>
164
+ </li>
165
+ </ul>
166
+ </div>
167
+ </div>
168
+ </nav>
169
+
170
+ <!-- @collapsed -->
171
+ <!-- Icon-only mode for compact sidebars. -->
172
+ <nav class="ui-sidebar-nav ui-sidebar-nav--collapsed" aria-label="Navigation" style="block-size: 200px;">
173
+ <div class="ui-sidebar-nav__content">
174
+ <ul class="ui-sidebar-nav__group-items">
175
+ <li>
176
+ <a class="ui-sidebar-nav__item ui-sidebar-nav__item--active" href="#" aria-current="page" aria-label="Home">
177
+ <span class="ui-sidebar-nav__icon">
178
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
179
+ <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
180
+ </svg>
181
+ </span>
182
+ <span class="ui-sidebar-nav__label">Home</span>
183
+ </a>
184
+ </li>
185
+ <li>
186
+ <a class="ui-sidebar-nav__item" href="#" aria-label="Users">
187
+ <span class="ui-sidebar-nav__icon">
188
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
189
+ <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
190
+ <circle cx="9" cy="7" r="4"></circle>
191
+ </svg>
192
+ </span>
193
+ <span class="ui-sidebar-nav__label">Users</span>
194
+ </a>
195
+ </li>
196
+ <li>
197
+ <a class="ui-sidebar-nav__item" href="#" aria-label="Settings">
198
+ <span class="ui-sidebar-nav__icon">
199
+ <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
200
+ <circle cx="12" cy="12" r="3"></circle>
201
+ </svg>
202
+ </span>
203
+ <span class="ui-sidebar-nav__label">Settings</span>
204
+ </a>
205
+ </li>
206
+ </ul>
207
+ </div>
208
+ </nav>
209
+
210
+ <!-- @disabled_items -->
211
+ <!-- Non-interactive navigation items. -->
212
+ <nav class="ui-sidebar-nav" aria-label="Navigation" style="block-size: 180px;">
213
+ <div class="ui-sidebar-nav__content">
214
+ <ul class="ui-sidebar-nav__group-items">
215
+ <li>
216
+ <a class="ui-sidebar-nav__item" href="#">
217
+ <span class="ui-sidebar-nav__label">Active Link</span>
218
+ </a>
219
+ </li>
220
+ <li>
221
+ <span class="ui-sidebar-nav__item ui-sidebar-nav__item--disabled">
222
+ <span class="ui-sidebar-nav__label">Disabled Link</span>
223
+ </span>
224
+ </li>
225
+ <li>
226
+ <a class="ui-sidebar-nav__item" href="#">
227
+ <span class="ui-sidebar-nav__label">Another Link</span>
228
+ </a>
229
+ </li>
230
+ </ul>
231
+ </div>
232
+ </nav>
@@ -1,12 +1,16 @@
1
1
  import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
- import { saveForLostPixel, setupVisualTestFromDocs, validateGridRhythm } from '../../../test-utils';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'sidebar-nav.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
6
10
 
7
11
  test.describe('sidebar-nav visual regression', () => {
8
12
  test('all variations', async ({ page }) => {
9
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
10
14
  await validateGridRhythm(page, 'sidebar-nav__item');
11
15
  await saveForLostPixel(page, 'sidebar-nav');
12
16
  await expect(page.locator('.test-container')).toHaveScreenshot('sidebar-nav-all.png');
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: Topbar
3
+ description: Fixed or sticky header bar for app layouts with start, center, and end sections.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <!-- Basic topbar with three sections: start (brand), center (search/nav), and end (actions). -->
8
+ <header class="ui-topbar ui-topbar--bordered">
9
+ <div class="ui-topbar__start">
10
+ <strong>Brand</strong>
11
+ </div>
12
+ <div class="ui-topbar__center">
13
+ <span>Center content</span>
14
+ </div>
15
+ <div class="ui-topbar__end">
16
+ <span>Actions</span>
17
+ </div>
18
+ </header>
19
+
20
+ <!-- @sticky -->
21
+ <!-- Stays at the top of the viewport on scroll. -->
22
+ <header class="ui-topbar ui-topbar--sticky ui-topbar--bordered">
23
+ <div class="ui-topbar__start"><strong>Brand</strong></div>
24
+ <div class="ui-topbar__center">Nav</div>
25
+ <div class="ui-topbar__end">Actions</div>
26
+ </header>
27
+
28
+ <!-- @bordered -->
29
+ <!-- Bottom border via inset box-shadow to preserve grid rhythm. -->
30
+ <header class="ui-topbar ui-topbar--bordered">
31
+ <div class="ui-topbar__start">
32
+ <strong>Bordered</strong>
33
+ </div>
34
+ <div class="ui-topbar__end">
35
+ <span>Actions</span>
36
+ </div>
37
+ </header>
38
+
39
+ <!-- @raised -->
40
+ <!-- Subtle drop shadow below the topbar. -->
41
+ <header class="ui-topbar ui-topbar--raised">
42
+ <div class="ui-topbar__start">
43
+ <strong>Raised</strong>
44
+ </div>
45
+ <div class="ui-topbar__end">
46
+ <span>Actions</span>
47
+ </div>
48
+ </header>
49
+
50
+ <!-- @integration_with_sidebar -->
51
+ <!-- Set --topbar-height on .app-shell so sidebar and main offset correctly. The topbar itself uses --fixed, and sidebar/main read --topbar-height. -->
52
+ <body class="ui-app-shell" style="--topbar-height: var(--ui-row-3)">
53
+ <header class="ui-topbar ui-topbar--fixed ui-topbar--bordered">
54
+ <div class="ui-topbar__start"><strong>App</strong></div>
55
+ <div class="ui-topbar__end">User</div>
56
+ </header>
57
+ <aside class="ui-sidebar">Sidebar</aside>
58
+ <main class="ui-main">
59
+ <div class="ui-container">Content</div>
60
+ </main>
61
+ </body>
Binary file
@@ -0,0 +1,18 @@
1
+ import { resolve } from 'node:path';
2
+ import { expect, test } from '@playwright/test';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../test-utils';
8
+
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
+
11
+ test.describe('topbar visual regression', () => {
12
+ test('all variations', async ({ page }) => {
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
+ await validateGridRhythm(page, 'topbar');
15
+ await saveForLostPixel(page, 'topbar');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
+ });
18
+ });
@@ -0,0 +1,31 @@
1
+ ---
2
+ title: Container
3
+ description: Container query utilities for component-level responsive design.
4
+ ---
5
+
6
+ <!-- @inline_size_containment -->
7
+ <!-- Establish inline-size containment so children can use container queries to respond to the container width. -->
8
+ <div class="ui-container-inline ui-p-2" style="background: var(--ui-color-bg-muted)">
9
+ <div class="ui-card">This card is inside an inline-size container</div>
10
+ </div>
11
+
12
+ <!-- @size_containment -->
13
+ <!-- Establish containment on both axes for container queries on width and height. -->
14
+ <div class="ui-container-size ui-p-2" style="background: var(--ui-color-bg-muted); block-size: 12rem">
15
+ <div class="ui-card">Inside a size container</div>
16
+ </div>
17
+
18
+ <!-- @remove_containment -->
19
+ <!-- Reset container type back to normal (no containment). -->
20
+ <div class="ui-container-normal ui-p-2" style="background: var(--ui-color-bg-muted)">
21
+ <div class="ui-card">No containment on this container</div>
22
+ </div>
23
+
24
+ <!-- @with_responsive_card -->
25
+ <!-- Combine container-inline with card--responsive for automatic horizontal layout at wider container sizes. -->
26
+ <div class="ui-container-inline">
27
+ <div class="ui-card ui-card--responsive">
28
+ <div class="ui-card__media" style="background: var(--ui-color-bg-muted); min-block-size: 6rem"></div>
29
+ <div class="ui-card__body">Card switches to horizontal layout when container is wide enough</div>
30
+ </div>
31
+ </div>
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Display
3
+ description: Flexbox and display utilities.
4
+ ---
5
+
6
+ <!-- @flex_layout -->
7
+ <div class="ui-flex ui-justify-between ui-items-center ui-gap-2 ui-p-2" style="background: var(--ui-color-bg-muted)">
8
+ <span>Start</span>
9
+ <span>Center (items-center)</span>
10
+ <span>End</span>
11
+ </div>
12
+
13
+ <!-- @flex_direction | row -->
14
+ <div class="ui-flex ui-flex-col ui-gap-1 ui-p-2" style="background: var(--ui-color-bg-muted)">
15
+ <span>Column 1</span>
16
+ <span>Column 2</span>
17
+ <span>Column 3</span>
18
+ </div>
19
+ <div class="ui-flex ui-flex-row ui-gap-1 ui-p-2" style="background: var(--ui-color-bg-muted)">
20
+ <span>Row 1</span>
21
+ <span>Row 2</span>
22
+ <span>Row 3</span>
23
+ </div>
24
+
25
+ <!-- @visibility | row -->
26
+ <span class="ui-visible ui-p-1" style="background: var(--ui-color-bg-muted)">Visible</span>
27
+ <span class="ui-invisible ui-p-1" style="background: var(--ui-color-bg-muted)">Invisible (hidden but occupies space)</span>
@@ -0,0 +1,29 @@
1
+ ---
2
+ title: Scroll Animation
3
+ description: Scroll-driven animation utilities for progress indicators and viewport-triggered effects. Wrapped in @supports — no impact on unsupported browsers.
4
+ ---
5
+
6
+ <!-- @scroll_progress_indicator -->
7
+ <!-- Fixed bar at the top of the viewport that fills as the user scrolls down. -->
8
+ <div style="position: relative; block-size: 12rem; overflow-y: auto;">
9
+ <div class="ui-scroll-progress" style="position: absolute;"></div>
10
+ <div style="block-size: 40rem; padding: var(--ui-space-2);">
11
+ <p>Scroll down to see the progress bar fill.</p>
12
+ </div>
13
+ </div>
14
+
15
+ <!-- @view_fade -->
16
+ <!-- Elements fade in as they enter the viewport. -->
17
+ <div class="ui-view-fade ui-card ui-p-2">I fade in on scroll</div>
18
+
19
+ <!-- @view_slide_up -->
20
+ <!-- Elements slide up and fade in on viewport entry. -->
21
+ <div class="ui-view-slide-up ui-card ui-p-2">I slide up into view</div>
22
+
23
+ <!-- @view_slide_start -->
24
+ <!-- Elements slide in from the start edge (left in LTR) on viewport entry. -->
25
+ <div class="ui-view-slide-start ui-card ui-p-2">I slide from the start</div>
26
+
27
+ <!-- @view_scale -->
28
+ <!-- Elements scale up and fade in on viewport entry. -->
29
+ <div class="ui-view-scale ui-card ui-p-2">I scale into view</div>
@@ -0,0 +1,77 @@
1
+ ---
2
+ title: Scroll Snap
3
+ description: Scroll-snap utilities for carousels, horizontal lists, and snap-to-position scrolling.
4
+ ---
5
+
6
+ <!-- @horizontal_snap -->
7
+ <!-- Snap children to start position on horizontal scroll. -->
8
+ <div class="ui-snap-x ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
9
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Item 1</div>
10
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Item 2</div>
11
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Item 3</div>
12
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Item 4</div>
13
+ </div>
14
+
15
+ <!-- @center_snap -->
16
+ <!-- Snap children to center position. -->
17
+ <div class="ui-snap-x ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
18
+ <div class="ui-snap-center ui-card ui-p-2" style="min-inline-size: 10rem">Center 1</div>
19
+ <div class="ui-snap-center ui-card ui-p-2" style="min-inline-size: 10rem">Center 2</div>
20
+ <div class="ui-snap-center ui-card ui-p-2" style="min-inline-size: 10rem">Center 3</div>
21
+ </div>
22
+
23
+ <!-- @vertical_snap -->
24
+ <!-- Snap children on vertical scroll. -->
25
+ <div class="ui-snap-y" style="max-block-size: 8rem">
26
+ <div class="ui-snap-start ui-card ui-p-2">Section 1</div>
27
+ <div class="ui-snap-start ui-card ui-p-2">Section 2</div>
28
+ <div class="ui-snap-start ui-card ui-p-2">Section 3</div>
29
+ </div>
30
+
31
+ <!-- @proximity_snap -->
32
+ <!-- Softer snap that only engages when close to a snap point. -->
33
+ <div class="ui-snap-x-proximity ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
34
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Proximity 1</div>
35
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Proximity 2</div>
36
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">Proximity 3</div>
37
+ </div>
38
+ <div class="ui-snap-y-proximity" style="max-block-size: 8rem">
39
+ <div class="ui-snap-start ui-card ui-p-2">Section 1</div>
40
+ <div class="ui-snap-start ui-card ui-p-2">Section 2</div>
41
+ <div class="ui-snap-start ui-card ui-p-2">Section 3</div>
42
+ </div>
43
+
44
+ <!-- @end_alignment_and_stop -->
45
+ <!-- Snap children to end position or force stop at every snap point. -->
46
+ <div class="ui-snap-x ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
47
+ <div class="ui-snap-end ui-card ui-p-2" style="min-inline-size: 10rem">End 1</div>
48
+ <div class="ui-snap-end ui-card ui-p-2" style="min-inline-size: 10rem">End 2</div>
49
+ <div class="ui-snap-end ui-card ui-p-2" style="min-inline-size: 10rem">End 3</div>
50
+ </div>
51
+ <div class="ui-snap-x ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
52
+ <div class="ui-snap-start ui-snap-always ui-card ui-p-2" style="min-inline-size: 10rem">Always 1</div>
53
+ <div class="ui-snap-start ui-snap-always ui-card ui-p-2" style="min-inline-size: 10rem">Always 2</div>
54
+ <div class="ui-snap-start ui-snap-always ui-card ui-p-2" style="min-inline-size: 10rem">Always 3</div>
55
+ </div>
56
+
57
+ <!-- @disable_snap -->
58
+ <!-- Remove snap behavior from a container. -->
59
+ <div class="ui-snap-none ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem; overflow-x: auto">
60
+ <div class="ui-card ui-p-2" style="min-inline-size: 10rem">No snap 1</div>
61
+ <div class="ui-card ui-p-2" style="min-inline-size: 10rem">No snap 2</div>
62
+ </div>
63
+
64
+ <!-- @scroll_padding -->
65
+ <!-- Offset snap position for fixed headers or insets. -->
66
+ <div class="ui-snap-x ui-snap-p-1 ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
67
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-1</div>
68
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-1</div>
69
+ </div>
70
+ <div class="ui-snap-x ui-snap-p-2 ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
71
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-2</div>
72
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-2</div>
73
+ </div>
74
+ <div class="ui-snap-x ui-snap-p-4 ui-flex ui-gap-2 ui-p-2" style="max-inline-size: 20rem">
75
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-4</div>
76
+ <div class="ui-snap-start ui-card ui-p-2" style="min-inline-size: 10rem">p-4</div>
77
+ </div>
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: Spacing
3
+ description: Margin and padding utilities aligned to 8px grid.
4
+ ---
5
+
6
+ <!-- @padding | column -->
7
+ <div class="ui-p-1" style="background: var(--ui-color-bg-muted)">p-1 (8px padding)</div>
8
+ <div class="ui-p-2" style="background: var(--ui-color-bg-muted)">p-2 (16px padding)</div>
9
+ <div class="ui-p-4" style="background: var(--ui-color-bg-muted)">p-4 (32px padding)</div>
10
+
11
+ <!-- @directional_padding | column -->
12
+ <div class="ui-px-4 ui-py-2" style="background: var(--ui-color-bg-muted)">px-4 py-2 (horizontal 32px, vertical 16px)</div>
13
+ <div class="ui-pt-4 ui-pb-1" style="background: var(--ui-color-bg-muted)">pt-4 pb-1 (top 32px, bottom 8px)</div>
14
+ <div class="ui-ps-4 ui-pe-1" style="background: var(--ui-color-bg-muted)">ps-4 pe-1 (start 32px, end 8px)</div>
15
+
16
+ <!-- @margin | column -->
17
+ <div class="ui-mb-2" style="background: var(--ui-color-bg-muted)">mb-2 (16px bottom margin)</div>
18
+ <div class="ui-mt-4 ui-mb-2" style="background: var(--ui-color-bg-muted)">mt-4 mb-2 (top 32px, bottom 16px)</div>
19
+ <div class="ui-mx-auto" style="background: var(--ui-color-bg-muted); max-inline-size: var(--ui-row-8)">mx-auto (centered with auto margins)</div>
20
+
21
+ <!-- @gap -->
22
+ <div class="ui-flex ui-gap-2">
23
+ <div class="ui-p-2" style="background: var(--ui-color-bg-muted)">Item</div>
24
+ <div class="ui-p-2" style="background: var(--ui-color-bg-muted)">Item</div>
25
+ <div class="ui-p-2" style="background: var(--ui-color-bg-muted)">Item</div>
26
+ </div>
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: Text
3
+ description: Typography and text utilities. Font sizes follow a 1.2 modular scale.
4
+ ---
5
+
6
+ <!-- @sizes | column -->
7
+ <!-- Font size utilities with 8px grid-snapped line-heights. -->
8
+ <p class="ui-text-xs">text-xs: 12px / 16px line-height</p>
9
+ <p class="ui-text-sm">text-sm: 14px / 24px line-height</p>
10
+ <p class="ui-text-md">text-md: 16px / 24px line-height</p>
11
+ <p class="ui-text-lg">text-lg: 20px / 32px line-height</p>
12
+ <p class="ui-text-xl">text-xl: 24px / 32px line-height</p>
13
+ <p class="ui-text-2xl">text-2xl: 28px / 32px line-height</p>
14
+ <p class="ui-text-3xl">text-3xl: 32px / 40px line-height</p>
15
+ <p class="ui-text-4xl">text-4xl: 40px / 48px line-height</p>
16
+
17
+ <!-- @text_roles | column -->
18
+ <!-- Semantic text styles for specific use cases. -->
19
+ <p class="ui-text-lead">Lead: Opening paragraph style (20px / 32px)</p>
20
+ <p class="ui-text-eyebrow">Eyebrow: Small caps label</p>
21
+ <p class="ui-text-caption">Caption: Labels and hints (12px / 16px)</p>
22
+ <p class="ui-text-body-sm">Body small: Secondary text (14px / 24px)</p>
23
+
24
+ <!-- @weights | column -->
25
+ <p class="ui-font-normal">font-normal (400)</p>
26
+ <p class="ui-font-medium">font-medium (500)</p>
27
+ <p class="ui-font-semibold">font-semibold (600)</p>
28
+ <p class="ui-font-bold">font-bold (700)</p>
29
+
30
+ <!-- @letter_spacing | column -->
31
+ <p class="ui-text-2xl ui-tracking-display">tracking-display: Tight (-0.02em)</p>
32
+ <p class="ui-tracking-body">tracking-body: Default (0)</p>
33
+ <p class="ui-tracking-caps ui-uppercase">tracking-caps: Wide (+0.08em)</p>
34
+
35
+ <!-- @line_length | column -->
36
+ <!-- Constrain text width for optimal readability. -->
37
+ <p class="ui-prose-sm">prose-sm: 45ch max-width</p>
38
+ <p class="ui-prose">prose: 65ch max-width (recommended)</p>
39
+ <p class="ui-prose-lg">prose-lg: 75ch max-width</p>
40
+
41
+ <!-- @colors | column -->
42
+ <p class="ui-text-primary">text-primary</p>
43
+ <p class="ui-text-muted">text-muted</p>
44
+ <p class="ui-text-success">text-success</p>
45
+ <p class="ui-text-warning">text-warning</p>
46
+ <p class="ui-text-danger">text-danger</p>
47
+
48
+ <!-- @alignment | column -->
49
+ <p class="ui-text-start">text-start (default)</p>
50
+ <p class="ui-text-center">text-center</p>
51
+ <p class="ui-text-end">text-end</p>
52
+
53
+ <!-- @text_wrap | column -->
54
+ <!-- Control how text wraps across lines. -->
55
+ <p class="ui-text-balance ui-text-2xl ui-font-bold" style="max-inline-size: 20rem">Balanced: distributes text evenly across lines</p>
56
+ <p class="ui-text-pretty" style="max-inline-size: 20rem">Pretty: avoids orphans and widows for cleaner body text paragraphs that wrap naturally</p>
57
+ <p class="ui-text-nowrap">Nowrap: prevents text from wrapping to the next line</p>
58
+
59
+ <!-- @multi_line_truncation | column -->
60
+ <!-- Clamp text to a specific number of lines with ellipsis. -->
61
+ <p class="ui-truncate-2" style="max-inline-size: 20rem">Truncate to 2 lines: This is a long paragraph that will be clamped after two lines of text. Any overflow content will be hidden and replaced with an ellipsis character.</p>
62
+ <p class="ui-truncate-3" style="max-inline-size: 20rem">Truncate to 3 lines: This is a long paragraph that will be clamped after three lines of text. Any overflow content beyond the third line will be hidden and replaced with an ellipsis character at the end.</p>
63
+ <p class="ui-truncate-4" style="max-inline-size: 20rem">Truncate to 4 lines: This is a long paragraph that will be clamped after four lines. It gives more room for content previews while still maintaining a consistent height. Overflow beyond line four is hidden with ellipsis.</p>
@@ -0,0 +1,49 @@
1
+ ---
2
+ title: View Transition
3
+ description: CSS View Transitions API utilities for smooth page navigation. Enabled by default; unsupported browsers work normally.
4
+ ---
5
+
6
+ <!-- @static_elements -->
7
+ <!-- Elements that persist without animation. Sidebar and header stay fixed during page transitions. -->
8
+ <header class="ui-transition-name-header">...</header>
9
+ <nav class="ui-transition-name-sidebar">...</nav>
10
+
11
+ <!-- @slide_animations -->
12
+ <!-- Content slides in/out in different directions. -->
13
+ <main class="ui-transition-name-main">Slides up</main>
14
+ <main class="ui-transition-name-slide-up">Slides up</main>
15
+ <main class="ui-transition-name-slide-down">Slides down</main>
16
+ <main class="ui-transition-name-slide-start">Slides from left</main>
17
+ <main class="ui-transition-name-slide-end">Slides from right</main>
18
+
19
+ <!-- @scale_and_fade -->
20
+ <!-- Scale effect for modals/cards, fade for subtle transitions. -->
21
+ <div class="ui-transition-name-scale">Scales in/out</div>
22
+ <div class="ui-transition-name-card">Card scales</div>
23
+ <div class="ui-transition-name-modal">Modal scales</div>
24
+ <div class="ui-transition-name-fade">Fades in/out</div>
25
+
26
+ <!-- @hero_morph -->
27
+ <!-- Same element on both pages morphs (position/size interpolates). Use same class on source and target. -->
28
+ <!-- Page 1: thumbnail -->
29
+ <img class="ui-transition-name-hero" src="product.jpg">
30
+
31
+ <!-- Page 2: full image -->
32
+ <img class="ui-transition-name-hero" src="product.jpg">
33
+
34
+ <!-- @disable -->
35
+ <!-- Exclude an element from view transitions. -->
36
+ <div class="ui-transition-name-none">No transition</div>
37
+
38
+ <!-- @preserving_scroll_position -->
39
+ <!-- View transitions snapshot elements, resetting scroll. Use `pagereveal` event to restore scroll before paint. -->
40
+ // Save scroll on navigation
41
+ link.addEventListener('click', () => {
42
+ sessionStorage.setItem('scroll', sidebar.scrollTop);
43
+ });
44
+
45
+ // Restore before page reveals
46
+ window.addEventListener('pagereveal', () => {
47
+ const saved = sessionStorage.getItem('scroll');
48
+ if (saved) sidebar.scrollTop = parseInt(saved, 10);
49
+ });