@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,119 @@
1
+ ---
2
+ title: Fieldset
3
+ description: Groups related form fields with an optional legend and border.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <fieldset class="ui-fieldset">
8
+ <legend class="ui-fieldset__legend">Personal Information</legend>
9
+ <div class="ui-field">
10
+ <label class="ui-label" for="fname">First Name</label>
11
+ <div class="ui-field__control">
12
+ <input class="ui-input" type="text" id="fname" placeholder="Jane"></input>
13
+ </div>
14
+ </div>
15
+ <div class="ui-field">
16
+ <label class="ui-label" for="lname">Last Name</label>
17
+ <div class="ui-field__control">
18
+ <input class="ui-input" type="text" id="lname" placeholder="Doe"></input>
19
+ </div>
20
+ </div>
21
+ </fieldset>
22
+
23
+ <!-- @bordered -->
24
+ <!-- Visible border wrapping the field group -->
25
+ <fieldset class="ui-fieldset ui-fieldset--bordered">
26
+ <legend class="ui-fieldset__legend">Shipping Address</legend>
27
+ <div class="ui-field">
28
+ <label class="ui-label" for="street">Street</label>
29
+ <div class="ui-field__control">
30
+ <input class="ui-input" type="text" id="street" placeholder="123 Example St"></input>
31
+ </div>
32
+ </div>
33
+ <div class="ui-field">
34
+ <label class="ui-label" for="city">City</label>
35
+ <div class="ui-field__control">
36
+ <input class="ui-input" type="text" id="city" placeholder="Springfield"></input>
37
+ </div>
38
+ </div>
39
+ </fieldset>
40
+
41
+ <!-- @compact -->
42
+ <!-- Reduced spacing for dense forms -->
43
+ <fieldset class="ui-fieldset ui-fieldset--compact">
44
+ <legend class="ui-fieldset__legend">Preferences</legend>
45
+ <div class="ui-field">
46
+ <label class="ui-label" for="lang">Language</label>
47
+ <div class="ui-field__control">
48
+ <select class="ui-select" id="lang">
49
+ <option>English</option>
50
+ <option>Spanish</option>
51
+ </select>
52
+ </div>
53
+ </div>
54
+ <div class="ui-field">
55
+ <label class="ui-label" for="tz">Timezone</label>
56
+ <div class="ui-field__control">
57
+ <select class="ui-select" id="tz">
58
+ <option>UTC-5 Eastern</option>
59
+ <option>UTC-8 Pacific</option>
60
+ </select>
61
+ </div>
62
+ </div>
63
+ </fieldset>
64
+
65
+ <!-- @bordered_compact -->
66
+ <!-- Bordered with reduced spacing -->
67
+ <fieldset class="ui-fieldset ui-fieldset--bordered ui-fieldset--compact">
68
+ <legend class="ui-fieldset__legend">Payment</legend>
69
+ <div class="ui-field">
70
+ <label class="ui-label" for="card">Card Number</label>
71
+ <div class="ui-field__control">
72
+ <input class="ui-input" type="text" id="card" placeholder="4242 4242 4242 4242"></input>
73
+ </div>
74
+ </div>
75
+ <div class="ui-field">
76
+ <label class="ui-label" for="exp">Expiry</label>
77
+ <div class="ui-field__control">
78
+ <input class="ui-input" type="text" id="exp" placeholder="MM/YY"></input>
79
+ </div>
80
+ </div>
81
+ </fieldset>
82
+
83
+ <!-- @disabled -->
84
+ <!-- Native disabled attribute disables all child controls -->
85
+ <fieldset class="ui-fieldset ui-fieldset--bordered" disabled>
86
+ <legend class="ui-fieldset__legend">Account (locked)</legend>
87
+ <div class="ui-field">
88
+ <label class="ui-label" for="uname">Username</label>
89
+ <div class="ui-field__control">
90
+ <input class="ui-input" type="text" id="uname" value="janedoe"></input>
91
+ </div>
92
+ </div>
93
+ <div class="ui-field">
94
+ <label class="ui-label" for="role">Role</label>
95
+ <div class="ui-field__control">
96
+ <input class="ui-input" type="text" id="role" value="Editor"></input>
97
+ </div>
98
+ </div>
99
+ </fieldset>
100
+
101
+ <!-- @without_legend -->
102
+ <!-- Fieldset as a spacing container without visible legend -->
103
+ <fieldset class="ui-fieldset">
104
+ <div class="ui-field">
105
+ <label class="ui-label" for="search">Search</label>
106
+ <div class="ui-field__control">
107
+ <input class="ui-input" type="search" id="search" placeholder="Search..."></input>
108
+ </div>
109
+ </div>
110
+ <div class="ui-field">
111
+ <label class="ui-label" for="cat">Category</label>
112
+ <div class="ui-field__control">
113
+ <select class="ui-select" id="cat">
114
+ <option>All</option>
115
+ <option>Articles</option>
116
+ </select>
117
+ </div>
118
+ </div>
119
+ </fieldset>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'fieldset.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('fieldset visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'fieldset');
15
15
  await saveForLostPixel(page, 'fieldset');
