srcdev-nuxt-forms 5.0.2 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/assets/styles/extends-layer/srcdev-forms/components/_form-fieldset.css +1 -1
  2. package/assets/styles/extends-layer/srcdev-forms/components/_input-checkbox.css +10 -10
  3. package/assets/styles/extends-layer/srcdev-forms/components/_input-label.css +2 -2
  4. package/assets/styles/extends-layer/srcdev-forms/components/_input-radio.css +10 -10
  5. package/assets/styles/extends-layer/srcdev-forms/setup/_generic.css +0 -6
  6. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_default.css +6 -6
  7. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_large.css +6 -6
  8. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_medium.css +6 -6
  9. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_small.css +6 -6
  10. package/assets/styles/extends-layer/srcdev-forms/setup/sizes/_x-small.css +5 -5
  11. package/assets/styles/extends-layer/srcdev-forms/setup/variants/_normal.css +2 -2
  12. package/assets/styles/extends-layer/srcdev-forms/setup/variants/_underlined.css +2 -2
  13. package/assets/styles/main.css +0 -3
  14. package/assets/styles/setup/_head.css +5 -0
  15. package/assets/styles/setup/index.css +4 -0
  16. package/assets/styles/setup/typography/index.css +2 -0
  17. package/assets/styles/setup/typography/utility-classes/_generic-font-classes.css +192 -0
  18. package/assets/styles/setup/typography/utility-classes/_generic-font-variation-settings.css +29 -0
  19. package/assets/styles/setup/typography/utility-classes/_generic-font-weights.css +41 -0
  20. package/assets/styles/setup/typography/utility-classes/index.css +3 -0
  21. package/assets/styles/setup/typography/vars/_reponsive-font-sizes.css +10 -0
  22. package/assets/styles/setup/typography/vars/index.css +1 -0
  23. package/assets/styles/{utils → setup/utility-classes}/_page.css +2 -2
  24. package/assets/styles/setup/variables/index.css +0 -1
  25. package/components/forms/input-text/variants/InputTextWithLabel.vue +4 -4
  26. package/components/forms/input-textarea/variants/InputTextareaWithLabel.vue +4 -4
  27. package/composables/useZodValidation.ts +7 -6
  28. package/package.json +12 -12
  29. package/assets/styles/setup/variables/_reponsive-font-size.css +0 -10
  30. package/assets/styles/theming/index.css +0 -2
  31. package/assets/styles/theming/utils/_font-classes.css +0 -190
  32. package/assets/styles/theming/utils/_weights.css +0 -69
  33. package/assets/styles/theming/utils/index.css +0 -2
  34. package/assets/styles/theming/vars/_type-colors.css +0 -14
  35. package/assets/styles/theming/vars/index.css +0 -1
  36. /package/assets/styles/{ally → setup/a11y}/_utils.css +0 -0
  37. /package/assets/styles/{ally → setup/a11y}/_variables.css +0 -0
  38. /package/assets/styles/{ally → setup/a11y}/index.css +0 -0
  39. /package/assets/styles/{utils → setup/utility-classes}/_margin-helpers.css +0 -0
  40. /package/assets/styles/{utils → setup/utility-classes}/_padding-helpers.css +0 -0
  41. /package/assets/styles/{utils → setup/utility-classes}/index.css +0 -0
@@ -3,7 +3,7 @@
3
3
  .form-fieldset {
4
4
  --form-fieldset-legend-text-color: var(--theme-form-input-text-label-color-normal);
5
5
  --form-fieldset-legend-text-margin-block: 0.8rem;
6
- --form-fieldset-legend-text-size: var(--step-2);
6
+ --form-fieldset-legend-text-size: var(--step-5);
7
7
  --form-fieldset-legend-text-weight: normal;
8
8
  --form-fieldset-legend-text-line-height: 1.5;
9
9
 
@@ -22,23 +22,23 @@
22
22
 
23
23
  /* Size variants for radio buttons within a button */
24
24
  &.x-small {
25
- --form-input-checkbox-radio-button-symbol-size: var(--step-0);
25
+ --form-input-checkbox-radio-button-symbol-size: var(--step-3);
26
26
  }
27
27
 
28
28
  &.small {
29
- --form-input-checkbox-radio-button-symbol-size: var(--step-1);
29
+ --form-input-checkbox-radio-button-symbol-size: var(--step-4);
30
30
  }
31
31
 
32
32
  &.default {
33
- --form-input-checkbox-radio-button-symbol-size: var(--step-4);
33
+ --form-input-checkbox-radio-button-symbol-size: var(--step-7);
34
34
  }
35
35
 
36
36
  &.medium {
37
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
37
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
38
38
  }
39
39
 
40
40
  &.large {
41
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
41
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
42
42
  }
43
43
 
44
44
  /* Size variants for default checkbox */
@@ -48,23 +48,23 @@
48
48
  }
