@gov-design-system-ce/components 0.0.36 → 0.0.37

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 (264) hide show
  1. package/dist/cjs/core.cjs.js +1 -1
  2. package/dist/cjs/{form-62c6a8c6.js → form-8c6daa83.js} +8 -8
  3. package/dist/cjs/form-8c6daa83.js.map +1 -0
  4. package/dist/cjs/gov-app.cjs.entry.js +1188 -635
  5. package/dist/cjs/gov-app.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gov-badge.cjs.entry.js +1 -1
  7. package/dist/cjs/gov-badge.cjs.entry.js.map +1 -1
  8. package/dist/cjs/gov-button.cjs.entry.js +1 -1
  9. package/dist/cjs/gov-button.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gov-control-group.cjs.entry.js +62 -0
  11. package/dist/cjs/gov-control-group.cjs.entry.js.map +1 -0
  12. package/dist/cjs/gov-form-checkbox.cjs.entry.js +1 -1
  13. package/dist/cjs/gov-form-control.cjs.entry.js +35 -7
  14. package/dist/cjs/gov-form-control.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gov-form-file.cjs.entry.js +2 -2
  16. package/dist/cjs/gov-form-file.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gov-form-input.cjs.entry.js +6 -6
  18. package/dist/cjs/gov-form-input.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gov-form-label.cjs.entry.js +1 -1
  20. package/dist/cjs/gov-form-label.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gov-form-multi-select.cjs.entry.js +2 -2
  22. package/dist/cjs/gov-form-multi-select.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gov-form-radio.cjs.entry.js +1 -1
  24. package/dist/cjs/gov-form-search.cjs.entry.js +5 -1
  25. package/dist/cjs/gov-form-search.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gov-form-select.cjs.entry.js +13 -8
  27. package/dist/cjs/gov-form-select.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gov-form-switch.cjs.entry.js +1 -1
  29. package/dist/cjs/gov-icon.cjs.entry.js +1 -1
  30. package/dist/cjs/gov-wizzard-item.cjs.entry.js +13 -15
  31. package/dist/cjs/gov-wizzard-item.cjs.entry.js.map +1 -1
  32. package/dist/cjs/index-29ac07f6.js +4 -0
  33. package/dist/cjs/loader.cjs.js +1 -1
  34. package/dist/collection/collection-manifest.json +1 -0
  35. package/dist/collection/components/gov-accordion/gov-accordion-item.css +3 -0
  36. package/dist/collection/components/gov-accordion/gov-accordion.css +3 -0
  37. package/dist/collection/components/gov-alert/gov-alert.css +3 -0
  38. package/dist/collection/components/gov-app/gov-app.css +3 -0
  39. package/dist/collection/components/gov-app/gov-app.js +10 -8
  40. package/dist/collection/components/gov-app/gov-app.js.map +1 -1
  41. package/dist/collection/components/gov-attachments/gov-attachments-item.css +3 -0
  42. package/dist/collection/components/gov-attachments/gov-attachments.css +3 -0
  43. package/dist/collection/components/gov-backdrop/gov-backdrop.css +3 -0
  44. package/dist/collection/components/gov-badge/gov-badge.css +6 -3
  45. package/dist/collection/components/gov-breadcrumbs/gov-breadcrumbs.css +3 -0
  46. package/dist/collection/components/gov-button/gov-button.css +3 -3
  47. package/dist/collection/components/gov-card/gov-card.css +3 -0
  48. package/dist/collection/components/gov-container/gov-container.css +3 -0
  49. package/dist/collection/components/gov-control-group/constants.js +7 -0
  50. package/dist/collection/components/gov-control-group/constants.js.map +1 -0
  51. package/dist/collection/components/gov-control-group/gov-control-group.css +268 -0
  52. package/dist/collection/components/gov-control-group/gov-control-group.js +137 -0
  53. package/dist/collection/components/gov-control-group/gov-control-group.js.map +1 -0
  54. package/dist/collection/components/gov-cookiebar/gov-cookiebar.css +3 -0
  55. package/dist/collection/components/gov-empty/gov-empty.css +3 -0
  56. package/dist/collection/components/gov-error-code/gov-error-code.css +3 -0
  57. package/dist/collection/components/gov-form/autocomplete/gov-form-autocomplete.css +3 -0
  58. package/dist/collection/components/gov-form/checkbox/gov-form-checkbox.css +3 -0
  59. package/dist/collection/components/gov-form/control/gov-form-control.css +3 -0
  60. package/dist/collection/components/gov-form/control/gov-form-control.js +35 -10
  61. package/dist/collection/components/gov-form/control/gov-form-control.js.map +1 -1
  62. package/dist/collection/components/gov-form/file/gov-form-file.css +10 -0
  63. package/dist/collection/components/gov-form/group/gov-form-group.css +3 -0
  64. package/dist/collection/components/gov-form/input/constants.js +1 -1
  65. package/dist/collection/components/gov-form/input/constants.js.map +1 -1
  66. package/dist/collection/components/gov-form/input/gov-form-input.css +103 -50
  67. package/dist/collection/components/gov-form/input/gov-form-input.js +9 -9
  68. package/dist/collection/components/gov-form/input/gov-form-input.js.map +1 -1
  69. package/dist/collection/components/gov-form/label/gov-form-label.css +3 -0
  70. package/dist/collection/components/gov-form/label/gov-form-label.js +1 -1
  71. package/dist/collection/components/gov-form/label/gov-form-label.js.map +1 -1
  72. package/dist/collection/components/gov-form/message/gov-form-message.css +3 -0
  73. package/dist/collection/components/gov-form/multiselect/gov-form-multi-select.css +103 -50
  74. package/dist/collection/components/gov-form/password-power/gov-form-password-power.css +3 -0
  75. package/dist/collection/components/gov-form/radio/gov-form-radio.css +3 -0
  76. package/dist/collection/components/gov-form/search/constants.js +3 -0
  77. package/dist/collection/components/gov-form/search/constants.js.map +1 -1
  78. package/dist/collection/components/gov-form/search/gov-form-search.css +9 -1
  79. package/dist/collection/components/gov-form/search/gov-form-search.js +30 -0
  80. package/dist/collection/components/gov-form/search/gov-form-search.js.map +1 -1
  81. package/dist/collection/components/gov-form/select/gov-form-select.css +103 -50
  82. package/dist/collection/components/gov-form/select/gov-form-select.js +12 -5
  83. package/dist/collection/components/gov-form/select/gov-form-select.js.map +1 -1
  84. package/dist/collection/components/gov-form/switch/gov-form-switch.css +3 -0
  85. package/dist/collection/components/gov-grid/gov-grid-item.css +3 -0
  86. package/dist/collection/components/gov-grid/gov-grid.css +3 -0
  87. package/dist/collection/components/gov-icon/gov-icon.css +3 -0
  88. package/dist/collection/components/gov-layout/gov-layout-column.css +3 -0
  89. package/dist/collection/components/gov-layout/gov-layout.css +3 -0
  90. package/dist/collection/components/gov-loading/loading/gov-loading.css +3 -0
  91. package/dist/collection/components/gov-loading/skeleton/gov-skeleton.css +3 -0
  92. package/dist/collection/components/gov-message/gov-message.css +3 -0
  93. package/dist/collection/components/gov-modal/gov-modal.css +3 -0
  94. package/dist/collection/components/gov-nav/gov-nav-item.css +3 -0
  95. package/dist/collection/components/gov-nav/gov-nav.css +3 -0
  96. package/dist/collection/components/gov-pagination/gov-pagination.css +3 -0
  97. package/dist/collection/components/gov-promp/gov-prompt.css +3 -0
  98. package/dist/collection/components/gov-side-nav/gov-side-nav-item.css +3 -0
  99. package/dist/collection/components/gov-side-nav/gov-side-nav.css +3 -0
  100. package/dist/collection/components/gov-spacer/gov-spacer.css +3 -0
  101. package/dist/collection/components/gov-statsbar/gov-statsbar-item.css +3 -0
  102. package/dist/collection/components/gov-statsbar/gov-statsbar.css +3 -0
  103. package/dist/collection/components/gov-stepper/gov-stepper-item.css +3 -0
  104. package/dist/collection/components/gov-stepper/gov-stepper.css +3 -0
  105. package/dist/collection/components/gov-tabs/gov-tabs-item.css +3 -0
  106. package/dist/collection/components/gov-tabs/gov-tabs.css +3 -0
  107. package/dist/collection/components/gov-tile/container/gov-tiles.css +3 -0
  108. package/dist/collection/components/gov-tile/gov-tile.css +3 -0
  109. package/dist/collection/components/gov-toast/gov-toast.css +3 -0
  110. package/dist/collection/components/gov-tooltip/gov-tooltip-content.css +3 -0
  111. package/dist/collection/components/gov-tooltip/gov-tooltip.css +3 -0
  112. package/dist/collection/components/gov-wizzard/gov-wizzard-item.css +3 -0
  113. package/dist/collection/components/gov-wizzard/gov-wizzard-item.js +29 -36
  114. package/dist/collection/components/gov-wizzard/gov-wizzard-item.js.map +1 -1
  115. package/dist/collection/components/gov-wizzard/gov-wizzard-item.types.js +2 -0
  116. package/dist/collection/components/gov-wizzard/gov-wizzard-item.types.js.map +1 -0
  117. package/dist/collection/components/gov-wizzard/gov-wizzard.css +3 -0
  118. package/dist/collection/pages/Button.js +41 -0
  119. package/dist/collection/pages/Button.js.map +1 -1
  120. package/dist/collection/pages/ControlGroup.js +324 -0
  121. package/dist/collection/pages/ControlGroup.js.map +1 -0
  122. package/dist/collection/pages/Forms.js +369 -206
  123. package/dist/collection/pages/Forms.js.map +1 -1
  124. package/dist/collection/pages/Tooltip.js +24 -0
  125. package/dist/collection/pages/Tooltip.js.map +1 -1
  126. package/dist/components/form.js +16 -16
  127. package/dist/components/form.js.map +1 -1
  128. package/dist/components/gov-app.js +1188 -635
  129. package/dist/components/gov-app.js.map +1 -1
  130. package/dist/components/gov-badge2.js +1 -1
  131. package/dist/components/gov-badge2.js.map +1 -1
  132. package/dist/components/gov-button2.js +1 -1
  133. package/dist/components/gov-button2.js.map +1 -1
  134. package/dist/components/gov-control-group.d.ts +11 -0
  135. package/dist/components/gov-control-group.js +75 -0
  136. package/dist/components/gov-control-group.js.map +1 -0
  137. package/dist/components/gov-form-control.js +35 -7
  138. package/dist/components/gov-form-control.js.map +1 -1
  139. package/dist/components/gov-form-file.js +1 -1
  140. package/dist/components/gov-form-file.js.map +1 -1
  141. package/dist/components/gov-form-input2.js +5 -5
  142. package/dist/components/gov-form-input2.js.map +1 -1
  143. package/dist/components/gov-form-label.js +1 -1
  144. package/dist/components/gov-form-label.js.map +1 -1
  145. package/dist/components/gov-form-multi-select.js +1 -1
  146. package/dist/components/gov-form-multi-select.js.map +1 -1
  147. package/dist/components/gov-form-search.js +8 -2
  148. package/dist/components/gov-form-search.js.map +1 -1
  149. package/dist/components/gov-form-select2.js +12 -7
  150. package/dist/components/gov-form-select2.js.map +1 -1
  151. package/dist/components/gov-icon2.js +1 -1
  152. package/dist/components/gov-wizzard-item.js +14 -17
  153. package/dist/components/gov-wizzard-item.js.map +1 -1
  154. package/dist/components/index.d.ts +1 -0
  155. package/dist/components/index.js +1 -0
  156. package/dist/components/index.js.map +1 -1
  157. package/dist/core/core.esm.js +1 -1
  158. package/dist/core/core.esm.js.map +1 -1
  159. package/dist/core/p-00c4dc0d.entry.js +2 -0
  160. package/dist/core/p-00c4dc0d.entry.js.map +1 -0
  161. package/dist/core/p-06e938d7.entry.js +2 -0
  162. package/dist/core/p-06e938d7.entry.js.map +1 -0
  163. package/dist/core/{p-d14130ac.entry.js → p-1bdec1f4.entry.js} +2 -2
  164. package/dist/core/{p-1025c6ac.entry.js → p-227a9e9b.entry.js} +2 -2
  165. package/dist/core/p-3a69322b.entry.js +2 -0
  166. package/dist/core/p-3a69322b.entry.js.map +1 -0
  167. package/dist/core/p-61af5a2c.js +2 -0
  168. package/dist/core/p-61af5a2c.js.map +1 -0
  169. package/dist/core/{p-fe1ee53b.entry.js → p-63ef7826.entry.js} +2 -2
  170. package/dist/core/p-63ef7826.entry.js.map +1 -0
  171. package/dist/core/p-6dc65816.entry.js +2 -0
  172. package/dist/core/p-6dc65816.entry.js.map +1 -0
  173. package/dist/core/{p-d1275fa8.entry.js → p-9584f413.entry.js} +2 -2
  174. package/dist/core/p-9584f413.entry.js.map +1 -0
  175. package/dist/core/p-9bd90cc4.entry.js +2 -0
  176. package/dist/core/p-9bd90cc4.entry.js.map +1 -0
  177. package/dist/core/{p-d9b4bc20.entry.js → p-9fbee429.entry.js} +2 -2
  178. package/dist/core/p-9fbee429.entry.js.map +1 -0
  179. package/dist/core/{p-d37f03e0.entry.js → p-bbbc4e43.entry.js} +2 -2
  180. package/dist/core/p-c39004f5.entry.js +2 -0
  181. package/dist/core/p-c39004f5.entry.js.map +1 -0
  182. package/dist/core/{p-5a2a9cde.entry.js → p-c69cd34e.entry.js} +2 -2
  183. package/dist/core/p-cc9e9a31.entry.js +2 -0
  184. package/dist/core/{p-a423b62a.entry.js.map → p-cc9e9a31.entry.js.map} +1 -1
  185. package/dist/core/p-ef7a1780.entry.js +2 -0
  186. package/dist/core/p-ef7a1780.entry.js.map +1 -0
  187. package/dist/core/p-fd555dce.entry.js +2 -0
  188. package/dist/core/{p-35aadeeb.entry.js.map → p-fd555dce.entry.js.map} +1 -1
  189. package/dist/custom-elements/index.d.ts +6 -0
  190. package/dist/custom-elements/index.js +1 -1
  191. package/dist/custom-elements/index.js.map +1 -1
  192. package/dist/esm/core.js +1 -1
  193. package/dist/esm/{form-613741a5.js → form-cd65d95e.js} +8 -8
  194. package/dist/esm/form-cd65d95e.js.map +1 -0
  195. package/dist/esm/gov-app.entry.js +1188 -635
  196. package/dist/esm/gov-app.entry.js.map +1 -1
  197. package/dist/esm/gov-badge.entry.js +1 -1
  198. package/dist/esm/gov-badge.entry.js.map +1 -1
  199. package/dist/esm/gov-button.entry.js +1 -1
  200. package/dist/esm/gov-button.entry.js.map +1 -1
  201. package/dist/esm/gov-control-group.entry.js +58 -0
  202. package/dist/esm/gov-control-group.entry.js.map +1 -0
  203. package/dist/esm/gov-form-checkbox.entry.js +1 -1
  204. package/dist/esm/gov-form-control.entry.js +35 -7
  205. package/dist/esm/gov-form-control.entry.js.map +1 -1
  206. package/dist/esm/gov-form-file.entry.js +2 -2
  207. package/dist/esm/gov-form-file.entry.js.map +1 -1
  208. package/dist/esm/gov-form-input.entry.js +6 -6
  209. package/dist/esm/gov-form-input.entry.js.map +1 -1
  210. package/dist/esm/gov-form-label.entry.js +1 -1
  211. package/dist/esm/gov-form-label.entry.js.map +1 -1
  212. package/dist/esm/gov-form-multi-select.entry.js +2 -2
  213. package/dist/esm/gov-form-multi-select.entry.js.map +1 -1
  214. package/dist/esm/gov-form-radio.entry.js +1 -1
  215. package/dist/esm/gov-form-search.entry.js +5 -1
  216. package/dist/esm/gov-form-search.entry.js.map +1 -1
  217. package/dist/esm/gov-form-select.entry.js +13 -8
  218. package/dist/esm/gov-form-select.entry.js.map +1 -1
  219. package/dist/esm/gov-form-switch.entry.js +1 -1
  220. package/dist/esm/gov-icon.entry.js +1 -1
  221. package/dist/esm/gov-wizzard-item.entry.js +13 -15
  222. package/dist/esm/gov-wizzard-item.entry.js.map +1 -1
  223. package/dist/esm/index-b010bfb4.js +4 -0
  224. package/dist/esm/loader.js +1 -1
  225. package/dist/hydrate/index.js +1520 -876
  226. package/dist/types/components/gov-app/gov-app.d.ts +9 -8
  227. package/dist/types/components/gov-control-group/constants.d.ts +7 -0
  228. package/dist/types/components/gov-control-group/gov-control-group.d.ts +29 -0
  229. package/dist/types/components/gov-form/control/gov-form-control.d.ts +2 -1
  230. package/dist/types/components/gov-form/input/constants.d.ts +1 -1
  231. package/dist/types/components/gov-form/input/gov-form-input.d.ts +1 -2
  232. package/dist/types/components/gov-form/search/constants.d.ts +4 -0
  233. package/dist/types/components/gov-form/search/gov-form-search.d.ts +5 -0
  234. package/dist/types/components/gov-form/select/gov-form-select.d.ts +2 -0
  235. package/dist/types/components/gov-wizzard/gov-wizzard-item.d.ts +7 -8
  236. package/dist/types/components/gov-wizzard/gov-wizzard-item.types.d.ts +4 -0
  237. package/dist/types/components.d.ts +61 -5
  238. package/dist/types/pages/ControlGroup.d.ts +3 -0
  239. package/package.json +1 -1
  240. package/dist/cjs/form-62c6a8c6.js.map +0 -1
  241. package/dist/core/p-0a300d3e.entry.js +0 -2
  242. package/dist/core/p-0a300d3e.entry.js.map +0 -1
  243. package/dist/core/p-35aadeeb.entry.js +0 -2
  244. package/dist/core/p-67982c3a.entry.js +0 -2
  245. package/dist/core/p-67982c3a.entry.js.map +0 -1
  246. package/dist/core/p-7e524b49.js +0 -2
  247. package/dist/core/p-7e524b49.js.map +0 -1
  248. package/dist/core/p-a423b62a.entry.js +0 -2
  249. package/dist/core/p-a825183a.entry.js +0 -2
  250. package/dist/core/p-a825183a.entry.js.map +0 -1
  251. package/dist/core/p-bbc765ca.entry.js +0 -2
  252. package/dist/core/p-bbc765ca.entry.js.map +0 -1
  253. package/dist/core/p-d1275fa8.entry.js.map +0 -1
  254. package/dist/core/p-d9b4bc20.entry.js.map +0 -1
  255. package/dist/core/p-e4bb6114.entry.js +0 -2
  256. package/dist/core/p-e4bb6114.entry.js.map +0 -1
  257. package/dist/core/p-e6904513.entry.js +0 -2
  258. package/dist/core/p-e6904513.entry.js.map +0 -1
  259. package/dist/core/p-fe1ee53b.entry.js.map +0 -1
  260. package/dist/esm/form-613741a5.js.map +0 -1
  261. /package/dist/core/{p-d14130ac.entry.js.map → p-1bdec1f4.entry.js.map} +0 -0
  262. /package/dist/core/{p-1025c6ac.entry.js.map → p-227a9e9b.entry.js.map} +0 -0
  263. /package/dist/core/{p-d37f03e0.entry.js.map → p-bbbc4e43.entry.js.map} +0 -0
  264. /package/dist/core/{p-5a2a9cde.entry.js.map → p-c69cd34e.entry.js.map} +0 -0
