srcdev-nuxt-forms 5.1.0 → 6.0.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 (162) hide show
  1. package/README.md +16 -0
  2. package/app/assets/styles/extends-layer/srcdev-forms/components/_form-fieldset.css +38 -0
  3. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-button.css +66 -0
  4. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-core.css +66 -0
  5. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-options-button.css +76 -0
  6. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-error.css +54 -0
  7. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-label.css +21 -0
  8. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-select.css +140 -0
  9. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-text.css +190 -0
  10. package/app/assets/styles/extends-layer/srcdev-forms/components/_input-textarea.css +96 -0
  11. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/components/index.css +3 -4
  12. package/app/assets/styles/extends-layer/srcdev-forms/setup/_generic.css +21 -0
  13. package/app/assets/styles/extends-layer/srcdev-forms/setup/index.css +4 -0
  14. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_error.css +12 -12
  15. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_ghost.css +12 -12
  16. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_input-action-underlined.css +7 -7
  17. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_input-action.css +7 -7
  18. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_primary.css +12 -12
  19. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_secondary.css +12 -12
  20. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_success.css +12 -12
  21. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_tertiary.css +12 -12
  22. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/_warning.css +12 -12
  23. package/app/assets/styles/extends-layer/srcdev-forms/setup/variables/_a11y.css +7 -0
  24. package/app/assets/styles/extends-layer/srcdev-forms/setup/variables/index.css +1 -0
  25. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/_normal.css +48 -0
  26. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/variants/_underlined.css +12 -12
  27. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/index.css +3 -0
  28. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/sizes/_default.css +13 -0
  29. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/sizes/_large.css +12 -0
  30. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/sizes/_medium.css +12 -0
  31. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/sizes/_small.css +12 -0
  32. package/app/assets/styles/extends-layer/srcdev-forms/setup/variants/sizes/_x-small.css +11 -0
  33. package/{assets/styles/extends-layer/srcdev-forms/setup → app/assets/styles/extends-layer/srcdev-forms/setup/variants}/sizes/index.css +2 -0
  34. package/app/assets/styles/setup/_head.css +36 -0
  35. package/app/assets/styles/setup/index.css +5 -0
  36. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_blue.css +1 -1
  37. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/index.css +1 -0
  38. package/app/assets/styles/setup/theming/themes/_default.css +66 -0
  39. package/app/assets/styles/setup/theming/themes/_error.css +66 -0
  40. package/app/assets/styles/setup/theming/themes/_ghost.css +31 -0
  41. package/app/assets/styles/setup/theming/themes/_info.css +31 -0
  42. package/app/assets/styles/setup/theming/themes/_primary.css +41 -0
  43. package/app/assets/styles/setup/theming/themes/_secondary.css +66 -0
  44. package/app/assets/styles/setup/theming/themes/_success.css +66 -0
  45. package/app/assets/styles/setup/theming/themes/_tertiary.css +31 -0
  46. package/app/assets/styles/setup/theming/themes/_warning.css +68 -0
  47. package/app/assets/styles/setup/theming/themes/index.css +9 -0
  48. package/app/assets/styles/setup/typography/index.css +2 -0
  49. package/app/assets/styles/setup/typography/utility-classes/_generic-font-classes.css +217 -0
  50. package/app/assets/styles/setup/typography/utility-classes/_generic-font-variation-settings.css +29 -0
  51. package/app/assets/styles/setup/typography/utility-classes/_generic-font-weights.css +39 -0
  52. package/app/assets/styles/setup/typography/vars/_colors.css +14 -0
  53. package/app/assets/styles/setup/typography/vars/_reponsive-font-sizes.css +12 -0
  54. package/{assets → app/assets}/styles/setup/typography/vars/index.css +1 -0
  55. package/app/assets/styles/setup/utility-classes/_fluid-spacing.css +13 -0
  56. package/app/assets/styles/setup/utility-classes/animations/_auto-rotate.css +13 -0
  57. package/app/assets/styles/setup/utility-classes/animations/_entry-exit-blur.css +16 -0
  58. package/app/assets/styles/setup/utility-classes/animations/_entry-slide-in.css +15 -0
  59. package/app/assets/styles/setup/utility-classes/animations/_entry-zoom-reveal.css +15 -0
  60. package/app/assets/styles/setup/utility-classes/animations/index.css +4 -0
  61. package/app/assets/styles/setup/utility-classes/index.css +2 -0
  62. package/app/assets/styles/setup/variables/index.css +1 -0
  63. package/{components → app/components}/forms/form-errors/InputError.vue +32 -49
  64. package/{components → app/components}/forms/form-fieldset/FormFieldset.vue +9 -9
  65. package/{components → app/components}/forms/input-button/InputButtonCore.vue +20 -18
  66. package/{components → app/components}/forms/input-button/variants/InputButtonConfirm.vue +1 -1
  67. package/app/components/forms/input-checkbox-radio/InputCheckboxRadioButton.vue +204 -0
  68. package/{components → app/components}/forms/input-checkbox-radio/InputCheckboxRadioCore.vue +29 -17
  69. package/{components → app/components}/forms/input-checkbox-radio/InputCheckboxRadioWithLabel.vue +1 -0
  70. package/{components → app/components}/forms/input-label/InputLabel.vue +26 -7
  71. package/{components → app/components}/forms/input-number/InputNumberCore.vue +7 -6
  72. package/{components → app/components}/forms/input-number/variants/InputNumberDefault.vue +5 -6
  73. package/{components → app/components}/forms/input-range/InputRangeCore.vue +1 -1
  74. package/{components → app/components}/forms/input-range/variants/InputRangeDefault.vue +5 -2
  75. package/{components → app/components}/forms/input-range-fancy/InputRangeFancyCore.vue +1 -1
  76. package/{components → app/components}/forms/input-range-fancy/InputRangeFancyWithLabel.vue +1 -1
  77. package/{components → app/components}/forms/input-select/InputSelectCore.vue +23 -21
  78. package/{components → app/components}/forms/input-select/variants/InputSelectWithLabel.vue +1 -1
  79. package/app/components/forms/input-text/InputTextCore.vue +341 -0
  80. package/{components → app/components}/forms/input-text/variants/InputPasswordWithLabel.vue +1 -1
  81. package/{components → app/components}/forms/input-text/variants/InputTextAsNumberWithLabel.vue +4 -2
  82. package/app/components/forms/input-text/variants/InputTextWithLabel.vue +158 -0
  83. package/{components → app/components}/forms/input-textarea/InputTextareaCore.vue +10 -131
  84. package/app/components/forms/input-textarea/variants/InputTextareaWithLabel.vue +125 -0
  85. package/{components → app/components}/forms/toggle-switch/ToggleSwitchCore.vue +1 -1
  86. package/{components → app/components}/forms/toggle-switch/ToggleSwitchCoreOld.vue +1 -1
  87. package/{components → app/components}/forms/toggle-switch/variants/ToggleSwitchWithLabel.vue +5 -2
  88. package/{components → app/components}/forms/toggle-switch/variants/ToggleSwitchWithLabelInline.vue +5 -2
  89. package/{components → app/components}/utils/colour-scheme-select/ColourSchemeSelect.vue +1 -1
  90. package/{components → app/components}/utils/colour-scheme-select/ColourSchemeSelectOld.vue +1 -1
  91. package/nuxt.config.ts +5 -2
  92. package/package.json +9 -11
  93. package/assets/styles/extends-layer/srcdev-forms/components/_form-core.css +0 -8
  94. package/assets/styles/extends-layer/srcdev-forms/components/_form-fieldset.css +0 -16
  95. package/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox-radio-options-button.css +0 -59
  96. package/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox.css +0 -72
  97. package/assets/styles/extends-layer/srcdev-forms/components/_input-error.css +0 -55
  98. package/assets/styles/extends-layer/srcdev-forms/components/_input-label.css +0 -18
  99. package/assets/styles/extends-layer/srcdev-forms/components/_input-radio.css +0 -68
  100. package/assets/styles/extends-layer/srcdev-forms/components/_input-select.css +0 -18
  101. package/assets/styles/extends-layer/srcdev-forms/components/_input-text-as-number.css +0 -22
  102. package/assets/styles/extends-layer/srcdev-forms/components/_input-textarea.css +0 -5
  103. package/assets/styles/extends-layer/srcdev-forms/setup/_generic.css +0 -7
  104. package/assets/styles/extends-layer/srcdev-forms/setup/index.css +0 -4
  105. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_default.css +0 -12
  106. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_large.css +0 -12
  107. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_medium.css +0 -12
  108. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_small.css +0 -12
  109. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_x-small.css +0 -11
  110. package/assets/styles/extends-layer/srcdev-forms/setup/variants/_normal.css +0 -48
  111. package/assets/styles/extends-layer/srcdev-forms/setup/variants/index.css +0 -2
  112. package/assets/styles/setup/_head.css +0 -5
  113. package/assets/styles/setup/index.css +0 -5
  114. package/assets/styles/setup/typography/index.css +0 -2
  115. package/assets/styles/setup/typography/utility-classes/_generic-font-classes.css +0 -192
  116. package/assets/styles/setup/typography/utility-classes/_generic-font-variation-settings.css +0 -29
  117. package/assets/styles/setup/typography/utility-classes/_generic-font-weights.css +0 -41
  118. package/assets/styles/setup/typography/vars/_reponsive-font-sizes.css +0 -10
  119. package/assets/styles/setup/utility-classes/_margin-helpers.css +0 -334
  120. package/assets/styles/setup/utility-classes/_padding-helpers.css +0 -308
  121. package/assets/styles/setup/utility-classes/_page.css +0 -49
  122. package/assets/styles/setup/utility-classes/index.css +0 -3
  123. package/components/forms/input-checkbox-radio/InputCheckboxRadioButton.vue +0 -218
  124. package/components/forms/input-text/InputTextCore.vue +0 -390
  125. package/components/forms/input-text/variants/InputTextWithLabel.vue +0 -300
  126. package/components/forms/input-textarea/variants/InputTextareaWithLabel.vue +0 -269
  127. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/index.css +0 -0
  128. package/{assets → app/assets}/styles/extends-layer/srcdev-forms/setup/themes/index.css +0 -0
  129. package/{assets → app/assets}/styles/main.css +0 -0
  130. package/{assets → app/assets}/styles/setup/a11y/_utils.css +0 -0
  131. package/{assets → app/assets}/styles/setup/a11y/_variables.css +0 -0
  132. package/{assets → app/assets}/styles/setup/a11y/index.css +0 -0
  133. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_gray.css +0 -0
  134. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_green.css +0 -0
  135. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_orange.css +0 -0
  136. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_red.css +0 -0
  137. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/_yellow.css +0 -0
  138. package/{assets/styles/setup/variables → app/assets/styles/setup/theming}/colors/index.css +3 -3
  139. package/{assets → app/assets}/styles/setup/typography/utility-classes/index.css +1 -1
  140. /package/{components → app/components}/forms/c12/prop-validators/index.ts +0 -0
  141. /package/{components → app/components}/forms/c12/utils.ts +0 -0
  142. /package/{components → app/components}/forms/form-errors/tests/InputError.spec.ts +0 -0
  143. /package/{components → app/components}/forms/input-button/variants/InputButtonSubmit.vue +0 -0
  144. /package/{components → app/components}/forms/input-checkbox/MultipleCheckboxes.vue +0 -0
  145. /package/{components → app/components}/forms/input-checkbox/SingleCheckbox.vue +0 -0
  146. /package/{components → app/components}/forms/input-checkbox/tests/MultipleCheckboxes.spec.ts +0 -0
  147. /package/{components → app/components}/forms/input-checkbox/tests/data/tags.json +0 -0
  148. /package/{components → app/components}/forms/input-radio/MultipleRadiobuttons.vue +0 -0
  149. /package/{components → app/components}/forms/input-radio/tests/MultipleRadioButtons.spec.ts +0 -0
  150. /package/{components → app/components}/forms/input-radio/tests/data/tags.json +0 -0
  151. /package/{components → app/components}/forms/ui/FormField.vue +0 -0
  152. /package/{components → app/components}/forms/ui/FormWrapper.vue +0 -0
  153. /package/{components → app/components}/utils/dark-mode-switcher/DarkModeSwitcher.vue +0 -0
  154. /package/{composables → app/composables}/useApiRequest.ts +0 -0
  155. /package/{composables → app/composables}/useColourScheme.ts +0 -0
  156. /package/{composables → app/composables}/useErrorMessages.ts +0 -0
  157. /package/{composables → app/composables}/useFormControl.ts +0 -0
  158. /package/{composables → app/composables}/useSleep.ts +0 -0
  159. /package/{composables → app/composables}/useStyleClassPassthrough.ts +0 -0
  160. /package/{composables → app/composables}/useZodValidation.ts +0 -0
  161. /package/{types → app/types}/types.forms.ts +0 -0
  162. /package/{types → app/types}/types.zodFormControl.ts +0 -0