49
49
 
50
50
  &.x-small {
51
- --form-input-checkbox-radio-button-symbol-size: var(--step-0);
51
+ --form-input-checkbox-radio-button-symbol-size: var(--step-3);
52
52
  }
53
53
 
54
54
  &.small {
55
- --form-input-checkbox-radio-button-symbol-size: var(--step-1);
55
+ --form-input-checkbox-radio-button-symbol-size: var(--step-4);
56
56
  }
57
57
 
58
58
  &.default {
59
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
59
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
60
60
  }
61
61
 
62
62
  &.medium {
63
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
63
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
64
64
  }
65
65
 
66
66
  &.large {
67
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
67
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
68
68
  }
69
69
  }
70
70
  }
@@ -3,7 +3,7 @@
3
3
  .normal {
4
4
  --input-label-text-color: var(--theme-form-input-text-label-color-normal);
5
5
  --input-label-text-margin-block: 0.8rem;
6
- --input-label-text-size: var(--step-2);
6
+ --input-label-text-size: var(--step-5);
7
7
  --input-label-text-weight: normal;
8
8
  --input-label-text-line-height: 1.5;
9
9
  }
@@ -11,7 +11,7 @@
11
11
  .underlined {
12
12
  --input-label-text-color: var(--theme-form-input-text-label-color-normal);
13
13
  --input-label-text-margin-block: 0.8rem;
14
- --input-label-text-size: var(--step-2);
14
+ --input-label-text-size: var(--step-5);
15
15
  --input-label-text-weight: normal;
16
16
  --input-label-text-line-height: 1.5;
17
17
  }
@@ -22,45 +22,45 @@
22
22
 
23
23
  /* Size variants for radio buttons within a button */
24
24
  &.x-small {
25
- --form-input-checkbox-radio-button-symbol-size: var(--step-0);
25
+ --form-input-checkbox-radio-button-symbol-size: var(--step-3);
26
26
  }
27
27
 
28
28
  &.small {
29
- --form-input-checkbox-radio-button-symbol-size: var(--step-1);
29
+ --form-input-checkbox-radio-button-symbol-size: var(--step-4);
30
30
  }
31
31
 
32
32
  &.default {
33
- --form-input-checkbox-radio-button-symbol-size: var(--step-4);
33
+ --form-input-checkbox-radio-button-symbol-size: var(--step-7);
34
34
  }
35
35
 
36
36
  &.medium {
37
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
37
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
38
38
  }
39
39
 
40
40
  &.large {
41
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
41
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
42
42
  }
43
43
 
44
44
  /* Size variants for default radio buttons */
45
45
  .button {
46
46
  &.x-small {
47
- --form-input-checkbox-radio-button-symbol-size: var(--step-0);
47
+ --form-input-checkbox-radio-button-symbol-size: var(--step-3);
48
48
  }
49
49
 
50
50
  &.small {
51
- --form-input-checkbox-radio-button-symbol-size: var(--step-1);
51
+ --form-input-checkbox-radio-button-symbol-size: var(--step-4);
52
52
  }
53
53
 
54
54
  &.default {
55
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
55
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
56
56
  }
57
57
 
58
58
  &.medium {
59
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
59
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
60
60
  }
61
61
 
62
62
  &.large {
63
- --form-input-checkbox-radio-button-symbol-size: var(--step-3);
63
+ --form-input-checkbox-radio-button-symbol-size: var(--step-6);
64
64
  }
65
65
  }
66
66
  }
@@ -1,13 +1,7 @@
1
1
  :root {
2
- --font-size: 1.6rem;
3
- --line-height: calc((var(--font-size) * 2) - 1rem);
4
-
5
- --font-family: futura-pt, Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
6
2
  --theme-form-font-familty: var(--font-family);
7
3
  --theme-error-surface: var(--red-12);
8
4
  --theme-error-text: var(--red-0);
9
-
10
5
  --theme-form-button-font-size-normal: var(--form-element-font-size);
11
-
12
6
  --theme-form-transition-duration: 0.2s;
13
7
  }