@@ -0,0 +1,137 @@
1
+ import { Host, h } from '@stencil/core';
2
+ import { Variants } from '../../core/constants/variants';
3
+ import { govForm } from "../../helpers/Dom/form";
4
+ import { govHost, toBoolAttr, toBoolAttrIfDefined } from '../../helpers/Dom/template';
5
+ import { validateProp } from '../../helpers/Validate/props';
6
+ import { ControlGroupClass } from './constants';
7
+ export class GovControlGroup {
8
+ constructor() {
9
+ this.variant = Variants.PRIMARY;
10
+ this.invalid = undefined;
11
+ this.disabled = undefined;
12
+ this.isBordered = false;
13
+ this.h = govHost(this.host);
14
+ this.f = govForm(this.h);
15
+ }
16
+ validateVariant(newValue) {
17
+ validateProp(Variants, newValue, ControlGroupClass.root);
18
+ }
19
+ watchDisabled() {
20
+ this.passControlAttrs();
21
+ }
22
+ passControlAttrs() {
23
+ this.f.passAttrToControl("disabled", toBoolAttr(this.disabled));
24
+ this.f.passAttrToControl("invalid", toBoolAttr(this.invalid));
25
+ }
26
+ componentWillLoad() {
27
+ this.watchDisabled();
28
+ }
29
+ render() {
30
+ const bordered = this.isBordered === true ? " bordered" : "";
31
+ return (h(Host, { class: this.h.classes(ControlGroupClass.root) + bordered, variant: this.variant, invalid: toBoolAttrIfDefined(this.invalid), disabled: this.disabled }, h("slot", null)));
32
+ }
33
+ static get is() { return "gov-control-group"; }
34
+ static get originalStyleUrls() {
35
+ return {
36
+ "$": ["gov-control-group.scss"]
37
+ };
38
+ }
39
+ static get styleUrls() {
40
+ return {
41
+ "$": ["gov-control-group.css"]
42
+ };
43
+ }
44
+ static get properties() {
45
+ return {
46
+ "variant": {
47
+ "type": "string",
48
+ "mutable": false,
49
+ "complexType": {
50
+ "original": "ControlGroupType",
51
+ "resolved": "\"primary\" | \"secondary\"",
52
+ "references": {
53
+ "ControlGroupType": {
54
+ "location": "import",
55
+ "path": "./constants"
56
+ }
57
+ }
58
+ },
59
+ "required": false,
60
+ "optional": false,
61
+ "docs": {
62
+ "tags": [],
63
+ "text": "Style variation of the content message."
64
+ },
65
+ "attribute": "variant",
66
+ "reflect": false,
67
+ "defaultValue": "Variants.PRIMARY"
68
+ },
69
+ "invalid": {
70
+ "type": "boolean",
71
+ "mutable": false,
72
+ "complexType": {
73
+ "original": "boolean",
74
+ "resolved": "boolean",
75
+ "references": {}
76
+ },
77
+ "required": false,
78
+ "optional": false,
79
+ "docs": {
80
+ "tags": [],
81
+ "text": "Indicates the entered value does not conform to the format expected by the application."
82
+ },
83
+ "attribute": "invalid",
84
+ "reflect": false
85
+ },
86
+ "disabled": {
87
+ "type": "boolean",
88
+ "mutable": false,
89
+ "complexType": {
90
+ "original": "boolean",
91
+ "resolved": "boolean",
92
+ "references": {}
93
+ },
94
+ "required": false,
95
+ "optional": false,
96
+ "docs": {
97
+ "tags": [],
98
+ "text": "Makes the whole component disabled.\nThis prevents users from being able to interact with the elements, and conveys its inactive state to assistive technologies."
99
+ },
100
+ "attribute": "disabled",
101
+ "reflect": false
102
+ },
103
+ "isBordered": {
104
+ "type": "boolean",
105
+ "mutable": false,
106
+ "complexType": {
107
+ "original": "boolean",
108
+ "resolved": "boolean",
109
+ "references": {}
110
+ },
111
+ "required": false,
112
+ "optional": false,
113
+ "docs": {
114
+ "tags": [],
115
+ "text": "Specifies the display of the border between elements"
116
+ },
117
+ "attribute": "bordered",
118
+ "reflect": false,
119
+ "defaultValue": "false"
120
+ }
121
+ };
122
+ }
123
+ static get elementRef() { return "host"; }
124
+ static get watchers() {
125
+ return [{
126
+ "propName": "variant",
127
+ "methodName": "validateVariant"
128
+ }, {
129
+ "propName": "disabled",
130
+ "methodName": "watchDisabled"
131
+ }, {
132
+ "propName": "invalid",
133
+ "methodName": "watchDisabled"
134
+ }];
135
+ }
136
+ }
137
+ //# sourceMappingURL=gov-control-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gov-control-group.js","sourceRoot":"","sources":["../../../../../../src/components/gov-control-group/gov-control-group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,eAAe,CAAA;AACxE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAErF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAA;AAMjE,MAAM,OAAO,eAAe;EAI3B;mBAS6C,QAAQ,CAAC,OAAO;;;sBAaG,KAAK;IArBpE,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3B,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;GACxB;EAsBD,eAAe,CAAC,QAAgB;IAC/B,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAA;EACzD,CAAC;EAID,aAAa;IACZ,IAAI,CAAC,gBAAgB,EAAE,CAAA;EACxB,CAAC;EAEO,gBAAgB;IACvB,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC/D,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;EAC9D,CAAC;EAED,iBAAiB;IAChB,IAAI,CAAC,aAAa,EAAE,CAAA;EACrB,CAAC;EAED,MAAM;IACL,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5D,OAAO,CACN,EAAC,IAAI,IAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ;MACzJ,eAAQ,CACF,CACP,CAAA;EACF,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACD","sourcesContent":["import { Component, Element, Host, Prop, Watch, h } from '@stencil/core'\nimport { Variants } from '../../core/constants/variants'\nimport { govForm } from \"../../helpers/Dom/form\"\nimport { GovForm } from \"../../helpers/Dom/form.types\"\nimport { govHost, toBoolAttr, toBoolAttrIfDefined } from '../../helpers/Dom/template'\nimport { GovHost } from '../../helpers/Dom/template.types'\nimport { validateProp } from '../../helpers/Validate/props'\nimport { ControlGroupClass, ControlGroupType } from './constants'\n\n@Component({\n\ttag: 'gov-control-group',\n\tstyleUrl: 'gov-control-group.scss',\n})\nexport class GovControlGroup {\n\tprivate h: GovHost\n\tprivate f: GovForm\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t}\n\n\t@Element() host: HTMLGovControlGroupElement\n\t/**\n\t * Style variation of the content message.\n\t */\n\t@Prop() readonly variant: ControlGroupType = Variants.PRIMARY\n\t/**\n\t * Indicates the entered value does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean\n\t/**\n\t * Makes the whole component disabled.\n\t * This prevents users from being able to interact with the elements, and conveys its inactive state to assistive technologies.\n\t */\n\t@Prop() readonly disabled: boolean\n\t/**\n\t * Specifies the display of the border between elements\n\t */\n\t@Prop({ attribute: 'bordered' }) readonly isBordered: boolean = false\n\n\t@Watch('variant')\n\tvalidateVariant(newValue: string): void {\n\t\tvalidateProp(Variants, newValue, ControlGroupClass.root)\n\t}\n\n\t@Watch(\"disabled\")\n\t@Watch(\"invalid\")\n\twatchDisabled(): void {\n\t\tthis.passControlAttrs()\n\t}\n\n\tprivate passControlAttrs() {\n\t\tthis.f.passAttrToControl(\"disabled\", toBoolAttr(this.disabled))\n\t\tthis.f.passAttrToControl(\"invalid\", toBoolAttr(this.invalid))\n\t}\n\n\tcomponentWillLoad() {\n\t\tthis.watchDisabled()\n\t}\n\n\trender() {\n\t\tconst bordered = this.isBordered === true ? \" bordered\" : \"\"\n\t\treturn (\n\t\t\t<Host class={this.h.classes(ControlGroupClass.root) + bordered} variant={this.variant} invalid={toBoolAttrIfDefined(this.invalid)} disabled={this.disabled}>\n\t\t\t\t<slot />\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -95,6 +95,9 @@
95
95
  /*
96
96
  - Variables - Colors
97
97
  */
