@teseor/css 1.14.2 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/package.json +1 -1
  2. package/src/base/root.docs.html +20 -0
  3. package/src/base/typography/typography.docs.html +161 -0
  4. package/src/components/actions/button/button.docs.html +76 -0
  5. package/src/components/actions/button/button.visual.spec.ts +7 -3
  6. package/src/components/actions/button-group/button-group.docs.html +47 -0
  7. package/src/components/actions/button-group/button-group.visual.spec.ts +7 -3
  8. package/src/components/actions/close-button/close-button.docs.html +77 -0
  9. package/src/components/actions/close-button/close-button.visual.spec.ts +7 -3
  10. package/src/components/content/divider/divider.docs.html +27 -0
  11. package/src/components/content/divider/divider.visual.spec.ts +7 -3
  12. package/src/components/content/scroll-area/scroll-area-visual.png +0 -0
  13. package/src/components/content/scroll-area/scroll-area.docs.html +130 -0
  14. package/src/components/content/scroll-area/scroll-area.visual.spec.ts +7 -3
  15. package/src/components/content/spacer/spacer.docs.html +23 -0
  16. package/src/components/content/spacer/spacer.visual.spec.ts +3 -3
  17. package/src/components/data-display/avatar/avatar.docs.html +67 -0
  18. package/src/components/data-display/avatar/avatar.visual.spec.ts +7 -3
  19. package/src/components/data-display/badge/badge.docs.html +39 -0
  20. package/src/components/data-display/badge/badge.visual.spec.ts +7 -3
  21. package/src/components/data-display/card/card-visual.png +0 -0
  22. package/src/components/data-display/card/card.docs.html +36 -0
  23. package/src/components/data-display/card/card.visual.spec.ts +7 -3
  24. package/src/components/data-display/data-list/data-list-visual.png +0 -0
  25. package/src/components/data-display/data-list/data-list.docs.html +97 -0
  26. package/src/components/data-display/data-list/data-list.visual.spec.ts +7 -3
  27. package/src/components/data-display/icon/icon.docs.html +72 -0
  28. package/src/components/data-display/icon/icon.visual.spec.ts +7 -3
  29. package/src/components/data-display/image/image-visual.png +0 -0
  30. package/src/components/data-display/image/image.docs.html +67 -0
  31. package/src/components/data-display/image/image.visual.spec.ts +7 -3
  32. package/src/components/data-display/stat/stat.docs.html +35 -0
  33. package/src/components/data-display/stat/stat.visual.spec.ts +7 -3
  34. package/src/components/data-display/status/status.docs.html +67 -0
  35. package/src/components/data-display/status/status.visual.spec.ts +7 -3
  36. package/src/components/data-display/table/table.docs.html +73 -0
  37. package/src/components/data-display/table/table.visual.spec.ts +7 -3
  38. package/src/components/data-display/tag/tag.docs.html +42 -0
  39. package/src/components/data-display/tag/tag.visual.spec.ts +7 -3
  40. package/src/components/disclosure/accordion/accordion.docs.html +83 -0
  41. package/src/components/disclosure/accordion/accordion.visual.spec.ts +7 -3
  42. package/src/components/disclosure/disclosure/disclosure.docs.html +51 -0
  43. package/src/components/disclosure/disclosure/disclosure.visual.spec.ts +7 -3
  44. package/src/components/feedback/alert/alert.docs.html +90 -0
  45. package/src/components/feedback/alert/alert.visual.spec.ts +7 -3
  46. package/src/components/feedback/progress/progress.docs.html +65 -0
  47. package/src/components/feedback/progress/progress.visual.spec.ts +7 -3
  48. package/src/components/feedback/progress-circle/progress-circle.docs.html +65 -0
  49. package/src/components/feedback/progress-circle/progress-circle.visual.spec.ts +7 -3
  50. package/src/components/feedback/skeleton/skeleton.docs.html +40 -0
  51. package/src/components/feedback/skeleton/skeleton.visual.spec.ts +7 -3
  52. package/src/components/feedback/spinner/spinner.docs.html +28 -0
  53. package/src/components/feedback/spinner/spinner.visual.spec.ts +7 -3
  54. package/src/components/feedback/toast/toast-visual.png +0 -0
  55. package/src/components/feedback/toast/toast.docs.html +109 -0
  56. package/src/components/feedback/toast/toast.visual.spec.ts +7 -3
  57. package/src/components/forms/checkbox/checkbox.docs.html +33 -0
  58. package/src/components/forms/checkbox/checkbox.visual.spec.ts +7 -3
  59. package/src/components/forms/checkbox-group/checkbox-group.docs.html +104 -0
  60. package/src/components/forms/checkbox-group/checkbox-group.visual.spec.ts +7 -3
  61. package/src/components/forms/field/field.docs.html +63 -0
  62. package/src/components/forms/field/field.visual.spec.ts +7 -3
  63. package/src/components/forms/fieldset/fieldset.docs.html +122 -0
  64. package/src/components/forms/fieldset/fieldset.visual.spec.ts +7 -3
  65. package/src/components/forms/form/form.docs.html +132 -0
  66. package/src/components/forms/form/form.visual.spec.ts +7 -3
  67. package/src/components/forms/form-error/form-error.docs.html +18 -0
  68. package/src/components/forms/form-error/form-error.visual.spec.ts +7 -3
  69. package/src/components/forms/form-helper/form-helper.docs.html +42 -0
  70. package/src/components/forms/form-helper/form-helper.visual.spec.ts +7 -3
  71. package/src/components/forms/input/input-visual.png +0 -0
  72. package/src/components/forms/input/input.docs.html +69 -0
  73. package/src/components/forms/input/input.visual.spec.ts +7 -3
  74. package/src/components/forms/label/label-visual.png +0 -0
  75. package/src/components/forms/label/label.docs.html +29 -0
  76. package/src/components/forms/label/label.visual.spec.ts +7 -3
  77. package/src/components/forms/number-input/number-input-visual.png +0 -0
  78. package/src/components/forms/number-input/number-input.docs.html +100 -0
  79. package/src/components/forms/number-input/number-input.visual.spec.ts +7 -3
  80. package/src/components/forms/password-input/password-input-visual.png +0 -0
  81. package/src/components/forms/password-input/password-input.docs.html +88 -0
  82. package/src/components/forms/password-input/password-input.visual.spec.ts +7 -3
  83. package/src/components/forms/radio/radio.docs.html +52 -0
  84. package/src/components/forms/radio/radio.visual.spec.ts +7 -3
  85. package/src/components/forms/radio-group/radio-group.docs.html +100 -0
  86. package/src/components/forms/radio-group/radio-group.visual.spec.ts +7 -3
  87. package/src/components/forms/search-input/search-input-visual.png +0 -0
  88. package/src/components/forms/search-input/search-input.docs.html +87 -0
  89. package/src/components/forms/search-input/search-input.visual.spec.ts +7 -3
  90. package/src/components/forms/select/select-visual.png +0 -0
  91. package/src/components/forms/select/select.docs.html +70 -0
  92. package/src/components/forms/select/select.visual.spec.ts +7 -3
  93. package/src/components/forms/slider/slider-visual.png +0 -0
  94. package/src/components/forms/slider/slider.docs.html +25 -0
  95. package/src/components/forms/slider/slider.visual.spec.ts +7 -3
  96. package/src/components/forms/textarea/textarea-visual.png +0 -0
  97. package/src/components/forms/textarea/textarea.docs.html +39 -0
  98. package/src/components/forms/textarea/textarea.visual.spec.ts +7 -3
  99. package/src/components/forms/toggle/toggle.docs.html +64 -0
  100. package/src/components/forms/toggle/toggle.visual.spec.ts +7 -3
  101. package/src/components/navigation/breadcrumb/breadcrumb.docs.html +60 -0
  102. package/src/components/navigation/breadcrumb/breadcrumb.visual.spec.ts +7 -3
  103. package/src/components/navigation/dropdown-menu/dropdown-menu-visual.png +0 -0
  104. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.html +106 -0
  105. package/src/components/navigation/dropdown-menu/dropdown-menu.visual.spec.ts +7 -3
  106. package/src/components/navigation/menu/menu.docs.html +122 -0
  107. package/src/components/navigation/menu/menu.visual.spec.ts +7 -3
  108. package/src/components/navigation/nav/nav.docs.html +74 -0
  109. package/src/components/navigation/nav/nav.visual.spec.ts +7 -3
  110. package/src/components/navigation/pagination/pagination-visual.png +0 -0
  111. package/src/components/navigation/pagination/pagination.docs.html +116 -0
  112. package/src/components/navigation/pagination/pagination.visual.spec.ts +7 -3
  113. package/src/components/navigation/tabs/tabs.docs.html +66 -0
  114. package/src/components/navigation/tabs/tabs.visual.spec.ts +7 -3
  115. package/src/components/overlays/dialog/dialog.docs.html +61 -0
  116. package/src/components/overlays/dialog/dialog.visual.spec.ts +7 -3
  117. package/src/components/overlays/drawer/drawer-visual.png +0 -0
  118. package/src/components/overlays/drawer/drawer.docs.html +90 -0
  119. package/src/components/overlays/drawer/drawer.visual.spec.ts +7 -3
  120. package/src/components/overlays/modal/modal.docs.html +69 -0
  121. package/src/components/overlays/modal/modal.visual.spec.ts +7 -3
  122. package/src/components/overlays/overlay/overlay.docs.html +30 -0
  123. package/src/components/overlays/overlay/overlay.visual.spec.ts +7 -3
  124. package/src/components/overlays/popover/popover.docs.html +41 -0
  125. package/src/components/overlays/popover/popover.visual.spec.ts +7 -3
  126. package/src/components/overlays/tooltip/tooltip.docs.html +33 -0
  127. package/src/components/overlays/tooltip/tooltip.visual.spec.ts +7 -3
  128. package/src/components/typography/blockquote/blockquote.docs.html +24 -0
  129. package/src/components/typography/blockquote/blockquote.visual.spec.ts +7 -3
  130. package/src/components/typography/code/code-visual.png +0 -0
  131. package/src/components/typography/code/code.docs.html +23 -0
  132. package/src/components/typography/code/code.visual.spec.ts +7 -3
  133. package/src/components/typography/code-block/code-block-visual.png +0 -0
  134. package/src/components/typography/code-block/code-block.docs.html +87 -0
  135. package/src/components/typography/code-block/code-block.visual.spec.ts +7 -3
  136. package/src/components/typography/heading/heading-visual.png +0 -0
  137. package/src/components/typography/heading/heading.docs.html +26 -0
  138. package/src/components/typography/heading/heading.visual.spec.ts +7 -3
  139. package/src/components/typography/kbd/kbd.docs.html +16 -0
  140. package/src/components/typography/kbd/kbd.visual.spec.ts +7 -3
  141. package/src/components/typography/link/link.docs.html +33 -0
  142. package/src/components/typography/link/link.visual.spec.ts +7 -3
  143. package/src/components/typography/list/list.docs.html +79 -0
  144. package/src/components/typography/list/list.visual.spec.ts +7 -3
  145. package/src/components/typography/mark/mark.docs.html +12 -0
  146. package/src/components/typography/mark/mark.visual.spec.ts +7 -3
  147. package/src/config/guides/accessibility.docs.html +108 -0
  148. package/src/config/guides/getting-started.docs.html +47 -0
  149. package/src/config/guides/theming.docs.html +71 -0
  150. package/src/config/tokens/colors/colors.docs.html +75 -0
  151. package/src/config/tokens/design-tokens.docs.html +116 -0
  152. package/src/config/tokens/grid/grid.docs.html +12 -0
  153. package/src/config/tokens/spacing/spacing.docs.html +33 -0
  154. package/src/debug/debug.docs.html +29 -0
  155. package/src/debug/index.scss +81 -1
  156. package/src/layout/app-shell/app-shell-visual.png +0 -0
  157. package/src/layout/app-shell/app-shell.docs.html +102 -0
  158. package/src/layout/app-shell/app-shell.visual.spec.ts +3 -3
  159. package/src/layout/aspect-ratio/aspect-ratio.docs.html +41 -0
  160. package/src/layout/aspect-ratio/aspect-ratio.visual.spec.ts +3 -3
  161. package/src/layout/box/box-visual.png +0 -0
  162. package/src/layout/box/box.docs.html +27 -0
  163. package/src/layout/box/box.visual.spec.ts +3 -3
  164. package/src/layout/center/center.docs.html +26 -0
  165. package/src/layout/center/center.visual.spec.ts +3 -3
  166. package/src/layout/column/column.docs.html +32 -0
  167. package/src/layout/column/column.visual.spec.ts +3 -3
  168. package/src/layout/container/container.docs.html +37 -0
  169. package/src/layout/content/content-visual.png +0 -0
  170. package/src/layout/content/content.docs.html +38 -0
  171. package/src/layout/content/content.visual.spec.ts +7 -3
  172. package/src/layout/footer/footer-visual.png +0 -0
  173. package/src/layout/footer/footer.docs.html +73 -0
  174. package/src/layout/footer/footer.visual.spec.ts +7 -3
  175. package/src/layout/grid/grid.docs.html +87 -0
  176. package/src/layout/grid/grid.visual.spec.ts +3 -3
  177. package/src/layout/main/main.docs.html +31 -0
  178. package/src/layout/nav-rail/nav-rail-visual.png +0 -0
  179. package/src/layout/nav-rail/nav-rail.docs.html +42 -0
  180. package/src/layout/nav-rail/nav-rail.visual.spec.ts +7 -3
  181. package/src/layout/page-header/page-header.docs.html +52 -0
  182. package/src/layout/page-header/page-header.visual.spec.ts +7 -3
  183. package/src/layout/row/row.docs.html +47 -0
  184. package/src/layout/row/row.visual.spec.ts +3 -3
  185. package/src/layout/sidebar/sidebar-visual.png +0 -0
  186. package/src/layout/sidebar/sidebar.docs.html +30 -0
  187. package/src/layout/sidebar/sidebar.visual.spec.ts +7 -3
  188. package/src/layout/sidebar-nav/sidebar-nav.docs.html +235 -0
  189. package/src/layout/sidebar-nav/sidebar-nav.visual.spec.ts +7 -3
  190. package/src/layout/topbar/topbar-visual.png +0 -0
  191. package/src/layout/topbar/topbar.docs.html +64 -0
  192. package/src/layout/topbar/topbar.visual.spec.ts +7 -3
  193. package/src/utilities/container/container.docs.html +34 -0
  194. package/src/utilities/display/display.docs.html +30 -0
  195. package/src/utilities/scroll-animation/scroll-animation.docs.html +32 -0
  196. package/src/utilities/scroll-snap/scroll-snap.docs.html +80 -0
  197. package/src/utilities/spacing/spacing.docs.html +29 -0
  198. package/src/utilities/text/text.docs.html +66 -0
  199. package/src/utilities/view-transition/view-transition.docs.html +52 -0
  200. package/src/utilities/visually-hidden/visually-hidden.docs.html +18 -0
  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.docs.json +0 -273
  207. package/src/components/content/spacer/spacer.docs.json +0 -102
  208. package/src/components/data-display/avatar/avatar.docs.json +0 -245
  209. package/src/components/data-display/badge/badge.docs.json +0 -114
  210. package/src/components/data-display/card/card.docs.json +0 -229
  211. package/src/components/data-display/data-list/data-list.docs.json +0 -259
  212. package/src/components/data-display/icon/icon.docs.json +0 -307
  213. package/src/components/data-display/image/image.docs.json +0 -337
  214. package/src/components/data-display/stat/stat.docs.json +0 -114
  215. package/src/components/data-display/status/status.docs.json +0 -147
  216. package/src/components/data-display/table/table.docs.json +0 -184
  217. package/src/components/data-display/tag/tag.docs.json +0 -146
  218. package/src/components/disclosure/accordion/accordion.docs.json +0 -206
  219. package/src/components/disclosure/disclosure/disclosure.docs.json +0 -154
  220. package/src/components/feedback/alert/alert.docs.json +0 -325
  221. package/src/components/feedback/progress/progress.docs.json +0 -315
  222. package/src/components/feedback/progress-circle/progress-circle.docs.json +0 -378
  223. package/src/components/feedback/skeleton/skeleton.docs.json +0 -142
  224. package/src/components/feedback/spinner/spinner.docs.json +0 -121
  225. package/src/components/feedback/toast/toast.docs.json +0 -418
  226. package/src/components/forms/checkbox/checkbox.docs.json +0 -166
  227. package/src/components/forms/checkbox-group/checkbox-group.docs.json +0 -339
  228. package/src/components/forms/field/field.docs.json +0 -276
  229. package/src/components/forms/fieldset/fieldset.docs.json +0 -520
  230. package/src/components/forms/form/form.docs.json +0 -482
  231. package/src/components/forms/form-error/form-error.docs.json +0 -61
  232. package/src/components/forms/form-helper/form-helper.docs.json +0 -151
  233. package/src/components/forms/input/input.docs.json +0 -306
  234. package/src/components/forms/label/label.docs.json +0 -110
  235. package/src/components/forms/number-input/number-input.docs.json +0 -311
  236. package/src/components/forms/password-input/password-input.docs.json +0 -316
  237. package/src/components/forms/radio/radio.docs.json +0 -236
  238. package/src/components/forms/radio-group/radio-group.docs.json +0 -351
  239. package/src/components/forms/search-input/search-input.docs.json +0 -293
  240. package/src/components/forms/select/select.docs.json +0 -231
  241. package/src/components/forms/slider/slider.docs.json +0 -144
  242. package/src/components/forms/textarea/textarea.docs.json +0 -229
  243. package/src/components/forms/toggle/toggle.docs.json +0 -229
  244. package/src/components/navigation/breadcrumb/breadcrumb.docs.json +0 -240
  245. package/src/components/navigation/dropdown-menu/dropdown-menu.docs.json +0 -290
  246. package/src/components/navigation/menu/menu.docs.json +0 -326
  247. package/src/components/navigation/nav/nav.docs.json +0 -304
  248. package/src/components/navigation/pagination/pagination.docs.json +0 -483
  249. package/src/components/navigation/tabs/tabs.docs.json +0 -243
  250. package/src/components/overlays/dialog/dialog.docs.json +0 -200
  251. package/src/components/overlays/drawer/drawer.docs.json +0 -307
  252. package/src/components/overlays/modal/modal.docs.json +0 -252
  253. package/src/components/overlays/overlay/overlay.docs.json +0 -138
  254. package/src/components/overlays/popover/popover.docs.json +0 -154
  255. package/src/components/overlays/tooltip/tooltip.docs.json +0 -133
  256. package/src/components/typography/blockquote/blockquote.docs.json +0 -89
  257. package/src/components/typography/code/code.docs.json +0 -104
  258. package/src/components/typography/code-block/code-block.docs.json +0 -308
  259. package/src/components/typography/heading/heading.docs.json +0 -120
  260. package/src/components/typography/kbd/kbd.docs.json +0 -61
  261. package/src/components/typography/link/link.docs.json +0 -149
  262. package/src/components/typography/list/list.docs.json +0 -296
  263. package/src/components/typography/mark/mark.docs.json +0 -60
  264. package/src/config/tokens/accessibility.docs.json +0 -125
  265. package/src/config/tokens/colors/colors.docs.json +0 -316
  266. package/src/config/tokens/grid/grid.docs.json +0 -54
  267. package/src/config/tokens/spacing/spacing.docs.json +0 -114
  268. package/src/config/tokens/theming.docs.json +0 -288
  269. package/src/debug/grid-overlay.scss +0 -81
  270. package/src/layout/app-shell/app-shell.docs.json +0 -155
  271. package/src/layout/aspect-ratio/aspect-ratio.docs.json +0 -193
  272. package/src/layout/box/box.docs.json +0 -93
  273. package/src/layout/center/center.docs.json +0 -63
  274. package/src/layout/column/column.docs.json +0 -157
  275. package/src/layout/container/container.docs.json +0 -85
  276. package/src/layout/content/content.docs.json +0 -82
  277. package/src/layout/footer/footer.docs.json +0 -119
  278. package/src/layout/grid/grid.docs.json +0 -493
  279. package/src/layout/main/main.docs.json +0 -87
  280. package/src/layout/nav-rail/nav-rail.docs.json +0 -76
  281. package/src/layout/page-header/page-header.docs.json +0 -124
  282. package/src/layout/row/row.docs.json +0 -237
  283. package/src/layout/sidebar/sidebar.docs.json +0 -63
  284. package/src/layout/sidebar-nav/sidebar-nav.docs.json +0 -833
  285. package/src/layout/topbar/topbar.docs.json +0 -110
  286. package/src/testing/api-types.ts +0 -20
  287. package/src/testing/grid-alignment.spec.ts +0 -38
  288. package/src/testing/html-generator.ts +0 -151
  289. package/src/testing/index.ts +0 -15
  290. package/src/testing/page-setup.ts +0 -149
  291. package/src/testing/rhythm.ts +0 -146
  292. package/src/testing/scaffold.ts +0 -50
  293. package/src/utilities/container/container.docs.json +0 -121
  294. package/src/utilities/display/display.docs.json +0 -83
  295. package/src/utilities/scroll-animation/scroll-animation.docs.json +0 -100
  296. package/src/utilities/scroll-snap/scroll-snap.docs.json +0 -333
  297. package/src/utilities/spacing/spacing.docs.json +0 -133
  298. package/src/utilities/text/text.docs.json +0 -191
  299. package/src/utilities/view-transition/view-transition.docs.json +0 -63
  300. package/src/utilities/visually-hidden/visually-hidden.docs.json +0 -44
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'pagination.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'pagination.docs.html');
6
10
 