@@ -1,12 +1,12 @@
1
1
  :root {
2
2
  [data-size='default'] {
3
- --form-element-font-size: var(--step-2);
4
- --form-placeholder-font-size: calc(var(--step-2) * 0.65);
5
- --form-element-line-height: var(--step-2);
6
- --form-icon-size: var(--step-2);
3
+ --form-element-font-size: var(--step-5);
4
+ --form-placeholder-font-size: calc(var(--step-5) * 0.65);
5
+ --form-element-line-height: var(--step-5);
6
+ --form-icon-size: var(--step-5);
7
7
  --form-input-border-radius: 0.4rem;
8
- --form-icon-only-button-size: calc(var(--step-1) * 2.5 + 1px);
9
- --form-toggle-symbol-size: calc(var(--step-2) * 1.72);
8
+ --form-icon-only-button-size: calc(var(--step-4) * 2.5 + 1px);
9
+ --form-toggle-symbol-size: calc(var(--step-5) * 1.72);
10
10
  --form-toggle-switch-width-adjustment: 0.2rem;
11
11
  }
12
12
  }
@@ -1,12 +1,12 @@
1
1
  :root {
2
2
  [data-size='large'] {
3
- --form-element-font-size: var(--step-3);
4
- --form-placeholder-font-size: calc(var(--step-3) * 0.65);
5
- --form-element-line-height: var(--step-3);
6
- --form-icon-size: var(--step-3);
3
+ --form-element-font-size: var(--step-6);
4
+ --form-placeholder-font-size: calc(var(--step-6) * 0.65);
5
+ --form-element-line-height: var(--step-6);
6
+ --form-icon-size: var(--step-6);
7
7
  --form-input-border-radius: 0.4rem;
8
- --form-icon-only-button-size: calc(var(--step-1) * 2.75 + 1px);
9
- --form-toggle-symbol-size: calc(var(--step-3) * 1.78);
8
+ --form-icon-only-button-size: calc(var(--step-4) * 2.75 + 1px);
9
+ --form-toggle-symbol-size: calc(var(--step-6) * 1.78);
10
10
  --form-toggle-switch-width-adjustment: 0rem;
11
11
  }
12
12
  }
@@ -1,12 +1,12 @@
1
1
  :root {
2
2
  [data-size='medium'] {
3
- --form-element-font-size: var(--step-3);
4
- --form-placeholder-font-size: calc(var(--step-3) * 0.65);
5
- --form-element-line-height: var(--step-3);
6
- --form-icon-size: var(--step-3);
3
+ --form-element-font-size: var(--step-6);
4
+ --form-placeholder-font-size: calc(var(--step-6) * 0.65);
5
+ --form-element-line-height: var(--step-6);
6
+ --form-icon-size: var(--step-6);
7
7
  --form-input-border-radius: 0.4rem;
8
- --form-icon-only-button-size: calc(var(--step-1) * 2.75 + 1px);
9
- --form-toggle-symbol-size: calc(var(--step-3) * 1.78);
8
+ --form-icon-only-button-size: calc(var(--step-4) * 2.75 + 1px);
9
+ --form-toggle-symbol-size: calc(var(--step-6) * 1.78);
10
10
  --form-toggle-switch-width-adjustment: 0rem;
11
11
  }
12
12
  }
@@ -1,12 +1,12 @@
1
1
  :root {
2
2
  [data-size='small'] {
3
- --form-element-font-size: var(--step-1);
4
- --form-placeholder-font-size: calc(var(--step-1) * 0.65);
5
- --form-element-line-height: var(--step-1);
6
- --form-icon-size: var(--step-1);
3
+ --form-element-font-size: var(--step-4);
4
+ --form-placeholder-font-size: calc(var(--step-4) * 0.65);
5
+ --form-element-line-height: var(--step-4);
6
+ --form-icon-size: var(--step-4);
7
7
  --form-input-border-radius: 0.4rem;
8
- --form-icon-only-button-size: calc(var(--step-1) * 2.25 + 1px);
9
- --form-toggle-symbol-size: calc(var(--step-1) * 1.635);
8
+ --form-icon-only-button-size: calc(var(--step-4) * 2.25 + 1px);
9
+ --form-toggle-symbol-size: calc(var(--step-4) * 1.635);
10
10
  --form-toggle-switch-width-adjustment: 0.3rem;
11
11
  }
12
12
  }