98
+ /*
99
+ - Variables - Control Group
100
+ */
98
101
  /*
99
102
  - Variables - Cookiebar
100
103
  */
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -1,6 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { govHost } from "../../../helpers/Dom/template";
3
2
  import { govForm } from "../../../helpers/Dom/form";
3
+ import { govHost } from "../../../helpers/Dom/template";
4
4
  import { createID, splitByWhitespace } from "../../../utils/string.utils";
5
5
  import { FormControlClass } from "./constants";
6
6
  export class GovFormControl {
@@ -16,11 +16,10 @@ export class GovFormControl {
16
16
  this.f = govForm(this.h);
17
17
  this.controlId = createID("GovFormControl");
18
18
  }
19
- watchInvalid() {
20
- this.passChildAttrs();
21
- }
22
19
  componentDidRender() {
23
20
  this.passChildAttrs();
21
+ this.invalidChildAttrs();
22
+ this.disabledChildAttrs();
24
23
  this.syncControlMessages();
25
24
  this.formElementDescriptionControl();
26
25
  }
@@ -44,6 +43,38 @@ export class GovFormControl {
44
43
  this.h.passChildAttr([...formElements, "gov-form-label"], "identifier", this.identifier || this.controlId);
45
44
  }
46
45
  }
46
+ invalidChildAttrs() {
47
+ const formElements = [
48
+ "gov-form-select",
49
+ "gov-form-input",
50
+ "gov-form-switch",
51
+ "gov-form-checkbox",
52
+ "gov-form-radio",
53
+ "gov-form-multi-select",
54
+ "gov-form-file",
55
+ "gov-form-search",
56
+ ];
57
+ this.h.passChildAttr(formElements, "invalid", this.invalid);
58
+ if (this.f.hasGroupChildren === false) {
59
+ this.h.passChildAttr([...formElements, "gov-form-label"], "identifier", this.identifier || this.controlId);
60
+ }
61
+ }
62
+ disabledChildAttrs() {
63
+ const formElements = [
64
+ "gov-form-select",
65
+ "gov-form-input",
66
+ "gov-form-switch",
67
+ "gov-form-checkbox",
68
+ "gov-form-radio",
69
+ "gov-form-multi-select",
70
+ "gov-form-file",
71
+ "gov-form-search",
72
+ ];
73
+ this.h.passChildAttr(formElements, "disabled", this.disabled);
74
+ if (this.f.hasGroupChildren === false) {
75
+ this.h.passChildAttr([...formElements, "gov-form-label"], "identifier", this.identifier || this.controlId);
76
+ }
77
+ }
47
78
  formElementDescriptionControl() {
48
79
  const bottomSlot = this.host.querySelector("." + FormControlClass.bottom);
49
80
  if (!bottomSlot)
@@ -221,11 +252,5 @@ export class GovFormControl {
221
252
  };
222
253
  }