16
- await expect(page.locator('body')).toHaveScreenshot('fieldset.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,129 @@
1
+ ---
2
+ title: Form
3
+ description: Layout container for form fields with consistent spacing, sections, and an actions row.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <form class="ui-form">
8
+ <div class="ui-field">
9
+ <label class="ui-label" for="f-name">Name</label>
10
+ <div class="ui-field__control">
11
+ <input class="ui-input" type="text" id="f-name" placeholder="Full name"></input>
12
+ </div>
13
+ </div>
14
+ <div class="ui-field">
15
+ <label class="ui-label" for="f-email">Email</label>
16
+ <div class="ui-field__control">
17
+ <input class="ui-input" type="email" id="f-email" placeholder="you@example.com"></input>
18
+ </div>
19
+ </div>
20
+ <div class="ui-form__actions">
21
+ <button class="ui-button">Submit</button>
22
+ <button class="ui-button ui-button--ghost" type="button">Cancel</button>
23
+ </div>
24
+ </form>
25
+
26
+ <!-- @with_sections -->
27
+ <!-- Group related fields using fieldset-based sections -->
28
+ <form class="ui-form">
29
+ <fieldset class="ui-form__section">
30
+ <legend class="ui-heading ui-heading--sm">Personal</legend>
31
+ <div class="ui-field">
32
+ <label class="ui-label" for="s-first">First name</label>
33
+ <div class="ui-field__control">
34
+ <input class="ui-input" type="text" id="s-first"></input>
35
+ </div>
36
+ </div>
37
+ <div class="ui-field">
38
+ <label class="ui-label" for="s-last">Last name</label>
39
+ <div class="ui-field__control">
40
+ <input class="ui-input" type="text" id="s-last"></input>
41
+ </div>
42
+ </div>
43
+ </fieldset>
44
+ <fieldset class="ui-form__section">
45
+ <legend class="ui-heading ui-heading--sm">Account</legend>
46
+ <div class="ui-field">
47
+ <label class="ui-label" for="s-email">Email</label>
48
+ <div class="ui-field__control">
49
+ <input class="ui-input" type="email" id="s-email"></input>
50
+ </div>
51
+ </div>
52
+ <div class="ui-field">
53
+ <label class="ui-label" for="s-pass">Password</label>
54
+ <div class="ui-field__control">
55
+ <input class="ui-input" type="password" id="s-pass"></input>
56
+ </div>
57
+ </div>
58
+ </fieldset>
59
+ <div class="ui-form__actions">
60
+ <button class="ui-button">Create account</button>
61
+ </div>
62
+ </form>
63
+
64
+ <!-- @compact -->
65
+ <!-- Tighter spacing for dense interfaces -->
66
+ <form class="ui-form ui-form--compact">
67
+ <div class="ui-field">
68
+ <label class="ui-label" for="c-user">Username</label>
69
+ <div class="ui-field__control">
70
+ <input class="ui-input" type="text" id="c-user"></input>
71
+ </div>
72
+ </div>
73
+ <div class="ui-field">
74
+ <label class="ui-label" for="c-pass">Password</label>
75
+ <div class="ui-field__control">
76
+ <input class="ui-input" type="password" id="c-pass"></input>
77
+ </div>
78
+ </div>
79
+ <div class="ui-form__actions">
80
+ <button class="ui-button">Log in</button>
81
+ </div>
82
+ </form>
83
+
84
+ <!-- @inline -->
85
+ <!-- Horizontal layout for short forms like search or filters -->
86
+ <form class="ui-form ui-form--inline">
87
+ <div class="ui-field">
88
+ <label class="ui-label" for="i-search">Search</label>
89
+ <div class="ui-field__control">
90
+ <input class="ui-input" type="search" id="i-search" placeholder="Search..."></input>
91
+ </div>
92
+ </div>
93
+ <div class="ui-field">
94
+ <label class="ui-label" for="i-cat">Category</label>
95
+ <div class="ui-field__control">
96
+ <select class="ui-select" id="i-cat">
97
+ <option>All</option>
98
+ <option>Articles</option>
99
+ <option>Products</option>
100
+ </select>
101
+ </div>
102
+ </div>
103
+ <div class="ui-form__actions">
104
+ <button class="ui-button">Filter</button>
105
+ </div>
106
+ </form>
107
+
108
+ <!-- @with_validation -->
109
+ <!-- Combining form layout with field error states -->
110
+ <form class="ui-form">
111
+ <div class="ui-field">
112
+ <label class="ui-label ui-label--required" for="v-email">Email</label>
113
+ <div class="ui-field__control">
114
+ <input class="ui-input ui-input--error" type="email" id="v-email" value="not-an-email"></input>
115
+ <span class="ui-form-error">Enter a valid email address</span>
116
+ </div>
117
+ </div>
118
+ <div class="ui-field">
119
+ <label class="ui-label ui-label--required" for="v-pass">Password</label>
120
+ <div class="ui-field__control">
121
+ <input class="ui-input" type="password" id="v-pass"></input>
122
+ <span class="ui-form-helper">Must be at least 8 characters</span>
123
+ </div>
124
+ </div>
125
+ <div class="ui-form__actions">
126
+ <button class="ui-button">Sign up</button>
127
+ <button class="ui-button ui-button--ghost" type="button">Reset</button>
128
+ </div>
129
+ </form>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'form.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('form visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'form');
15
15
  await saveForLostPixel(page, 'form');