@@ -1,11 +1,11 @@
1
1
  :root {
2
2
  [data-size='x-small'] {
3
- --form-element-font-size: var(--step-0);
4
- --form-placeholder-font-size: calc(var(--step-0) * 0.65);
5
- --form-element-line-height: var(--step-0);
3
+ --form-element-font-size: var(--step-3);
4
+ --form-placeholder-font-size: calc(var(--step-3) * 0.65);
5
+ --form-element-line-height: var(--step-3);
6
6
  --form-input-border-radius: 0.4rem;
7
- --form-icon-only-button-size: calc(var(--step-1) * 2 + 1px);
8
- --form-toggle-symbol-size: calc(var(--step-0) * 1.55);
7
+ --form-icon-only-button-size: calc(var(--step-4) * 2 + 1px);
8
+ --form-toggle-symbol-size: calc(var(--step-3) * 1.55);
9
9
  --form-toggle-switch-width-adjustment: 0.5rem;
10
10
  }
11
11
  }
@@ -23,7 +23,7 @@
23
23
  --element-decorator-border-left-default: var(--form-element-border-width) solid var(--theme-form-input-border);
24
24
 
25
25
  --input-placeholder-color: light-dark(var(--gray-7), var(--gray-5));
26
- --input-placeholder-font-size: var(--step-2);
26
+ --input-placeholder-font-size: var(--step-5);
27
27
  --input-placeholder-font-style: italic;
28
28
  --input-placeholder-font-weight: normal;
29
29
  --input-placeholder-line-height: 1;
@@ -31,7 +31,7 @@
31
31
  /* Label vars */
32
32
  --_label-text-color: var(--theme-form-input-text-label-color-underlined);
33
33
  --_label-text-margin-block: 0.8rem;
34
- --_label-text-size: var(--step-2);
34
+ --_label-text-size: var(--step-5);
35
35
  --_label-text-weight: normal;
36
36
  --_label-text-line-height: 1.5;
37
37
 
@@ -23,7 +23,7 @@
23
23
  --element-decorator-border-left-default: var(--form-element-border-width) solid transparent;
24
24
 
25
25
  --input-placeholder-color: light-dark(var(--gray-7), var(--gray-5));
26
- --input-placeholder-font-size: var(--step-2);
26
+ --input-placeholder-font-size: var(--step-5);
27
27
  --input-placeholder-font-style: italic;
28
28
  --input-placeholder-font-weight: normal;
29
29
  --input-placeholder-line-height: 1;
@@ -31,7 +31,7 @@
31
31
  /* Label vars */
32
32
  --_label-text-color: var(--theme-form-input-text-label-color-underlined);
33
33
  --_label-text-margin-block: 0.8rem;
34
- --_label-text-size: var(--step-2);
34
+ --_label-text-size: var(--step-5);
35
35
  --_label-text-weight: normal;
36
36
  --_label-text-line-height: 1.5;
37
37
 
@@ -1,5 +1,2 @@
1
1
  @import './setup/';
2
- @import './theming/';
3
2
  @import './extends-layer/srcdev-forms/';
4
- @import './utils';
5
- @import './ally/';
@@ -0,0 +1,5 @@
1
+ :root {
2
+ --font-size: 1.6rem;
3
+ --line-height: calc((var(--font-size) * 2) - 1rem);
4
+ --font-family: futura-pt, Seravek, 'Gill Sans Nova', Ubuntu, Calibri, 'DejaVu Sans', source-sans-pro, sans-serif;
5
+ }
@@ -1 +1,5 @@
1
+ @import './_head.css';
2
+ @import './utility-classes/';
3
+ @import './a11y/';
1
4
  @import './variables/';
