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