16
- await expect(page.locator('body')).toHaveScreenshot('form.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,15 @@
1
+ ---
2
+ title: Form Error
3
+ description: Validation error message for form fields. Displays in danger color.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <span class="ui-form-error">This field is required</span>
8
+
9
+ <!-- @with_icon -->
10
+ <span class="ui-form-error">
11
+ <svg class="ui-form-error__icon ui-icon ui-icon--sm" viewBox="0 0 24 24" fill="currentColor">
12
+ <path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"></path>
13
+ </svg>
14
+ <span>Please enter a valid email</span>
15
+ </span>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'form-error.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('form-error visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'form-error');
15
15
  await saveForLostPixel(page, 'form-error');
16
- await expect(page.locator('body')).toHaveScreenshot('form-error.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,39 @@
1
+ ---
2
+ title: Form Helper
3
+ description: Helper text for form fields. Provides additional context or instructions.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <span class="ui-form-helper">Must be at least 8 characters</span>
8
+
9
+ <!-- @with_input_field | column -->
10
+ <!-- Helper text paired with a form input for context. -->
11
+ <div class="ui-column ui-column--xs">
12
+ <input class="ui-input" type="email" placeholder="Email address"></input>
13
+ <span class="ui-form-helper">We will never share your email</span>
14
+ </div>
15
+
16
+ <!-- @error_state | column -->
17
+ <!-- Helper text styled for validation errors using the input error context. -->
18
+ <div class="ui-column ui-column--xs">
19
+ <input class="ui-input ui-input--error" type="text" value="abc"></input>
20
+ <span class="ui-form-helper" style="color: var(--ui-color-danger);">Password must be at least 8 characters</span>
21
+ </div>
22
+
23
+ <!-- @success_state | column -->
24
+ <!-- Helper text for successful validation. -->
25
+ <div class="ui-column ui-column--xs">
26
+ <input class="ui-input ui-input--success" type="text" value="strongpassword123"></input>
27
+ <span class="ui-form-helper" style="color: var(--ui-color-success);">Password strength: strong</span>
28
+ </div>
29
+
30
+ <!-- @with_select | column -->
31
+ <!-- Helper text paired with a select field. -->
32
+ <div class="ui-column ui-column--xs">
33
+ <select class="ui-select">
34
+ <option>Choose a country</option>
35
+ <option>United States</option>
36
+ <option>Canada</option>
37
+ </select>
38
+ <span class="ui-form-helper">Required for shipping calculations</span>
39
+ </div>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'form-helper.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('form-helper visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'form-helper');
15
15
  await saveForLostPixel(page, 'form-helper');