7
11
  test.describe('pagination 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, 'pagination');
11
15
  await saveForLostPixel(page, 'pagination');
12
16
  await expect(page.locator('body')).toHaveScreenshot('pagination.visual.png');
@@ -0,0 +1,66 @@
1
+ ---
2
+ title: Tabs
3
+ type: component
4
+ id: tabs
5
+ api: ./tabs.api.json
6
+ ---
7
+
8
+ <!-- @default -->
9
+ <div class="ui-tabs">
10
+ <div class="ui-tabs__list">
11
+ <button class="ui-tabs__tab ui-tabs__tab--active">Tab 1</button>
12
+ <button class="ui-tabs__tab">Tab 2</button>
13
+ <button class="ui-tabs__tab">Tab 3</button>
14
+ </div>
15
+ <div class="ui-tabs__panel ui-tabs__panel--active">Panel 1 content</div>
16
+ <div class="ui-tabs__panel">Panel 2 content</div>
17
+ <div class="ui-tabs__panel">Panel 3 content</div>
18
+ </div>
19
+
20
+ <!-- @two_tabs -->
21
+ <div class="ui-tabs">
22
+ <div class="ui-tabs__list">
23
+ <button class="ui-tabs__tab ui-tabs__tab--active">Preview</button>
24
+ <button class="ui-tabs__tab">Code</button>
25
+ </div>
26
+ <div class="ui-tabs__panel ui-tabs__panel--active">
27
+ <div class="ui-card">Preview content goes here</div>
28
+ </div>
29
+ <div class="ui-tabs__panel">
30
+ <pre class="ui-code-block">
31
+ <code><div>Code snippet</div></code>
32
+ </pre>
33
+ </div>
34
+ </div>
35
+
36
+ <!-- @sizes -->
37
+ <div class="ui-column" style="--column-gap: var(--ui-space-3);">
38
+ <div class="ui-tabs ui-tabs--sm">
39
+ <div class="ui-tabs__list">
40
+ <button class="ui-tabs__tab ui-tabs__tab--active">Small</button>
41
+ <button class="ui-tabs__tab">Tab 2</button>
42
+ </div>
43
+ </div>
44
+ <div class="ui-tabs">
45
+ <div class="ui-tabs__list">
46
+ <button class="ui-tabs__tab ui-tabs__tab--active">Default</button>
47
+ <button class="ui-tabs__tab">Tab 2</button>
48
+ </div>
49
+ </div>
50
+ <div class="ui-tabs ui-tabs--lg">
51
+ <div class="ui-tabs__list">
52
+ <button class="ui-tabs__tab ui-tabs__tab--active">Large</button>
53
+ <button class="ui-tabs__tab">Tab 2</button>
54
+ </div>
55
+ </div>
56
+ </div>
57
+
58
+ <!-- @vertical -->
59
+ <div class="ui-tabs ui-tabs--vertical">
60
+ <div class="ui-tabs__list">
61
+ <button class="ui-tabs__tab ui-tabs__tab--active">Tab 1</button>
62
+ <button class="ui-tabs__tab">Tab 2</button>
63
+ <button class="ui-tabs__tab">Tab 3</button>
64
+ </div>
65
+ <div class="ui-tabs__panel ui-tabs__panel--active">Vertical tab content</div>
66
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'tabs.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'tabs.docs.html');
6
10
 
7
11
  test.describe('tabs 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, 'tabs');
11
15
  await saveForLostPixel(page, 'tabs');
12
16
  await expect(page.locator('body')).toHaveScreenshot('tabs.visual.png');
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: Dialog
3
+ type: component
4
+ id: dialog
5
+ description: Structured modal with header, body, and footer sections. Use with modal component for positioning.
6
+ api: ./dialog.api.json
7
+ ---
8
+
9
+ <!-- @default -->
10
+ <div style="position: relative; height: 240px; background: var(--ui-color-bg-subtle);">
11
+ <div class="ui-modal ui-modal--visible" style="position: absolute;">
12
+ <div class="ui-modal__content ui-dialog" style="max-height: 200px;">
13
+ <header class="ui-dialog__header">
14
+ <h2 class="ui-dialog__title">Dialog Title</h2>
15
+ <button class="ui-button ui-button--ghost ui-button--sm ui-dialog__close">X</button>
16
+ </header>
17
+ <div class="ui-dialog__body">
18
+ <p>Dialog content goes here.</p>
19
+ </div>
20
+ <footer class="ui-dialog__footer">
21
+ <button class="ui-button ui-button--ghost">Cancel</button>
22
+ <button class="ui-button">Confirm</button>
23
+ </footer>
24
+ </div>
25
+ </div>
26
+ </div>
27
+
28
+ <!-- @borderless -->
29
+ <div style="position: relative; height: 200px; background: var(--ui-color-bg-subtle);">
30
+ <div class="ui-modal ui-modal--visible" style="position: absolute;">
31
+ <div class="ui-modal__content ui-dialog ui-dialog--borderless" style="max-height: 180px;">
32
+ <header class="ui-dialog__header">
33
+ <h2 class="ui-dialog__title">Simple Dialog</h2>
34
+ </header>
35
+ <div class="ui-dialog__body">
36
+ <p>Content without borders.</p>
37
+ </div>
38
+ <footer class="ui-dialog__footer">
39
+ <button class="ui-button">OK</button>
40
+ </footer>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- @confirmation_dialog -->
46
+ <div style="position: relative; height: 200px; background: var(--ui-color-bg-subtle);">
47
+ <div class="ui-modal ui-modal--sm ui-modal--visible" style="position: absolute;">
48
+ <div class="ui-modal__content ui-dialog">
49
+ <header class="ui-dialog__header">
50
+ <h2 class="ui-dialog__title">Delete Item?</h2>
51
+ </header>
52
+ <div class="ui-dialog__body">
53
+ <p>This action cannot be undone.</p>
54
+ </div>
55
+ <footer class="ui-dialog__footer">
56
+ <button class="ui-button ui-button--ghost">Cancel</button>
57
+ <button class="ui-button ui-button--danger">Delete</button>
58
+ </footer>
59
+ </div>
60
+ </div>
61
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'dialog.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'dialog.docs.html');
6
10
 
7
11
  test.describe('dialog 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, 'dialog');
11
15
  await saveForLostPixel(page, 'dialog');
12
16
  await expect(page.locator('body')).toHaveScreenshot('dialog.visual.png');
@@ -0,0 +1,90 @@
1
+ ---
2
+ title: Drawer
3
+ type: component
4
+ id: drawer
5
+ api: ./drawer.api.json
6
+ ---
7
+
8
+ <!-- @default_end -->
9
+ <!-- Slides in from the end (right in LTR) -->
10
+ <div style="position:relative;height:300px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
11
+ <div class="ui-drawer-overlay" style="position:absolute"></div>
12
+ <div class="ui-drawer ui-drawer--end" style="position:absolute" data-state="open">
13
+ <div class="ui-drawer__header">
14
+ <div>
15
+ <h2 class="ui-drawer__title">Drawer Title</h2>
16
+ <p class="ui-drawer__description">Optional description text</p>
17
+ </div>
18
+ <button class="ui-drawer__close ui-button ui-button--ghost ui-button--icon">X</button>
19
+ </div>
20
+ <div class="ui-drawer__body">
21
+ <p>Drawer content goes here.</p>
22
+ </div>
23
+ <div class="ui-drawer__footer">
24
+ <button class="ui-button ui-button--secondary">Cancel</button>
25
+ <button class="ui-button">Save</button>
26
+ </div>
27
+ </div>
28
+ </div>
29
+
30
+ <!-- @positions | column -->
31
+ <div style="position:relative;height:200px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
32
+ <div class="ui-drawer ui-drawer--start ui-drawer--sm" style="position:absolute" data-state="open">
33
+ <div class="ui-drawer__header">
34
+ <h2 class="ui-drawer__title">Start</h2>
35
+ </div>
36
+ <div class="ui-drawer__body">
37
+ <p>From start edge</p>
38
+ </div>
39
+ </div>
40
+ </div>
41
+ <div style="position:relative;height:200px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
42
+ <div class="ui-drawer ui-drawer--top" style="position:absolute" data-state="open">
43
+ <div class="ui-drawer__header">
44
+ <h2 class="ui-drawer__title">Top</h2>
45
+ </div>
46
+ <div class="ui-drawer__body">
47
+ <p>From top edge</p>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <div style="position:relative;height:200px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
52
+ <div class="ui-drawer ui-drawer--bottom" style="position:absolute" data-state="open">
53
+ <div class="ui-drawer__header">
54
+ <h2 class="ui-drawer__title">Bottom</h2>
55
+ </div>
56
+ <div class="ui-drawer__body">
57
+ <p>From bottom edge</p>
58
+ </div>
59
+ </div>
60
+ </div>
61
+
62
+ <!-- @sizes | column -->
63
+ <div style="position:relative;height:150px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
64
+ <div class="ui-drawer ui-drawer--end ui-drawer--sm" style="position:absolute" data-state="open">
65
+ <div class="ui-drawer__body">
66
+ <p>Small drawer</p>
67
+ </div>
68
+ </div>
69
+ </div>
70
+ <div style="position:relative;height:150px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
71
+ <div class="ui-drawer ui-drawer--end" style="position:absolute" data-state="open">
72
+ <div class="ui-drawer__body">
73
+ <p>Default drawer</p>
74
+ </div>
75
+ </div>
76
+ </div>
77
+ <div style="position:relative;height:150px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
78
+ <div class="ui-drawer ui-drawer--end ui-drawer--lg" style="position:absolute" data-state="open">
79
+ <div class="ui-drawer__body">
80
+ <p>Large drawer</p>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ <div style="position:relative;height:150px;overflow:hidden;border:1px solid var(--ui-color-border);border-radius:var(--ui-radius-md)">
85
+ <div class="ui-drawer ui-drawer--end ui-drawer--full" style="position:absolute" data-state="open">
86
+ <div class="ui-drawer__body">
87
+ <p>Full-size drawer</p>
88
+ </div>
89
+ </div>
90
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'drawer.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'drawer.docs.html');
6
10
 
7
11
  test.describe('drawer 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, 'drawer');
11
15
  await saveForLostPixel(page, 'drawer');
12
16
  await expect(page.locator('body')).toHaveScreenshot('drawer.visual.png');
@@ -0,0 +1,69 @@
1
+ ---
2
+ title: Modal
3
+ type: component
4
+ id: modal
5
+ description: Container for modal dialogs. Use with overlay for backdrop effect.
6
+ api: ./modal.api.json
7
+ ---
8
+
9
+ <!-- @default -->
10
+ <div style="position: relative; height: 200px; background: var(--ui-color-bg-subtle);">
11
+ <div class="ui-modal ui-modal--visible" style="position: absolute;">
12
+ <div class="ui-modal__content">
13
+ <p>Modal content goes here</p>
14
+ </div>
15
+ </div>
16
+ </div>
17
+
18
+ <!-- @sizes -->
19
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
20
+ <div class="ui-modal ui-modal--sm ui-modal--visible" style="position: absolute;">
21
+ <div class="ui-modal__content">
22
+ <p>Small modal</p>
23
+ </div>
24
+ </div>
25
+ </div>
26
+
27
+ <!-- @large -->
28
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
29
+ <div class="ui-modal ui-modal--lg ui-modal--visible" style="position: absolute;">
30
+ <div class="ui-modal__content">
31
+ <p>Large modal</p>
32
+ </div>
33
+ </div>
34
+ </div>
35
+
36
+ <!-- @full -->
37
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
38
+ <div class="ui-modal ui-modal--full ui-modal--visible" style="position: absolute;">
39
+ <div class="ui-modal__content">
40
+ <p>Full-screen modal</p>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <!-- @entering_animation -->
46
+ <!-- Apply entering modifier for open transition. -->
47
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
48
+ <div class="ui-modal ui-modal--visible ui-modal--entering" style="position: absolute;">
49
+ <div class="ui-modal__content">
50
+ <p>Entering modal</p>
51
+ </div>
52
+ </div>
53
+ </div>
54
+
55
+ <!-- @with_scrollable_content -->
56
+ <div style="position: relative; height: 200px; background: var(--ui-color-bg-subtle);">
57
+ <div class="ui-modal ui-modal--visible" style="position: absolute;">
58
+ <div class="ui-modal__content" style="max-height: 150px;">
59
+ <div class="ui-modal__body">
60
+ <p>Line 1</p>
61
+ <p>Line 2</p>
62
+ <p>Line 3</p>
63
+ <p>Line 4</p>
64
+ <p>Line 5</p>
65
+ <p>Line 6</p>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'modal.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'modal.docs.html');
6
10
 
7
11
  test.describe('modal 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, 'modal');
11
15
  await saveForLostPixel(page, 'modal');
12
16
  await expect(page.locator('body')).toHaveScreenshot('modal.visual.png');
@@ -0,0 +1,30 @@
1
+ ---
2
+ title: Overlay
3
+ type: component
4
+ id: overlay
5
+ description: Full viewport backdrop for modals, dialogs, and drawers. Controls visibility via state modifiers.
6
+ api: ./overlay.api.json
7
+ ---
8
+
9
+ <!-- @default -->
10
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
11
+ <div class="ui-overlay" style="position: absolute;"></div>
12
+ <p style="position: relative; padding: var(--ui-space-2);">Content behind overlay</p>
13
+ </div>
14
+
15
+ <!-- @light_variant -->
16
+ <div style="position: relative; height: 120px; background: var(--ui-color-text);">
17
+ <div class="ui-overlay ui-overlay--light" style="position: absolute;"></div>
18
+ <p style="position: relative; padding: var(--ui-space-2); color: white;">Dark content behind light overlay</p>
19
+ </div>
20
+
21
+ <!-- @blur_variant -->
22
+ <div style="position: relative; height: 120px; background: linear-gradient(45deg, var(--ui-color-primary), var(--ui-color-success));">
23
+ <div class="ui-overlay ui-overlay--blur" style="position: absolute;"></div>
24
+ <p style="position: relative; padding: var(--ui-space-2); color: white;">Blurred backdrop</p>
25
+ </div>
26
+
27
+ <!-- @with_animation -->
28
+ <div style="position: relative; height: 120px; background: var(--ui-color-bg-subtle);">
29
+ <div class="ui-overlay ui-overlay--animate ui-overlay--visible" style="position: absolute;"></div>
30
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'overlay.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'overlay.docs.html');
6
10
 
7
11
  test.describe('overlay 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, 'overlay');
11
15
  await saveForLostPixel(page, 'overlay');
12
16
  await expect(page.locator('body')).toHaveScreenshot('overlay.visual.png');
@@ -0,0 +1,41 @@
1
+ ---
2
+ title: Popover
3
+ type: component
4
+ id: popover
5
+ description: Floating panel for additional content. Larger than tooltip, can contain structured content.
6
+ api: ./popover.api.json
7
+ ---
8
+
9
+ <!-- @default -->
10
+ <div class="ui-popover" style="position: relative;">
11
+ <p>Popover content goes here. Can contain multiple paragraphs and other elements.</p>
12
+ </div>
13
+
14
+ <!-- @with_header -->
15
+ <div class="ui-popover" style="position: relative;">
16
+ <header class="ui-popover__header">
17
+ <h3 class="ui-popover__title">Popover Title</h3>
18
+ </header>
19
+ <p>Content with a header section.</p>
20
+ </div>
21
+
22
+ <!-- @positions -->
23
+ <div style="padding: var(--ui-space-4);">
24
+ <div class="ui-popover ui-popover--top" style="position: relative;">
25
+ <p>Top (arrow down)</p>
26
+ </div>
27
+ </div>
28
+ <div style="padding: var(--ui-space-4);">
29
+ <div class="ui-popover ui-popover--bottom" style="position: relative;">
30
+ <p>Bottom (arrow up)</p>
31
+ </div>
32
+ </div>
33
+
34
+ <!-- @visibility -->
35
+ <!-- Control popover visibility and animation. -->
36
+ <div class="ui-popover ui-popover--visible ui-popover--animate" style="position: relative;">
37
+ <p>Visible and animated</p>
38
+ </div>
39
+ <div class="ui-popover ui-popover--hidden" style="position: relative;">
40
+ <p>Hidden popover</p>
41
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'popover.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'popover.docs.html');
6
10
 
7
11
  test.describe('popover 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, 'popover');
11
15
  await saveForLostPixel(page, 'popover');
12
16
  await expect(page.locator('body')).toHaveScreenshot('popover.visual.png');
@@ -0,0 +1,33 @@
1
+ ---
2
+ title: Tooltip
3
+ type: component
4
+ id: tooltip
5
+ description: Small informational popup for additional context. Position via JS.
6
+ api: ./tooltip.api.json
7
+ ---
8
+
9
+ <!-- @positions -->
10
+ <div style="display: flex; gap: var(--ui-space-4); padding: var(--ui-space-4); flex-wrap: wrap;">
11
+ <div style="position: relative;">
12
+ <span class="ui-tooltip ui-tooltip--top" style="position: relative;">Top</span>
13
+ </div>
14
+ <div style="position: relative;">
15
+ <span class="ui-tooltip ui-tooltip--bottom" style="position: relative;">Bottom</span>
16
+ </div>
17
+ <div style="position: relative;">
18
+ <span class="ui-tooltip ui-tooltip--start" style="position: relative;">Start</span>
19
+ </div>
20
+ <div style="position: relative;">
21
+ <span class="ui-tooltip ui-tooltip--end" style="position: relative;">End</span>
22
+ </div>
23
+ </div>
24
+
25
+ <!-- @with_animation -->
26
+ <span class="ui-tooltip ui-tooltip--top ui-tooltip--animate ui-tooltip--visible" style="position: relative;">Animated tooltip</span>
27
+
28
+ <!-- @anchor_positioned -->
29
+ <!-- Browser-native positioning via CSS Anchor Positioning. No JS needed for placement. Wrapped in @supports — falls back to manual positioning in unsupported browsers. -->
30
+ <div style="position: relative; padding: var(--ui-space-4); display: flex; gap: var(--ui-space-4);">
31
+ <button class="ui-button" style="anchor-name: --tooltip;">Hover me</button>
32
+ <span class="ui-tooltip ui-tooltip--anchored ui-tooltip--visible">Anchored tooltip</span>
33
+ </div>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'tooltip.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'tooltip.docs.html');
6
10
 
7
11
  test.describe('tooltip 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, 'tooltip');
11
15
  await saveForLostPixel(page, 'tooltip');
12
16
  await expect(page.locator('body')).toHaveScreenshot('tooltip.visual.png');
@@ -0,0 +1,24 @@
1
+ ---
2
+ title: Blockquote
3
+ type: component
4
+ id: blockquote
5
+ description: Quote block with left border and optional citation.
6
+ api: ./blockquote.api.json
7
+ ---
8
+
9
+ <!-- @default -->
10
+ <blockquote class="ui-blockquote">
11
+ <p>Design is not just what it looks like and feels like. Design is how it works.</p>
12
+ </blockquote>
13
+
14
+ <!-- @with_citation -->
15
+ <blockquote class="ui-blockquote">
16
+ <p>The best way to predict the future is to invent it.</p>
17
+ <cite class="ui-blockquote__cite">Alan Kay</cite>
18
+ </blockquote>
19
+
20
+ <!-- @accent_variant -->
21
+ <blockquote class="ui-blockquote ui-blockquote--accent">
22
+ <p>Simplicity is the ultimate sophistication.</p>
23
+ <cite class="ui-blockquote__cite">Leonardo da Vinci</cite>
24
+ </blockquote>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'blockquote.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'blockquote.docs.html');
6
10
 
7
11
  test.describe('blockquote 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, 'blockquote');
11
15
  await saveForLostPixel(page, 'blockquote');
12
16
  await expect(page.locator('body')).toHaveScreenshot('blockquote.visual.png');
@@ -0,0 +1,23 @@
1
+ ---
2
+ title: Code
3
+ type: component
4
+ id: code
5
+ description: Inline code and code blocks with monospace font.
6
+ api: ./code.api.json
7
+ ---
8
+
9
+ <!-- @inline_code -->
10
+ <p>
11
+ Use the
12
+ <code class="ui-code">--space-2</code>
13
+ token for padding.
14
+ </p>
15
+ <code class="ui-code ui-code--sm">--button-height</code>
16
+
17
+ <!-- @code_block -->
18
+ <pre class="ui-code-block">
19
+ <code>.button {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ }</code>
23
+ </pre>
@@ -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 '../../../testing';
3
+ import {
4
+ saveForLostPixel,
5
+ setupVisualTestFromHtmlDocs,
6
+ validateGridRhythm,
7
+ } from '../../../../test-utils';
4
8
 
5
- const DOCS_PATH = resolve(__dirname, 'code.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'code.docs.html');
6
10
 
7
11
  test.describe('code 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, 'code');
11
15
  await saveForLostPixel(page, 'code');
12
16
  await expect(page.locator('body')).toHaveScreenshot('code.visual.png');