223
254
  static get elementRef() { return "host"; }
224
- static get watchers() {
225
- return [{
226
- "propName": "invalid",
227
- "methodName": "watchInvalid"
228
- }];
229
- }
230
255
  }
231
256
  //# sourceMappingURL=gov-form-control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gov-form-control.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/control/gov-form-control.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop, Watch } from \"@stencil/core\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { createID, splitByWhitespace } from \"../../../utils/string.utils\"\nimport { FormControlClass, FormControlSizesType } from \"./constants\"\n\n@Component({\n\ttag: \"gov-form-control\",\n\tstyleUrl: \"gov-form-control.scss\",\n})\nexport class GovFormControl {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate readonly controlId: string\n\tprivate observer: MutationObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t\tthis.controlId = createID(\"GovFormControl\")\n\t}\n\n\t@Element() host: HTMLGovFormControlElement\n\t/**\n\t * Defines the space between nested components.\n\t */\n\t@Prop() readonly gap?: FormControlSizesType\n\t/**\n\t * Form element identifier\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value of child form element does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean = false\n\t/**\n\t/**\n\t * Indicates the form element is disabled\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean = false\n\t/**\n\t * Use control as a fieldset for better accessibility.\n\t * Note: Don't forget to set the legend attribute of the gov-form-label component\n\t */\n\t@Prop() readonly fieldset: boolean = false\n\t/**\n\t * Form element size.\n\t */\n\t@Prop() readonly size?: FormControlSizesType = \"m\"\n\n\t@Watch(\"invalid\")\n\twatchInvalid(): void {\n\t\tthis.passChildAttrs()\n\t}\n\n\tcomponentDidRender() {\n\t\tthis.passChildAttrs()\n\t\tthis.syncControlMessages()\n\t\tthis.formElementDescriptionControl()\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis.observer?.disconnect()\n\t}\n\n\tprivate passChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"success\", this.success)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate formElementDescriptionControl() {\n\t\tconst bottomSlot = this.host.querySelector(\".\" + FormControlClass.bottom)\n\t\tif (!bottomSlot) return\n\t\tthis.observer = new MutationObserver(\n\t\t\tfunction() {\n\t\t\t\tthis.syncControlMessages()\n\t\t\t}.bind(this),\n\t\t)\n\n\t\tthis.observer.observe(bottomSlot, { childList: true })\n\t}\n\n\tprivate syncControlMessages() {\n\t\tPromise.all(this.f.messageElements.map((message: HTMLGovFormMessageElement) => message.identifier())).then((ids: string[]) => {\n\t\t\tthis.f.mainElementsInControl.forEach((element: Element) => {\n\t\t\t\tconst currentValue = splitByWhitespace(element.getAttribute(\"wcag-described-by\"))\n\t\t\t\telement.removeAttribute(\"wcag-described-by\")\n\t\t\t\tif (Array.isArray(currentValue)) {\n\t\t\t\t\tcurrentValue.forEach(id => (id.indexOf(\"GovFormMessage\") === -1 ? ids.push(id) : null))\n\t\t\t\t}\n\t\t\t\tif (ids.length) {\n\t\t\t\t\telement.setAttribute(\"wcag-described-by\", ids.join(\" \"))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\tconst Tag = this.fieldset ? \"fieldset\" : \"div\"\n\t\treturn (\n\t\t\t<Host size={this.size} class={this.h.classes(FormControlClass.root)}>\n\t\t\t\t<Tag class={FormControlClass.holder}>\n\t\t\t\t\t{this.h.hasSlot(\"top\") && <slot name=\"top\"></slot>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t{this.h.hasSlot(\"bottom\") && (\n\t\t\t\t\t\t<div class={FormControlClass.bottom}>\n\t\t\t\t\t\t\t<slot name=\"bottom\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