16
- await expect(page.locator('body')).toHaveScreenshot('form-helper.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,66 @@
1
+ ---
2
+ title: Input
3
+ description: Text input field for user data entry. Heights align to grid rows.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <input class="ui-input" type="text" placeholder="Enter text..."></input>
8
+
9
+ <!-- @sizes | column -->
10
+ <input class="ui-input ui-input--sm" type="text" placeholder="Small (1.5 rows)"></input>
11
+ <input class="ui-input" type="text" placeholder="Default (2 rows)"></input>
12
+ <input class="ui-input ui-input--lg" type="text" placeholder="Large (2.5 rows)"></input>
13
+
14
+ <!-- @variants | column -->
15
+ <input class="ui-input" type="text" placeholder="Outline (default)"></input>
16
+ <input class="ui-input ui-input--filled" type="text" placeholder="Filled"></input>
17
+ <input class="ui-input ui-input--ghost" type="text" placeholder="Ghost"></input>
18
+
19
+ <!-- @states | column -->
20
+ <input class="ui-input" type="text" placeholder="Default"></input>
21
+ <input class="ui-input ui-input--error" type="text" value="Invalid input"></input>
22
+ <input class="ui-input ui-input--success" type="text" value="Valid input"></input>
23
+ <input class="ui-input" type="text" placeholder="Disabled" disabled></input>
24
+ <input class="ui-input" type="text" value="Read only" readonly></input>
25
+
26
+ <!-- @full_width -->
27
+ <input class="ui-input ui-input--block" type="text" placeholder="Full width input"></input>
28
+
29
+ <!-- @with_prefix_icon -->
30
+ <div class="ui-input-group ui-input-group--has-prefix">
31
+ <span class="ui-input-group__addon ui-input-group__addon--start">
32
+ <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
33
+ <circle cx="11" cy="11" r="8"></circle>
34
+ <path d="m21 21-4.3-4.3"></path>
35
+ </svg>
36
+ </span>
37
+ <input class="ui-input ui-input--block" type="search" placeholder="Search..."></input>
38
+ </div>
39
+
40
+ <!-- @with_suffix_icon -->
41
+ <div class="ui-input-group ui-input-group--has-suffix">
42
+ <input class="ui-input ui-input--block" type="email" placeholder="Email address"></input>
43
+ <span class="ui-input-group__addon ui-input-group__addon--end">
44
+ <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
45
+ <rect width="20" height="16" x="2" y="4" rx="2"></rect>
46
+ <path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"></path>
47
+ </svg>
48
+ </span>
49
+ </div>
50
+
51
+ <!-- @with_both_addons -->
52
+ <div class="ui-input-group ui-input-group--has-prefix ui-input-group--has-suffix">
53
+ <span class="ui-input-group__addon ui-input-group__addon--start">
54
+ <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
55
+ <path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path>
56
+ <circle cx="12" cy="7" r="4"></circle>
57
+ </svg>
58
+ </span>
59
+ <input class="ui-input ui-input--block" type="text" placeholder="Username"></input>
60
+ <span class="ui-input-group__addon ui-input-group__addon--end ui-input-group__addon--interactive">
61
+ <svg class="ui-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
62
+ <path d="M18 6 6 18"></path>
63
+ <path d="m6 6 12 12"></path>
64
+ </svg>
65
+ </span>
66
+ </div>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'input.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('input visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'input');
15
15
  await saveForLostPixel(page, 'input');