@@ -0,0 +1,217 @@
1
+ .heading-1 {
2
+ font-size: var(--step-8);
3
+ font-weight: bold;
4
+ line-height: 1.3;
5
+ }
6
+
7
+ .heading-2 {
8
+ font-size: var(--step-7);
9
+ /* font-weight: bold; */
10
+ font-variation-settings: 'wght' 500;
11
+ line-height: 1.3;
12
+ }
13
+
14
+ .heading-3 {
15
+ font-size: var(--step-6);
16
+ font-weight: bold;
17
+ line-height: 1.3;
18
+ }
19
+
20
+ .heading-4 {
21
+ font-size: var(--step-5);
22
+ font-weight: bold;
23
+ line-height: 1.3;
24
+ }
25
+
26
+ .heading-5 {
27
+ font-size: var(--step-4);
28
+ font-weight: bold;
29
+ line-height: 1.3;
30
+ }
31
+
32
+ .heading-6 {
33
+ font-size: var(--step-3);
34
+ font-weight: bold;
35
+ line-height: 1.3;
36
+ }
37
+
38
+ /* Body text */
39
+
40
+ .body-large {
41
+ font-size: var(--step-6);
42
+ font-weight: normal;
43
+ line-height: 1.5;
44
+ }
45
+
46
+ .body-medium {
47
+ font-size: var(--step-5);
48
+ font-weight: normal;
49
+ line-height: 1.5;
50
+ }
51
+
52
+ .body-normal {
53
+ font-size: var(--step-4);
54
+ font-weight: normal;
55
+ line-height: 1.5;
56
+ }
57
+
58
+ .body-small {
59
+ font-size: var(--step--0);
60
+ font-weight: normal;
61
+ line-height: 1.5;
62
+ }
63
+
64
+ .body-xsmall {
65
+ font-size: var(--step-2);
66
+ font-weight: normal;
67
+ line-height: 1.5;
68
+ }
69
+
70
+ .body-large-semibold {
71
+ font-size: var(--step-6);
72
+ font-weight: 500;
73
+ line-height: 1.5;
74
+ }
75
+
76
+ .body-medium-semibold {
77
+ font-size: var(--step-5);
78
+ font-weight: 500;
79
+ line-height: 1.5;
80
+ }
81
+
82
+ .body-normal-semibold {
83
+ font-size: var(--step-4);
84
+ font-weight: 500;
85
+ line-height: 1.5;
86
+ }
87
+
88
+ .body-small-semibold {
89
+ font-size: var(--step-3);
90
+ font-weight: 500;
91
+ line-height: 1.5;
92
+ }
93
+
94
+ .body-xsmall-semibold {
95
+ font-size: var(--step-2);
96
+ font-weight: 500;
97
+ line-height: 1.5;
98
+ }
99
+
100
+ .body-large-bold {
101
+ font-size: var(--step-6);
102
+ font-weight: bold;
103
+ line-height: 1.5;
104
+ }
105
+
106
+ .body-medium-bold {
107
+ font-size: var(--step-5);
108
+ font-weight: bold;
109
+ line-height: 1.5;
110
+ }
111
+
112
+ .body-normal-bold {
113
+ font-size: var(--step-4);
114
+ font-weight: bold;
115
+ line-height: 1.5;
116
+ }
117
+
118
+ .body-small-bold {
119
+ font-size: var(--step-3);
120
+ font-weight: bold;
121
+ line-height: 1.5;
122
+ }
123
+
124
+ .body-xsmall-bold {
125
+ font-size: var(--step-2);
126
+ font-weight: bold;
127
+ line-height: 1.5;
128
+ }
129
+
130
+ /* Links */
131
+
132
+ .link-large {
133
+ color: var(--theme-link-default);
134
+ font-size: var(--step-6);
135
+ font-weight: 600;
136
+ line-height: 1.5;
137
+ text-decoration: underline;
138
+
139
+ &:visited {
140
+ color: var(--theme-link-default);
141
+ }
142
+ }
143
+
144
+ .link-medium {
145
+ color: var(--theme-link-default);
146
+ font-size: var(--step-5);
147
+ font-weight: 600;
148
+ line-height: 1.5;
149
+ text-decoration: underline;
150
+
151
+ &:visited {
152
+ color: var(--theme-link-default);
153
+ }
154
+ }
155
+
156
+ .link-normal {
157
+ color: var(--theme-link-default);
158
+ font-size: var(--step-4);
159
+ font-weight: 600;
160
+ line-height: 1.5;
161
+ text-decoration: underline;
162
+
163
+ &:visited,
164
+ &:active {
165
+ color: var(--theme-link-default);
166
+ }
167
+ }
168
+
169
+ .link-small {
170
+ color: var(--theme-link-default);
171
+ font-size: var(--step-3);
172
+ font-weight: 600;
173
+ line-height: 1.5;
174
+ text-decoration: underline;
175
+
176
+ &:visited {
177
+ color: var(--theme-link-default);
178
+ }
179
+ }
180
+
181
+ .link-xsmall {
182
+ color: var(--theme-link-default);
183
+ font-size: var(--step-2);
184
+ font-weight: 600;
185
+ line-height: 1.5;
186
+ text-decoration: underline;
187
+
188
+ &:visited {
189
+ color: var(--theme-link-default);
190
+ }
191
+ }
192
+
193
+ .italic {
194
+ font-style: italic;
195
+ }
196
+
197
+ .wght-300 {
198
+ font-variation-settings: 'wght' 300;
199
+ }
200
+ .wght-400 {
201
+ font-variation-settings: 'wght' 400;
202
+ }
203
+ .wght-500 {
204
+ font-variation-settings: 'wght' 500;
205
+ }
206
+ .wght-600 {
207
+ font-variation-settings: 'wght' 600;
208
+ }
209
+ .wght-700 {
210
+ font-variation-settings: 'wght' 700;
211
+ }
212
+ .wght-800 {
213
+ font-variation-settings: 'wght' 800;
214
+ }
215
+ .wght-900 {
216
+ font-variation-settings: 'wght' 900;
217
+ }
@@ -0,0 +1,29 @@
1
+ /* Using the font-variation-settings property. */
2
+
3
+ .fvs-wght-100 {
4
+ font-variation-settings: 'wght' 100;
5
+ }
6
+ .fvs-wght-200 {
7
+ font-variation-settings: 'wght' 200;
8
+ }
9
+ .fvs-wght-300 {
10
+ font-variation-settings: 'wght' 300;
11
+ }
12
+ .fvs-wght-400 {
13
+ font-variation-settings: 'wght' 400;
14
+ }
15
+ .fvs-wght-500 {
16
+ font-variation-settings: 'wght' 500;
17
+ }
18
+ .fvs-wght-600 {
19
+ font-variation-settings: 'wght' 600;
20
+ }
21
+ .fvs-wght-700 {
22
+ font-variation-settings: 'wght' 700;
23
+ }
24
+ .fvs-wght-800 {
25
+ font-variation-settings: 'wght' 800;
26
+ }
27
+ .fvs-wght-900 {
28
+ font-variation-settings: 'wght' 900;
29
+ }
@@ -0,0 +1,39 @@
1
+ /* By numeric step */
2
+ .wght-100 {
3
+ font-weight: 100;
4
+ }
5
+ .wght-200 {
6
+ font-weight: 200;
7
+ }
8
+ .wght-300 {
9
+ font-weight: 300;
10
+ }
11
+ .wght-400 {
12
+ font-weight: 400;
13
+ }
14
+ .wght-500 {
15
+ font-weight: 500;
16
+ }
17
+ .wght-600 {
18
+ font-weight: 600;
19
+ }
20
+ .wght-700 {
21
+ font-weight: 700;
22
+ }
23
+ .wght-800 {
24
+ font-weight: 800;
25
+ }
26
+ .wght-900 {
27
+ font-weight: 900;
28
+ }
29
+
30
+ /* By named weight */
31
+ .light {
32
+ font-weight: light;
33
+ }
34
+ .normal {
35
+ font-weight: normal;
36
+ }
37
+ .bold {
38
+ font-weight: bold;
39
+ }
@@ -0,0 +1,14 @@
1
+ :root {
2
+ --theme-link-default: light-dark(var(--blue-12), var(--blue-4));
3
+
4
+ --page-bg: light-dark(var(--gray-0), var(--gray-9));
5
+
6
+ --surface-subtle: light-dark(var(--gray-1), var(--gray-8));
7
+
8
+ --grayscale-text-title: light-dark(var(--gray-12), var(--gray-2));
9
+ --grayscale-text-body: light-dark(var(--gray-12), var(--gray-3));
10
+ --grayscale-text-subtitle: light-dark(var(--gray-12), var(--gray-2));
11
+ --grayscale-text-caption: light-dark(var(--gray-12), var(--gray-2));
12
+ --grayscale-text-negative: light-dark(var(--gray-12), var(--gray-2));
13
+ --grayscale-text-disabled: light-dark(var(--gray-12), var(--gray-2));
14
+ }
@@ -0,0 +1,12 @@
1
+ :root {
2
+ --step-10: clamp(4.0311rem, 3.36rem + 3.3555vw, 5.9605rem); /* 10 */
3
+ --step-9: clamp(3.3592rem, 2.8691rem + 2.4507vw, 4.7684rem); /* 9 */
4
+ --step-8: clamp(2.7994rem, 2.4462rem + 1.7658vw, 3.8147rem); /* 8 */
5
+ --step-7: clamp(2.3328rem, 2.0827rem + 1.2504vw, 3.0518rem); /* 7 */
6
+ --step-6: clamp(1.944rem, 1.771rem + 0.8651vw, 2.4414rem); /* 6 */
7
+ --step-5: clamp(1.62rem, 1.5041rem + 0.5793vw, 1.9531rem); /* 5 */
8
+ --step-4: clamp(1.35rem, 1.2761rem + 0.3696vw, 1.5625rem); /* 4 */
9
+ --step-3: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem); /* 3 */
10
+ --step-2: clamp(0.9375rem, 0.9158rem + 0.1087vw, 1rem); /* 2 */
11
+ --step-1: clamp(0.7813rem, 0.7747rem + 0.0326vw, 0.8rem); /* 1 */
12
+ }
@@ -1 +1,2 @@
1
1
  @import './_reponsive-font-sizes.css';