5
+ @import './typography/';
@@ -0,0 +1,2 @@
1
+ @import './utility-classes/';
2
+ @import './vars/';
@@ -0,0 +1,192 @@
1
+ :root {
2
+ .heading-1 {
3
+ font-size: var(--step-8);
4
+ font-weight: bold;
5
+ line-height: 1.3;
6
+ }
7
+
8
+ .heading-2 {
9
+ font-size: var(--step-7);
10
+ font-weight: bold;
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
+ }
@@ -0,0 +1,29 @@
1
+ :root {
2
+ .fvs-wght-100 {
3
+ font-variation-settings: 'wght' 100;
4
+ }
5
+ .fvs-wght-200 {
6
+ font-variation-settings: 'wght' 200;
7
+ }
8
+ .fvs-wght-300 {
9
+ font-variation-settings: 'wght' 300;
10
+ }
11
+ .fvs-wght-400 {
12
+ font-variation-settings: 'wght' 400;
13
+ }
14
+ .fvs-wght-500 {
15
+ font-variation-settings: 'wght' 500;
16
+ }
17
+ .fvs-wght-600 {
18
+ font-variation-settings: 'wght' 600;
19
+ }
20
+ .fvs-wght-700 {
21
+ font-variation-settings: 'wght' 700;
22
+ }
23
+ .fvs-wght-800 {
24
+ font-variation-settings: 'wght' 800;
25
+ }
26
+ .fvs-wght-900 {
27
+ font-variation-settings: 'wght' 900;
28
+ }
29
+ }
@@ -0,0 +1,41 @@
1
+ :root {
2
+ /* By numeric step */
3
+ .wght-100 {
4
+ font-weight: 100;
5
+ }
6
+ .wght-200 {
7
+ font-weight: 200;
8
+ }
9
+ .wght-300 {
10
+ font-weight: 300;
11
+ }
12
+ .wght-400 {
13
+ font-weight: 400;
14
+ }
15
+ .wght-500 {
16
+ font-weight: 500;
17
+ }
18
+ .wght-600 {
19
+ font-weight: 600;
20
+ }
21
+ .wght-700 {
22
+ font-weight: 700;
23
+ }
24
+ .wght-800 {
25
+ font-weight: 800;
26
+ }
27
+ .wght-900 {
28
+ font-weight: 900;
29
+ }
30
+
31
+ /* By named weight */
32
+ .light {
33
+ font-weight: light;
34
+ }
35
+ .normal {
36
+ font-weight: normal;
37
+ }
38
+ .bold {
39
+ font-weight: bold;
40
+ }
41
+ }
@@ -0,0 +1,3 @@
1
+ @import './_generic-font-classes.css';
2
+ @import './_generic-font-weights.css';
3
+ @import './_generic-font-variation-settings.css';
@@ -0,0 +1,10 @@
1
+ :root {
2
+ --step-8: clamp(2.7994rem, 2.4462rem + 1.7658vw, 3.8147rem); /* 8 */
3
+ --step-7: clamp(2.3328rem, 2.0827rem + 1.2504vw, 3.0518rem); /* 7 */
4
+ --step-6: clamp(1.944rem, 1.771rem + 0.8651vw, 2.4414rem); /* 6 */
5
+ --step-5: clamp(1.62rem, 1.5041rem + 0.5793vw, 1.9531rem); /* 5 */
6
+ --step-4: clamp(1.35rem, 1.2761rem + 0.3696vw, 1.5625rem); /* 4 */
7
+ --step-3: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem); /* 3 */
8
+ --step-2: clamp(0.9375rem, 0.9158rem + 0.1087vw, 1rem); /* 2 */
9
+ --step-1: clamp(0.7813rem, 0.7747rem + 0.0326vw, 0.8rem); /* 1 */
10
+ }
@@ -0,0 +1 @@
1
+ @import './_reponsive-font-sizes.css';
@@ -25,9 +25,9 @@ fieldset,
25
25
  legend,
26
26
  li,
27
27
  a {
28
- color: var(--grayscale-text-body);
28
+ color: light-dark(var(--gray-12), var(--gray-3));
29
29
  font-family: var(--font-family);
30
- font-size: var(--step-1);
30
+ font-size: var(--step-4);
31
31
  }
32
32
 