1
+ {"version":3,"file":"gov-form-control.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/control/gov-form-control.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, h, Host, Prop } from \"@stencil/core\"\nimport { govForm } from \"../../../helpers/Dom/form\"\nimport { GovForm } from \"../../../helpers/Dom/form.types\"\nimport { govHost } from \"../../../helpers/Dom/template\"\nimport { GovHost } from \"../../../helpers/Dom/template.types\"\nimport { createID, splitByWhitespace } from \"../../../utils/string.utils\"\nimport { FormControlClass, FormControlSizesType } from \"./constants\"\n\n@Component({\n\ttag: \"gov-form-control\",\n\tstyleUrl: \"gov-form-control.scss\",\n})\nexport class GovFormControl {\n\tprivate readonly h: GovHost\n\tprivate f: GovForm\n\tprivate readonly controlId: string\n\tprivate observer: MutationObserver\n\n\tconstructor() {\n\t\tthis.h = govHost(this.host)\n\t\tthis.f = govForm(this.h)\n\t\tthis.controlId = createID(\"GovFormControl\")\n\t}\n\n\t@Element() host: HTMLGovFormControlElement\n\t/**\n\t * Defines the space between nested components.\n\t */\n\t@Prop() readonly gap?: FormControlSizesType\n\t/**\n\t * Form element identifier\n\t */\n\t@Prop({ attribute: \"identifier\" }) readonly identifier: string\n\t/**\n\t * Indicates the entered value of child form element does not conform to the format expected by the application.\n\t */\n\t@Prop() readonly invalid: boolean = false\n\t/**\n\t/**\n\t * Indicates the form element is disabled\n\t */\n\t@Prop() readonly disabled: boolean = false\n\t/**\n\t/**\n\t * Indicates the entered value of child form element does conform to the format expected by the application.\n\t */\n\t@Prop() readonly success: boolean = false\n\t/**\n\t * Use control as a fieldset for better accessibility.\n\t * Note: Don't forget to set the legend attribute of the gov-form-label component\n\t */\n\t@Prop() readonly fieldset: boolean = false\n\t/**\n\t * Form element size.\n\t */\n\t@Prop() readonly size?: FormControlSizesType = \"m\"\n\n\tcomponentDidRender() {\n\t\tthis.passChildAttrs()\n\t\tthis.invalidChildAttrs()\n\t\tthis.disabledChildAttrs()\n\t\tthis.syncControlMessages()\n\t\tthis.formElementDescriptionControl()\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis.observer?.disconnect()\n\t}\n\n\tprivate passChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"success\", this.success)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate invalidChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"invalid\", this.invalid)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate disabledChildAttrs() {\n\t\tconst formElements = [\n\t\t\t\"gov-form-select\",\n\t\t\t\"gov-form-input\",\n\t\t\t\"gov-form-switch\",\n\t\t\t\"gov-form-checkbox\",\n\t\t\t\"gov-form-radio\",\n\t\t\t\"gov-form-multi-select\",\n\t\t\t\"gov-form-file\",\n\t\t\t\"gov-form-search\",\n\t\t]\n\t\tthis.h.passChildAttr(formElements, \"disabled\", this.disabled)\n\n\t\tif (this.f.hasGroupChildren === false) {\n\t\t\tthis.h.passChildAttr([...formElements, \"gov-form-label\"], \"identifier\", this.identifier || this.controlId)\n\t\t}\n\t}\n\n\tprivate formElementDescriptionControl() {\n\t\tconst bottomSlot = this.host.querySelector(\".\" + FormControlClass.bottom)\n\t\tif (!bottomSlot) return\n\t\tthis.observer = new MutationObserver(\n\t\t\tfunction() {\n\t\t\t\tthis.syncControlMessages()\n\t\t\t}.bind(this),\n\t\t)\n\n\t\tthis.observer.observe(bottomSlot, { childList: true })\n\t}\n\n\tprivate syncControlMessages() {\n\t\tPromise.all(this.f.messageElements.map((message: HTMLGovFormMessageElement) => message.identifier())).then((ids: string[]) => {\n\t\t\tthis.f.mainElementsInControl.forEach((element: Element) => {\n\t\t\t\tconst currentValue = splitByWhitespace(element.getAttribute(\"wcag-described-by\"))\n\t\t\t\telement.removeAttribute(\"wcag-described-by\")\n\t\t\t\tif (Array.isArray(currentValue)) {\n\t\t\t\t\tcurrentValue.forEach(id => (id.indexOf(\"GovFormMessage\") === -1 ? ids.push(id) : null))\n\t\t\t\t}\n\t\t\t\tif (ids.length) {\n\t\t\t\t\telement.setAttribute(\"wcag-described-by\", ids.join(\" \"))\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\trender() {\n\t\tconst Tag = this.fieldset ? \"fieldset\" : \"div\"\n\t\treturn (\n\t\t\t<Host size={this.size} class={this.h.classes(FormControlClass.root)}>\n\t\t\t\t<Tag class={FormControlClass.holder}>\n\t\t\t\t\t{this.h.hasSlot(\"top\") && <slot name=\"top\"></slot>}\n\t\t\t\t\t<slot></slot>\n\t\t\t\t\t{this.h.hasSlot(\"bottom\") && (\n\t\t\t\t\t\t<div class={FormControlClass.bottom}>\n\t\t\t\t\t\t\t<slot name=\"bottom\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</Tag>\n\t\t\t</Host>\n\t\t)\n\t}\n}\n"]}
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -278,6 +281,13 @@
278
281
  .gov-form-file[expanded=""][invalid=""] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=""][invalid=true i] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=""][invalid="1"] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=true i][invalid=""] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=true i][invalid=true i] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=true i][invalid="1"] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded="1"][invalid=""] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded="1"][invalid=true i] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded="1"][invalid="1"] .gov-form-file__label .gov-form-label__label {
279
282
  border-color: var(--gov-form-state-color-error, var(--gov-color-error));
280
283
  }
