@api-client/ui 0.3.0 → 0.3.2

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.
@@ -0,0 +1,270 @@
1
+ /* Styling for the native UI controls to look like MD elements */
2
+
3
+ /*
4
+ Material Select
5
+
6
+ Behaves mostly like an outlined input with a label.
7
+ */
8
+
9
+ @keyframes focus-outline-inward {
10
+ 0% {
11
+ outline-width: 0;
12
+ outline-offset: 0;
13
+ }
14
+ 50% {
15
+ outline-width: var(--md-focus-ring-active-width, 8px);
16
+ outline-offset: calc(-1 * var(--md-focus-ring-active-width, 8px));
17
+ }
18
+ 100% {
19
+ outline-width: var(--md-focus-ring-width, 3px);
20
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
21
+ }
22
+ }
23
+
24
+ .md-select {
25
+ display: inline-block;
26
+ vertical-align: top;
27
+
28
+ --_outline-color: var(--md-focus-ring-color, var(--md-sys-color-secondary));
29
+
30
+ select,
31
+ ::picker(select) {
32
+ appearance: base-select;
33
+ }
34
+
35
+ select {
36
+ height: 56px;
37
+ display: inline-flex;
38
+ align-items: center;
39
+ justify-content: start;
40
+ box-sizing: border-box;
41
+ gap: 0;
42
+ padding: 0 16px 0 16px;
43
+
44
+ .prefix, .suffix {
45
+ min-width: 16px;
46
+ }
47
+
48
+ .prefix {
49
+ margin-left: 12px;
50
+ margin-right: 16px;
51
+ }
52
+
53
+ .suffix {
54
+ margin-left: 12px;
55
+ margin-right: 12px;
56
+ }
57
+
58
+ .prefix, selectedcontent, .suffix {
59
+ display: flex;
60
+ align-items: center;
61
+ justify-content: start;
62
+ }
63
+
64
+ selectedcontent {
65
+ padding-right: 16px;
66
+ }
67
+ }
68
+
69
+ select:has(.suffix) selectedcontent {
70
+ padding-right: 0;
71
+ }
72
+
73
+ select:has(.prefix) {
74
+ padding-left: 0;
75
+ }
76
+
77
+ option {
78
+ display: flex;
79
+ align-items: center;
80
+ overflow: hidden;
81
+ padding: 8px 16px;
82
+ box-sizing: border-box;
83
+ height: 56px;
84
+ cursor: default;
85
+ position: relative;
86
+
87
+ outline: 0 solid var(--_outline-color);
88
+ outline-offset: -3px;
89
+ }
90
+
91
+ option:hover {
92
+ background-color: transparent;
93
+ &::before {
94
+ opacity: var(--md-sys-state-hover-state-layer-opacity);
95
+ background-color: var(--md-sys-color-primary);
96
+ content: '';
97
+ position: absolute;
98
+ inset: 0;
99
+ }
100
+ }
101
+
102
+ option:focus-visible {
103
+ background-color: transparent;
104
+ animation: focus-outline-inward var(--md-focus-ring-duration, 600ms) cubic-bezier(0.2, 0, 0, 1) forwards;
105
+ }
106
+
107
+ @media(prefers-reduced-motion) {
108
+ option:focus-visible {
109
+ animation: none;
110
+ outline-width: var(--md-focus-ring-width, 3px);
111
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
112
+ }
113
+ }
114
+
115
+ ::picker(select) {
116
+ border: none;
117
+ padding: 10px 0;
118
+ background-color: var(--md-sys-color-surface);
119
+ transform: scaleY(0);
120
+ transition: all 250ms cubic-bezier(0.2, 0, 0, 1) 0s allow-discrete;
121
+ transform-origin: top center;
122
+ width: fit-content;
123
+ box-shadow: var(--md-sys-elevation-1);
124
+ border-radius: var(--md-sys-shape-corner-medium);
125
+ }
126
+
127
+ ::picker(select):popover-open {
128
+ transform: scaleY(1);
129
+ }
130
+
131
+ @starting-style {
132
+ ::picker(select):popover-open {
133
+ transform: scaleY(0);
134
+ }
135
+ }
136
+
137
+ label {
138
+ font-family: var(--md-sys-typescale-label-medium-font);
139
+ font-size: var(--md-sys-typescale-label-medium-size);
140
+ letter-spacing: var(--md-sys-typescale-label-medium-tracking);
141
+ line-height: var(--md-sys-typescale-label-medium-height);
142
+ font-weight: var(--md-ref-typeface-weight-regular);
143
+ position: absolute;
144
+ }
145
+
146
+ label:has( + select:focus-within ) {
147
+ color: var(--md-sys-color-primary);
148
+ }
149
+
150
+ select::picker-icon {
151
+ font-family: var(--md-icon-font, Material Symbols Outlined);
152
+ font-weight: 400;
153
+ font-variation-settings:
154
+ 'FILL' 0,
155
+ 'wght' 700,
156
+ 'GRAD' 200,
157
+ 'opsz' 24;
158
+ content: "\e5c5";
159
+ letter-spacing: 0;
160
+ color: currentColor;
161
+ }
162
+
163
+ option::checkmark {
164
+ font-family: var(--md-icon-font, Material Symbols Outlined);
165
+ font-weight: 400;
166
+ font-variation-settings:
167
+ 'FILL' 0,
168
+ 'wght' 700,
169
+ 'GRAD' 200,
170
+ 'opsz' 24;
171
+ content: "\e5ca";
172
+ letter-spacing: 0;
173
+ color: var(--md-sys-color-primary);
174
+ }
175
+
176
+ &.outlined {
177
+ position: relative;
178
+
179
+ select {
180
+ border: 1px var(--md-sys-color-outline) solid;
181
+ outline: 0 solid var(--md-sys-color-primary);
182
+ outline-offset: 0;
183
+ transition: border-color var(--md-sys-motion-duration-short3) var(--md-sys-motion-easing-standard-accelerate);
184
+ border-radius: var(--md-sys-shape-corner-extra-small);
185
+ background-color: transparent;
186
+
187
+ &:hover:not(:focus-visible) {
188
+ border-color: var(--md-sys-color-on-surface);
189
+ }
190
+
191
+ &:focus-within {
192
+ outline-width: var(--md-focus-ring-width, 3px);
193
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
194
+ }
195
+
196
+ &:focus-visible {
197
+ animation: focus-outline-inward var(--md-focus-ring-duration, 600ms) cubic-bezier(0.2, 0, 0, 1) forwards;
198
+ }
199
+ }
200
+
201
+ @media(prefers-reduced-motion) {
202
+ select:focus-visible {
203
+ animation: none;
204
+ outline-width: var(--md-focus-ring-width, 3px);
205
+ outline-offset: calc(-1 * var(--md-focus-ring-width, 3px));
206
+ }
207
+ }
208
+
209
+ label {
210
+ background-color: var(--md-sys-color-surface);
211
+ padding: 0 4px;
212
+ color: var(--md-sys-color-on-surface-variant);
213
+ left: 12px;
214
+ top: -7px;
215
+ }
216
+ }
217
+
218
+ &.filled {
219
+ position: relative;
220
+
221
+ select {
222
+ background-color: var(--md-sys-color-surface-variant);
223
+ border: none;
224
+ /* border-bottom: 1px solid var(--md-sys-color-on-surface-variant); */
225
+ border-radius: var(--md-sys-shape-corner-extra-small-top);
226
+ outline: none;
227
+
228
+ selectedcontent {
229
+ padding-top: 1em;
230
+ }
231
+ }
232
+
233
+ select::before {
234
+ content: '';
235
+ border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
236
+ inset: auto 0 0;
237
+ position: absolute;
238
+ }
239
+
240
+ select::after {
241
+ content: '';
242
+ border-bottom-color: var(--md-sys-color-primary);
243
+ border-bottom-width: 2px;
244
+ border-bottom-style: solid;
245
+ opacity: 0;
246
+ transform: scaleX(0);
247
+ transform-origin: center center;
248
+
249
+ transition:
250
+ opacity 150ms cubic-bezier(0.4, 0, 0.2, 1) 0s,
251
+ transform 150ms cubic-bezier(0.4, 0, 0.2, 1) 150ms;
252
+
253
+ position: absolute;
254
+ inset: auto 0 0;
255
+ }
256
+
257
+ select:focus-within::after {
258
+ opacity: 1;
259
+ transform: scaleX(1);
260
+
261
+ }
262
+
263
+ label {
264
+ color: var(--md-sys-color-on-surface-variant);
265
+ transform: translateY(-1.35rem);
266
+ top: 50%;
267
+ left: 16px;
268
+ }
269
+ }
270
+ }
@@ -0,0 +1,155 @@
1
+ html.theme-light {
2
+ --md-sys-color-primary-05a: var(--md-sys-color-primary-light-05a);
3
+ --md-sys-color-primary-08a: var(--md-sys-color-primary-light-08a);
4
+ --md-sys-color-primary-11a: var(--md-sys-color-primary-light-11a);
5
+ --md-sys-color-primary-12a: var(--md-sys-color-primary-light-12a);
6
+ --md-sys-color-primary-13a: var(--md-sys-color-primary-light-13a);
7
+ --md-sys-color-primary: var(--md-sys-color-primary-light);
8
+ --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-light);
9
+ --md-sys-color-on-primary: var(--md-sys-color-on-primary-light);
10
+ --md-sys-color-primary-container: var(--md-sys-color-primary-container-light);
11
+ --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-light);
12
+ --md-sys-color-secondary: var(--md-sys-color-secondary-light);
13
+ --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-light);
14
+ --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-light);
15
+ --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-light);
16
+ --md-sys-color-tertiary: var(--md-sys-color-tertiary-light);
17
+ --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-light);
18
+ --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-light);
19
+ --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-light);
20
+ --md-sys-color-error: var(--md-sys-color-error-light);
21
+ --md-sys-color-on-error: var(--md-sys-color-on-error-light);
22
+ --md-sys-color-error-container: var(--md-sys-color-error-container-light);
23
+ --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-light);
24
+ --md-sys-color-background: var(--md-sys-color-background-light);
25
+ --md-sys-color-on-background: var(--md-sys-color-on-background-light);
26
+ --md-sys-color-surface: var(--md-sys-color-surface-light);
27
+ --md-sys-color-on-surface: var(--md-sys-color-on-surface-light);
28
+ --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-light);
29
+ --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-light);
30
+ --md-sys-color-outline: var(--md-sys-color-outline-light);
31
+ --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-light);
32
+ --md-sys-color-shadow: var(--md-sys-color-shadow-light);
33
+ --md-sys-color-scrim: var(--md-sys-color-scrim-light);
34
+ --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-light);
35
+ --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-light);
36
+ --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-light);
37
+ --md-sys-color-primary-fixed: var(--md-sys-color-primary-fixed-light);
38
+ --md-sys-color-on-primary-fixed: var(--md-sys-color-on-primary-fixed-light);
39
+ --md-sys-color-primary-fixed-dim: var(--md-sys-color-primary-fixed-dim-light);
40
+ --md-sys-color-on-primary-fixed-variant: var(--md-sys-color-on-primary-fixed-variant-light);
41
+ --md-sys-color-secondary-fixed: var(--md-sys-color-secondary-fixed-light);
42
+ --md-sys-color-on-secondary-fixed: var(--md-sys-color-on-secondary-fixed-light);
43
+ --md-sys-color-secondary-fixed-dim: var(--md-sys-color-secondary-fixed-dim-light);
44
+ --md-sys-color-on-secondary-fixed-variant: var(--md-sys-color-on-secondary-fixed-variant-light);
45
+ --md-sys-color-tertiary-fixed: var(--md-sys-color-tertiary-fixed-light);
46
+ --md-sys-color-on-tertiary-fixed: var(--md-sys-color-on-tertiary-fixed-light);
47
+ --md-sys-color-tertiary-fixed-dim: var(--md-sys-color-tertiary-fixed-dim-light);
48
+ --md-sys-color-on-tertiary-fixed-variant: var(--md-sys-color-on-tertiary-fixed-variant-light);
49
+ --md-sys-color-surface-dim: var(--md-sys-color-surface-dim-light);
50
+ --md-sys-color-surface-bright: var(--md-sys-color-surface-bright-light);
51
+ --md-sys-color-surface-container-lowest: var(--md-sys-color-surface-container-lowest-light);
52
+ --md-sys-color-surface-container-low: var(--md-sys-color-surface-container-low-light);
53
+ --md-sys-color-surface-container: var(--md-sys-color-surface-container-light);
54
+ --md-sys-color-surface-container-high: var(--md-sys-color-surface-container-high-light);
55
+ --md-sys-color-surface-container-highest: var(--md-sys-color-surface-container-highest-light);
56
+
57
+ /* CUSTOM */
58
+ --md-sys-elevation-0: none;
59
+ --md-sys-elevation-1: var(--md-sys-elevation-1-light);
60
+ --md-sys-elevation-2: var(--md-sys-elevation-2-light);
61
+ --md-sys-elevation-3: var(--md-sys-elevation-3-light);
62
+ --md-sys-elevation-4: var(--md-sys-elevation-4-light);
63
+ --md-sys-elevation-5: var(--md-sys-elevation-5-light);
64
+
65
+ /* Prism */
66
+ --code-operator-value-color: #a67f59;
67
+ --code-operator-value-background-color: hsla(0, 0%, 100%, 0.5);
68
+ --code-keyword-value-color: #07a;
69
+ --code-function-value-color: #dd4a68;
70
+ --code-variable-value-color: #e90;
71
+ --code-type-text-value-color: #690;
72
+ --code-type-boolean-value-color: #905;
73
+ --code-type-number-value-color: #905;
74
+ --code-property-value-color: #905;
75
+ --code-punctuation-value-color: #999;
76
+ --code-token-comment-value-color: slategray;
77
+ }
78
+
79
+ html.theme-dark {
80
+ --md-sys-color-primary-05a: var(--md-sys-color-primary-dark-05a);
81
+ --md-sys-color-primary-08a: var(--md-sys-color-primary-dark-08a);
82
+ --md-sys-color-primary-11a: var(--md-sys-color-primary-dark-11a);
83
+ --md-sys-color-primary-12a: var(--md-sys-color-primary-dark-12a);
84
+ --md-sys-color-primary-13a: var(--md-sys-color-primary-dark-13a);
85
+ --md-sys-color-primary: var(--md-sys-color-primary-dark);
86
+ --md-sys-color-surface-tint: var(--md-sys-color-surface-tint-dark);
87
+ --md-sys-color-on-primary: var(--md-sys-color-on-primary-dark);
88
+ --md-sys-color-primary-container: var(--md-sys-color-primary-container-dark);
89
+ --md-sys-color-on-primary-container: var(--md-sys-color-on-primary-container-dark);
90
+ --md-sys-color-secondary: var(--md-sys-color-secondary-dark);
91
+ --md-sys-color-on-secondary: var(--md-sys-color-on-secondary-dark);
92
+ --md-sys-color-secondary-container: var(--md-sys-color-secondary-container-dark);
93
+ --md-sys-color-on-secondary-container: var(--md-sys-color-on-secondary-container-dark);
94
+ --md-sys-color-tertiary: var(--md-sys-color-tertiary-dark);
95
+ --md-sys-color-on-tertiary: var(--md-sys-color-on-tertiary-dark);
96
+ --md-sys-color-tertiary-container: var(--md-sys-color-tertiary-container-dark);
97
+ --md-sys-color-on-tertiary-container: var(--md-sys-color-on-tertiary-container-dark);
98
+ --md-sys-color-error: var(--md-sys-color-error-dark);
99
+ --md-sys-color-on-error: var(--md-sys-color-on-error-dark);
100
+ --md-sys-color-error-container: var(--md-sys-color-error-container-dark);
101
+ --md-sys-color-on-error-container: var(--md-sys-color-on-error-container-dark);
102
+ --md-sys-color-background: var(--md-sys-color-background-dark);
103
+ --md-sys-color-on-background: var(--md-sys-color-on-background-dark);
104
+ --md-sys-color-surface: var(--md-sys-color-surface-dark);
105
+ --md-sys-color-on-surface: var(--md-sys-color-on-surface-dark);
106
+ --md-sys-color-surface-variant: var(--md-sys-color-surface-variant-dark);
107
+ --md-sys-color-on-surface-variant: var(--md-sys-color-on-surface-variant-dark);
108
+ --md-sys-color-outline: var(--md-sys-color-outline-dark);
109
+ --md-sys-color-outline-variant: var(--md-sys-color-outline-variant-dark);
110
+ --md-sys-color-shadow: var(--md-sys-color-shadow-dark);
111
+ --md-sys-color-scrim: var(--md-sys-color-scrim-dark);
112
+ --md-sys-color-inverse-surface: var(--md-sys-color-inverse-surface-dark);
113
+ --md-sys-color-inverse-on-surface: var(--md-sys-color-inverse-on-surface-dark);
114
+ --md-sys-color-inverse-primary: var(--md-sys-color-inverse-primary-dark);
115
+ --md-sys-color-primary-fixed: var(--md-sys-color-primary-fixed-dark);
116
+ --md-sys-color-on-primary-fixed: var(--md-sys-color-on-primary-fixed-dark);
117
+ --md-sys-color-primary-fixed-dim: var(--md-sys-color-primary-fixed-dim-dark);
118
+ --md-sys-color-on-primary-fixed-variant: var(--md-sys-color-on-primary-fixed-variant-dark);
119
+ --md-sys-color-secondary-fixed: var(--md-sys-color-secondary-fixed-dark);
120
+ --md-sys-color-on-secondary-fixed: var(--md-sys-color-on-secondary-fixed-dark);
121
+ --md-sys-color-secondary-fixed-dim: var(--md-sys-color-secondary-fixed-dim-dark);
122
+ --md-sys-color-on-secondary-fixed-variant: var(--md-sys-color-on-secondary-fixed-variant-dark);
123
+ --md-sys-color-tertiary-fixed: var(--md-sys-color-tertiary-fixed-dark);
124
+ --md-sys-color-on-tertiary-fixed: var(--md-sys-color-on-tertiary-fixed-dark);
125
+ --md-sys-color-tertiary-fixed-dim: var(--md-sys-color-tertiary-fixed-dim-dark);
126
+ --md-sys-color-on-tertiary-fixed-variant: var(--md-sys-color-on-tertiary-fixed-variant-dark);
127
+ --md-sys-color-surface-dim: var(--md-sys-color-surface-dim-dark);
128
+ --md-sys-color-surface-bright: var(--md-sys-color-surface-bright-dark);
129
+ --md-sys-color-surface-container-lowest: var(--md-sys-color-surface-container-lowest-dark);
130
+ --md-sys-color-surface-container-low: var(--md-sys-color-surface-container-low-dark);
131
+ --md-sys-color-surface-container: var(--md-sys-color-surface-container-dark);
132
+ --md-sys-color-surface-container-high: var(--md-sys-color-surface-container-high-dark);
133
+ --md-sys-color-surface-container-highest: var(--md-sys-color-surface-container-highest-dark);
134
+
135
+ /* CUSTOM */
136
+ --md-sys-elevation-0: none;
137
+ --md-sys-elevation-1: var(--md-sys-elevation-1-dark);
138
+ --md-sys-elevation-2: var(--md-sys-elevation-2-dark);
139
+ --md-sys-elevation-3: var(--md-sys-elevation-3-dark);
140
+ --md-sys-elevation-4: var(--md-sys-elevation-4-dark);
141
+ --md-sys-elevation-5: var(--md-sys-elevation-5-dark);
142
+
143
+ /* Prism */
144
+ --code-operator-value-color: #ffc185;
145
+ --code-operator-value-background-color: transparent;
146
+ --code-keyword-value-color: #00b2ff;
147
+ --code-function-value-color: #ff7d97;
148
+ --code-variable-value-color: #e90;
149
+ --code-type-text-value-color: #aaff00;
150
+ --code-type-boolean-value-color: #f882c4;
151
+ --code-type-number-value-color: #f882c4;
152
+ --code-property-value-color: #ff9bd3;
153
+ --code-punctuation-value-color: #aaa;
154
+ --code-token-comment-value-color: #93a9bf;
155
+ }