2
+ @import './_colors.css';
@@ -0,0 +1,13 @@
1
+ /* @link https://utopia.fyi/clamp/calculator?a=360,1240,1—2|2—4|4—8|6—12|8—16|10—20|12—24|16—32|20—40 */
2
+
3
+ :root {
4
+ --fluid-1-2: clamp(0.0625rem, 0.0369rem + 0.1136vw, 0.125rem);
5
+ --fluid-2-4: clamp(0.125rem, 0.0739rem + 0.2273vw, 0.25rem);
6
+ --fluid-4-8: clamp(0.25rem, 0.1477rem + 0.4545vw, 0.5rem);
7
+ --fluid-6-12: clamp(0.375rem, 0.2216rem + 0.6818vw, 0.75rem);
8
+ --fluid-8-16: clamp(0.5rem, 0.2955rem + 0.9091vw, 1rem);
9
+ --fluid-10-20: clamp(0.625rem, 0.3693rem + 1.1364vw, 1.25rem);
10
+ --fluid-12-24: clamp(0.75rem, 0.4432rem + 1.3636vw, 1.5rem);
11
+ --fluid-16-32: clamp(1rem, 0.5909rem + 1.8182vw, 2rem);
12
+ --fluid-20-40: clamp(1.25rem, 0.7386rem + 2.2727vw, 2.5rem);
13
+ }
@@ -0,0 +1,13 @@
1
+ @keyframes autoRotateAnimation {
2
+ from {
3
+ transform: rotate(0deg);
4
+ }
5
+ to {
6
+ transform: rotate(360deg);
7
+ }
8
+ }
9
+
10
+ .auto-rotate {
11
+ animation: autoRotateAnimation;
12
+ animation-timeline: view();
13
+ }
@@ -0,0 +1,16 @@
1
+ .entry-exit-blur {
2
+ animation: entryExitBlurAnimation linear both;
3
+ animation-timeline: view();
4
+ }
5
+ @keyframes entryExitBlurAnimation {
6
+ 0% {
7
+ filter: blur(40px);
8
+ }
9
+ 45%,
10
+ 55% {
11
+ filter: blur(0px);
12
+ }
13
+ 100% {
14
+ filter: blur(40px);
15
+ }
16
+ }
@@ -0,0 +1,15 @@
1
+ @keyframes entrySlideInAnimation {
2
+ from {
3
+ opacity: 0;
4
+ transform: translateY(200px);
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ transform: translateY(0);
9
+ }
10
+ }
11
+
12
+ .entry-slide-in {
13
+ animation: entrySlideInAnimation both;
14
+ animation-timeline: view(70% 5%);
15
+ }
@@ -0,0 +1,15 @@
1
+ @keyframes entryZoomRevealAnimation {
2
+ from {
3
+ opacity: 0;
4
+ transform: translateY(200px) scale(0.3);
5
+ }
6
+ to {
7
+ opacity: 1;
8
+ transform: translateY(0) scale(1);
9
+ }
10
+ }
11
+
12
+ .entry-zoom-reveal {
13
+ animation: entryZoomRevealAnimation both;
14
+ animation-timeline: view(70% 5%);
15
+ }
@@ -0,0 +1,4 @@
1
+ @import './_entry-zoom-reveal';
2
+ @import './_entry-slide-in';
3
+ @import './_entry-exit-blur';
4
+ @import './_auto-rotate';
@@ -0,0 +1,2 @@
1
+ @import './_fluid-spacing';
2
+ @import './animations/';
@@ -0,0 +1 @@
1
+ @import './colors';
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div class="input-error-message" :id :class="[inputVariant, elementClasses, { show: showError }, { detached: isDetached }, { hide: !showError }]" :data-Testid>
2
+ <div class="input-error-message" data-theme="error" :id :class="[inputVariant, elementClasses, { show: showError }, { detached: isDetached }]" :data-testid :aria-hidden="!showError">
3
3
  <div class="inner" :class="[{ show: showError }]">