16
- await expect(page.locator('body')).toHaveScreenshot('input.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,26 @@
1
+ ---
2
+ title: Label
3
+ description: Form control labels. Associates text with inputs via htmlFor or wrapping.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <label class="ui-label" for="input1">Email address</label>
8
+
9
+ <!-- @required -->
10
+ <label class="ui-label" for="input2">
11
+ Email address
12
+ <span class="ui-label__required">*</span>
13
+ </label>
14
+
15
+ <!-- @optional -->
16
+ <label class="ui-label" for="input3">
17
+ Phone number
18
+ <span class="ui-label__optional">(optional)</span>
19
+ </label>
20
+
21
+ <!-- @sizes | column -->
22
+ <label class="ui-label">Default size</label>
23
+ <label class="ui-label ui-label--lg">Large size</label>
24
+
25
+ <!-- @disabled -->
26
+ <label class="ui-label" aria-disabled="true">Disabled label</label>
@@ -2,17 +2,17 @@ import { resolve } from 'node:path';
2
2
  import { expect, test } from '@playwright/test';
3
3
  import {
4
4
  saveForLostPixel,
5
- setupVisualTestFromDocs,
5
+ setupVisualTestFromHtmlDocs,
6
6
  validateGridRhythm,
7
7
  } from '../../../../test-utils';
8
8
 
9
- const DOCS_PATH = resolve(__dirname, 'label.docs.json');
9
+ const DOCS_PATH = resolve(__dirname, 'docs.html');
10
10
 
11
11
  test.describe('label visual regression', () => {
12
12
  test('all variations', async ({ page }) => {
13
- await setupVisualTestFromDocs(page, DOCS_PATH);
13
+ await setupVisualTestFromHtmlDocs(page, DOCS_PATH);
14
14
  await validateGridRhythm(page, 'label');
15
15
  await saveForLostPixel(page, 'label');
16
- await expect(page.locator('body')).toHaveScreenshot('label.visual.png');
16
+ await expect(page.locator('body')).toHaveScreenshot('visual.png');
17
17
  });
18
18
  });
@@ -0,0 +1,97 @@
1
+ ---
2
+ title: Number Input
3
+ description: Numeric input with increment and decrement stepper buttons.
4
+ ---
5
+
6
+ <!-- @default -->
7
+ <div class="ui-number-input">
8
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease">
9
+ <svg viewBox="0 0 24 24">
10
+ <path d="M5 12h14"></path>
11
+ </svg>
12
+ </button>
13
+ <input class="ui-number-input__field" type="number" value="5"></input>
14
+ <button class="ui-number-input__increment" type="button" aria-label="Increase">
15
+ <svg viewBox="0 0 24 24">
16
+ <path d="M12 5v14"></path>
17
+ <path d="M5 12h14"></path>
18
+ </svg>
19
+ </button>
20
+ </div>
21
+
22
+ <!-- @sizes | column -->
23
+ <div class="ui-number-input ui-number-input--sm">
24
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease">
25
+ <svg viewBox="0 0 24 24">
26
+ <path d="M5 12h14"></path>
27
+ </svg>
28
+ </button>
29
+ <input class="ui-number-input__field" type="number" value="3"></input>
30
+ <button class="ui-number-input__increment" type="button" aria-label="Increase">
31
+ <svg viewBox="0 0 24 24">
32
+ <path d="M12 5v14"></path>
33
+ <path d="M5 12h14"></path>
34
+ </svg>
35
+ </button>
36
+ </div>
37
+ <div class="ui-number-input">
38
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease">
39
+ <svg viewBox="0 0 24 24">
40
+ <path d="M5 12h14"></path>
41
+ </svg>
42
+ </button>
43
+ <input class="ui-number-input__field" type="number" value="5"></input>
44
+ <button class="ui-number-input__increment" type="button" aria-label="Increase">
45
+ <svg viewBox="0 0 24 24">
46
+ <path d="M12 5v14"></path>
47
+ <path d="M5 12h14"></path>
48
+ </svg>
49
+ </button>
50
+ </div>
51
+ <div class="ui-number-input ui-number-input--lg">
52
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease">
53
+ <svg viewBox="0 0 24 24">
54
+ <path d="M5 12h14"></path>
55
+ </svg>
56
+ </button>
57
+ <input class="ui-number-input__field" type="number" value="10"></input>
58
+ <button class="ui-number-input__increment" type="button" aria-label="Increase">
59
+ <svg viewBox="0 0 24 24">
60
+ <path d="M12 5v14"></path>
61
+ <path d="M5 12h14"></path>
62
+ </svg>
63
+ </button>
64
+ </div>
65
+
66
+ <!-- @block -->
67
+ <!-- Full-width layout. -->
68
+ <div class="ui-number-input ui-number-input--block">
69
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease">
70
+ <svg viewBox="0 0 24 24">
71
+ <path d="M5 12h14"></path>
72
+ </svg>
73
+ </button>
74
+ <input class="ui-number-input__field" type="number" value="5"></input>
75
+ <button class="ui-number-input__increment" type="button" aria-label="Increase">
76
+ <svg viewBox="0 0 24 24">
77
+ <path d="M12 5v14"></path>
78
+ <path d="M5 12h14"></path>
79
+ </svg>
80
+ </button>
81
+ </div>
82
+
83
+ <!-- @disabled -->
84
+ <div class="ui-number-input ui-number-input--disabled">
85
+ <button class="ui-number-input__decrement" type="button" aria-label="Decrease" disabled>
86
+ <svg viewBox="0 0 24 24">
87
+ <path d="M5 12h14"></path>
88
+ </svg>
89
+ </button>
90
+ <input class="ui-number-input__field" type="number" value="0" disabled></input>
91
+ <button class="ui-number-input__increment" type="button" aria-label="Increase" disabled>
92
+ <svg viewBox="0 0 24 24">
93
+ <path d="M12 5v14"></path>
94
+ <path d="M5 12h14"></path>
95
+ </svg>
96
+ </button>
97
+ </div>