284
+ .gov-form-file[expanded=""][invalid=""] .gov-form-file__area, .gov-form-file[expanded=""][invalid=true i] .gov-form-file__area, .gov-form-file[expanded=""][invalid="1"] .gov-form-file__area, .gov-form-file[expanded=true i][invalid=""] .gov-form-file__area, .gov-form-file[expanded=true i][invalid=true i] .gov-form-file__area, .gov-form-file[expanded=true i][invalid="1"] .gov-form-file__area, .gov-form-file[expanded="1"][invalid=""] .gov-form-file__area, .gov-form-file[expanded="1"][invalid=true i] .gov-form-file__area, .gov-form-file[expanded="1"][invalid="1"] .gov-form-file__area {
285
+ border-color: var(--gov-form-state-color-error, var(--gov-color-error));
286
+ }
287
+ .gov-form-file[expanded=""][disabled=""] .gov-form-file__area, .gov-form-file[expanded=""][disabled=true i] .gov-form-file__area, .gov-form-file[expanded=""][disabled="1"] .gov-form-file__area, .gov-form-file[expanded=true i][disabled=""] .gov-form-file__area, .gov-form-file[expanded=true i][disabled=true i] .gov-form-file__area, .gov-form-file[expanded=true i][disabled="1"] .gov-form-file__area, .gov-form-file[expanded="1"][disabled=""] .gov-form-file__area, .gov-form-file[expanded="1"][disabled=true i] .gov-form-file__area, .gov-form-file[expanded="1"][disabled="1"] .gov-form-file__area {
288
+ pointer-events: none;
289
+ color: var(--gov-form-file-disabled-color, var(--gov-color-secondary-600));
290
+ }
281
291
  @media (min-width: 30em) {
282
292
  .gov-form-file[expanded=""] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded=true i] .gov-form-file__label .gov-form-label__label, .gov-form-file[expanded="1"] .gov-form-file__label .gov-form-label__label {
283
293
  padding: 2rem;
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -1,7 +1,7 @@
1
1
  import { Sizes } from '../../../core/constants/sizes';
2
2
  import { Variants } from '../../../core/constants/variants';
3
3
  import { pick } from '../../../utils/utils';
4
- export const FormInputSizes = pick(Sizes, ['_M', '_L', '_XL']);
4
+ export const FormInputSizes = pick(Sizes, ['_S', '_M', '_L', '_XL']);
5
5
  export const FormInputVariants = pick(Variants, ['PRIMARY', 'SECONDARY']);
6
6
  export var InputTypes;
7
7
  (function (InputTypes) {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/input/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAG3C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AAG9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;AAGzE,MAAM,CAAN,IAAY,UAcX;AAdD,WAAY,UAAU;EACrB,6BAAe,CAAA;EACf,2BAAa,CAAA;EACb,+CAAiC,CAAA;EACjC,6BAAe,CAAA;EACf,6BAAe,CAAA;EACf,+BAAiB,CAAA;EACjB,mCAAqB,CAAA;EACrB,+BAAiB,CAAA;EACjB,yBAAW,CAAA;EACX,2BAAa,CAAA;EACb,2BAAa,CAAA;EACb,yBAAW,CAAA;EACX,2BAAa,CAAA;AACd,CAAC,EAdW,UAAU,KAAV,UAAU,QAcrB;AAID,MAAM,CAAN,IAAY,IAEX;AAFD,WAAY,IAAI;EACf,uBAAe,CAAA;AAChB,CAAC,EAFW,IAAI,KAAJ,IAAI,QAEf;AAID,MAAM,CAAC,MAAM,cAAc,GAAG;EAC7B,IAAI,EAAE,gBAAgB;CACtB,CAAA","sourcesContent":["import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { pick } from '../../../utils/utils'\nimport { ValueOf } from '../../../types/interfaces'\n\nexport const FormInputSizes = pick(Sizes, ['_M', '_L', '_XL'])\nexport type FormInputSizesType = `${ValueOf<typeof FormInputSizes>}`\n\nexport const FormInputVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormInputVariantType = `${ValueOf<typeof FormInputVariants>}`\n\nexport enum InputTypes {\n\tCOLOR = 'color',\n\tDATE = 'date',\n\tDATETIME_LOCAL = 'datetime-local',\n\tEMAIL = 'email',\n\tMONTH = 'month',\n\tNUMBER = 'number',\n\tPASSWORD = 'password',\n\tSEARCH = 'search',\n\tTEL = 'tel',\n\tTEXT = 'text',\n\tTIME = 'time',\n\tURL = 'url',\n\tWEEK = 'week',\n}\n\nexport type InputType = `${ValueOf<typeof InputTypes>}`\n\nexport enum Type {\n\tRESET = 'reset',\n}\n\nexport type TypesType = `${ValueOf<typeof Type>}`\n\nexport const FormInputClass = {\n\troot: 'gov-form-input',\n}\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../../src/components/gov-form/input/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAA;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAE3D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;AAGpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC,CAAA;AAGzE,MAAM,CAAN,IAAY,UAcX;AAdD,WAAY,UAAU;EACrB,6BAAe,CAAA;EACf,2BAAa,CAAA;EACb,+CAAiC,CAAA;EACjC,6BAAe,CAAA;EACf,6BAAe,CAAA;EACf,+BAAiB,CAAA;EACjB,mCAAqB,CAAA;EACrB,+BAAiB,CAAA;EACjB,yBAAW,CAAA;EACX,2BAAa,CAAA;EACb,2BAAa,CAAA;EACb,yBAAW,CAAA;EACX,2BAAa,CAAA;AACd,CAAC,EAdW,UAAU,KAAV,UAAU,QAcrB;AAID,MAAM,CAAN,IAAY,IAEX;AAFD,WAAY,IAAI;EACf,uBAAe,CAAA;AAChB,CAAC,EAFW,IAAI,KAAJ,IAAI,QAEf;AAID,MAAM,CAAC,MAAM,cAAc,GAAG;EAC7B,IAAI,EAAE,gBAAgB;CACtB,CAAA","sourcesContent":["import { Sizes } from '../../../core/constants/sizes'\nimport { Variants } from '../../../core/constants/variants'\nimport { ValueOf } from '../../../types/interfaces'\nimport { pick } from '../../../utils/utils'\n\nexport const FormInputSizes = pick(Sizes, ['_S', '_M', '_L', '_XL'])\nexport type FormInputSizesType = `${ValueOf<typeof FormInputSizes>}`\n\nexport const FormInputVariants = pick(Variants, ['PRIMARY', 'SECONDARY'])\nexport type FormInputVariantType = `${ValueOf<typeof FormInputVariants>}`\n\nexport enum InputTypes {\n\tCOLOR = 'color',\n\tDATE = 'date',\n\tDATETIME_LOCAL = 'datetime-local',\n\tEMAIL = 'email',\n\tMONTH = 'month',\n\tNUMBER = 'number',\n\tPASSWORD = 'password',\n\tSEARCH = 'search',\n\tTEL = 'tel',\n\tTEXT = 'text',\n\tTIME = 'time',\n\tURL = 'url',\n\tWEEK = 'week',\n}\n\nexport type InputType = `${ValueOf<typeof InputTypes>}`\n\nexport enum Type {\n\tRESET = 'reset',\n}\n\nexport type TypesType = `${ValueOf<typeof Type>}`\n\nexport const FormInputClass = {\n\troot: 'gov-form-input',\n}\n"]}
@@ -81,6 +81,9 @@
81
81
  /*
82
82
  - Variables - Colors
83
83
  */
84
+ /*
85
+ - Variables - Control Group
86
+ */
84
87
  /*
85
88
  - Variables - Cookiebar
86
89
  */
@@ -239,10 +242,8 @@
239
242
  .gov-form-input select,
240
243
  .gov-form-input textarea {
241
244
  width: 100%;
242
- border: var(--gov-form-input-border-width, 0.0625rem solid var(--gov-color-secondary-700));
243
245
  border-radius: var(--gov-border-radius, 0.1875rem);
244
246
  background-color: var(--gov-form-bg-color, var(--gov-color-neutral-white));
245
- color: var(--gov-form-input-color, var(--gov-color-secondary-700));
246
247
  font-family: var(--gov-font-family, "Roboto", sans-serif);
247
248
  }
248
249
  .gov-form-input input:focus,
@@ -279,7 +280,6 @@
279
280
  top: 50%;
280
281
  display: flex;
281
282
  justify-content: center;
282
- color: var(--gov-form-input-icon-color, var(--gov-color-primary));
283
283
  transform: translateY(-50%);
284
284
  pointer-events: none;
285
285
  }
@@ -289,59 +289,38 @@
289
289
  .gov-form-input *[slot=right-icon] {
290
290
  right: 0;
291
291
  }
292
- [disabled=""].gov-form-input, [disabled=true i].gov-form-input, [disabled="1"].gov-form-input {
293
- pointer-events: none;
292
+ [size=s].gov-form-input {
293
+ font-weight: var(--gov-text-s-font-weight);
294
+ font-size: var(--gov-text-s-font-size);
295
+ line-height: var(--gov-text-s-line-height);
296
+ letter-spacing: var(--gov-text-s-letter-spacing);
297
+ gap: 0.5rem var(--gov-form-input-core-s-icon-size, 1rem);
294
298
  }
295
- [disabled=""].gov-form-input input,
296
- [disabled=""].gov-form-input select,
297
- [disabled=""].gov-form-input textarea, [disabled=true i].gov-form-input input,
298
- [disabled=true i].gov-form-input select,
299
- [disabled=true i].gov-form-input textarea, [disabled="1"].gov-form-input input,
300
- [disabled="1"].gov-form-input select,
301
- [disabled="1"].gov-form-input textarea {
302
- border-color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
303
- background: var(--gov-form-input-disabled-bg, var(--gov-color-secondary-300));
304
- color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
305
- }
306
- [disabled=""].gov-form-input *[slot=left-icon],
307
- [disabled=""].gov-form-input *[slot=right-icon], [disabled=true i].gov-form-input *[slot=left-icon],
308
- [disabled=true i].gov-form-input *[slot=right-icon], [disabled="1"].gov-form-input *[slot=left-icon],
309
- [disabled="1"].gov-form-input *[slot=right-icon] {
310
- color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
311
- }
312
- [invalid=""].gov-form-input input,
313
- [invalid=""].gov-form-input select,
314
- [invalid=""].gov-form-input textarea, [invalid=true i].gov-form-input input,
315
- [invalid=true i].gov-form-input select,
316
- [invalid=true i].gov-form-input textarea, [invalid="1"].gov-form-input input,
317
- [invalid="1"].gov-form-input select,
318
- [invalid="1"].gov-form-input textarea {
319
- border-color: var(--gov-form-state-color-error, var(--gov-color-error));
320
- color: var(--gov-form-state-color-error, var(--gov-color-error));
299
+ [size=s].gov-form-input input,
300
+ [size=s].gov-form-input select {
301
+ font-weight: var(--gov-text-s-font-weight);
302
+ font-size: var(--gov-text-s-font-size);
303
+ line-height: var(--gov-text-s-line-height);
304
+ letter-spacing: var(--gov-text-s-letter-spacing);
305
+ height: var(--gov-form-input-core-s-height, 2rem);
306
+ padding: var(--gov-form-input-core-s-padding, 0.25rem 0.75rem);
321
307
  }
322
- [invalid=""].gov-form-input input::-moz-placeholder, [invalid=""].gov-form-input select::-moz-placeholder, [invalid=""].gov-form-input textarea::-moz-placeholder, [invalid=true i].gov-form-input input::-moz-placeholder, [invalid=true i].gov-form-input select::-moz-placeholder, [invalid=true i].gov-form-input textarea::-moz-placeholder, [invalid="1"].gov-form-input input::-moz-placeholder, [invalid="1"].gov-form-input select::-moz-placeholder, [invalid="1"].gov-form-input textarea::-moz-placeholder {
323
- color: var(--gov-form-state-color-error, var(--gov-color-error-300));
308
+ [size=s].gov-form-input *[slot=left-icon],
309
+ [size=s].gov-form-input *[slot=right-icon] {
310
+ width: var(--gov-form-input-core-s-icon-size, 1rem);
311
+ height: var(--gov-form-input-core-s-icon-size, 1rem);
324
312
  }
325
- [invalid=""].gov-form-input input::placeholder,
326
- [invalid=""].gov-form-input select::placeholder,
327
- [invalid=""].gov-form-input textarea::placeholder, [invalid=true i].gov-form-input input::placeholder,
328
- [invalid=true i].gov-form-input select::placeholder,
329
- [invalid=true i].gov-form-input textarea::placeholder, [invalid="1"].gov-form-input input::placeholder,
330
- [invalid="1"].gov-form-input select::placeholder,
331
- [invalid="1"].gov-form-input textarea::placeholder {
332
- color: var(--gov-form-state-color-error, var(--gov-color-error-300));
313
+ [size=s].gov-form-input *[slot=left-icon] {
314
+ left: calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2);
333
315
  }
334
- [invalid=""].gov-form-input *[slot=left-icon],
335
- [invalid=""].gov-form-input *[slot=right-icon], [invalid=true i].gov-form-input *[slot=left-icon],
336
- [invalid=true i].gov-form-input *[slot=right-icon], [invalid="1"].gov-form-input *[slot=left-icon],
337
- [invalid="1"].gov-form-input *[slot=right-icon] {
338
- color: var(--gov-form-state-color-error, var(--gov-color-error));
316
+ [size=s].gov-form-input *[slot=left-icon] ~ input {
317
+ padding-left: var(--gov-form-input-core-s-icon-padding, 2rem);
339
318
  }
340
- [success=""].gov-form-input *[slot=right-icon], [success=true i].gov-form-input *[slot=right-icon], [success="1"].gov-form-input *[slot=right-icon] {
341
- color: var(--gov-form-state-color-success, var(--gov-color-success));
319
+ [size=s].gov-form-input *[slot=right-icon] {
320
+ right: calc((var(--gov-form-input-core-s-icon-padding, 2rem) - var(--gov-form-input-core-s-icon-size, 1rem)) / 2);
342
321
  }
343
- [success=""].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), [success=true i].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), [success="1"].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow) {
344
- display: none;
322
+ [size=s].gov-form-input *[slot=right-icon] ~ input, [size=s].gov-form-input *[slot=right-icon] ~ select {
323
+ padding-right: var(--gov-form-input-core-s-icon-padding, 2rem);
345
324
  }
346
325
  [size=m].gov-form-input {
347
326
  font-weight: var(--gov-text-m-font-weight);
@@ -442,6 +421,80 @@
442
421
  [size=xl].gov-form-input *[slot=right-icon] ~ input, [size=xl].gov-form-input *[slot=right-icon] ~ select {
443
422
  padding-right: var(--gov-form-input-core-xl-icon-padding, 3rem);
444
423
  }
424
+ [variant=primary].gov-form-input input,
425
+ [variant=primary].gov-form-input select,
426
+ [variant=primary].gov-form-input textarea {
427
+ color: var(--gov-form-input-color-primary, var(--gov-color-secondary-700));
428
+ border: var(--gov-form-input-border-primary, 0.0625rem solid var(--gov-color-primary-600));
429
+ }
430
+ [variant=primary].gov-form-input *[slot=left-icon],
431
+ [variant=primary].gov-form-input *[slot=right-icon] {
432
+ color: var(--gov-form-input-icon-color-primary, var(--gov-color-primary));
433
+ }
434
+ [variant=secondary].gov-form-input input,
435
+ [variant=secondary].gov-form-input select,
436
+ [variant=secondary].gov-form-input textarea {
437
+ color: var(--gov-form-input-color-secondary, var(--gov-color-secondary-700));
438
+ border: var(--gov-form-input-border-secondary, 0.0625rem solid var(--gov-color-secondary-700));
439
+ }
440
+ [variant=secondary].gov-form-input *[slot=left-icon],
441
+ [variant=secondary].gov-form-input *[slot=right-icon] {
442
+ color: var(--gov-form-input-icon-color-secondary, var(--gov-color-primary));
443
+ }
444
+ [disabled=""].gov-form-input, [disabled=true i].gov-form-input, [disabled="1"].gov-form-input {
445
+ pointer-events: none;
446
+ }
447
+ [disabled=""].gov-form-input input,
448
+ [disabled=""].gov-form-input select,
449
+ [disabled=""].gov-form-input textarea, [disabled=true i].gov-form-input input,
450
+ [disabled=true i].gov-form-input select,
451
+ [disabled=true i].gov-form-input textarea, [disabled="1"].gov-form-input input,
452
+ [disabled="1"].gov-form-input select,
453
+ [disabled="1"].gov-form-input textarea {
454
+ border-color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
455
+ background: var(--gov-form-input-disabled-bg, var(--gov-color-secondary-300));
456
+ color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
457
+ }
458
+ [disabled=""].gov-form-input *[slot=left-icon],
459
+ [disabled=""].gov-form-input *[slot=right-icon], [disabled=true i].gov-form-input *[slot=left-icon],
460
+ [disabled=true i].gov-form-input *[slot=right-icon], [disabled="1"].gov-form-input *[slot=left-icon],
461
+ [disabled="1"].gov-form-input *[slot=right-icon] {
462
+ color: var(--gov-form-state-color-disabled, var(--gov-color-secondary-600));
463
+ }
464
+ [invalid=""].gov-form-input input,
465
+ [invalid=""].gov-form-input select,
466
+ [invalid=""].gov-form-input textarea, [invalid=true i].gov-form-input input,
467
+ [invalid=true i].gov-form-input select,
468
+ [invalid=true i].gov-form-input textarea, [invalid="1"].gov-form-input input,
469
+ [invalid="1"].gov-form-input select,
470
+ [invalid="1"].gov-form-input textarea {
471
+ border-color: var(--gov-form-state-color-error, var(--gov-color-error));
472
+ color: var(--gov-form-state-color-error, var(--gov-color-error));
473
+ }
474
+ [invalid=""].gov-form-input input::-moz-placeholder, [invalid=""].gov-form-input select::-moz-placeholder, [invalid=""].gov-form-input textarea::-moz-placeholder, [invalid=true i].gov-form-input input::-moz-placeholder, [invalid=true i].gov-form-input select::-moz-placeholder, [invalid=true i].gov-form-input textarea::-moz-placeholder, [invalid="1"].gov-form-input input::-moz-placeholder, [invalid="1"].gov-form-input select::-moz-placeholder, [invalid="1"].gov-form-input textarea::-moz-placeholder {
475
+ color: var(--gov-form-state-color-error, var(--gov-color-error-300));
476
+ }
477
+ [invalid=""].gov-form-input input::placeholder,
478
+ [invalid=""].gov-form-input select::placeholder,
479
+ [invalid=""].gov-form-input textarea::placeholder, [invalid=true i].gov-form-input input::placeholder,
480
+ [invalid=true i].gov-form-input select::placeholder,
481
+ [invalid=true i].gov-form-input textarea::placeholder, [invalid="1"].gov-form-input input::placeholder,
482
+ [invalid="1"].gov-form-input select::placeholder,
483
+ [invalid="1"].gov-form-input textarea::placeholder {
484
+ color: var(--gov-form-state-color-error, var(--gov-color-error-300));
485
+ }
486
+ [invalid=""].gov-form-input *[slot=left-icon],
487
+ [invalid=""].gov-form-input *[slot=right-icon], [invalid=true i].gov-form-input *[slot=left-icon],
488
+ [invalid=true i].gov-form-input *[slot=right-icon], [invalid="1"].gov-form-input *[slot=left-icon],
489
+ [invalid="1"].gov-form-input *[slot=right-icon] {
490
+ color: var(--gov-form-state-color-error, var(--gov-color-error));
491
+ }
492
+ [success=""].gov-form-input *[slot=right-icon], [success=true i].gov-form-input *[slot=right-icon], [success="1"].gov-form-input *[slot=right-icon] {
493
+ color: var(--gov-form-state-color-success, var(--gov-color-success));
494
+ }
495
+ [success=""].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), [success=true i].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), [success="1"].gov-form-input *[slot=right-icon]:not(.icon-validation):not(.icon-arrow) {
496
+ display: none;
497
+ }
445
498
 
446
499
  .gov-form-input[invalid=""] *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), .gov-form-input[invalid=true i] *[slot=right-icon]:not(.icon-validation):not(.icon-arrow), .gov-form-input[invalid="1"] *[slot=right-icon]:not(.icon-validation):not(.icon-arrow) {
447
500
  display: none;
@@ -1,13 +1,12 @@
1
1
  import { Host, h } from '@stencil/core';
2
- import { FormInputSizes } from './constants';
3
- import { createID } from '../../../utils/string.utils';
2
+ import { govForm } from '../../../helpers/Dom/form';
4
3
  import { govHost, toBoolAttr, toBoolAttrIfDefined, toOnOffAttrIfDefined } from "../../../helpers/Dom/template";
5
- import { FormInputClass, FormInputVariants } from './constants';
6
- import { validateProp } from '../../../helpers/Validate/props';
7
4
  import { canValidateWcagOnRender } from '../../../helpers/Dom/win';
8
- import { delay } from '../../../utils/utils';
5
+ import { validateProp } from '../../../helpers/Validate/props';
9
6
  import { validateWcagLabelFor, validateWcagRef } from '../../../helpers/Validate/wcag';
10
- import { govForm } from '../../../helpers/Dom/form';
7
+ import { createID } from '../../../utils/string.utils';
8
+ import { delay } from '../../../utils/utils';
9
+ import { FormInputClass, FormInputSizes, FormInputVariants } from './constants';
11
10
  var Tags;
12
11
  (function (Tags) {
13
12
  Tags["INPUT"] = "input";
@@ -17,7 +16,7 @@ export class GovFormInput {
17
16
  constructor() {
18
17
  this.value = undefined;
19
18
  this.identifier = undefined;
20
- this.variant = undefined;
19
+ this.variant = 'secondary';
21
20
  this.success = undefined;
22
21
  this.size = 'm';
23
22
  this.name = undefined;
@@ -223,7 +222,8 @@ export class GovFormInput {
223
222
  "text": "Style variation of the form input."
224
223
  },
225
224
  "attribute": "variant",
226
- "reflect": false
225
+ "reflect": false,
226
+ "defaultValue": "'secondary'"
227
227
  },
228
228
  "success": {
229
229
  "type": "boolean",
@@ -247,7 +247,7 @@ export class GovFormInput {
247
247
  "mutable": false,
248
248
  "complexType": {
249
249
  "original": "FormInputSizesType",
250
- "resolved": "\"l\" | \"m\" | \"xl\"",
250
+ "resolved": "\"l\" | \"m\" | \"s\" | \"xl\"",
251
251
  "references": {
252
252
  "FormInputSizesType": {
253
253
  "location": "import",