@newlogic-digital/ui 3.0.4 → 3.1.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 (109) hide show
  1. package/README.md +6 -10
  2. package/gulpfile.js +17 -168
  3. package/package.json +13 -8
  4. package/src/emails/email.css +3 -3
  5. package/src/emails/email.twig +1 -1
  6. package/src/icons.svg +32 -0
  7. package/src/main.json +12 -10
  8. package/src/scripts/Components/+.js +2 -2
  9. package/src/scripts/Components/CookieConsent.js +66 -64
  10. package/src/scripts/Components/Form.js +28 -21
  11. package/src/scripts/Layout/+.js +2 -1
  12. package/src/scripts/Layout/Header.js +18 -0
  13. package/src/scripts/Layout/Main.js +49 -45
  14. package/src/scripts/Libraries/+.js +12 -10
  15. package/src/scripts/Libraries/Anchor.js +18 -43
  16. package/src/scripts/Libraries/CookieConsent.js +37 -58
  17. package/src/scripts/Libraries/Dialog.js +56 -55
  18. package/src/scripts/Libraries/Drawer.js +23 -23
  19. package/src/scripts/Libraries/NativeSlider.js +86 -86
  20. package/src/scripts/Libraries/ReCaptcha.js +20 -18
  21. package/src/scripts/Libraries/Ripple.js +16 -32
  22. package/src/scripts/Libraries/Stimulus.js +30 -34
  23. package/src/scripts/Libraries/Swup.js +47 -50
  24. package/src/scripts/Libraries/Tabs.js +12 -18
  25. package/src/scripts/Libraries/Tippy.js +118 -0
  26. package/src/scripts/Ui/+.js +5 -3
  27. package/src/scripts/Ui/Checkbox.js +19 -0
  28. package/src/scripts/Ui/Input.js +188 -161
  29. package/src/scripts/Ui/Radio.js +23 -0
  30. package/src/scripts/Ui/Select.js +64 -37
  31. package/src/scripts/Ui/Text.js +25 -0
  32. package/src/scripts/Utils/Functions/+.js +6 -6
  33. package/src/scripts/Utils/Functions/dataValue.js +28 -25
  34. package/src/scripts/Utils/Functions/importScript.js +9 -11
  35. package/src/scripts/Utils/Functions/importStyle.js +18 -5
  36. package/src/scripts/Utils/Functions/inView.js +19 -21
  37. package/src/scripts/Utils/Functions/loadStimulus.js +22 -20
  38. package/src/scripts/Utils/cdn.js +6 -4
  39. package/src/scripts/Utils/global.js +10 -33
  40. package/src/scripts/main.js +6 -6
  41. package/src/styles/Components/CookieConsent.css +40 -179
  42. package/src/styles/Components/Dialog/Default.css +12 -15
  43. package/src/styles/Components/Form/CookieConsent.css +7 -12
  44. package/src/styles/Layout/+.css +2 -0
  45. package/src/{templates/Sections/.gitkeep → styles/Layout/Header.css} +0 -0
  46. package/src/styles/Layout/Main.css +28 -63
  47. package/src/styles/Layout/Nav.css +43 -0
  48. package/src/styles/Libraries/+.css +1 -1
  49. package/src/styles/Libraries/Datepicker.css +85 -39
  50. package/src/styles/Libraries/Dialog.css +6 -5
  51. package/src/styles/Libraries/Drawer.css +15 -14
  52. package/src/styles/Libraries/Hint.css +29 -23
  53. package/src/styles/Libraries/Lazysizes.css +2 -1
  54. package/src/styles/Libraries/NativeSlider.css +18 -17
  55. package/src/styles/Libraries/Ripple.css +8 -5
  56. package/src/styles/Libraries/Tabs.css +4 -4
  57. package/src/styles/Libraries/Tippy.css +87 -0
  58. package/src/styles/Ui/+.css +5 -1
  59. package/src/styles/Ui/Badge.css +33 -19
  60. package/src/styles/Ui/Btn.css +80 -53
  61. package/src/styles/Ui/Checkbox.css +80 -41
  62. package/src/styles/Ui/Dropdown.css +5 -0
  63. package/src/styles/Ui/Heading.css +12 -12
  64. package/src/styles/Ui/Icon.css +27 -8
  65. package/src/styles/Ui/Image.css +23 -0
  66. package/src/styles/Ui/Input.css +295 -220
  67. package/src/styles/Ui/Label.css +14 -0
  68. package/src/styles/Ui/Link.css +3 -3
  69. package/src/styles/Ui/Notice.css +14 -16
  70. package/src/styles/Ui/Progress.css +10 -21
  71. package/src/styles/Ui/Radio.css +3 -8
  72. package/src/styles/Ui/Select.css +63 -112
  73. package/src/styles/Ui/Switch.css +70 -0
  74. package/src/styles/Ui/{Wsw.css → Text.css} +61 -80
  75. package/src/styles/Ui/Title.css +8 -4
  76. package/src/styles/Utils/default.css +75 -67
  77. package/src/styles/Utils/icons.css +9 -0
  78. package/src/styles/Utils/keyframes.css +182 -0
  79. package/src/styles/Utils/normalize.css +223 -0
  80. package/src/styles/Utils/print.css +1 -1
  81. package/src/styles/Utils/tailwind/base.css +15 -0
  82. package/src/styles/Utils/tailwind/gutters.css +264 -263
  83. package/src/styles/Utils/theme/main.css +24 -21
  84. package/src/styles/Utils/vars.css +58 -35
  85. package/src/styles/Utils/vendor.css +1 -2
  86. package/src/styles/main.css +6 -3
  87. package/src/styles/tailwind.css +1 -4
  88. package/src/templates/Components/CookieConsent.twig +30 -0
  89. package/src/templates/Components/Dialogs/Basic.twig +7 -3
  90. package/src/templates/Layout/Header.twig +42 -0
  91. package/src/templates/Layout/Main.twig +52 -67
  92. package/src/templates/Sections/Gdpr.twig +64 -0
  93. package/src/templates/Sections/Ui.twig +2104 -0
  94. package/src/templates/dialog-basic.twig +2 -2
  95. package/src/templates/gdpr.json +11 -0
  96. package/src/templates/index.json +8 -2
  97. package/src/templates/json-tippy.twig +16 -0
  98. package/src/templates/ui.json +11 -0
  99. package/CHANGELOG +0 -231
  100. package/src/icons/iconfont.css +0 -171
  101. package/src/icons/selection.json +0 -1
  102. package/src/icons/variables.css +0 -31
  103. package/src/scripts/Ui/Wsw.js +0 -25
  104. package/src/scripts/Utils/Functions/bodyLoaded.js +0 -12
  105. package/src/styles/Libraries/Animate.css +0 -184
  106. package/src/styles/Utils/reference.css +0 -2
  107. package/src/styles/Utils/tailwind/content.css +0 -24
  108. package/src/styles/Utils/theme/vars.css +0 -19
  109. package/src/styles/preload.css +0 -29