33
33
  body {
@@ -1,2 +1 @@
1
1
  @import './colors/';
2
- @import './_reponsive-font-size';
@@ -174,7 +174,7 @@ watch(
174
174
  /* Label vars */
175
175
  --_label-text-color: var(--theme-form-input-text-label-color-normal);
176
176
  --_label-text-margin-block: 0.8rem;
177
- --_label-text-size: var(--step-2);
177
+ --_label-text-size: var(--step-5);
178
178
  --_label-text-weight: normal;
179
179
  --_label-text-line-height: 1.5;
180
180
  --_label-text-background-color: var(--_input-text-with-label-background-color);
@@ -195,7 +195,7 @@ watch(
195
195
  &:has(.input-text-wrapper.dirty) {
196
196
  --_label-offset: 0 -3.2rem;
197
197
  --_label-text-weight: bolder;
198
- --_label-text-size: var(--step-1);
198
+ --_label-text-size: var(--step-4);
199
199
  /* line-height: 1.5; */
200
200
  /* padding: 0.2rem 1.2rem; */
201
201
  }
@@ -213,7 +213,7 @@ watch(
213
213
  &:has(.input-text-wrapper.dirty) {
214
214
  --_label-offset: 1rem -2.8rem;
215
215
  --_label-text-weight: normal;
216
- /* --_label-text-size: var(--step-1); */
216
+ /* --_label-text-size: var(--step-4); */
217
217
  /* line-height: 1.5; */
218
218
  /* padding: 0.2rem 1.2rem; */
219
219
  }
@@ -225,7 +225,7 @@ watch(
225
225
  &:has(.input-text-wrapper.active),
226
226
  &:has(.input-text-wrapper.dirty) {
227
227
  /* --_label-offset: 1rem -2.8rem; */
228
- /* font-size: var(--step-1); */
228
+ /* font-size: var(--step-4); */
229
229
  /* line-height: 1.5; */
230
230
  /* padding: 0.2rem 1.2rem; */
231
231
  }
@@ -141,7 +141,7 @@ watch(
141
141
  /* Label vars */
142
142
  --_label-textarea-color: var(--theme-form-input-text-label-color-normal);
143
143
  --_label-textarea-margin-block: 0.8rem;
144
- --_label-textarea-size: var(--step-2);
144
+ --_label-textarea-size: var(--step-5);
145
145
  --_label-textarea-weight: normal;
146
146
  --_label-textarea-height: auto;
147
147
  --_label-textarea-line-height: 1.5;
@@ -164,7 +164,7 @@ watch(
164
164
  &:has(.input-textarea-wrapper.dirty) {
165
165
  --_label-offset: 0 -3.2rem;
166
166
  --_label-textarea-weight: bolder;
167
- --_label-textarea-size: var(--step-1);
167
+ --_label-textarea-size: var(--step-4);
168
168
  /* line-height: 1.5; */
169
169
  /* padding: 0.2rem 1.2rem; */
170
170
  }
@@ -183,7 +183,7 @@ watch(
183
183
  &:has(.input-textarea-wrapper.dirty) {
184
184
  --_label-offset: 1rem -2.8rem;
185
185
  --_label-textarea-weight: normal;
186
- /* --_label-textarea-size: var(--step-1); */
186
+ /* --_label-textarea-size: var(--step-4); */
187
187
  /* line-height: 1.5; */
188
188
  /* padding: 0.2rem 1.2rem; */
189
189
  }
@@ -195,7 +195,7 @@ watch(
195
195
  &:has(.input-textarea-wrapper.active),
196
196
  &:has(.input-textarea-wrapper.dirty) {
197
197
  /* --_label-offset: 1rem -2.8rem; */
198
- /* font-size: var(--step-1); */
198
+ /* font-size: var(--step-4); */
199
199
  /* line-height: 1.5; */
200
200
  /* padding: 0.2rem 1.2rem; */
201
201
  }
@@ -70,10 +70,11 @@ const useZodValidation = (formSchema: any, formRef: Ref<HTMLFormElement | null>)
70
70
 
71
71
  // 3: Add issues to the ZodError object
72
72
  for (const [path, message] of Object.entries(apiErrors)) {
73
- zodError.addIssue({
73
+ zodError.issues.push({
74
74
  path: path.split('.'),
75
75
  message: message as string,
76
- code: z.ZodIssueCode.custom,
76
+ code: 'custom',
77
+ input: state[path],
77
78
  });
78
79
  await updatePreviousValue(path, message as string, state);
79
80
  }
@@ -102,10 +103,10 @@ const useZodValidation = (formSchema: any, formRef: Ref<HTMLFormElement | null>)
102
103
  };
103
104
 
104
105
  const fieldMaxLength = (name: string) => {
105
- const fieldSchema = formSchema.shape[name];
106
- if (fieldSchema instanceof z.ZodString) {
107
- return fieldSchema._def.checks.find((check) => check.kind === 'max')?.value;
108
- }
106
+ // Note: This function relied on internal Zod APIs that changed in v4
107
+ // For now, returning undefined as the maxlength functionality may need refactoring
108
+ // or using a different approach like parsing schema metadata
109
+ return undefined;
109
110
  };
110
111
 
111
112
  const scrollToFirstError = async () => {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srcdev-nuxt-forms",
3
3
  "type": "module",
4
- "version": "5.0.2",
4
+ "version": "5.1.1",
5
5
  "main": "nuxt.config.ts",
6
6
  "scripts": {
7
7
  "clean": "rm -rf .nuxt && rm -rf .output && rm -rf .playground/.nuxt && rm -rf .playground/.output",
@@ -24,28 +24,28 @@
24
24
  "types/"
25
25
  ],
26
26
  "devDependencies": {
27
- "@nuxt/eslint-config": "1.2.0",
28
- "@nuxt/icon": "1.11.0",
27
+ "@iconify-json/carbon": "1.2.10",
28
+ "@iconify-json/material-symbols": "1.2.29",
29
+ "@iconify-json/material-symbols-light": "1.2.29",
30
+ "@nuxt/eslint-config": "1.5.2",
31
+ "@nuxt/icon": "1.15.0",
29
32
  "@nuxt/test-utils": "3.17.2",
30
33
  "@vue/test-utils": "2.4.6",
31
- "eslint": "9.22.0",
34
+ "eslint": "9.31.0",
32
35
  "happy-dom": "16.8.1",
33
- "nuxt": "3.17.5",
36
+ "nuxt": "3.17.7",
34
37
  "release-it": "18.1.2",
35
- "typescript": "5.8.2",
38
+ "typescript": "5.8.3",
36
39
  "vitest": "3.0.8",
37
- "vue": "3.5.13"
40
+ "vue": "3.5.17",
41
+ "zod": "^4.0.0"
38
42
  },
39
43
  "dependencies": {
40
- "@iconify-json/carbon": "1.2.8",
41
44
  "@iconify-json/gridicons": "1.2.2",
42
- "@iconify-json/material-symbols": "1.2.16",
43
- "@iconify-json/material-symbols-light": "1.2.16",
44
45
  "@iconify-json/ph": "1.2.2",
45
46
  "@iconify-json/radix-icons": "1.2.2",
46
47
  "@iconify-json/ri": "1.2.5",
47
- "modern-normalize": "3.0.1",
48
- "zod": "3.24.2"
48
+ "modern-normalize": "3.0.1"
49
49
  },
50
50
  "release-it": {
51
51
  "$schema": "https://unpkg.com/release-it/schema/release-it.json",
@@ -1,10 +0,0 @@
1
- :root {
2
- --step-5: clamp(2.7994rem, 2.4462rem + 1.7658vw, 3.8147rem);
3
- --step-4: clamp(2.3328rem, 2.0827rem + 1.2504vw, 3.0518rem);
4
- --step-3: clamp(1.944rem, 1.771rem + 0.8651vw, 2.4414rem);
5
- --step-2: clamp(1.62rem, 1.5041rem + 0.5793vw, 1.9531rem);
6
- --step-1: clamp(1.35rem, 1.2761rem + 0.3696vw, 1.5625rem);
7
- --step-0: clamp(1.125rem, 1.0815rem + 0.2174vw, 1.25rem);
8
- --step--1: clamp(0.9375rem, 0.9158rem + 0.1087vw, 1rem);
9
- --step--2: clamp(0.7813rem, 0.7747rem + 0.0326vw, 0.8rem);
10
- }
@@ -1,2 +0,0 @@
1
- @import './vars/';
2
- @import './utils/';
@@ -1,190 +0,0 @@
1
- .heading-1 {
2
- font-size: var(--step-5);
3
- font-weight: bold;
4
- line-height: 1.3;
5
- }
6
-
7
- .heading-2 {
8
- font-size: var(--step-4);
9
- font-weight: bold;
10
- line-height: 1.3;
11
- }
12
-
13
- .heading-3 {
14
- font-size: var(--step-3);
15
- font-weight: bold;
16
- line-height: 1.3;
17
- }
18
-
19
- .heading-4 {
20
- font-size: var(--step-2);
21
- font-weight: bold;
22
- line-height: 1.3;
23
- }
24
-
25
- .heading-5 {
26
- font-size: var(--step-1);
27
- font-weight: bold;
28
- line-height: 1.3;
29
- }
30
-
31
- .heading-6 {
32
- font-size: var(--step-0);
33
- font-weight: bold;
34
- line-height: 1.3;
35
- }
36
-
37
- /* Body text */
38
-
39
- .body-large {
40
- font-size: var(--step-3);
41
- font-weight: normal;
42
- line-height: 1.5;
43
- }
44
-
45
- .body-medium {
46
- font-size: var(--step-2);
47
- font-weight: normal;
48
- line-height: 1.5;
49
- }
50
-
51
- .body-normal {
52
- font-size: var(--step-1);
53
- font-weight: normal;
54
- line-height: 1.5;
55
- }
56
-
57
- .body-small {
58
- font-size: var(--step--0);
59
- font-weight: normal;
60
- line-height: 1.5;
61
- }
62
-
63
- .body-xsmall {
64
- font-size: var(--step--1);
65
- font-weight: normal;
66
- line-height: 1.5;
67
- }
68
-
69
- .body-large-semibold {
70
- font-size: var(--step-3);
71
- font-weight: 500;
72
- line-height: 1.5;
73
- }
74
-
75
- .body-medium-semibold {
76
- font-size: var(--step-2);
77
- font-weight: 500;
78
- line-height: 1.5;
79
- }
80
-
81
- .body-normal-semibold {
82
- font-size: var(--step-1);
83
- font-weight: 500;
84
- line-height: 1.5;
85
- }
86
-
87
- .body-small-semibold {
88
- font-size: var(--step-0);
89
- font-weight: 500;
90
- line-height: 1.5;
91
- }
92
-
93
- .body-xsmall-semibold {
94
- font-size: var(--step--1);
95
- font-weight: 500;
96
- line-height: 1.5;
97
- }
98
-
99
- .body-large-bold {
100
- font-size: var(--step-3);
101
- font-weight: bold;
102
- line-height: 1.5;
103
- }
104
-
105
- .body-medium-bold {
106
- font-size: var(--step-2);
107
- font-weight: bold;
108
- line-height: 1.5;
109
- }
110
-
111
- .body-normal-bold {
112
- font-size: var(--step-1);
113
- font-weight: bold;
114
- line-height: 1.5;
115
- }
116
-
117
- .body-small-bold {
118
- font-size: var(--step-0);
119
- font-weight: bold;
120
- line-height: 1.5;
121
- }
122
-
123
- .body-xsmall-bold {
124
- font-size: var(--step--1);
125
- font-weight: bold;
126
- line-height: 1.5;
127
- }
128
-
129
- /* Links */
130
-
131
- .link-large {
132
- color: var(--theme-link-default);
133
- font-size: var(--step-3);
134
- font-weight: 600;
135
- line-height: 1.5;
136
- text-decoration: underline;
137
-
138
- &:visited {
139
- color: var(--theme-link-default);
140
- }
141
- }
142
-
143
- .link-medium {
144
- color: var(--theme-link-default);
145
- font-size: var(--step-2);
146
- font-weight: 600;
147
- line-height: 1.5;
148
- text-decoration: underline;
149
-
150
- &:visited {
151
- color: var(--theme-link-default);
152
- }
153
- }
154
-
155
- .link-normal {
156
- color: var(--theme-link-default);
157
- font-size: var(--step-1);
158
- font-weight: 600;
159
- line-height: 1.5;
160
- text-decoration: underline;
161
-
162
- &:visited,
163
- &:active {
164
- color: var(--theme-link-default);
165
- }
166
- }
167
-
168
- .link-small {
169
- color: var(--theme-link-default);
170
- font-size: var(--step-0);
171
- font-weight: 600;
172
- line-height: 1.5;
173
- text-decoration: underline;
174
-
175
- &:visited {
176
- color: var(--theme-link-default);
177
- }
178
- }
179
-
180
- .link-xsmall {
181
- color: var(--theme-link-default);
182
- font-size: var(--step--1);
183
- font-weight: 600;
184
- line-height: 1.5;
185
- text-decoration: underline;
186
-
187
- &:visited {
188
- color: var(--theme-link-default);
189
- }
190
- }
@@ -1,69 +0,0 @@
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
- }
40
-
41
- /* Using the font-variation-settings property. */
42
-
43
- .fvs-wght-100 {
44
- font-variation-settings: 'wght' 100;
45
- }
46
- .fvs-wght-200 {
47
- font-variation-settings: 'wght' 200;
48
- }
49
- .fvs-wght-300 {
50
- font-variation-settings: 'wght' 300;
51
- }
52
- .fvs-wght-400 {
53
- font-variation-settings: 'wght' 400;
54
- }
55
- .fvs-wght-500 {
56
- font-variation-settings: 'wght' 500;
57
- }
58
- .fvs-wght-600 {
59
- font-variation-settings: 'wght' 600;
60
- }
61
- .fvs-wght-700 {
62
- font-variation-settings: 'wght' 700;
63
- }
64
- .fvs-wght-800 {
65
- font-variation-settings: 'wght' 800;
66
- }
67
- .fvs-wght-900 {
68
- font-variation-settings: 'wght' 900;
69
- }
@@ -1,2 +0,0 @@
1
- @import './_font-classes.css';
2
- @import './_weights.css';
@@ -1,14 +0,0 @@
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
- }
@@ -1 +0,0 @@
1
- @import './_type-colors';
File without changes
File without changes