4
4
  <div class="inner-content">
5
5
  <div class="inner-icon">
@@ -68,52 +68,23 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
68
68
 
69
69
  <style lang="css">
70
70
  .input-error-message {
71
- --_grid-template-rows: 0fr;
72
- --_opacity-show: 1;
73
- --_opacity-hide: 0;
74
- --_opacity: var(--_opacity-hide);
75
-
76
- --_border-radius: 0 0 0.4rem 0.4rem;
77
- --_display-show: block;
78
- --_display-hide: none;
79
- --_display: var(--_display-hide);
80
- --_gutter: 1.2rem;
81
- --_gutter-block: 0;
82
- --_gutter-inline: var(--_gutter);
83
- --_transition-duration: 500ms;
84
- --_transition-timing-function: linear;
85
- --_padding-message: 1.2rem 1rem;
86
-
87
- &.show {
88
- --_grid-template-rows: 1fr;
89
- --_opacity: var(--_opacity-show);
90
- --_display: var(--_display-show);
91
- --_gutter-block: var(--_gutter);
92
- }
93
-
94
71
  grid-row: 2;
95
72
  grid-column: 1;
96
73
  display: grid;
97
- grid-template-rows: var(--_grid-template-rows);
74
+ grid-template-rows: 0fr;
98
75
 
99
76
  color: var(--input-error-color);
100
- background-color: var(--input-error-background-color);
101
- /* border-radius: var(--_border-radius); */
77
+ background-color: var(--theme-error-surface);
102
78
 
103
- transition-property: grid-template-rows;
104
- transition-duration: var(--_transition-duration);
105
- transition-timing-function: var(--_transition-timing-function);
79
+ transition: grid-template-rows var(--theme-form-transition-duration) linear;
106
80
  transition-behavior: allow-discrete;
107
81
 
108
- border-top-left-radius: var(--input-error-border-top-left-radius);
109
- border-top-right-radius: var(--input-error-border-top-right-radius);
110
- border-bottom-left-radius: var(--input-error-border-bottom-left-radius);
111
- border-bottom-right-radius: var(--input-error-border-bottom-right-radius);
82
+ outline: var(--form-element-outline-width) solid transparent;
83
+
84
+ border-radius: 0;
112
85
 
113
- border-top: var(--input-error-border-top-default);
114
- border-right: var(--input-error-border-right-default);
115
- border-bottom: var(--input-error-border-bottom-default);
116
- border-left: var(--input-error-border-left-default);
86
+ border: var(--form-element-border-width) solid transparent;
87
+ border-radius: 0;
117
88
 
118
89
  background-clip: padding-box;
119
90
 
@@ -121,24 +92,36 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
121
92
 
122
93
  margin-block-start: var(--input-error-margin-block-start);
123
94
 
124
- /* &.detached {
125
- border-radius: var(--form-input-border-radius);
95
+ &.detached {
126
96
  margin-block-start: 2rem;
127
97
  }
128
98
 
129
- &.outlined {
130
- --_border-radius: 0;
131
- }
99
+ &.show {
100
+ grid-template-rows: 1fr;
101
+ display: grid;
102
+
103
+ border: var(--form-element-border-width) solid var(--theme-error-surface);
104
+ border-bottom-left-radius: var(--form-input-border-radius-underlined);
105
+ border-bottom-right-radius: var(--form-input-border-radius-underlined);
106
+ outline: var(--form-element-outline-width) solid var(--theme-error-surface);
107
+
108
+ &.detached {
109
+ margin-block-start: 2rem;
132
110
 
133
- &.underlined {
134
- --_border-radius: 0;
135
- } */
111
+ border-top: var(--form-element-border-width) solid var(--theme-error-surface);
112
+ border-right: var(--form-element-border-width) solid var(--theme-error-surface);
113
+ border-bottom: var(--form-element-border-width) solid var(--red-8);
114
+ border-left: var(--form-element-border-width) solid var(--theme-error-surface);
115
+
116
+ border-radius: var(--form-input-border-radius);
117
+ }
118
+ }
136
119
 