@@ -0,0 +1,23 @@
1
+ .ui-image {
2
+ position: relative;
3
+
4
+ &:not(.bg-transparent) {
5
+ background-color: rgb(var(--color-background-100));
6
+ }
7
+
8
+ &::before {
9
+ content: "";
10
+ display: block;
11
+ }
12
+
13
+ & > * {
14
+ position: absolute;
15
+ inset: 0;
16
+ width: 100%;
17
+ height: 100%;
18
+ }
19
+
20
+ @nest picture& > img {
21
+ object-fit: cover;
22
+ }
23
+ }
@@ -1,192 +1,151 @@
1
- .ui-input {
1
+ .ui-input, .ui-select {
2
2
  --ui-input-height: 3rem;
3
- --ui-input-py: 0.25rem;
3
+ --ui-input-height-textarea: 8rem;
4
+ --ui-input-py: 0.75rem;
4
5
  --ui-input-px: 1rem;
5
6
  --ui-input-size: 0.875rem;
7
+ --ui-input-icon-size: 1.25rem;
8
+ --ui-input-icon-spacing: 0.5rem;
6
9
  --ui-input-weight: var(--font-medium);
7
- --ui-input-border-color: var(--color-default);
10
+ --ui-input-border-color: var(--color-current);
8
11
  --ui-input-border-opacity: 0.15;
12
+ --ui-input-radius: var(--radius);
9
13
 
10
14
  position: relative;
11
- display: block;
15
+ display: flex;
16
+ flex-direction: column;
12
17
  font-size: var(--ui-input-size);
13
18
 
14
- @nest .text-light & {
15
- --ui-input-border-color: var(--color-light);
19
+ @media (--media-d) {
20
+ --ui-input-height-textarea: 12rem;
16
21
  }
17
22
 
18
- &:after {
19
- opacity: 0;
20
- font-weight: var(--ui-input-weight);
23
+ &:--size-lg {
24
+ --ui-input-height: 3rem;
25
+ }
26
+
27
+ & svg {
28
+ width: 1em;
29
+ height: 1em;
30
+ display: block;
31
+ }
32
+
33
+ & > label {
34
+ display: block;
21
35
  position: absolute;
22
36
  z-index: 1;
23
- transition: var(--transition-opacity);
24
- right: var(--ui-input-px);
25
- content: "";
26
37
  pointer-events: none;
38
+ transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), var(--transition-color);
39
+ transform-origin: 0 50%;
40
+ white-space: nowrap;
41
+ text-overflow: ellipsis;
42
+ overflow: hidden;
43
+ transform: perspective(100px);
44
+ will-change: transform;
45
+ font-weight: var(--ui-input-weight);
46
+ left: var(--ui-input-px);
47
+ right: var(--ui-input-px);
27
48
  top: calc(var(--ui-input-height) / 2);
28
49
  line-height: var(--ui-input-size);
29
- margin-top: calc(var(--ui-input-size) / 2 * -1);
30
-
31
- @nest [data-state*="invalid"]& {
32
- color: rgb(var(--color-error));
33
- opacity: 1;
34
- content: "!";
35
- }
36
- }
37
-
38
- &[data-type="number"] {
39
- width: 6rem;
40
-
41
- & input {
42
- padding-right: 1.875rem;
43
- font-size: 1rem;
44
- font-weight: var(--font-semibold);
45
- text-align: center;
46
- }
47
-
48
- &:after {
49
- content: normal;
50
- }
51
-
52
- &[data-title] {
53
- & input {
54
- padding-left: 0.375rem;
55
- padding-right: 2.5rem;
56
- }
57
-
58
- &:after {
59
- color: rgb(var(--color-default));
60
- content: attr(data-title);
61
- position: absolute;
62
- display: block;
63
- opacity: 1;
64
- font-size: 0.75rem;
65
- letter-spacing: -0.01875rem;
66
- margin-top: -0.5625rem;
67
- right: 2.125rem;
68
- top: 50%;
69
- }
70
- }
71
- }
72
-
73
- &[data-type="color"] {
74
- & .color {
75
- width: 1.125rem;
76
- height: 1.125rem;
77
- border-radius: 50%;
78
- top: 50%;
79
- left: 0.875rem;
80
- overflow: hidden;
81
- position: absolute;
82
- display: block;
83
- margin-top: -0.5625rem;
84
- border: 1px solid rgba(0,0,0,0.15);
85
- }
86
-
87
- & input {
88
- padding-left: 2.5rem;
89
- }
90
- }
91
-
92
- &[data-type="file"] {
93
- color: rgb(var(--color-default));
94
- font-weight: var(--font-normal);
95
- border-radius: var(--radius);
96
- transition: var(--transition-border);
97
- position: relative;
98
- width: 100%;
99
- display: flex;
100
- line-height: normal;
101
- height: var(--ui-input-height);
102
- background-color: rgb(var(--color-background));
103
- border: 1px solid rgba(var(--color-default), 0.15);
104
-
105
- &[data-state*="invalid"] {
106
- border-color: rgb(var(--color-error));
107
- }
108
-
109
- & input {
110
- position: absolute;
111
- inset: 0;
112
- width: 100%;
113
- height: 100%;
114
- z-index: 10;
115
- }
50
+ margin-top: calc(var(--ui-input-size) / 2 * -1);
51
+ order: -1;
116
52
 
117
- &:focus {
118
- border-color: rgba(var(--color-default), 0.25);
53
+ @nest [data-has~="icon-l"]& {
54
+ left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
119
55
  }
120
- }
121
56
 
122
- & .input {
123
- position: absolute;
124
- inset: 0;
125
- pointer-events: none;
126
- display: flex;
127
- align-items: center;
128
-
129
- & ~ input {
130
- font-size: 0;
57
+ @nest [data-has~="icon-r"]& {
58
+ right: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
131
59
  }
132
60
  }
133
61
 
134
- & input, & textarea, & .input {
62
+ & > :is(input, textarea, select, .input) {
135
63
  width: 100%;
136
- transition: var(--transition-border);
64
+ transition: var(--transition-border), var(--transition-shadow);
137
65
  box-shadow: none;
138
66
  line-height: normal;
139
67
  background-color: transparent;
140
68
  font-size: inherit;
141
69
  height: var(--ui-input-height);
142
70
  font-weight: var(--ui-input-weight);
143
- border-radius: var(--radius);
144
- padding: calc(var(--ui-input-height) / 2.5) var(--ui-input-px) var(--ui-input-py);
71
+ border-radius: var(--ui-input-radius);
72
+ padding: calc(var(--ui-input-py) * 1.75) var(--ui-input-px) calc(var(--ui-input-py) * 0.5);
145
73
  color: inherit;
146
- border: 1px solid rgba(var(--ui-input-border-color), var(--ui-input-border-opacity));
147
- background-clip: padding-box;
148
-
149
- @nest :not([data-state*="placeholder"])& {
150
- &[placeholder] {
151
- padding-top: var(--ui-input-py);
152
- }
153
- }
154
- }
74
+ border: 1px solid rgb(var(--ui-input-border-color) / var(--ui-input-border-opacity));
155
75
 
156
- & input, & textarea {
157
76
  &[disabled] {
158
77
  cursor: default;
159
78
  background-color: rgb(var(--color-background-100));
160
79
  }
161
80
 
162
- &:invalid {
163
- box-shadow: none;
81
+ &[required] {
82
+ & ~ label {
83
+ &::after {
84
+ color: rgb(var(--color-error));
85
+ content: " *";
86
+ }
87
+ }
164
88
  }
165
89
 
166
90
  &:focus {
167
- --ui-input-border-opacity: 0.3;
91
+ --ui-input-border-opacity: 1;
92
+ --ui-input-border-color: var(--color-accent);
93
+
94
+ box-shadow:
95
+ 0 0 0 0 rgb(var(--color-current)),
96
+ 0 0 0 3px rgb(var(--color-accent) / 0.15),
97
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
98
+
99
+ @nest .dark & {
100
+ box-shadow:
101
+ 0 0 0 0 rgb(var(--color-current)),
102
+ 0 0 0 3px rgb(var(--color-accent) / 0.3),
103
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
104
+ }
168
105
  }
169
106
 
170
- @nest [data-state*="invalid"]& {
107
+ @nest :--state-invalid& {
171
108
  border-color: rgb(var(--color-error));
172
109
  box-shadow: none;
173
- }
174
110
 
175
- @nest [data-state*="active"]&, [data-state*="placeholder"]&, &:focus {
176
- & ~ label {
177
- transform: translateY(calc(var(--ui-input-size) / 1.4 * -1)) scale(0.8);
111
+ &:focus {
112
+ box-shadow:
113
+ 0 0 0 0 rgb(var(--color-current)),
114
+ 0 0 0 3px rgb(var(--color-error) / 0.1),
115
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
116
+
117
+ @nest .dark & {
118
+ box-shadow:
119
+ 0 0 0 0 rgb(var(--color-current)),
120
+ 0 0 0 3px rgb(var(--color-error) / 0.2),
121
+ 0 1px 2px 0 rgb(var(--color-current) / 0.05);
122
+ }
178
123
  }
179
124
  }
180
125
 
126
+ @nest [data-has~="icon-l"]& {
127
+ padding-left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
128
+ }
129
+
130
+ @nest [data-has~="icon-r"]&, :--state-invalid& {
131
+ padding-right: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
132
+ }
133
+
134
+ @nest :not(:--state-placeholder)& {
135
+ &:is([placeholder], [data-placeholder]) {
136
+ padding-top: var(--ui-input-py);
137
+ padding-bottom: var(--ui-input-py);
138
+ }
139
+ }
181
140
  }
182
141
 
183
- & input {
142
+ & > input {
184
143
  &::-ms-clear {
185
144
  display: none;
186
145
  }
187
146
 
188
147
  &[type="number"] {
189
- -moz-appearance:textfield;
148
+ -moz-appearance: textfield;
190
149
 
191
150
  &::-webkit-outer-spin-button,
192
151
  &::-webkit-inner-spin-button {
@@ -195,73 +154,232 @@
195
154
 
196
155
  & ~ .icon {
197
156
  position: absolute;
198
- right: 0;
157
+ right: calc(var(--ui-input-height) / 4 - 0.25rem);
199
158
  color: rgb(var(--color-primary));
200
- padding: 0 0.4375rem;
201
159
  cursor: pointer;
202
160
  user-select: none;
203
161
  font-size: 1.25rem;
204
-
205
- &:before {
206
- position: relative;
207
- }
162
+ top: auto;
163
+ margin-top: auto;
164
+ width: 1em;
165
+ height: 1em;
166
+ background-color: rgb(var(--color-accent));
208
167
 
209
168
  &.icon-angle-up {
210
- top: 0;
211
- padding-top: 0.25rem;
212
-
213
- &:before {
214
- top: 0.3125rem;
215
- }
169
+ top: calc((var(--ui-input-height) / 2) - 1.25rem + 0.1875rem);
170
+ mask: var(--icon-angle-up);
216
171
  }
217
172
 
218
173
  &.icon-angle-down {
219
- bottom: 0;
220
- padding-bottom: 0.25rem;
174
+ top: calc((var(--ui-input-height) / 2) - 0.1875rem);
175
+ mask: var(--icon-angle-down);
176
+ }
177
+ }
221
178
 
222
- &:before {
223
- bottom: 0.3125rem;
224
- }
179
+ & ~ .icon-r {
180
+ margin-right: calc(var(--ui-input-height) / 4 + var(--ui-input-icon-spacing));
181
+ }
182
+ }
183
+
184
+ &[type^="date"] {
185
+ appearance: none;
186
+
187
+ &::-webkit-date-and-time-value {
188
+ text-align: left;
189
+ }
190
+
191
+ @nest :not(:--state-active)&, html:not(.mobile) & {
192
+ font-size: 0;
193
+ }
194
+
195
+ @nest html.mobile:not(.safari) & {
196
+ padding-left: calc(var(--ui-input-px) - 0.3125rem);
197
+ }
198
+ }
199
+
200
+ &[type="time"] {
201
+ &::-webkit-calendar-picker-indicator {
202
+ display: none;
203
+ }
204
+
205
+ @nest :not(:--state-active)& {
206
+ &:not([placeholder]):not(:focus) {
207
+ font-size: 0;
225
208
  }
226
209
  }
210
+
211
+ @nest html.mobile:not(.safari) & {
212
+ padding-left: calc(var(--ui-input-px) - 0.3125rem);
213
+ appearance: none;
214
+ }
227
215
  }
216
+ }
228
217
 
229
- &[type="color"] {
230
- opacity: 0;
218
+ & > textarea {
219
+ resize: vertical;
220
+ overflow: hidden;
221
+ min-height: var(--ui-input-height-textarea);
222
+ }
223
+
224
+ & > input, & > textarea {
225
+ background-clip: padding-box;
226
+ cursor: text;
227
+
228
+ &:invalid {
229
+ box-shadow: none;
230
+ }
231
+
232
+ @nest :is(:--state-active, :--state-placeholder)&, &:focus {
233
+ & ~ label {
234
+ transform: translateY(calc(var(--ui-input-size) / 1.4 * -1)) scale(0.8);
235
+ }
236
+ }
237
+ }
238
+
239
+ & > .input {
240
+ position: absolute;
241
+ inset: 0;
242
+ pointer-events: none;
243
+ display: flex;
244
+ align-items: center;
245
+
246
+ & span {
247
+ color: transparent;
248
+ }
249
+ }
250
+
251
+ & > [class^="icon-"] {
252
+ font-weight: var(--font-medium);
253
+ position: absolute;
254
+ z-index: 10;
255
+ transition: var(--transition-opacity);
256
+ content: "";
257
+ top: calc(var(--ui-input-height) / 2);
258
+ margin-top: calc(var(--ui-input-icon-size) / -2);
259
+ font-size: var(--ui-input-icon-size);
260
+ width: 1em;
261
+ height: 1em;
262
+ display: flex;
263
+ justify-content: center;
264
+ align-items: center;
265
+
266
+ &.icon-r {
267
+ right: calc(var(--ui-input-px));
268
+
269
+ & + .icon-r {
270
+ right: calc(var(--ui-input-px) + var(--ui-input-icon-size) + var(--ui-input-icon-spacing));
271
+ }
272
+ }
273
+
274
+ &.icon-l {
275
+ left: calc(var(--ui-input-px));
276
+
277
+ & + .icon-l {
278
+ left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + var(--ui-input-icon-spacing));
279
+ }
280
+ }
281
+
282
+ &[aria-label]:not([class*="lib-hint"]) {
283
+ &::after {
284
+ content: attr(aria-label);
285
+ font-size: var(--ui-input-size);
286
+ display: block;
287
+ margin-top: -1px;
288
+ }
231
289
  }
232
290
 
233
- &[type="file"] {
291
+ &[class*="lib-hint"] {
292
+ &::after {
293
+ white-space: normal;
294
+ line-height: 1.5;
295
+ word-wrap: normal;
296
+ width: 10rem;
297
+ font-weight: var(--font-normal);
298
+ font-size: 0.75rem;
299
+ }
300
+ }
301
+ }
302
+
303
+ &:--type-color {
304
+ & .color {
305
+ width: var(--ui-input-icon-size);
306
+ height: var(--ui-input-icon-size);
307
+ border-radius: 50%;
308
+ left: calc(var(--ui-input-px) / 1.25);
309
+ overflow: hidden;
310
+ position: absolute;
311
+ display: block;
312
+ top: calc(var(--ui-input-height) / 2);
313
+ margin-top: calc(var(--ui-input-icon-size) / -2);
314
+ border: 1px solid rgb(0 0 0 / 0.15);
315
+ }
316
+
317
+ & input {
318
+ padding-left: calc(var(--ui-input-px) + var(--ui-input-icon-size) + calc(var(--ui-input-px) / 1.75));
319
+ }
320
+ }
321
+
322
+ &:--type-file {
323
+ color: rgb(var(--color-current));
324
+ font-weight: var(--font-normal);
325
+ border-radius: var(--ui-input-radius);
326
+ transition: var(--transition-border);
327
+ position: relative;
328
+ width: 100%;
329
+ display: flex;
330
+ flex-direction: row;
331
+ line-height: normal;
332
+ height: var(--ui-input-height);
333
+ background-color: rgb(var(--color-background));
334
+ border: 1px solid rgb(var(--color-current) / 0.15);
335
+
336
+ &:--state-invalid {
337
+ border-color: rgb(var(--color-error));
338
+ }
339
+
340
+ & [type="file"] {
234
341
  cursor: pointer;
235
342
  opacity: 0;
236
343
  font-size: 0;
237
344
  display: block;
345
+ position: absolute;
346
+ inset: 0;
347
+ width: 100%;
348
+ height: 100%;
349
+ z-index: 10;
238
350
 
239
- & ~ .icon {
351
+ & + .icon {
240
352
  font-size: var(--ui-input-size);
241
353
  display: flex;
242
354
  align-items: center;
243
355
  padding: 0.5625rem 1.25rem 0.5625rem 2.75rem;
244
- color: rgba(var(--color-default), 0.75);
356
+ color: rgb(var(--color-current) / 0.75);
245
357
  white-space: nowrap;
246
- background-color: rgba(var(--color-default), 0.05);
247
- border-right: 1px solid rgba(var(--color-default), 0.1);
358
+ background-color: rgb(var(--color-current) / 0.05);
359
+ border-top-left-radius: var(--ui-input-radius);
360
+ border-bottom-left-radius: var(--ui-input-radius);
248
361
 
249
- @media (--media-768) {
362
+ @media (--media-t) {
250
363
  padding-top: 0.875rem;
251
364
  padding-bottom: 0.875rem;
252
365
  line-height: 1rem;
253
366
  }
254
367
 
255
- &:before {
368
+ &::before {
256
369
  position: absolute;
257
370
  left: 1rem;
258
371
  top: 50%;
259
372
  font-size: 1.125rem;
260
373
  margin-top: -0.5625rem;
374
+ content: "";
375
+ width: 1em;
376
+ height: 1em;
377
+ mask: var(--icon-upload);
378
+ background-color: currentColor;
261
379
  }
262
380
  }
263
381
 
264
- & ~ span:not(.icon) {
382
+ & ~ span:not([class^="icon"]) {
265
383
  font-size: var(--ui-input-size);
266
384
  padding: 0.5625rem 1rem;
267
385
  align-self: center;
@@ -274,72 +392,29 @@
274
392
  padding-bottom: 0.875rem;
275
393
  }
276
394
 
277
- &[data-placeholder]:before {
395
+ &[data-placeholder]::before {
278
396
  content: attr(data-placeholder);
279
- color: rgba(var(--color-default), 0.6);
397
+ color: rgb(var(--color-current) / 0.6);
280
398
  }
281
399
  }
282
400
  }
283
401
 
284
- &[type^="date"] {
285
- appearance: none;
286
-
287
- @nest :not([data-state*="active"])&, html:not(.mobile) & {
288
- font-size: 0;
289
- }
290
-
291
- @nest html.android & {
292
- padding-left: calc(var(--ui-input-px) - 0.3125rem);
293
- }
294
- }
295
-
296
- &[type="time"] {
297
- & ~ label {
298
- background-color: rgb(var(--color-background));
299
- padding-bottom: 0.1875rem;
300
- }
301
-
302
- &.is-label {
303
- padding-top: 1.25rem;
304
- }
305
-
306
- @nest html.mobile & {
307
- appearance: none;
308
- }
309
-
310
- @nest html.android & {
311
- padding-left: calc(var(--ui-input-px) - 0.3125rem);
312
- }
402
+ &:focus-within {
403
+ border-color: rgb(var(--color-current) / 0.25);
313
404
  }
314
405
  }
406
+ }
315
407
 
316
- & textarea {
317
- resize: vertical;
318
- overflow: hidden;
319
- min-height: 8.75rem;
408
+ .pcr-app {
409
+ border-radius: var(--radius);
410
+ overflow: hidden;
320
411
 
321
- @media (--media-min-960) {
322
- min-height: 13.125rem;
323
- }
324
- }
412
+ @nest .dark & {
413
+ background: rgb(var(--color-background-200));
325
414
 
326
- & label {
327
- display: block;
328
- position: absolute;
329
- z-index: 1;
330
- pointer-events: none;
331
- transition: transform .4s cubic-bezier(.25, .8, .25, 1), var(--transition-color);
332
- transform-origin: 0 50%;
333
- white-space: nowrap;
334
- text-overflow: ellipsis;
335
- overflow: hidden;
336
- transform: perspective(100px);
337
- will-change: transform;
338
- font-weight: var(--ui-input-weight);
339
- left: var(--ui-input-px);
340
- right: var(--ui-input-px);
341
- top: calc(var(--ui-input-height) / 2);
342
- line-height: var(--ui-input-size);
343
- margin-top: calc(var(--ui-input-size) / 2 * -1);
415
+ & .pcr-interaction input {
416
+ background: rgb(var(--color-background-100));
417
+ box-shadow: none !important;
418
+ }
344
419
  }
345
- }
420
+ }
@@ -0,0 +1,14 @@
1
+ .ui-label {
2
+ --ui-label-size: 0.875rem;
3
+ --ui-label-size-line: 0.5rem;
4
+ --ui-label-spacing: 0.05rem;
5
+
6
+ display: block;
7
+ font-size: var(--ui-title-size);
8
+ line-height: calc(var(--ui-title-size) + var(--ui-title-size-line));
9
+ font-weight: var(--font-medium);
10
+
11
+ & ~ :is([class^="ui-"]:not(&), [class^="c-"]) {
12
+ margin-top: 0.5rem;
13
+ }
14
+ }
@@ -17,7 +17,7 @@
17
17
  opacity: var(--ui-link-hover-opacity);
18
18
  }
19
19
 
20
- &:after {
20
+ &::after {
21
21
  content: "";
22
22
  border-bottom: 1px solid currentColor;
23
23
  opacity: 0;
@@ -26,9 +26,9 @@
26
26
  transition: var(--transition-opacity), var(--transition-transform);
27
27
  transform: translateY(-0.25rem);
28
28
 
29
- @nest .no-touch :hover:not([href^="tel:"]):not([href^="mailto:"])& {
29
+ @nest .no-touch :not([href^="tel:"], [href^="mailto:"]):hover& {
30
30
  transform: none;
31
31
  opacity: var(--ui-link-underline-opacity);
32
32
  }
33
33
  }
34
- }
34
+ }