@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,482 +0,0 @@
1
- {
2
- "id": "form",
3
- "type": "component",
4
- "title": "Form",
5
- "description": "Layout container for form fields with consistent spacing, sections, and an actions row.",
6
- "api": "./form.api.json",
7
- "sections": [
8
- {
9
- "title": "Default",
10
- "examples": [
11
- {
12
- "items": [
13
- {
14
- "tag": "form",
15
- "class": "ui-form",
16
- "children": [
17
- {
18
- "tag": "div",
19
- "class": "ui-field",
20
- "children": [
21
- {
22
- "tag": "label",
23
- "class": "ui-label",
24
- "text": "Name",
25
- "attrs": { "for": "f-name" }
26
- },
27
- {
28
- "tag": "div",
29
- "class": "ui-field__control",
30
- "children": [
31
- {
32
- "tag": "input",
33
- "class": "ui-input",
34
- "attrs": {
35
- "type": "text",
36
- "id": "f-name",
37
- "placeholder": "Full name"
38
- }
39
- }
40
- ]
41
- }
42
- ]
43
- },
44
- {
45
- "tag": "div",
46
- "class": "ui-field",
47
- "children": [
48
- {
49
- "tag": "label",
50
- "class": "ui-label",
51
- "text": "Email",
52
- "attrs": { "for": "f-email" }
53
- },
54
- {
55
- "tag": "div",
56
- "class": "ui-field__control",
57
- "children": [
58
- {
59
- "tag": "input",
60
- "class": "ui-input",
61
- "attrs": {
62
- "type": "email",
63
- "id": "f-email",
64
- "placeholder": "you@example.com"
65
- }
66
- }
67
- ]
68
- }
69
- ]
70
- },
71
- {
72
- "tag": "div",
73
- "class": "ui-form__actions",
74
- "children": [
75
- { "tag": "button", "class": "ui-button", "text": "Submit" },
76
- {
77
- "tag": "button",
78
- "class": "ui-button ui-button--ghost",
79
- "text": "Cancel",
80
- "attrs": { "type": "button" }
81
- }
82
- ]
83
- }
84
- ]
85
- }
86
- ],
87
- "code": "<form class=\"ui-form\">\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"name\">Name</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"text\" id=\"name\">\n </div>\n </div>\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"email\">Email</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"email\" id=\"email\">\n </div>\n </div>\n <div class=\"ui-form__actions\">\n <button class=\"ui-button\">Submit</button>\n <button class=\"ui-button ui-button--ghost\" type=\"button\">Cancel</button>\n </div>\n</form>"
88
- }
89
- ]
90
- },
91
- {
92
- "title": "With Sections",
93
- "description": "Group related fields using fieldset-based sections",
94
- "examples": [
95
- {
96
- "items": [
97
- {
98
- "tag": "form",
99
- "class": "ui-form",
100
- "children": [
101
- {
102
- "tag": "fieldset",
103
- "class": "ui-form__section",
104
- "children": [
105
- { "tag": "legend", "class": "ui-heading ui-heading--sm", "text": "Personal" },
106
- {
107
- "tag": "div",
108
- "class": "ui-field",
109
- "children": [
110
- {
111
- "tag": "label",
112
- "class": "ui-label",
113
- "text": "First name",
114
- "attrs": { "for": "s-first" }
115
- },
116
- {
117
- "tag": "div",
118
- "class": "ui-field__control",
119
- "children": [
120
- {
121
- "tag": "input",
122
- "class": "ui-input",
123
- "attrs": { "type": "text", "id": "s-first" }
124
- }
125
- ]
126
- }
127
- ]
128
- },
129
- {
130
- "tag": "div",
131
- "class": "ui-field",
132
- "children": [
133
- {
134
- "tag": "label",
135
- "class": "ui-label",
136
- "text": "Last name",
137
- "attrs": { "for": "s-last" }
138
- },
139
- {
140
- "tag": "div",
141
- "class": "ui-field__control",
142
- "children": [
143
- {
144
- "tag": "input",
145
- "class": "ui-input",
146
- "attrs": { "type": "text", "id": "s-last" }
147
- }
148
- ]
149
- }
150
- ]
151
- }
152
- ]
153
- },
154
- {
155
- "tag": "fieldset",
156
- "class": "ui-form__section",
157
- "children": [
158
- { "tag": "legend", "class": "ui-heading ui-heading--sm", "text": "Account" },
159
- {
160
- "tag": "div",
161
- "class": "ui-field",
162
- "children": [
163
- {
164
- "tag": "label",
165
- "class": "ui-label",
166
- "text": "Email",
167
- "attrs": { "for": "s-email" }
168
- },
169
- {
170
- "tag": "div",
171
- "class": "ui-field__control",
172
- "children": [
173
- {
174
- "tag": "input",
175
- "class": "ui-input",
176
- "attrs": { "type": "email", "id": "s-email" }
177
- }
178
- ]
179
- }
180
- ]
181
- },
182
- {
183
- "tag": "div",
184
- "class": "ui-field",
185
- "children": [
186
- {
187
- "tag": "label",
188
- "class": "ui-label",
189
- "text": "Password",
190
- "attrs": { "for": "s-pass" }
191
- },
192
- {
193
- "tag": "div",
194
- "class": "ui-field__control",
195
- "children": [
196
- {
197
- "tag": "input",
198
- "class": "ui-input",
199
- "attrs": { "type": "password", "id": "s-pass" }
200
- }
201
- ]
202
- }
203
- ]
204
- }
205
- ]
206
- },
207
- {
208
- "tag": "div",
209
- "class": "ui-form__actions",
210
- "children": [{ "tag": "button", "class": "ui-button", "text": "Create account" }]
211
- }
212
- ]
213
- }
214
- ],
215
- "code": "<form class=\"ui-form\">\n <fieldset class=\"ui-form__section\">\n <legend class=\"ui-heading ui-heading--sm\">Personal</legend>\n <div class=\"ui-field\">...</div>\n <div class=\"ui-field\">...</div>\n </fieldset>\n <fieldset class=\"ui-form__section\">\n <legend class=\"ui-heading ui-heading--sm\">Account</legend>\n <div class=\"ui-field\">...</div>\n </fieldset>\n <div class=\"ui-form__actions\">\n <button class=\"ui-button\">Create account</button>\n </div>\n</form>"
216
- }
217
- ]
218
- },
219
- {
220
- "title": "Compact",
221
- "description": "Tighter spacing for dense interfaces",
222
- "examples": [
223
- {
224
- "items": [
225
- {
226
- "tag": "form",
227
- "class": "ui-form ui-form--compact",
228
- "children": [
229
- {
230
- "tag": "div",
231
- "class": "ui-field",
232
- "children": [
233
- {
234
- "tag": "label",
235
- "class": "ui-label",
236
- "text": "Username",
237
- "attrs": { "for": "c-user" }
238
- },
239
- {
240
- "tag": "div",
241
- "class": "ui-field__control",
242
- "children": [
243
- {
244
- "tag": "input",
245
- "class": "ui-input",
246
- "attrs": { "type": "text", "id": "c-user" }
247
- }
248
- ]
249
- }
250
- ]
251
- },
252
- {
253
- "tag": "div",
254
- "class": "ui-field",
255
- "children": [
256
- {
257
- "tag": "label",
258
- "class": "ui-label",
259
- "text": "Password",
260
- "attrs": { "for": "c-pass" }
261
- },
262
- {
263
- "tag": "div",
264
- "class": "ui-field__control",
265
- "children": [
266
- {
267
- "tag": "input",
268
- "class": "ui-input",
269
- "attrs": { "type": "password", "id": "c-pass" }
270
- }
271
- ]
272
- }
273
- ]
274
- },
275
- {
276
- "tag": "div",
277
- "class": "ui-form__actions",
278
- "children": [{ "tag": "button", "class": "ui-button", "text": "Log in" }]
279
- }
280
- ]
281
- }
282
- ],
283
- "code": "<form class=\"ui-form ui-form--compact\">\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"user\">Username</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"text\" id=\"user\">\n </div>\n </div>\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"pass\">Password</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"password\" id=\"pass\">\n </div>\n </div>\n <div class=\"ui-form__actions\">\n <button class=\"ui-button\">Log in</button>\n </div>\n</form>"
284
- }
285
- ]
286
- },
287
- {
288
- "title": "Inline",
289
- "description": "Horizontal layout for short forms like search or filters",
290
- "examples": [
291
- {
292
- "items": [
293
- {
294
- "tag": "form",
295
- "class": "ui-form ui-form--inline",
296
- "children": [
297
- {
298
- "tag": "div",
299
- "class": "ui-field",
300
- "children": [
301
- {
302
- "tag": "label",
303
- "class": "ui-label",
304
- "text": "Search",
305
- "attrs": { "for": "i-search" }
306
- },
307
- {
308
- "tag": "div",
309
- "class": "ui-field__control",
310
- "children": [
311
- {
312
- "tag": "input",
313
- "class": "ui-input",
314
- "attrs": {
315
- "type": "search",
316
- "id": "i-search",
317
- "placeholder": "Search..."
318
- }
319
- }
320
- ]
321
- }
322
- ]
323
- },
324
- {
325
- "tag": "div",
326
- "class": "ui-field",
327
- "children": [
328
- {
329
- "tag": "label",
330
- "class": "ui-label",
331
- "text": "Category",
332
- "attrs": { "for": "i-cat" }
333
- },
334
- {
335
- "tag": "div",
336
- "class": "ui-field__control",
337
- "children": [
338
- {
339
- "tag": "select",
340
- "class": "ui-select",
341
- "attrs": { "id": "i-cat" },
342
- "children": [
343
- { "tag": "option", "text": "All" },
344
- { "tag": "option", "text": "Articles" },
345
- { "tag": "option", "text": "Products" }
346
- ]
347
- }
348
- ]
349
- }
350
- ]
351
- },
352
- {
353
- "tag": "div",
354
- "class": "ui-form__actions",
355
- "children": [{ "tag": "button", "class": "ui-button", "text": "Filter" }]
356
- }
357
- ]
358
- }
359
- ],
360
- "code": "<form class=\"ui-form ui-form--inline\">\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"search\">Search</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"search\" id=\"search\">\n </div>\n </div>\n <div class=\"ui-field\">\n <label class=\"ui-label\" for=\"cat\">Category</label>\n <div class=\"ui-field__control\">\n <select class=\"ui-select\" id=\"cat\">\n <option>All</option>\n </select>\n </div>\n </div>\n <div class=\"ui-form__actions\">\n <button class=\"ui-button\">Filter</button>\n </div>\n</form>"
361
- }
362
- ]
363
- },
364
- {
365
- "title": "With Validation",
366
- "description": "Combining form layout with field error states",
367
- "examples": [
368
- {
369
- "items": [
370
- {
371
- "tag": "form",
372
- "class": "ui-form",
373
- "children": [
374
- {
375
- "tag": "div",
376
- "class": "ui-field",
377
- "children": [
378
- {
379
- "tag": "label",
380
- "class": "ui-label ui-label--required",
381
- "text": "Email",
382
- "attrs": { "for": "v-email" }
383
- },
384
- {
385
- "tag": "div",
386
- "class": "ui-field__control",
387
- "children": [
388
- {
389
- "tag": "input",
390
- "class": "ui-input ui-input--error",
391
- "attrs": {
392
- "type": "email",
393
- "id": "v-email",
394
- "value": "not-an-email"
395
- }
396
- },
397
- {
398
- "tag": "span",
399
- "class": "ui-form-error",
400
- "text": "Enter a valid email address"
401
- }
402
- ]
403
- }
404
- ]
405
- },
406
- {
407
- "tag": "div",
408
- "class": "ui-field",
409
- "children": [
410
- {
411
- "tag": "label",
412
- "class": "ui-label ui-label--required",
413
- "text": "Password",
414
- "attrs": { "for": "v-pass" }
415
- },
416
- {
417
- "tag": "div",
418
- "class": "ui-field__control",
419
- "children": [
420
- {
421
- "tag": "input",
422
- "class": "ui-input",
423
- "attrs": { "type": "password", "id": "v-pass" }
424
- },
425
- {
426
- "tag": "span",
427
- "class": "ui-form-helper",
428
- "text": "Must be at least 8 characters"
429
- }
430
- ]
431
- }
432
- ]
433
- },
434
- {
435
- "tag": "div",
436
- "class": "ui-form__actions",
437
- "children": [
438
- { "tag": "button", "class": "ui-button", "text": "Sign up" },
439
- {
440
- "tag": "button",
441
- "class": "ui-button ui-button--ghost",
442
- "text": "Reset",
443
- "attrs": { "type": "button" }
444
- }
445
- ]
446
- }
447
- ]
448
- }
449
- ],
450
- "code": "<form class=\"ui-form\">\n <div class=\"ui-field\">\n <label class=\"ui-label ui-label--required\" for=\"email\">Email</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input ui-input--error\" type=\"email\" id=\"email\">\n <span class=\"ui-form-error\">Enter a valid email address</span>\n </div>\n </div>\n <div class=\"ui-field\">\n <label class=\"ui-label ui-label--required\" for=\"pass\">Password</label>\n <div class=\"ui-field__control\">\n <input class=\"ui-input\" type=\"password\" id=\"pass\">\n <span class=\"ui-form-helper\">Must be at least 8 characters</span>\n </div>\n </div>\n <div class=\"ui-form__actions\">\n <button class=\"ui-button\">Sign up</button>\n <button class=\"ui-button ui-button--ghost\" type=\"button\">Reset</button>\n </div>\n</form>"
451
- }
452
- ]
453
- }
454
- ],
455
- "customization": [
456
- {
457
- "token": "--ui-form-spacing",
458
- "default": "var(--ui-space-3)",
459
- "description": "Gap between fields"
460
- },
461
- {
462
- "token": "--ui-form-actions-gap",
463
- "default": "var(--ui-space-2)",
464
- "description": "Gap between action buttons"
465
- },
466
- {
467
- "token": "--ui-form-section-spacing",
468
- "default": "var(--ui-space-4)",
469
- "description": "Extra spacing between sections"
470
- },
471
- {
472
- "token": "--ui-form-spacing-compact",
473
- "default": "var(--ui-space-2)",
474
- "description": "Field gap in compact variant"
475
- },
476
- {
477
- "token": "--ui-form-section-spacing-compact",
478
- "default": "var(--ui-space-3)",
479
- "description": "Section gap in compact variant"
480
- }
481
- ]
482
- }
@@ -1,61 +0,0 @@
1
- {
2
- "id": "form-error",
3
- "type": "component",
4
- "title": "Form Error",
5
- "description": "Validation error message for form fields. Displays in danger color.",
6
- "api": "./form-error.api.json",
7
- "sections": [
8
- {
9
- "title": "Default",
10
- "examples": [
11
- {
12
- "items": [{ "tag": "span", "class": "ui-form-error", "text": "This field is required" }],
13
- "code": "<span class=\"ui-form-error\">This field is required</span>"
14
- }
15
- ]
16
- },
17
- {
18
- "title": "With Icon",
19
- "examples": [
20
- {
21
- "items": [
22
- {
23
- "tag": "span",
24
- "class": "ui-form-error",
25
- "children": [
26
- {
27
- "tag": "svg",
28
- "class": "ui-form-error__icon ui-icon ui-icon--sm",
29
- "attrs": { "viewBox": "0 0 24 24", "fill": "currentColor" },
30
- "children": [
31
- {
32
- "tag": "path",
33
- "attrs": {
34
- "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"
35
- }
36
- }
37
- ]
38
- },
39
- { "tag": "span", "text": "Please enter a valid email" }
40
- ]
41
- }
42
- ],
43
- "code": "<span class=\"ui-form-error\">\n <svg class=\"ui-form-error__icon ui-icon ui-icon--sm\">...</svg>\n Please enter a valid email\n</span>"
44
- }
45
- ]
46
- }
47
- ],
48
- "customization": [
49
- {
50
- "token": "--ui-form-error-color",
51
- "default": "var(--ui-color-danger)",
52
- "description": "Error text color"
53
- },
54
- {
55
- "token": "--ui-form-error-size",
56
- "default": "var(--ui-font-size-sm)",
57
- "description": "Font size"
58
- },
59
- { "token": "--ui-form-error-gap", "default": "0", "description": "Gap between icon and text" }
60
- ]
61
- }