137
120
  .inner {
138
121
  align-items: center;
139
122
 
140
123
  overflow: hidden;
141
- transition: opacity var(--_transition-duration) var(--_transition-timing-function), display var(--_transition-duration) var(--_transition-timing-function) allow-discrete;
124
+ transition: opacity var(--theme-form-transition-duration) linear, display var(--theme-form-transition-duration) linear allow-discrete;
142
125
 
143
126
  .inner-content {
144
127
  display: flex;
@@ -160,8 +143,8 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
160
143
  font-family: var(--font-family);
161
144
  font-size: 1.6rem;
162
145
  font-weight: 500;
163
- padding-block: var(--_padding-message);
164
- padding-inline: var(--_gutter-inline);
146
+ padding-block: 1.2rem 1rem;
147
+ padding-inline: 1.2rem;
165
148
 
166
149
  .message-single {
167
150
  color: white;
@@ -70,11 +70,11 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
70
70
  }
71
71
 
72
72
  .form-fieldset-legend {
73
- color: var(--form-fieldset-legend-text-color);
74
- margin-block: var(--form-fieldset-legend-text-margin-block);
75
- font-size: var(--form-fieldset-legend-text-size);
76
- font-weight: var(--form-fieldset-legend-text-weight);
77
- line-height: var(--form-fieldset-legend-text-line-height);
73
+ color: var(--form-fieldset-legend-color);
74
+ margin-block: 0.8rem;
75
+ font-size: var(--step-5);
76
+ font-weight: normal;
77
+ line-height: 1.5;
78
78
 
79
79
  &.has-description {
80
80
  margin-bottom: 0;
@@ -82,13 +82,13 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
82
82
  }
83
83
 
84
84
  .form-fieldset-description {
85
- font-size: var(--form-fieldset-description-font-size);
86
- margin-top: var(--form-fieldset-description-margin-top);
85
+ font-size: 1.6rem;
86
+ margin-top: 1.2rem;
87
87
  }
88
88
 
89
89
  .form-fieldset-content {
90
- margin-block-start: var(--form-fieldset-content-margin-block-start);
91
- margin-block-end: var(--form-fieldset-content-padding-block-start);
90
+ margin-block-start: 0;
91
+ margin-block-end: 0;
92
92
  }
93
93
  }
94
94
  </style>
@@ -4,7 +4,7 @@
4
4
  :readonly
5
5
  :aria-disabled="readonly"
6
6
  :data-testid
7
- :data-btn-theme="theme"
7
+ :data-theme="theme"
8
8
  :data-size="size"
9
9
  class="input-button-core"
10
10
  :class="[`btn-${type}`, effectClass, elementClasses, { 'icon-only': isIconOnly }]"
@@ -113,11 +113,11 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
113
113
 
114
114
  <style lang="css">
115
115
  .input-button-core {
116
+ touch-action: manipulation;
116
117
  align-items: center;
117
118
  display: flex;
118
119
  gap: var(--form-button-icon-gap);
119
120
  justify-content: center;
120
- border: none;
121
121
  border-radius: var(--form-input-border-radius);
122
122
  font-family: var(--font-family);
123
123
 
@@ -125,22 +125,24 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
125
125
  padding-block-start: var(--form-element-padding-block-start);
126
126
  padding-block-end: var(--form-element-padding-block-end);
127
127
 
128
- transition: all 0.2s ease-in-out;
128
+ transition: all var(--theme-form-transition-duration) ease-in-out;
129
129
 
130
130
  box-shadow: var(--box-shadow-off);
131
- background-color: var(--theme-btn-bg);
132
- border: var(--form-element-border-width) solid var(--theme-btn-border);
133
- color: var(--theme-btn-text);
134
- outline: var(--form-element-outline-width) solid var(--theme-btn-outline);
131
+ background-color: var(--theme-button-surface);
132
+ border: var(--form-element-border-width) solid var(--theme-button-border);
133
+ color: var(--theme-button-text);
134
+ outline: var(--form-element-outline-width) solid var(--theme-button-outline);
135
+ outline-offset: 0rem;
135
136
 
136
137
  /*
137
138
  * States
138
139
  **/
139
140
  &:hover {
140
- --theme-btn-bg: var(--theme-btn-bg-hover);
141
- --theme-btn-border: var(--theme-btn-border-hover);
142
- --theme-btn-text: var(--theme-btn-text-hover);
143
- --theme-btn-outline: var(--theme-btn-outline-hover);
141
+ background-color: var(--theme-button-surface-hover);
142
+ border-color: var(--theme-input-border-hover);
143
+ color: var(--theme-button-text-hover);
144
+ outline-color: var(--theme-button-outline-hover);
145
+ outline-offset: var(--form-element-outline-offset-focus);
144
146
  }
145
147
 
146
148
  &:hover {
@@ -148,11 +150,11 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
148
150
  }
149
151
 
150
152
  &:focus-visible {
151
- --theme-btn-bg: var(--theme-btn-bg-focus);
152
- --theme-btn-border: var(--theme-btn-border-focus);
153
- --theme-btn-text: var(--theme-btn-text-focus);
154
- --theme-btn-outline: var(--theme-btn-outline-focus);
155
- box-shadow: var(--box-shadow-on);
153
+ background-color: var(--theme-button-surface-hover);
154
+ border-color: var(--theme-button-border-focus);
155
+ color: var(--theme-button-text-focus);
156
+ outline-color: var(--theme-button-outline-focus);
157
+ outline-offset: var(--form-element-outline-offset-focus);
156
158
  }
157
159
 
158
160
  &[readonly] {
@@ -167,8 +169,8 @@ const { elementClasses, updateElementClasses } = useStyleClassPassthrough(props.
167
169
  aspect-ratio: 1;
168
170
  height: var(--form-icon-only-button-size);
169
171
  width: var(--form-icon-only-button-size);
170
- margin: 0 !important;
171
- padding: 0 !important;
172
+ margin: 0;
173
+ padding: 0;
172
174
  }
173
175
 
174
176
  .btn-text {
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <InputButtonCore type="button" :use-effect :isPending :readonly :effect :data-testid :size :weight :button-text :style-class-passthrough :theme>
3
3
  <template #left>
4
- <Icon name="material-symbols:check-circle-outline" class="icon" />
4
+ <Icon name="material-symbols:check-circle-outline" class="icon" aria-hidden="true" focusable="false" />
5
5
  </template>
6
6
  </InputButtonCore>
7
7
  </template>