@qeetrix/react 0.0.1 → 0.0.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.
Files changed (203) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/README.md +141 -4
  3. package/dist/accordion/accordion.d.ts +42 -0
  4. package/dist/accordion/accordion.js +72 -0
  5. package/dist/accordion/index.d.ts +2 -0
  6. package/dist/accordion/index.js +1 -0
  7. package/dist/avatar/avatar.d.ts +21 -0
  8. package/dist/avatar/avatar.js +43 -0
  9. package/dist/avatar/index.d.ts +2 -0
  10. package/dist/avatar/index.js +1 -0
  11. package/dist/badge/badge.d.ts +14 -0
  12. package/dist/badge/badge.js +25 -0
  13. package/dist/badge/index.d.ts +2 -0
  14. package/dist/badge/index.js +1 -0
  15. package/dist/box/box.d.ts +27 -0
  16. package/dist/box/box.js +21 -0
  17. package/dist/box/index.d.ts +2 -0
  18. package/dist/box/index.js +1 -0
  19. package/dist/button/button.d.ts +46 -0
  20. package/dist/button/button.js +74 -0
  21. package/dist/button/index.d.ts +2 -0
  22. package/dist/button/index.js +1 -0
  23. package/dist/card/card.d.ts +30 -0
  24. package/dist/card/card.js +56 -0
  25. package/dist/card/index.d.ts +2 -0
  26. package/dist/card/index.js +1 -0
  27. package/dist/checkbox/checkbox.d.ts +33 -0
  28. package/dist/checkbox/checkbox.js +61 -0
  29. package/dist/checkbox/index.d.ts +2 -0
  30. package/dist/checkbox/index.js +1 -0
  31. package/dist/css/accordion.css +73 -0
  32. package/dist/css/avatar.css +44 -0
  33. package/dist/css/badge.css +53 -0
  34. package/dist/css/box.css +163 -0
  35. package/dist/css/button.css +168 -0
  36. package/dist/css/card.css +75 -0
  37. package/dist/css/checkbox.css +58 -0
  38. package/dist/css/dialog.css +121 -0
  39. package/dist/css/drawer.css +123 -0
  40. package/dist/css/field.css +121 -0
  41. package/dist/css/fieldset.css +37 -0
  42. package/dist/css/grid.css +86 -0
  43. package/dist/css/heading.css +93 -0
  44. package/dist/css/inline.css +85 -0
  45. package/dist/css/input.css +98 -0
  46. package/dist/css/link.css +45 -0
  47. package/dist/css/menu.css +149 -0
  48. package/dist/css/popover.css +72 -0
  49. package/dist/css/progress.css +88 -0
  50. package/dist/css/radio.css +54 -0
  51. package/dist/css/scroll-area.css +63 -0
  52. package/dist/css/select.css +173 -0
  53. package/dist/css/separator.css +28 -0
  54. package/dist/css/skeleton.css +33 -0
  55. package/dist/css/skip-link.css +33 -0
  56. package/dist/css/slider.css +86 -0
  57. package/dist/css/spinner.css +55 -0
  58. package/dist/css/stack.css +76 -0
  59. package/dist/css/switch.css +79 -0
  60. package/dist/css/table.css +68 -0
  61. package/dist/css/tabs.css +112 -0
  62. package/dist/css/text-field.css +4 -0
  63. package/dist/css/text.css +106 -0
  64. package/dist/css/toast.css +108 -0
  65. package/dist/css/toggle.css +112 -0
  66. package/dist/css/tooltip.css +41 -0
  67. package/dist/css/visually-hidden.css +15 -0
  68. package/dist/dialog/dialog.d.ts +51 -0
  69. package/dist/dialog/dialog.js +120 -0
  70. package/dist/dialog/index.d.ts +2 -0
  71. package/dist/dialog/index.js +1 -0
  72. package/dist/drawer/drawer.d.ts +46 -0
  73. package/dist/drawer/drawer.js +101 -0
  74. package/dist/drawer/index.d.ts +2 -0
  75. package/dist/drawer/index.js +1 -0
  76. package/dist/field/choice.d.ts +21 -0
  77. package/dist/field/choice.js +67 -0
  78. package/dist/field/field.d.ts +28 -0
  79. package/dist/field/field.js +77 -0
  80. package/dist/field/index.d.ts +3 -0
  81. package/dist/field/index.js +1 -0
  82. package/dist/fieldset/fieldset.d.ts +19 -0
  83. package/dist/fieldset/fieldset.js +29 -0
  84. package/dist/fieldset/index.d.ts +2 -0
  85. package/dist/fieldset/index.js +1 -0
  86. package/dist/grid/grid.d.ts +30 -0
  87. package/dist/grid/grid.js +36 -0
  88. package/dist/grid/index.d.ts +2 -0
  89. package/dist/grid/index.js +1 -0
  90. package/dist/heading/heading.d.ts +23 -0
  91. package/dist/heading/heading.js +30 -0
  92. package/dist/heading/index.d.ts +2 -0
  93. package/dist/heading/index.js +1 -0
  94. package/dist/index.d.ts +80 -1
  95. package/dist/index.js +38 -0
  96. package/dist/inline/index.d.ts +2 -0
  97. package/dist/inline/index.js +1 -0
  98. package/dist/inline/inline.d.ts +19 -0
  99. package/dist/inline/inline.js +16 -0
  100. package/dist/input/index.d.ts +2 -0
  101. package/dist/input/index.js +1 -0
  102. package/dist/input/input.d.ts +37 -0
  103. package/dist/input/input.js +63 -0
  104. package/dist/internal/control.d.ts +9 -0
  105. package/dist/internal/control.js +4 -0
  106. package/dist/internal/cx.js +7 -0
  107. package/dist/internal/messages.js +22 -0
  108. package/dist/internal/refs.js +23 -0
  109. package/dist/internal/render.d.ts +6 -0
  110. package/dist/internal/render.js +22 -0
  111. package/dist/internal/space.d.ts +9 -0
  112. package/dist/internal/text.d.ts +5 -0
  113. package/dist/internal/text.js +18 -0
  114. package/dist/link/index.d.ts +2 -0
  115. package/dist/link/index.js +1 -0
  116. package/dist/link/link.d.ts +13 -0
  117. package/dist/link/link.js +31 -0
  118. package/dist/menu/index.d.ts +2 -0
  119. package/dist/menu/index.js +1 -0
  120. package/dist/menu/menu.d.ts +76 -0
  121. package/dist/menu/menu.js +172 -0
  122. package/dist/popover/index.d.ts +2 -0
  123. package/dist/popover/index.js +1 -0
  124. package/dist/popover/popover.d.ts +33 -0
  125. package/dist/popover/popover.js +48 -0
  126. package/dist/progress/index.d.ts +2 -0
  127. package/dist/progress/index.js +1 -0
  128. package/dist/progress/progress.d.ts +26 -0
  129. package/dist/progress/progress.js +57 -0
  130. package/dist/radio/index.d.ts +2 -0
  131. package/dist/radio/index.js +1 -0
  132. package/dist/radio/radio.d.ts +31 -0
  133. package/dist/radio/radio.js +47 -0
  134. package/dist/scroll-area/index.d.ts +2 -0
  135. package/dist/scroll-area/index.js +1 -0
  136. package/dist/scroll-area/scroll-area.d.ts +18 -0
  137. package/dist/scroll-area/scroll-area.js +39 -0
  138. package/dist/select/index.d.ts +2 -0
  139. package/dist/select/index.js +1 -0
  140. package/dist/select/select.d.ts +36 -0
  141. package/dist/select/select.js +82 -0
  142. package/dist/separator/index.d.ts +2 -0
  143. package/dist/separator/index.js +1 -0
  144. package/dist/separator/separator.d.ts +16 -0
  145. package/dist/separator/separator.js +16 -0
  146. package/dist/skeleton/index.d.ts +2 -0
  147. package/dist/skeleton/index.js +1 -0
  148. package/dist/skeleton/skeleton.d.ts +12 -0
  149. package/dist/skeleton/skeleton.js +18 -0
  150. package/dist/skip-link/index.d.ts +2 -0
  151. package/dist/skip-link/index.js +1 -0
  152. package/dist/skip-link/skip-link.d.ts +13 -0
  153. package/dist/skip-link/skip-link.js +18 -0
  154. package/dist/slider/index.d.ts +2 -0
  155. package/dist/slider/index.js +1 -0
  156. package/dist/slider/slider.d.ts +17 -0
  157. package/dist/slider/slider.js +51 -0
  158. package/dist/spinner/index.d.ts +2 -0
  159. package/dist/spinner/index.js +1 -0
  160. package/dist/spinner/spinner.d.ts +15 -0
  161. package/dist/spinner/spinner.js +19 -0
  162. package/dist/stack/index.d.ts +2 -0
  163. package/dist/stack/index.js +1 -0
  164. package/dist/stack/stack.d.ts +17 -0
  165. package/dist/stack/stack.js +15 -0
  166. package/dist/styles.css +2948 -0
  167. package/dist/switch/index.d.ts +2 -0
  168. package/dist/switch/index.js +1 -0
  169. package/dist/switch/switch.d.ts +18 -0
  170. package/dist/switch/switch.js +31 -0
  171. package/dist/table/index.d.ts +2 -0
  172. package/dist/table/index.js +1 -0
  173. package/dist/table/table.d.ts +36 -0
  174. package/dist/table/table.js +69 -0
  175. package/dist/tabs/index.d.ts +2 -0
  176. package/dist/tabs/index.js +1 -0
  177. package/dist/tabs/tabs.d.ts +43 -0
  178. package/dist/tabs/tabs.js +66 -0
  179. package/dist/text/index.d.ts +3 -0
  180. package/dist/text/index.js +1 -0
  181. package/dist/text/text.d.ts +24 -0
  182. package/dist/text/text.js +24 -0
  183. package/dist/text-field/index.d.ts +2 -0
  184. package/dist/text-field/index.js +1 -0
  185. package/dist/text-field/text-field.d.ts +15 -0
  186. package/dist/text-field/text-field.js +41 -0
  187. package/dist/toast/index.d.ts +2 -0
  188. package/dist/toast/index.js +1 -0
  189. package/dist/toast/toast.d.ts +54 -0
  190. package/dist/toast/toast.js +123 -0
  191. package/dist/toggle/index.d.ts +2 -0
  192. package/dist/toggle/index.js +1 -0
  193. package/dist/toggle/toggle.d.ts +48 -0
  194. package/dist/toggle/toggle.js +54 -0
  195. package/dist/tooltip/index.d.ts +2 -0
  196. package/dist/tooltip/index.js +1 -0
  197. package/dist/tooltip/tooltip.d.ts +26 -0
  198. package/dist/tooltip/tooltip.js +39 -0
  199. package/dist/visually-hidden/index.d.ts +2 -0
  200. package/dist/visually-hidden/index.js +1 -0
  201. package/dist/visually-hidden/visually-hidden.d.ts +8 -0
  202. package/dist/visually-hidden/visually-hidden.js +12 -0
  203. package/package.json +153 -1
package/dist/styles.css CHANGED
@@ -10,3 +10,2951 @@
10
10
  box-sizing: border-box;
11
11
  }
12
12
  }
13
+
14
+ @layer qx.components {
15
+ .qx-accordion {
16
+ border-block-end: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
17
+ flex-direction: column;
18
+ min-inline-size: 0;
19
+ display: flex;
20
+ }
21
+
22
+ .qx-accordion-item {
23
+ border-block-start: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
24
+ }
25
+
26
+ .qx-accordion-header {
27
+ margin: 0;
28
+ }
29
+
30
+ .qx-accordion-trigger {
31
+ justify-content: space-between;
32
+ align-items: center;
33
+ gap: var(--qx-space-gap-md);
34
+ inline-size: 100%;
35
+ min-block-size: var(--qx-size-control-lg);
36
+ color: var(--qx-color-text-default);
37
+ font: var(--qx-typography-title-sm);
38
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
39
+ text-align: start;
40
+ cursor: pointer;
41
+ background: none;
42
+ border: 0;
43
+ padding: 0;
44
+ display: flex;
45
+ }
46
+
47
+ .qx-accordion-trigger:focus-visible {
48
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
49
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
50
+ }
51
+
52
+ .qx-accordion-trigger[data-disabled] {
53
+ color: var(--qx-color-text-disabled);
54
+ cursor: not-allowed;
55
+ }
56
+
57
+ .qx-accordion-icon {
58
+ color: var(--qx-color-icon-subtle);
59
+ transition-property: rotate;
60
+ transition-duration: var(--qx-motion-duration-normal);
61
+ transition-timing-function: var(--qx-motion-easing-standard);
62
+ flex: none;
63
+ }
64
+
65
+ [data-panel-open] > .qx-accordion-icon {
66
+ rotate: 180deg;
67
+ }
68
+
69
+ .qx-accordion-panel, .qx-collapsible-panel {
70
+ block-size: var(--accordion-panel-height, var(--collapsible-panel-height));
71
+ transition-property: block-size;
72
+ transition-duration: var(--qx-motion-duration-normal);
73
+ transition-timing-function: var(--qx-motion-easing-standard);
74
+ overflow: hidden;
75
+ }
76
+
77
+ :is(.qx-accordion-panel, .qx-collapsible-panel)[data-starting-style], :is(.qx-accordion-panel, .qx-collapsible-panel)[data-ending-style] {
78
+ block-size: 0;
79
+ }
80
+
81
+ .qx-accordion-content {
82
+ padding-block-end: var(--qx-space-inset-lg);
83
+ }
84
+ }
85
+
86
+ @layer qx.components {
87
+ .qx-avatar {
88
+ border-radius: var(--qx-radius-full);
89
+ background: var(--qx-color-bg-neutral-subtle-pressed);
90
+ block-size: 32px;
91
+ inline-size: 32px;
92
+ color: var(--qx-color-text-default);
93
+ font: var(--qx-typography-label-sm);
94
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
95
+ vertical-align: middle;
96
+ -webkit-user-select: none;
97
+ user-select: none;
98
+ flex: none;
99
+ place-items: center;
100
+ display: inline-grid;
101
+ overflow: hidden;
102
+ }
103
+
104
+ .qx-avatar[data-size="sm"] {
105
+ block-size: 24px;
106
+ inline-size: 24px;
107
+ font-size: var(--qx-typography-label-sm-font-size);
108
+ }
109
+
110
+ .qx-avatar[data-size="lg"] {
111
+ block-size: 40px;
112
+ inline-size: 40px;
113
+ font: var(--qx-typography-label-md);
114
+ }
115
+
116
+ .qx-avatar[data-size="xl"] {
117
+ block-size: 48px;
118
+ inline-size: 48px;
119
+ font: var(--qx-typography-label-md);
120
+ }
121
+
122
+ .qx-avatar-image {
123
+ object-fit: cover;
124
+ block-size: 100%;
125
+ inline-size: 100%;
126
+ }
127
+ }
128
+
129
+ @layer qx.components {
130
+ .qx-badge {
131
+ align-items: center;
132
+ gap: var(--qx-space-gap-xs);
133
+ border-radius: var(--qx-radius-chip);
134
+ background: var(--qx-color-bg-neutral-subtle-pressed);
135
+ max-inline-size: 100%;
136
+ color: var(--qx-color-text-default);
137
+ font: var(--qx-typography-label-sm);
138
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
139
+ white-space: nowrap;
140
+ vertical-align: middle;
141
+ padding: 2px 8px;
142
+ display: inline-flex;
143
+ }
144
+
145
+ .qx-badge[data-tone="brand"] {
146
+ background: var(--qx-color-bg-brand-subtle);
147
+ color: var(--qx-color-text-brand);
148
+ }
149
+
150
+ .qx-badge[data-tone="info"] {
151
+ background: var(--qx-color-bg-info-subtle);
152
+ color: var(--qx-color-text-info);
153
+ }
154
+
155
+ .qx-badge[data-tone="success"] {
156
+ background: var(--qx-color-bg-success-subtle);
157
+ color: var(--qx-color-text-success);
158
+ }
159
+
160
+ .qx-badge[data-tone="warning"] {
161
+ background: var(--qx-color-bg-warning-subtle);
162
+ color: var(--qx-color-text-warning);
163
+ }
164
+
165
+ .qx-badge[data-tone="danger"] {
166
+ background: var(--qx-color-bg-danger-subtle);
167
+ color: var(--qx-color-text-danger);
168
+ }
169
+
170
+ .qx-badge-icon {
171
+ flex: none;
172
+ }
173
+
174
+ .qx-badge-label {
175
+ text-overflow: ellipsis;
176
+ min-inline-size: 0;
177
+ overflow: hidden;
178
+ }
179
+ }
180
+
181
+ @layer qx.components {
182
+ .qx-box[data-padding="none"] {
183
+ padding: 0;
184
+ }
185
+
186
+ .qx-box[data-padding="xs"] {
187
+ padding: var(--qx-space-inset-xs);
188
+ }
189
+
190
+ .qx-box[data-padding="sm"] {
191
+ padding: var(--qx-space-inset-sm);
192
+ }
193
+
194
+ .qx-box[data-padding="md"] {
195
+ padding: var(--qx-space-inset-md);
196
+ }
197
+
198
+ .qx-box[data-padding="lg"] {
199
+ padding: var(--qx-space-inset-lg);
200
+ }
201
+
202
+ .qx-box[data-padding="xl"] {
203
+ padding: var(--qx-space-inset-xl);
204
+ }
205
+
206
+ .qx-box[data-padding-inline="none"] {
207
+ padding-inline: 0;
208
+ }
209
+
210
+ .qx-box[data-padding-inline="xs"] {
211
+ padding-inline: var(--qx-space-inset-xs);
212
+ }
213
+
214
+ .qx-box[data-padding-inline="sm"] {
215
+ padding-inline: var(--qx-space-inset-sm);
216
+ }
217
+
218
+ .qx-box[data-padding-inline="md"] {
219
+ padding-inline: var(--qx-space-inset-md);
220
+ }
221
+
222
+ .qx-box[data-padding-inline="lg"] {
223
+ padding-inline: var(--qx-space-inset-lg);
224
+ }
225
+
226
+ .qx-box[data-padding-inline="xl"] {
227
+ padding-inline: var(--qx-space-inset-xl);
228
+ }
229
+
230
+ .qx-box[data-padding-block="none"] {
231
+ padding-block: 0;
232
+ }
233
+
234
+ .qx-box[data-padding-block="xs"] {
235
+ padding-block: var(--qx-space-inset-xs);
236
+ }
237
+
238
+ .qx-box[data-padding-block="sm"] {
239
+ padding-block: var(--qx-space-inset-sm);
240
+ }
241
+
242
+ .qx-box[data-padding-block="md"] {
243
+ padding-block: var(--qx-space-inset-md);
244
+ }
245
+
246
+ .qx-box[data-padding-block="lg"] {
247
+ padding-block: var(--qx-space-inset-lg);
248
+ }
249
+
250
+ .qx-box[data-padding-block="xl"] {
251
+ padding-block: var(--qx-space-inset-xl);
252
+ }
253
+
254
+ .qx-box[data-background="canvas"] {
255
+ background: var(--qx-color-surface-canvas);
256
+ }
257
+
258
+ .qx-box[data-background="default"] {
259
+ background: var(--qx-color-surface-default);
260
+ }
261
+
262
+ .qx-box[data-background="raised"] {
263
+ background: var(--qx-color-surface-raised);
264
+ }
265
+
266
+ .qx-box[data-background="sunken"] {
267
+ background: var(--qx-color-surface-sunken);
268
+ }
269
+
270
+ .qx-box[data-background="overlay"] {
271
+ background: var(--qx-color-surface-overlay);
272
+ }
273
+
274
+ .qx-box[data-background="inverse"] {
275
+ background: var(--qx-color-surface-inverse);
276
+ }
277
+
278
+ .qx-box[data-background="neutral"] {
279
+ background: var(--qx-color-bg-neutral-subtle);
280
+ }
281
+
282
+ .qx-box[data-background="brand"] {
283
+ background: var(--qx-color-bg-brand-subtle);
284
+ }
285
+
286
+ .qx-box[data-background="selected"] {
287
+ background: var(--qx-color-bg-selected);
288
+ }
289
+
290
+ .qx-box[data-background="inverse"] {
291
+ color: var(--qx-color-text-inverse);
292
+ }
293
+
294
+ .qx-box[data-border="none"] {
295
+ border: 0;
296
+ }
297
+
298
+ .qx-box[data-border="subtle"] {
299
+ border: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
300
+ }
301
+
302
+ .qx-box[data-border="default"] {
303
+ border: var(--qx-border-width-default) solid var(--qx-color-border-default);
304
+ }
305
+
306
+ .qx-box[data-border="strong"] {
307
+ border: var(--qx-border-width-default) solid var(--qx-color-border-strong);
308
+ }
309
+
310
+ .qx-box[data-radius="none"] {
311
+ border-radius: var(--qx-radius-none);
312
+ }
313
+
314
+ .qx-box[data-radius="sm"] {
315
+ border-radius: var(--qx-radius-sm);
316
+ }
317
+
318
+ .qx-box[data-radius="control"] {
319
+ border-radius: var(--qx-radius-control);
320
+ }
321
+
322
+ .qx-box[data-radius="surface"] {
323
+ border-radius: var(--qx-radius-surface);
324
+ }
325
+
326
+ .qx-box[data-radius="overlay"] {
327
+ border-radius: var(--qx-radius-overlay);
328
+ }
329
+
330
+ .qx-box[data-radius="modal"] {
331
+ border-radius: var(--qx-radius-modal);
332
+ }
333
+
334
+ .qx-box[data-radius="chip"] {
335
+ border-radius: var(--qx-radius-chip);
336
+ }
337
+
338
+ .qx-box[data-radius="full"] {
339
+ border-radius: var(--qx-radius-full);
340
+ }
341
+ }
342
+
343
+ @layer qx.components {
344
+ .qx-button {
345
+ block-size: var(--qx-size-control-md);
346
+ border-radius: var(--qx-radius-control);
347
+ font: var(--qx-typography-label-md);
348
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
349
+ white-space: nowrap;
350
+ cursor: pointer;
351
+ -webkit-user-select: none;
352
+ user-select: none;
353
+ transition-property: background-color, color, box-shadow;
354
+ transition-duration: var(--qx-motion-duration-fast);
355
+ transition-timing-function: var(--qx-motion-easing-standard);
356
+ border: 0;
357
+ justify-content: space-between;
358
+ align-items: center;
359
+ gap: 24px;
360
+ padding-inline: 14px 12px;
361
+ text-decoration: none;
362
+ display: inline-flex;
363
+ position: relative;
364
+ }
365
+
366
+ .qx-button:not([data-icon]):not([data-loading]) {
367
+ padding-inline: 14px;
368
+ }
369
+
370
+ .qx-button[data-size="sm"] {
371
+ block-size: var(--qx-size-control-sm);
372
+ font-size: var(--qx-typography-label-sm-font-size);
373
+ line-height: var(--qx-typography-label-sm-line-height);
374
+ gap: 16px;
375
+ padding-inline: 10px 8px;
376
+ }
377
+
378
+ .qx-button[data-size="sm"]:not([data-icon]):not([data-loading]) {
379
+ padding-inline: 10px;
380
+ }
381
+
382
+ .qx-button[data-size="lg"] {
383
+ block-size: var(--qx-size-control-lg);
384
+ gap: 32px;
385
+ padding-inline: 16px 14px;
386
+ }
387
+
388
+ .qx-button[data-size="lg"]:not([data-icon]):not([data-loading]) {
389
+ padding-inline: 16px;
390
+ }
391
+
392
+ .qx-button[data-full-width] {
393
+ inline-size: 100%;
394
+ }
395
+
396
+ .qx-button[data-variant="solid"] {
397
+ background: var(--qx-color-bg-brand-bold);
398
+ color: var(--qx-color-text-on-brand);
399
+ }
400
+
401
+ .qx-button[data-variant="solid"]:hover:not([data-disabled]) {
402
+ background: var(--qx-color-bg-brand-bold-hover);
403
+ }
404
+
405
+ .qx-button[data-variant="solid"]:active:not([data-disabled]) {
406
+ background: var(--qx-color-bg-brand-bold-pressed);
407
+ }
408
+
409
+ .qx-button[data-variant="soft"] {
410
+ background: var(--qx-color-bg-neutral-bold);
411
+ color: var(--qx-color-text-inverse);
412
+ }
413
+
414
+ .qx-button[data-variant="soft"]:hover:not([data-disabled]) {
415
+ background: var(--qx-color-bg-neutral-bold-hover);
416
+ }
417
+
418
+ .qx-button[data-variant="soft"]:active:not([data-disabled]) {
419
+ background: var(--qx-color-bg-neutral-bold-pressed);
420
+ }
421
+
422
+ .qx-button[data-variant="ghost"] {
423
+ color: var(--qx-color-text-brand);
424
+ background: none;
425
+ }
426
+
427
+ .qx-button[data-variant="ghost"]:hover:not([data-disabled]) {
428
+ background: var(--qx-color-bg-brand-subtle);
429
+ }
430
+
431
+ .qx-button[data-variant="ghost"]:active:not([data-disabled]) {
432
+ background: var(--qx-color-bg-brand-subtle-pressed);
433
+ }
434
+
435
+ .qx-button[data-tone="danger"]:not([data-variant="ghost"]) {
436
+ background: var(--qx-color-bg-danger-bold);
437
+ color: var(--qx-color-text-on-bold);
438
+ }
439
+
440
+ .qx-button[data-tone="danger"]:not([data-variant="ghost"]):hover:not([data-disabled]) {
441
+ background: var(--qx-color-bg-danger-bold-hover);
442
+ }
443
+
444
+ .qx-button[data-tone="danger"]:not([data-variant="ghost"]):active:not([data-disabled]) {
445
+ background: var(--qx-color-bg-danger-bold-pressed);
446
+ }
447
+
448
+ .qx-button[data-tone="danger"][data-variant="ghost"] {
449
+ color: var(--qx-color-text-danger);
450
+ }
451
+
452
+ .qx-button[data-tone="danger"][data-variant="ghost"]:hover:not([data-disabled]) {
453
+ background: var(--qx-color-bg-danger-subtle);
454
+ }
455
+
456
+ .qx-button[data-disabled]:not([data-loading]) {
457
+ background: var(--qx-color-bg-disabled);
458
+ color: var(--qx-color-text-disabled);
459
+ cursor: not-allowed;
460
+ }
461
+
462
+ .qx-button[data-variant="ghost"][data-disabled]:not([data-loading]) {
463
+ background: none;
464
+ }
465
+
466
+ .qx-button[data-loading] {
467
+ cursor: progress;
468
+ }
469
+
470
+ .qx-button:focus-visible {
471
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
472
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
473
+ box-shadow: inset 0 0 0 calc(var(--qx-focus-ring-width) + var(--qx-border-width-default))
474
+ var(--qx-color-surface-default);
475
+ }
476
+
477
+ .qx-button .qx-button-label {
478
+ text-overflow: ellipsis;
479
+ min-inline-size: 0;
480
+ overflow: hidden;
481
+ }
482
+
483
+ .qx-button .qx-button-icon {
484
+ flex: none;
485
+ }
486
+
487
+ .qx-icon-button {
488
+ inline-size: var(--qx-size-control-md);
489
+ justify-content: center;
490
+ padding-inline: 0;
491
+ }
492
+
493
+ .qx-icon-button[data-size="sm"] {
494
+ inline-size: var(--qx-size-control-sm);
495
+ padding-inline: 0;
496
+ }
497
+
498
+ .qx-icon-button[data-size="lg"] {
499
+ inline-size: var(--qx-size-control-lg);
500
+ padding-inline: 0;
501
+ }
502
+
503
+ .qx-icon-button:not([data-icon]):not([data-loading]) {
504
+ padding-inline: 0;
505
+ }
506
+ }
507
+
508
+ @layer qx.components {
509
+ .qx-card {
510
+ border: var(--qx-border-width-default) solid var(--qx-color-border-default);
511
+ border-radius: var(--qx-radius-surface);
512
+ background: var(--qx-color-surface-raised);
513
+ min-inline-size: 0;
514
+ color: var(--qx-color-text-default);
515
+ flex-direction: column;
516
+ display: flex;
517
+ overflow: hidden;
518
+ }
519
+
520
+ .qx-card-header {
521
+ justify-content: space-between;
522
+ align-items: flex-start;
523
+ gap: var(--qx-space-gap-md);
524
+ padding: var(--qx-space-inset-lg);
525
+ border-block-end: var(--qx-border-width-default) solid var(--qx-color-border-default);
526
+ display: flex;
527
+ }
528
+
529
+ .qx-card-heading {
530
+ gap: var(--qx-space-gap-xs);
531
+ flex-direction: column;
532
+ min-inline-size: 0;
533
+ display: flex;
534
+ }
535
+
536
+ .qx-card-description {
537
+ font: var(--qx-typography-body-sm);
538
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
539
+ color: var(--qx-color-text-subtle);
540
+ margin: 0;
541
+ }
542
+
543
+ .qx-card-actions {
544
+ gap: var(--qx-space-gap-sm);
545
+ flex: none;
546
+ margin-block: -4px;
547
+ display: flex;
548
+ }
549
+
550
+ .qx-card-body {
551
+ min-inline-size: 0;
552
+ padding: var(--qx-space-inset-lg);
553
+ font: var(--qx-typography-body-md);
554
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
555
+ flex: 1;
556
+ }
557
+
558
+ .qx-card-body > :is(.qx-table, .qx-scroll-area) {
559
+ inline-size: calc(100% + 2 * var(--qx-space-inset-lg));
560
+ margin-inline: calc(-1 * var(--qx-space-inset-lg));
561
+ }
562
+
563
+ .qx-card-body > :is(.qx-table, .qx-scroll-area):first-child {
564
+ margin-block-start: calc(-1 * var(--qx-space-inset-lg));
565
+ }
566
+
567
+ .qx-card-body > :is(.qx-table, .qx-scroll-area):last-child {
568
+ margin-block-end: calc(-1 * var(--qx-space-inset-lg));
569
+ }
570
+
571
+ .qx-card-footer {
572
+ justify-content: flex-end;
573
+ gap: var(--qx-space-gap-sm);
574
+ padding: var(--qx-space-inset-md);
575
+ border-block-start: var(--qx-border-width-default) solid var(--qx-color-border-default);
576
+ flex-wrap: wrap;
577
+ display: flex;
578
+ }
579
+ }
580
+
581
+ @layer qx.components {
582
+ .qx-checkbox {
583
+ border: var(--qx-border-width-default) solid var(--qx-color-border-strong);
584
+ border-radius: var(--qx-radius-sm);
585
+ background: var(--qx-color-bg-input);
586
+ block-size: 16px;
587
+ inline-size: 16px;
588
+ color: var(--qx-color-icon-on-brand);
589
+ cursor: pointer;
590
+ transition-property: background-color, border-color;
591
+ transition-duration: var(--qx-motion-duration-fast);
592
+ transition-timing-function: var(--qx-motion-easing-standard);
593
+ flex: none;
594
+ place-items: center;
595
+ display: inline-grid;
596
+ }
597
+
598
+ .qx-checkbox:hover:not([data-disabled], [data-readonly]) {
599
+ border-color: var(--qx-color-border-strong-hover);
600
+ }
601
+
602
+ .qx-checkbox[data-invalid] {
603
+ border-color: var(--qx-color-border-danger);
604
+ }
605
+
606
+ .qx-checkbox:is([data-checked], [data-indeterminate]) {
607
+ border-color: var(--qx-color-bg-brand-bold);
608
+ background: var(--qx-color-bg-brand-bold);
609
+ }
610
+
611
+ .qx-checkbox:is([data-checked], [data-indeterminate]):hover:not([data-disabled], [data-readonly]) {
612
+ border-color: var(--qx-color-bg-brand-bold-hover);
613
+ background: var(--qx-color-bg-brand-bold-hover);
614
+ }
615
+
616
+ .qx-checkbox[data-disabled] {
617
+ border-color: var(--qx-color-border-disabled);
618
+ background: var(--qx-color-bg-disabled);
619
+ color: var(--qx-color-icon-disabled);
620
+ cursor: not-allowed;
621
+ }
622
+
623
+ .qx-checkbox[data-readonly] {
624
+ cursor: default;
625
+ }
626
+
627
+ .qx-checkbox:focus-visible {
628
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
629
+ outline-offset: var(--qx-focus-ring-offset);
630
+ }
631
+
632
+ .qx-checkbox-mark {
633
+ display: flex;
634
+ }
635
+ }
636
+
637
+ @layer qx.components {
638
+ .qx-dialog-backdrop {
639
+ z-index: var(--qx-z-overlay);
640
+ background: var(--qx-color-overlay-scrim);
641
+ transition-property: opacity;
642
+ transition-duration: var(--qx-motion-duration-slow);
643
+ transition-timing-function: var(--qx-motion-easing-enter);
644
+ position: fixed;
645
+ inset: 0;
646
+ }
647
+
648
+ .qx-dialog-backdrop[data-starting-style], .qx-dialog-backdrop[data-ending-style] {
649
+ opacity: 0;
650
+ }
651
+
652
+ .qx-dialog-backdrop[data-ending-style] {
653
+ transition-duration: var(--qx-motion-duration-normal);
654
+ transition-timing-function: var(--qx-motion-easing-exit);
655
+ }
656
+
657
+ .qx-dialog-viewport {
658
+ z-index: var(--qx-z-modal);
659
+ padding: var(--qx-space-inset-xl);
660
+ place-items: center;
661
+ display: grid;
662
+ position: fixed;
663
+ inset: 0;
664
+ }
665
+
666
+ .qx-dialog {
667
+ border-block-start: var(--qx-border-width-accent) solid var(--qx-color-border-brand);
668
+ border-radius: var(--qx-radius-modal);
669
+ background: var(--qx-color-surface-overlay);
670
+ max-block-size: 85vh;
671
+ inline-size: min(100%, 560px);
672
+ box-shadow: var(--qx-shadow-modal);
673
+ color: var(--qx-color-text-default);
674
+ font: var(--qx-typography-body-md);
675
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
676
+ transition-property: opacity, translate;
677
+ transition-duration: var(--qx-motion-duration-slow);
678
+ transition-timing-function: var(--qx-motion-easing-enter);
679
+ outline: 0;
680
+ flex-direction: column;
681
+ display: flex;
682
+ position: relative;
683
+ overflow: hidden;
684
+ }
685
+
686
+ .qx-dialog[data-size="sm"] {
687
+ inline-size: min(100%, 400px);
688
+ }
689
+
690
+ .qx-dialog[data-size="lg"] {
691
+ inline-size: min(100%, 800px);
692
+ }
693
+
694
+ .qx-dialog[data-intent="danger"] {
695
+ border-block-start-color: var(--qx-color-border-danger);
696
+ }
697
+
698
+ .qx-dialog[data-intent="warning"] {
699
+ border-block-start-color: var(--qx-color-icon-warning);
700
+ }
701
+
702
+ .qx-dialog[data-starting-style], .qx-dialog[data-ending-style] {
703
+ opacity: 0;
704
+ translate: 0 8px;
705
+ }
706
+
707
+ .qx-dialog[data-ending-style] {
708
+ transition-duration: var(--qx-motion-duration-normal);
709
+ transition-timing-function: var(--qx-motion-easing-exit);
710
+ }
711
+
712
+ .qx-dialog-header {
713
+ gap: var(--qx-space-gap-xs);
714
+ padding: var(--qx-space-inset-xl);
715
+ flex-direction: column;
716
+ display: flex;
717
+ }
718
+
719
+ .qx-dialog[data-dismissible] .qx-dialog-header {
720
+ padding-inline-end: 56px;
721
+ }
722
+
723
+ .qx-dialog-title {
724
+ font: var(--qx-typography-title-md);
725
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
726
+ margin: 0;
727
+ }
728
+
729
+ .qx-dialog-description {
730
+ color: var(--qx-color-text-subtle);
731
+ margin: 0;
732
+ }
733
+
734
+ .qx-dialog-body {
735
+ min-block-size: 0;
736
+ padding: 0 var(--qx-space-inset-xl) var(--qx-space-inset-xl);
737
+ flex: 1;
738
+ overflow-y: auto;
739
+ }
740
+
741
+ .qx-dialog-footer {
742
+ justify-content: flex-end;
743
+ gap: var(--qx-space-gap-sm);
744
+ padding: 0 var(--qx-space-inset-xl) var(--qx-space-inset-xl);
745
+ flex-wrap: wrap;
746
+ display: flex;
747
+ }
748
+
749
+ .qx-dialog-close {
750
+ position: absolute;
751
+ inset-block-start: 12px;
752
+ inset-inline-end: 12px;
753
+ }
754
+ }
755
+
756
+ @layer qx.components {
757
+ .qx-drawer-backdrop {
758
+ z-index: var(--qx-z-overlay);
759
+ background: var(--qx-color-overlay-scrim);
760
+ transition-property: opacity;
761
+ transition-duration: var(--qx-motion-duration-slow);
762
+ transition-timing-function: var(--qx-motion-easing-enter);
763
+ position: fixed;
764
+ inset: 0;
765
+ }
766
+
767
+ .qx-drawer-backdrop[data-starting-style], .qx-drawer-backdrop[data-ending-style] {
768
+ opacity: 0;
769
+ }
770
+
771
+ .qx-drawer-backdrop[data-ending-style] {
772
+ transition-duration: var(--qx-motion-duration-normal);
773
+ transition-timing-function: var(--qx-motion-easing-exit);
774
+ }
775
+
776
+ .qx-drawer-viewport {
777
+ z-index: var(--qx-z-modal);
778
+ justify-content: flex-end;
779
+ display: flex;
780
+ position: fixed;
781
+ inset: 0;
782
+ }
783
+
784
+ .qx-drawer-viewport[data-side="start"] {
785
+ justify-content: flex-start;
786
+ }
787
+
788
+ .qx-drawer {
789
+ background: var(--qx-color-surface-overlay);
790
+ block-size: 100%;
791
+ inline-size: min(560px, 100vw - 48px);
792
+ box-shadow: var(--qx-shadow-modal);
793
+ color: var(--qx-color-text-default);
794
+ font: var(--qx-typography-body-md);
795
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
796
+ transform: translateX(var(--drawer-swipe-movement-x, 0px));
797
+ transition-property: transform;
798
+ transition-duration: var(--qx-motion-duration-slow);
799
+ transition-timing-function: var(--qx-motion-easing-enter);
800
+ outline: 0;
801
+ flex-direction: column;
802
+ display: flex;
803
+ position: relative;
804
+ }
805
+
806
+ .qx-drawer[data-size="sm"] {
807
+ inline-size: min(400px, 100vw - 48px);
808
+ }
809
+
810
+ .qx-drawer[data-size="lg"] {
811
+ inline-size: min(800px, 100vw - 48px);
812
+ }
813
+
814
+ .qx-drawer[data-swipe-direction="right"]:is([data-starting-style], [data-ending-style]) {
815
+ transform: translateX(100%);
816
+ }
817
+
818
+ .qx-drawer[data-swipe-direction="left"]:is([data-starting-style], [data-ending-style]) {
819
+ transform: translateX(-100%);
820
+ }
821
+
822
+ .qx-drawer[data-swiping] {
823
+ transition: none;
824
+ }
825
+
826
+ .qx-drawer[data-ending-style] {
827
+ transition-duration: var(--qx-motion-duration-normal);
828
+ transition-timing-function: var(--qx-motion-easing-exit);
829
+ }
830
+
831
+ .qx-drawer-header {
832
+ gap: var(--qx-space-gap-xs);
833
+ padding: var(--qx-space-inset-xl);
834
+ border-block-end: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
835
+ flex-direction: column;
836
+ flex: none;
837
+ padding-inline-end: 56px;
838
+ display: flex;
839
+ }
840
+
841
+ .qx-drawer-title {
842
+ font: var(--qx-typography-title-md);
843
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
844
+ margin: 0;
845
+ }
846
+
847
+ .qx-drawer-description {
848
+ color: var(--qx-color-text-subtle);
849
+ margin: 0;
850
+ }
851
+
852
+ .qx-drawer-body {
853
+ overscroll-behavior: contain;
854
+ min-block-size: 0;
855
+ padding: var(--qx-space-inset-xl);
856
+ flex: 1;
857
+ overflow-y: auto;
858
+ }
859
+
860
+ .qx-drawer-footer {
861
+ justify-content: flex-end;
862
+ gap: var(--qx-space-gap-sm);
863
+ padding: var(--qx-space-inset-lg) var(--qx-space-inset-xl);
864
+ border-block-start: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
865
+ flex-wrap: wrap;
866
+ flex: none;
867
+ display: flex;
868
+ }
869
+
870
+ .qx-drawer-close {
871
+ position: absolute;
872
+ inset-block-start: 20px;
873
+ inset-inline-end: 16px;
874
+ }
875
+ }
876
+
877
+ @layer qx.components {
878
+ .qx-field {
879
+ gap: var(--qx-space-gap-xs);
880
+ flex-direction: column;
881
+ min-inline-size: 0;
882
+ display: flex;
883
+ }
884
+
885
+ .qx-field-label {
886
+ font: var(--qx-typography-label-sm);
887
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
888
+ color: var(--qx-color-text-subtle);
889
+ }
890
+
891
+ .qx-field-label[data-disabled] {
892
+ color: var(--qx-color-text-disabled);
893
+ }
894
+
895
+ .qx-field-label[data-hidden] {
896
+ clip-path: inset(50%);
897
+ white-space: nowrap;
898
+ block-size: 1px;
899
+ inline-size: 1px;
900
+ margin: -1px;
901
+ position: absolute;
902
+ overflow: hidden;
903
+ }
904
+
905
+ .qx-field-optional {
906
+ font-weight: var(--qx-typography-body-sm-font-weight);
907
+ color: var(--qx-color-text-subtlest);
908
+ }
909
+
910
+ .qx-field-description {
911
+ font: var(--qx-typography-body-sm);
912
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
913
+ color: var(--qx-color-text-subtle);
914
+ margin: 0;
915
+ }
916
+
917
+ .qx-field[data-invalid] > .qx-field-description {
918
+ display: none;
919
+ }
920
+
921
+ .qx-field-error {
922
+ align-items: flex-start;
923
+ gap: var(--qx-space-gap-xs);
924
+ font: var(--qx-typography-body-sm);
925
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
926
+ color: var(--qx-color-text-danger);
927
+ display: flex;
928
+ }
929
+
930
+ .qx-field-error-icon {
931
+ color: var(--qx-color-icon-danger);
932
+ flex: none;
933
+ }
934
+
935
+ .qx-choice {
936
+ flex-direction: column;
937
+ min-inline-size: 0;
938
+ display: flex;
939
+ }
940
+
941
+ .qx-choice-label {
942
+ align-items: flex-start;
943
+ gap: var(--qx-space-gap-sm);
944
+ inline-size: fit-content;
945
+ min-block-size: var(--qx-size-target-min);
946
+ font: var(--qx-typography-body-md);
947
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
948
+ color: var(--qx-color-text-default);
949
+ cursor: pointer;
950
+ padding-block: 2px;
951
+ display: inline-flex;
952
+ }
953
+
954
+ .qx-choice-label > :first-child {
955
+ margin-block: 2px;
956
+ }
957
+
958
+ .qx-choice[data-disabled] .qx-choice-label {
959
+ color: var(--qx-color-text-disabled);
960
+ cursor: not-allowed;
961
+ }
962
+
963
+ .qx-choice-description {
964
+ font: var(--qx-typography-body-sm);
965
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
966
+ color: var(--qx-color-text-subtle);
967
+ margin: 0;
968
+ padding-inline-start: 24px;
969
+ }
970
+
971
+ .qx-choice[data-slot="switch"] .qx-choice-description {
972
+ padding-inline-start: 40px;
973
+ }
974
+
975
+ .qx-choice-group-set {
976
+ gap: var(--qx-space-gap-xs);
977
+ border: 0;
978
+ flex-direction: column;
979
+ min-inline-size: 0;
980
+ margin: 0;
981
+ padding: 0;
982
+ display: flex;
983
+ }
984
+
985
+ .qx-choice-group-options {
986
+ gap: var(--qx-space-gap-xs);
987
+ flex-direction: column;
988
+ display: flex;
989
+ }
990
+
991
+ .qx-choice-group[data-orientation="horizontal"] .qx-choice-group-options {
992
+ column-gap: var(--qx-space-gap-lg);
993
+ flex-flow: wrap;
994
+ }
995
+ }
996
+
997
+ @layer qx.components {
998
+ .qx-fieldset {
999
+ gap: var(--qx-space-form-gap);
1000
+ border: 0;
1001
+ flex-direction: column;
1002
+ min-inline-size: 0;
1003
+ margin: 0;
1004
+ padding: 0;
1005
+ display: flex;
1006
+ }
1007
+
1008
+ .qx-fieldset-header {
1009
+ gap: var(--qx-space-gap-xs);
1010
+ flex-direction: column;
1011
+ display: flex;
1012
+ }
1013
+
1014
+ .qx-fieldset-legend {
1015
+ font: var(--qx-typography-title-sm);
1016
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
1017
+ color: var(--qx-color-text-default);
1018
+ padding: 0;
1019
+ }
1020
+
1021
+ .qx-fieldset-legend[data-disabled] {
1022
+ color: var(--qx-color-text-disabled);
1023
+ }
1024
+
1025
+ .qx-fieldset-description {
1026
+ font: var(--qx-typography-body-sm);
1027
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1028
+ color: var(--qx-color-text-subtle);
1029
+ margin: 0;
1030
+ }
1031
+ }
1032
+
1033
+ @layer qx.components {
1034
+ .qx-grid {
1035
+ --qx-grid-current: var(--qx-grid-base, 1);
1036
+ grid-template-columns: repeat(var(--qx-grid-current), minmax(0, 1fr));
1037
+ align-items: stretch;
1038
+ display: grid;
1039
+ }
1040
+
1041
+ .qx-grid[data-gap="none"] {
1042
+ gap: 0;
1043
+ }
1044
+
1045
+ .qx-grid[data-gap="xs"] {
1046
+ gap: var(--qx-space-gap-xs);
1047
+ }
1048
+
1049
+ .qx-grid[data-gap="sm"] {
1050
+ gap: var(--qx-space-gap-sm);
1051
+ }
1052
+
1053
+ .qx-grid[data-gap="md"] {
1054
+ gap: var(--qx-space-gap-md);
1055
+ }
1056
+
1057
+ .qx-grid[data-gap="lg"] {
1058
+ gap: var(--qx-space-gap-lg);
1059
+ }
1060
+
1061
+ .qx-grid[data-gap="xl"] {
1062
+ gap: var(--qx-space-gap-xl);
1063
+ }
1064
+
1065
+ .qx-grid[data-gap="2xl"] {
1066
+ gap: var(--qx-space-layout-md);
1067
+ }
1068
+
1069
+ .qx-grid[data-gap="3xl"] {
1070
+ gap: var(--qx-space-layout-lg);
1071
+ }
1072
+
1073
+ .qx-grid[data-gap="4xl"] {
1074
+ gap: var(--qx-space-layout-xl);
1075
+ }
1076
+
1077
+ .qx-grid[data-align="start"] {
1078
+ align-items: start;
1079
+ }
1080
+
1081
+ .qx-grid[data-align="center"] {
1082
+ align-items: center;
1083
+ }
1084
+
1085
+ .qx-grid[data-align="end"] {
1086
+ align-items: end;
1087
+ }
1088
+
1089
+ .qx-grid[data-align="stretch"] {
1090
+ align-items: stretch;
1091
+ }
1092
+
1093
+ @media (width >= 600px) {
1094
+ .qx-grid {
1095
+ --qx-grid-current: var(--qx-grid-medium, var(--qx-grid-base, 1));
1096
+ }
1097
+ }
1098
+
1099
+ @media (width >= 840px) {
1100
+ .qx-grid {
1101
+ --qx-grid-current: var(--qx-grid-expanded, var(--qx-grid-medium, var(--qx-grid-base, 1)));
1102
+ }
1103
+ }
1104
+
1105
+ @media (width >= 1200px) {
1106
+ .qx-grid {
1107
+ --qx-grid-current: var(--qx-grid-large, var(--qx-grid-expanded, var(--qx-grid-medium, var(--qx-grid-base, 1))));
1108
+ }
1109
+ }
1110
+
1111
+ @media (width >= 1600px) {
1112
+ .qx-grid {
1113
+ --qx-grid-current: var(--qx-grid-xlarge, var(--qx-grid-large, var(--qx-grid-expanded, var(--qx-grid-medium, var(--qx-grid-base, 1)))));
1114
+ }
1115
+ }
1116
+ }
1117
+
1118
+ @layer qx.components {
1119
+ .qx-heading {
1120
+ font: var(--qx-typography-heading-lg);
1121
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
1122
+ color: var(--qx-color-text-default);
1123
+ margin: 0;
1124
+ }
1125
+
1126
+ .qx-heading[data-size="display-lg"] {
1127
+ font-size: var(--qx-typography-display-lg-font-size);
1128
+ line-height: var(--qx-typography-display-lg-line-height);
1129
+ }
1130
+
1131
+ .qx-heading[data-size="display-md"] {
1132
+ font-size: var(--qx-typography-display-md-font-size);
1133
+ line-height: var(--qx-typography-display-md-line-height);
1134
+ }
1135
+
1136
+ .qx-heading[data-size="display-sm"] {
1137
+ font-size: var(--qx-typography-display-sm-font-size);
1138
+ line-height: var(--qx-typography-display-sm-line-height);
1139
+ }
1140
+
1141
+ .qx-heading[data-size="heading-lg"] {
1142
+ font-size: var(--qx-typography-heading-lg-font-size);
1143
+ line-height: var(--qx-typography-heading-lg-line-height);
1144
+ }
1145
+
1146
+ .qx-heading[data-size="heading-md"] {
1147
+ font-size: var(--qx-typography-heading-md-font-size);
1148
+ line-height: var(--qx-typography-heading-md-line-height);
1149
+ }
1150
+
1151
+ .qx-heading[data-size="heading-sm"] {
1152
+ font-size: var(--qx-typography-heading-sm-font-size);
1153
+ line-height: var(--qx-typography-heading-sm-line-height);
1154
+ }
1155
+
1156
+ .qx-heading[data-size="title-lg"] {
1157
+ font-size: var(--qx-typography-title-lg-font-size);
1158
+ line-height: var(--qx-typography-title-lg-line-height);
1159
+ }
1160
+
1161
+ .qx-heading[data-size="title-md"] {
1162
+ font-size: var(--qx-typography-title-md-font-size);
1163
+ line-height: var(--qx-typography-title-md-line-height);
1164
+ }
1165
+
1166
+ .qx-heading[data-size="title-sm"] {
1167
+ font-size: var(--qx-typography-title-sm-font-size);
1168
+ line-height: var(--qx-typography-title-sm-line-height);
1169
+ }
1170
+
1171
+ .qx-heading[data-size^="display-"] {
1172
+ font-variation-settings: "GEOM" var(--qx-font-geometry-display);
1173
+ }
1174
+
1175
+ .qx-heading[data-tone="subtle"] {
1176
+ color: var(--qx-color-text-subtle);
1177
+ }
1178
+
1179
+ .qx-heading[data-tone="inverse"] {
1180
+ color: var(--qx-color-text-inverse);
1181
+ }
1182
+
1183
+ .qx-heading[data-truncate="line"] {
1184
+ text-overflow: ellipsis;
1185
+ white-space: nowrap;
1186
+ overflow: hidden;
1187
+ }
1188
+
1189
+ .qx-heading[data-truncate="lines"] {
1190
+ -webkit-line-clamp: var(--qx-text-lines);
1191
+ line-clamp: var(--qx-text-lines);
1192
+ -webkit-box-orient: vertical;
1193
+ display: -webkit-box;
1194
+ overflow: hidden;
1195
+ }
1196
+
1197
+ .qx-heading[data-align="start"] {
1198
+ text-align: start;
1199
+ }
1200
+
1201
+ .qx-heading[data-align="center"] {
1202
+ text-align: center;
1203
+ }
1204
+
1205
+ .qx-heading[data-align="end"] {
1206
+ text-align: end;
1207
+ }
1208
+ }
1209
+
1210
+ @layer qx.components {
1211
+ .qx-inline {
1212
+ flex-wrap: wrap;
1213
+ align-items: center;
1214
+ display: flex;
1215
+ }
1216
+
1217
+ .qx-inline[data-wrap="false"] {
1218
+ flex-wrap: nowrap;
1219
+ }
1220
+
1221
+ .qx-inline[data-gap="none"] {
1222
+ gap: 0;
1223
+ }
1224
+
1225
+ .qx-inline[data-gap="xs"] {
1226
+ gap: var(--qx-space-gap-xs);
1227
+ }
1228
+
1229
+ .qx-inline[data-gap="sm"] {
1230
+ gap: var(--qx-space-gap-sm);
1231
+ }
1232
+
1233
+ .qx-inline[data-gap="md"] {
1234
+ gap: var(--qx-space-gap-md);
1235
+ }
1236
+
1237
+ .qx-inline[data-gap="lg"] {
1238
+ gap: var(--qx-space-gap-lg);
1239
+ }
1240
+
1241
+ .qx-inline[data-gap="xl"] {
1242
+ gap: var(--qx-space-gap-xl);
1243
+ }
1244
+
1245
+ .qx-inline[data-gap="2xl"] {
1246
+ gap: var(--qx-space-layout-md);
1247
+ }
1248
+
1249
+ .qx-inline[data-gap="3xl"] {
1250
+ gap: var(--qx-space-layout-lg);
1251
+ }
1252
+
1253
+ .qx-inline[data-gap="4xl"] {
1254
+ gap: var(--qx-space-layout-xl);
1255
+ }
1256
+
1257
+ .qx-inline[data-align="start"] {
1258
+ align-items: flex-start;
1259
+ }
1260
+
1261
+ .qx-inline[data-align="center"] {
1262
+ align-items: center;
1263
+ }
1264
+
1265
+ .qx-inline[data-align="end"] {
1266
+ align-items: flex-end;
1267
+ }
1268
+
1269
+ .qx-inline[data-align="baseline"] {
1270
+ align-items: baseline;
1271
+ }
1272
+
1273
+ .qx-inline[data-align="stretch"] {
1274
+ align-items: stretch;
1275
+ }
1276
+
1277
+ .qx-inline[data-justify="start"] {
1278
+ justify-content: flex-start;
1279
+ }
1280
+
1281
+ .qx-inline[data-justify="center"] {
1282
+ justify-content: center;
1283
+ }
1284
+
1285
+ .qx-inline[data-justify="end"] {
1286
+ justify-content: flex-end;
1287
+ }
1288
+
1289
+ .qx-inline[data-justify="between"] {
1290
+ justify-content: space-between;
1291
+ }
1292
+ }
1293
+
1294
+ @layer qx.components {
1295
+ .qx-input {
1296
+ align-items: center;
1297
+ gap: var(--qx-space-gap-sm);
1298
+ min-inline-size: 0;
1299
+ block-size: var(--qx-size-control-lg);
1300
+ padding-inline: var(--qx-space-inset-md);
1301
+ background: var(--qx-color-bg-neutral-subtle);
1302
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-strong);
1303
+ font: var(--qx-typography-body-md);
1304
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1305
+ color: var(--qx-color-text-default);
1306
+ cursor: text;
1307
+ transition-property: background-color;
1308
+ transition-duration: var(--qx-motion-duration-fast);
1309
+ transition-timing-function: var(--qx-motion-easing-standard);
1310
+ border: 0;
1311
+ border-start-start-radius: var(--qx-radius-control);
1312
+ border-start-end-radius: var(--qx-radius-control);
1313
+ display: flex;
1314
+ }
1315
+
1316
+ .qx-input:hover {
1317
+ background: var(--qx-color-bg-neutral-subtle-hover);
1318
+ }
1319
+
1320
+ .qx-input:has( > .qx-input-control[data-invalid]), .qx-input.qx-textarea[data-invalid] {
1321
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-danger);
1322
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
1323
+ box-shadow: none;
1324
+ }
1325
+
1326
+ .qx-input:has( > .qx-input-control:focus), .qx-input.qx-textarea:focus {
1327
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
1328
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
1329
+ box-shadow: none;
1330
+ background: var(--qx-color-bg-neutral-subtle);
1331
+ }
1332
+
1333
+ .qx-input:has( > .qx-input-control[readonly]), .qx-input.qx-textarea[readonly] {
1334
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-subtle);
1335
+ background: none;
1336
+ }
1337
+
1338
+ .qx-input:has( > .qx-input-control:disabled), .qx-input.qx-textarea:disabled {
1339
+ background: var(--qx-color-bg-disabled);
1340
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-disabled);
1341
+ color: var(--qx-color-text-disabled);
1342
+ cursor: not-allowed;
1343
+ }
1344
+
1345
+ .qx-input-control {
1346
+ block-size: 100%;
1347
+ min-inline-size: 0;
1348
+ font: inherit;
1349
+ color: inherit;
1350
+ cursor: inherit;
1351
+ background: none;
1352
+ border: 0;
1353
+ outline: 0;
1354
+ flex: 1;
1355
+ margin: 0;
1356
+ padding: 0;
1357
+ }
1358
+
1359
+ .qx-input-control::placeholder, .qx-textarea::placeholder {
1360
+ color: var(--qx-color-text-subtlest);
1361
+ opacity: 1;
1362
+ }
1363
+
1364
+ .qx-input-icon {
1365
+ color: var(--qx-color-icon-subtle);
1366
+ flex: none;
1367
+ }
1368
+
1369
+ .qx-input-adornment {
1370
+ color: var(--qx-color-text-subtle);
1371
+ flex: none;
1372
+ align-items: center;
1373
+ display: inline-flex;
1374
+ }
1375
+
1376
+ .qx-textarea {
1377
+ block-size: auto;
1378
+ inline-size: 100%;
1379
+ min-block-size: calc(var(--qx-textarea-rows) * 1lh + var(--qx-size-control-lg) - 1lh);
1380
+ padding-block: calc((var(--qx-size-control-lg) - 1lh) / 2);
1381
+ field-sizing: content;
1382
+ resize: vertical;
1383
+ display: block;
1384
+ }
1385
+
1386
+ .qx-textarea[data-max-rows] {
1387
+ max-block-size: calc(var(--qx-textarea-max-rows) * 1lh + var(--qx-size-control-lg) - 1lh);
1388
+ }
1389
+ }
1390
+
1391
+ @layer qx.components {
1392
+ .qx-link {
1393
+ border-radius: var(--qx-radius-sm);
1394
+ color: var(--qx-color-text-link);
1395
+ text-decoration-line: underline;
1396
+ text-decoration-thickness: var(--qx-border-width-default);
1397
+ text-underline-offset: 3px;
1398
+ transition-property: color, text-decoration-thickness;
1399
+ transition-duration: var(--qx-motion-duration-fast);
1400
+ transition-timing-function: var(--qx-motion-easing-standard);
1401
+ align-items: baseline;
1402
+ gap: 2px;
1403
+ display: inline-flex;
1404
+ }
1405
+
1406
+ .qx-link:hover {
1407
+ color: var(--qx-color-text-link-hover);
1408
+ text-decoration-thickness: var(--qx-border-width-strong);
1409
+ }
1410
+
1411
+ .qx-link:focus-visible {
1412
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
1413
+ outline-offset: var(--qx-focus-ring-offset);
1414
+ }
1415
+
1416
+ .qx-link[data-tone="subtle"] {
1417
+ color: var(--qx-color-text-subtle);
1418
+ }
1419
+
1420
+ .qx-link[data-tone="subtle"]:hover {
1421
+ color: var(--qx-color-text-default);
1422
+ }
1423
+
1424
+ .qx-link[data-tone="inherit"] {
1425
+ color: inherit;
1426
+ }
1427
+
1428
+ .qx-link .qx-link-icon {
1429
+ flex: none;
1430
+ align-self: center;
1431
+ }
1432
+ }
1433
+
1434
+ @layer qx.components {
1435
+ .qx-menu-positioner {
1436
+ z-index: var(--qx-z-popover);
1437
+ }
1438
+
1439
+ .qx-menu {
1440
+ min-inline-size: 200px;
1441
+ max-inline-size: min(320px, var(--available-width));
1442
+ max-block-size: var(--available-height);
1443
+ border: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
1444
+ border-radius: var(--qx-radius-overlay);
1445
+ background: var(--qx-color-surface-overlay);
1446
+ box-shadow: var(--qx-shadow-overlay);
1447
+ color: var(--qx-color-text-default);
1448
+ transition-property: opacity, translate;
1449
+ transition-duration: var(--qx-motion-duration-normal);
1450
+ transition-timing-function: var(--qx-motion-easing-enter);
1451
+ outline: 0;
1452
+ padding-block: 4px;
1453
+ overflow-y: auto;
1454
+ }
1455
+
1456
+ .qx-menu[data-starting-style], .qx-menu[data-ending-style] {
1457
+ opacity: 0;
1458
+ }
1459
+
1460
+ .qx-menu[data-side="bottom"]:is([data-starting-style], [data-ending-style]) {
1461
+ translate: 0 -4px;
1462
+ }
1463
+
1464
+ .qx-menu[data-side="top"]:is([data-starting-style], [data-ending-style]) {
1465
+ translate: 0 4px;
1466
+ }
1467
+
1468
+ .qx-menu[data-ending-style] {
1469
+ transition-duration: var(--qx-motion-duration-fast);
1470
+ transition-timing-function: var(--qx-motion-easing-exit);
1471
+ }
1472
+
1473
+ .qx-menu-item-icon {
1474
+ color: var(--qx-color-icon-subtle);
1475
+ flex: none;
1476
+ }
1477
+
1478
+ .qx-menu-item {
1479
+ align-items: center;
1480
+ gap: var(--qx-space-gap-sm);
1481
+ block-size: var(--qx-size-control-md);
1482
+ padding-inline: var(--qx-space-inset-md);
1483
+ font: var(--qx-typography-body-md);
1484
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1485
+ white-space: nowrap;
1486
+ cursor: default;
1487
+ -webkit-user-select: none;
1488
+ user-select: none;
1489
+ outline: 0;
1490
+ display: flex;
1491
+ position: relative;
1492
+ }
1493
+
1494
+ .qx-menu-item[data-highlighted] {
1495
+ background: var(--qx-color-bg-neutral-subtle-hover);
1496
+ }
1497
+
1498
+ .qx-menu-item[data-highlighted]:before {
1499
+ content: "";
1500
+ inline-size: var(--qx-border-width-strong);
1501
+ background: var(--qx-color-border-brand);
1502
+ position: absolute;
1503
+ inset-block: 0;
1504
+ inset-inline-start: 0;
1505
+ }
1506
+
1507
+ .qx-menu-item[data-popup-open] {
1508
+ background: var(--qx-color-bg-neutral-subtle-hover);
1509
+ }
1510
+
1511
+ .qx-menu-item[data-tone="danger"] {
1512
+ color: var(--qx-color-text-danger);
1513
+ }
1514
+
1515
+ .qx-menu-item[data-tone="danger"] .qx-menu-item-icon {
1516
+ color: var(--qx-color-icon-danger);
1517
+ }
1518
+
1519
+ .qx-menu-item[data-disabled] {
1520
+ color: var(--qx-color-text-disabled);
1521
+ }
1522
+
1523
+ .qx-menu-item[data-disabled] .qx-menu-item-icon {
1524
+ color: var(--qx-color-icon-disabled);
1525
+ }
1526
+
1527
+ .qx-menu-item-label {
1528
+ text-overflow: ellipsis;
1529
+ flex: 1;
1530
+ min-inline-size: 0;
1531
+ overflow: hidden;
1532
+ }
1533
+
1534
+ .qx-menu-shortcut {
1535
+ font: var(--qx-typography-code-sm);
1536
+ color: var(--qx-color-text-subtlest);
1537
+ margin-inline-start: var(--qx-space-gap-lg);
1538
+ }
1539
+
1540
+ .qx-menu-submenu-icon {
1541
+ color: var(--qx-color-icon-subtle);
1542
+ flex: none;
1543
+ }
1544
+
1545
+ [dir="rtl"] .qx-menu-submenu-icon {
1546
+ scale: -1 1;
1547
+ }
1548
+
1549
+ .qx-menu-mark {
1550
+ flex: none;
1551
+ place-items: center;
1552
+ block-size: 16px;
1553
+ inline-size: 16px;
1554
+ display: inline-grid;
1555
+ }
1556
+
1557
+ .qx-menu-mark-indicator {
1558
+ display: flex;
1559
+ }
1560
+
1561
+ .qx-menu-dot {
1562
+ border-radius: var(--qx-radius-full);
1563
+ background: currentColor;
1564
+ block-size: 6px;
1565
+ inline-size: 6px;
1566
+ }
1567
+
1568
+ .qx-menu-group-label {
1569
+ padding: 8px var(--qx-space-inset-md) 4px;
1570
+ font: var(--qx-typography-label-sm);
1571
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1572
+ color: var(--qx-color-text-subtle);
1573
+ }
1574
+
1575
+ .qx-menu-separator {
1576
+ block-size: var(--qx-border-width-default);
1577
+ background: var(--qx-color-border-subtle);
1578
+ margin-block: 4px;
1579
+ }
1580
+ }
1581
+
1582
+ @layer qx.components {
1583
+ .qx-popover-positioner {
1584
+ z-index: var(--qx-z-popover);
1585
+ }
1586
+
1587
+ .qx-popover {
1588
+ gap: var(--qx-space-gap-md);
1589
+ min-inline-size: 0;
1590
+ max-inline-size: min(360px, var(--available-width));
1591
+ max-block-size: var(--available-height);
1592
+ padding: var(--qx-space-inset-lg);
1593
+ border: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
1594
+ border-radius: var(--qx-radius-overlay);
1595
+ background: var(--qx-color-surface-overlay);
1596
+ box-shadow: var(--qx-shadow-overlay);
1597
+ color: var(--qx-color-text-default);
1598
+ font: var(--qx-typography-body-md);
1599
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1600
+ transform-origin: var(--transform-origin);
1601
+ transition-property: opacity, translate;
1602
+ transition-duration: var(--qx-motion-duration-normal);
1603
+ transition-timing-function: var(--qx-motion-easing-enter);
1604
+ outline: 0;
1605
+ flex-direction: column;
1606
+ display: flex;
1607
+ overflow: auto;
1608
+ }
1609
+
1610
+ .qx-popover[data-starting-style], .qx-popover[data-ending-style] {
1611
+ opacity: 0;
1612
+ }
1613
+
1614
+ .qx-popover[data-side="bottom"]:is([data-starting-style], [data-ending-style]) {
1615
+ translate: 0 -4px;
1616
+ }
1617
+
1618
+ .qx-popover[data-side="top"]:is([data-starting-style], [data-ending-style]) {
1619
+ translate: 0 4px;
1620
+ }
1621
+
1622
+ .qx-popover[data-side="left"]:is([data-starting-style], [data-ending-style]) {
1623
+ translate: 4px;
1624
+ }
1625
+
1626
+ .qx-popover[data-side="right"]:is([data-starting-style], [data-ending-style]) {
1627
+ translate: -4px;
1628
+ }
1629
+
1630
+ .qx-popover[data-ending-style] {
1631
+ transition-duration: var(--qx-motion-duration-fast);
1632
+ transition-timing-function: var(--qx-motion-easing-exit);
1633
+ }
1634
+
1635
+ .qx-popover-header {
1636
+ gap: var(--qx-space-gap-xs);
1637
+ flex-direction: column;
1638
+ display: flex;
1639
+ }
1640
+
1641
+ .qx-popover-title {
1642
+ font: var(--qx-typography-title-sm);
1643
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
1644
+ margin: 0;
1645
+ }
1646
+
1647
+ .qx-popover-description {
1648
+ color: var(--qx-color-text-subtle);
1649
+ margin: 0;
1650
+ }
1651
+ }
1652
+
1653
+ @layer qx.components {
1654
+ .qx-progress {
1655
+ gap: var(--qx-space-gap-xs);
1656
+ flex-direction: column;
1657
+ min-inline-size: 0;
1658
+ display: flex;
1659
+ }
1660
+
1661
+ .qx-progress-header {
1662
+ justify-content: space-between;
1663
+ align-items: baseline;
1664
+ gap: var(--qx-space-gap-md);
1665
+ display: flex;
1666
+ }
1667
+
1668
+ .qx-progress-label {
1669
+ font: var(--qx-typography-label-sm);
1670
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1671
+ color: var(--qx-color-text-subtle);
1672
+ }
1673
+
1674
+ .qx-progress-value {
1675
+ font: var(--qx-typography-label-sm);
1676
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1677
+ font-variant-numeric: tabular-nums;
1678
+ color: var(--qx-color-text-default);
1679
+ }
1680
+
1681
+ .qx-progress-track {
1682
+ background: var(--qx-color-border-default);
1683
+ block-size: 4px;
1684
+ position: relative;
1685
+ overflow: hidden;
1686
+ }
1687
+
1688
+ .qx-progress-indicator {
1689
+ background: var(--qx-color-bg-brand-bold);
1690
+ block-size: 100%;
1691
+ transition-property: inline-size;
1692
+ transition-duration: var(--qx-motion-duration-normal);
1693
+ transition-timing-function: var(--qx-motion-easing-standard);
1694
+ }
1695
+
1696
+ [data-tone="success"] .qx-progress-indicator {
1697
+ background: var(--qx-color-bg-success-bold);
1698
+ }
1699
+
1700
+ [data-tone="warning"] .qx-progress-indicator {
1701
+ background: var(--qx-color-bg-warning-bold);
1702
+ }
1703
+
1704
+ [data-tone="danger"] .qx-progress-indicator {
1705
+ background: var(--qx-color-bg-danger-bold);
1706
+ }
1707
+
1708
+ .qx-progress-indicator[data-indeterminate] {
1709
+ inline-size: 30%;
1710
+ animation-name: qx-progress-slide;
1711
+ animation-duration: calc(4 * var(--qx-motion-duration-slower));
1712
+ animation-timing-function: var(--qx-motion-easing-standard);
1713
+ animation-iteration-count: infinite;
1714
+ }
1715
+
1716
+ @keyframes qx-progress-slide {
1717
+ from {
1718
+ translate: -100%;
1719
+ }
1720
+
1721
+ to {
1722
+ translate: 334%;
1723
+ }
1724
+ }
1725
+
1726
+ @media (prefers-reduced-motion: reduce) {
1727
+ .qx-progress-indicator[data-indeterminate] {
1728
+ inline-size: 100%;
1729
+ animation: 1.6s ease-in-out infinite qx-progress-fade;
1730
+ }
1731
+ }
1732
+
1733
+ @keyframes qx-progress-fade {
1734
+ 50% {
1735
+ opacity: .35;
1736
+ }
1737
+ }
1738
+ }
1739
+
1740
+ @layer qx.components {
1741
+ .qx-radio {
1742
+ border: var(--qx-border-width-default) solid var(--qx-color-border-strong);
1743
+ border-radius: var(--qx-radius-full);
1744
+ background: var(--qx-color-bg-input);
1745
+ cursor: pointer;
1746
+ block-size: 16px;
1747
+ inline-size: 16px;
1748
+ transition-property: border-color, border-width;
1749
+ transition-duration: var(--qx-motion-duration-fast);
1750
+ transition-timing-function: var(--qx-motion-easing-standard);
1751
+ flex: none;
1752
+ display: inline-block;
1753
+ }
1754
+
1755
+ .qx-radio:hover:not([data-disabled], [data-readonly]) {
1756
+ border-color: var(--qx-color-border-strong-hover);
1757
+ }
1758
+
1759
+ .qx-radio[data-invalid] {
1760
+ border-color: var(--qx-color-border-danger);
1761
+ }
1762
+
1763
+ .qx-radio[data-checked] {
1764
+ border-width: 5px;
1765
+ border-color: var(--qx-color-bg-brand-bold);
1766
+ }
1767
+
1768
+ .qx-radio[data-checked]:hover:not([data-disabled], [data-readonly]) {
1769
+ border-color: var(--qx-color-bg-brand-bold-hover);
1770
+ }
1771
+
1772
+ .qx-radio[data-disabled] {
1773
+ border-color: var(--qx-color-border-disabled);
1774
+ background: var(--qx-color-bg-disabled);
1775
+ cursor: not-allowed;
1776
+ }
1777
+
1778
+ .qx-radio[data-disabled][data-checked] {
1779
+ border-color: var(--qx-color-icon-disabled);
1780
+ }
1781
+
1782
+ .qx-radio[data-readonly] {
1783
+ cursor: default;
1784
+ }
1785
+
1786
+ .qx-radio:focus-visible {
1787
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
1788
+ outline-offset: var(--qx-focus-ring-offset);
1789
+ }
1790
+ }
1791
+
1792
+ @layer qx.components {
1793
+ .qx-scroll-area {
1794
+ min-block-size: 0;
1795
+ min-inline-size: 0;
1796
+ display: flex;
1797
+ position: relative;
1798
+ }
1799
+
1800
+ .qx-scroll-area-viewport {
1801
+ overscroll-behavior: contain;
1802
+ outline: 0;
1803
+ flex: 1;
1804
+ min-inline-size: 0;
1805
+ }
1806
+
1807
+ .qx-scroll-area-viewport:focus-visible {
1808
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
1809
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
1810
+ }
1811
+
1812
+ .qx-scroll-area-scrollbar {
1813
+ opacity: 0;
1814
+ transition-property: opacity;
1815
+ transition-duration: var(--qx-motion-duration-normal);
1816
+ transition-timing-function: var(--qx-motion-easing-standard);
1817
+ padding: 2px;
1818
+ display: flex;
1819
+ }
1820
+
1821
+ .qx-scroll-area-scrollbar[data-orientation="vertical"] {
1822
+ inline-size: 8px;
1823
+ }
1824
+
1825
+ .qx-scroll-area-scrollbar[data-orientation="horizontal"] {
1826
+ block-size: 8px;
1827
+ }
1828
+
1829
+ .qx-scroll-area-scrollbar:is([data-hovering], [data-scrolling]), .qx-scroll-area:has( > .qx-scroll-area-viewport:focus-visible) > .qx-scroll-area-scrollbar {
1830
+ opacity: 1;
1831
+ }
1832
+
1833
+ .qx-scroll-area-thumb {
1834
+ border-radius: var(--qx-radius-sm);
1835
+ background: var(--qx-color-border-strong);
1836
+ flex: 1;
1837
+ }
1838
+
1839
+ [data-orientation="vertical"] > .qx-scroll-area-thumb {
1840
+ inline-size: 100%;
1841
+ block-size: var(--scroll-area-thumb-height);
1842
+ }
1843
+
1844
+ [data-orientation="horizontal"] > .qx-scroll-area-thumb {
1845
+ inline-size: var(--scroll-area-thumb-width);
1846
+ block-size: 100%;
1847
+ }
1848
+
1849
+ .qx-scroll-area-thumb:hover, .qx-scroll-area-thumb:active {
1850
+ background: var(--qx-color-icon-subtle);
1851
+ }
1852
+ }
1853
+
1854
+ @layer qx.components {
1855
+ .qx-select-trigger {
1856
+ align-items: center;
1857
+ gap: var(--qx-space-gap-sm);
1858
+ inline-size: 100%;
1859
+ min-inline-size: 0;
1860
+ block-size: var(--qx-size-control-lg);
1861
+ padding-inline: var(--qx-space-inset-md);
1862
+ background: var(--qx-color-bg-neutral-subtle);
1863
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-strong);
1864
+ color: var(--qx-color-text-default);
1865
+ font: var(--qx-typography-body-md);
1866
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1867
+ text-align: start;
1868
+ cursor: pointer;
1869
+ transition-property: background-color;
1870
+ transition-duration: var(--qx-motion-duration-fast);
1871
+ transition-timing-function: var(--qx-motion-easing-standard);
1872
+ border: 0;
1873
+ border-start-start-radius: var(--qx-radius-control);
1874
+ border-start-end-radius: var(--qx-radius-control);
1875
+ display: flex;
1876
+ }
1877
+
1878
+ .qx-select-trigger:hover {
1879
+ background: var(--qx-color-bg-neutral-subtle-hover);
1880
+ }
1881
+
1882
+ .qx-select-trigger[data-invalid] {
1883
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-danger);
1884
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
1885
+ box-shadow: none;
1886
+ }
1887
+
1888
+ .qx-select-trigger:focus-visible, .qx-select-trigger[data-popup-open] {
1889
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
1890
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
1891
+ box-shadow: none;
1892
+ background: var(--qx-color-bg-neutral-subtle);
1893
+ }
1894
+
1895
+ .qx-select-trigger[data-readonly] {
1896
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-subtle);
1897
+ cursor: default;
1898
+ background: none;
1899
+ }
1900
+
1901
+ .qx-select-trigger[data-disabled] {
1902
+ background: var(--qx-color-bg-disabled);
1903
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-default)) 0 var(--qx-color-border-disabled);
1904
+ color: var(--qx-color-text-disabled);
1905
+ cursor: not-allowed;
1906
+ }
1907
+
1908
+ .qx-select-value {
1909
+ text-overflow: ellipsis;
1910
+ white-space: nowrap;
1911
+ flex: 1;
1912
+ min-inline-size: 0;
1913
+ overflow: hidden;
1914
+ }
1915
+
1916
+ .qx-select-value[data-placeholder] {
1917
+ color: var(--qx-color-text-subtlest);
1918
+ }
1919
+
1920
+ .qx-select-icon {
1921
+ color: var(--qx-color-icon-default);
1922
+ flex: none;
1923
+ display: flex;
1924
+ }
1925
+
1926
+ [data-disabled] > .qx-select-icon {
1927
+ color: var(--qx-color-icon-disabled);
1928
+ }
1929
+
1930
+ .qx-select-positioner {
1931
+ z-index: var(--qx-z-popover);
1932
+ }
1933
+
1934
+ .qx-select-popup {
1935
+ min-inline-size: var(--anchor-width);
1936
+ max-inline-size: var(--available-width);
1937
+ max-block-size: min(320px, var(--available-height));
1938
+ border: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
1939
+ border-radius: var(--qx-radius-overlay);
1940
+ background: var(--qx-color-surface-overlay);
1941
+ box-shadow: var(--qx-shadow-overlay);
1942
+ color: var(--qx-color-text-default);
1943
+ transition-property: opacity, translate;
1944
+ transition-duration: var(--qx-motion-duration-normal);
1945
+ transition-timing-function: var(--qx-motion-easing-enter);
1946
+ outline: 0;
1947
+ padding-block: 4px;
1948
+ overflow-y: auto;
1949
+ }
1950
+
1951
+ .qx-select-popup[data-starting-style], .qx-select-popup[data-ending-style] {
1952
+ opacity: 0;
1953
+ }
1954
+
1955
+ .qx-select-popup[data-side="bottom"]:is([data-starting-style], [data-ending-style]) {
1956
+ translate: 0 -4px;
1957
+ }
1958
+
1959
+ .qx-select-popup[data-side="top"]:is([data-starting-style], [data-ending-style]) {
1960
+ translate: 0 4px;
1961
+ }
1962
+
1963
+ .qx-select-popup[data-ending-style] {
1964
+ transition-duration: var(--qx-motion-duration-fast);
1965
+ transition-timing-function: var(--qx-motion-easing-exit);
1966
+ }
1967
+
1968
+ .qx-select-option {
1969
+ align-items: center;
1970
+ gap: var(--qx-space-gap-sm);
1971
+ block-size: var(--qx-size-control-md);
1972
+ padding-inline: var(--qx-space-inset-md);
1973
+ font: var(--qx-typography-body-md);
1974
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
1975
+ cursor: default;
1976
+ -webkit-user-select: none;
1977
+ user-select: none;
1978
+ outline: 0;
1979
+ display: flex;
1980
+ position: relative;
1981
+ }
1982
+
1983
+ .qx-select-option[data-highlighted] {
1984
+ background: var(--qx-color-bg-neutral-subtle-hover);
1985
+ }
1986
+
1987
+ .qx-select-option[data-highlighted]:before {
1988
+ content: "";
1989
+ inline-size: var(--qx-border-width-strong);
1990
+ background: var(--qx-color-border-brand);
1991
+ position: absolute;
1992
+ inset-block: 0;
1993
+ inset-inline-start: 0;
1994
+ }
1995
+
1996
+ .qx-select-option[data-selected] {
1997
+ font-weight: var(--qx-typography-label-md-font-weight);
1998
+ }
1999
+
2000
+ .qx-select-option[data-disabled] {
2001
+ color: var(--qx-color-text-disabled);
2002
+ }
2003
+
2004
+ .qx-select-option-text {
2005
+ text-overflow: ellipsis;
2006
+ white-space: nowrap;
2007
+ flex: 1;
2008
+ min-inline-size: 0;
2009
+ overflow: hidden;
2010
+ }
2011
+
2012
+ .qx-select-option-check {
2013
+ color: var(--qx-color-icon-brand);
2014
+ flex: none;
2015
+ display: flex;
2016
+ }
2017
+
2018
+ .qx-select-group-label {
2019
+ padding: 8px var(--qx-space-inset-md) 4px;
2020
+ font: var(--qx-typography-label-sm);
2021
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2022
+ color: var(--qx-color-text-subtle);
2023
+ }
2024
+ }
2025
+
2026
+ @layer qx.components {
2027
+ .qx-separator {
2028
+ background: var(--qx-color-border-subtle);
2029
+ border: 0;
2030
+ flex: none;
2031
+ margin: 0;
2032
+ }
2033
+
2034
+ .qx-separator[data-orientation="horizontal"] {
2035
+ inline-size: 100%;
2036
+ block-size: var(--qx-border-width-default);
2037
+ }
2038
+
2039
+ .qx-separator[data-orientation="vertical"] {
2040
+ inline-size: var(--qx-border-width-default);
2041
+ align-self: stretch;
2042
+ }
2043
+
2044
+ .qx-separator[data-tone="default"] {
2045
+ background: var(--qx-color-border-default);
2046
+ }
2047
+
2048
+ .qx-separator[data-tone="strong"] {
2049
+ background: var(--qx-color-border-strong);
2050
+ }
2051
+ }
2052
+
2053
+ @layer qx.components {
2054
+ .qx-skeleton {
2055
+ border-radius: var(--qx-radius-sm);
2056
+ background: var(--qx-color-bg-neutral-subtle-pressed);
2057
+ block-size: 1lh;
2058
+ inline-size: 100%;
2059
+ animation-name: qx-skeleton-pulse;
2060
+ animation-duration: calc(4 * var(--qx-motion-duration-slower));
2061
+ animation-timing-function: var(--qx-motion-easing-standard);
2062
+ animation-iteration-count: infinite;
2063
+ animation-direction: alternate;
2064
+ display: block;
2065
+ }
2066
+
2067
+ .qx-skeleton[data-variant="block"] {
2068
+ border-radius: var(--qx-radius-surface);
2069
+ block-size: 64px;
2070
+ }
2071
+
2072
+ .qx-skeleton[data-variant="circle"] {
2073
+ border-radius: var(--qx-radius-full);
2074
+ block-size: 32px;
2075
+ inline-size: 32px;
2076
+ }
2077
+
2078
+ @keyframes qx-skeleton-pulse {
2079
+ to {
2080
+ opacity: .45;
2081
+ }
2082
+ }
2083
+ }
2084
+
2085
+ @layer qx.components {
2086
+ .qx-skip-link {
2087
+ z-index: var(--qx-z-skip-link);
2088
+ padding: var(--qx-space-inset-sm) var(--qx-space-inset-md);
2089
+ border-radius: var(--qx-radius-control);
2090
+ background: var(--qx-color-surface-overlay);
2091
+ box-shadow: var(--qx-shadow-overlay);
2092
+ color: var(--qx-color-text-link);
2093
+ font: var(--qx-typography-label-md);
2094
+ text-underline-offset: 3px;
2095
+ text-decoration: underline;
2096
+ position: fixed;
2097
+ inset-block-start: var(--qx-space-inset-sm);
2098
+ inset-inline-start: var(--qx-space-inset-sm);
2099
+ }
2100
+
2101
+ .qx-skip-link:not(:focus) {
2102
+ clip-path: inset(50%);
2103
+ white-space: nowrap;
2104
+ block-size: 1px;
2105
+ inline-size: 1px;
2106
+ margin: -1px;
2107
+ padding: 0;
2108
+ overflow: hidden;
2109
+ }
2110
+
2111
+ .qx-skip-link:focus-visible {
2112
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2113
+ outline-offset: var(--qx-focus-ring-offset);
2114
+ }
2115
+ }
2116
+
2117
+ @layer qx.components {
2118
+ .qx-slider {
2119
+ gap: var(--qx-space-gap-xs);
2120
+ flex-direction: column;
2121
+ min-inline-size: 0;
2122
+ display: flex;
2123
+ }
2124
+
2125
+ .qx-slider-header {
2126
+ justify-content: space-between;
2127
+ align-items: baseline;
2128
+ gap: var(--qx-space-gap-md);
2129
+ display: flex;
2130
+ }
2131
+
2132
+ .qx-slider-label {
2133
+ font: var(--qx-typography-label-sm);
2134
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2135
+ color: var(--qx-color-text-subtle);
2136
+ }
2137
+
2138
+ .qx-slider-value {
2139
+ font: var(--qx-typography-label-sm);
2140
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2141
+ font-variant-numeric: tabular-nums;
2142
+ color: var(--qx-color-text-default);
2143
+ }
2144
+
2145
+ .qx-slider-control {
2146
+ block-size: var(--qx-size-target-min);
2147
+ touch-action: none;
2148
+ -webkit-user-select: none;
2149
+ user-select: none;
2150
+ align-items: center;
2151
+ padding-inline: 8px;
2152
+ display: flex;
2153
+ }
2154
+
2155
+ .qx-slider-track {
2156
+ background: var(--qx-color-border-default);
2157
+ block-size: 4px;
2158
+ inline-size: 100%;
2159
+ position: relative;
2160
+ }
2161
+
2162
+ .qx-slider-indicator {
2163
+ background: var(--qx-color-bg-brand-bold);
2164
+ block-size: 100%;
2165
+ }
2166
+
2167
+ [data-disabled] .qx-slider-indicator {
2168
+ background: var(--qx-color-bg-disabled);
2169
+ }
2170
+
2171
+ .qx-slider-thumb {
2172
+ border-radius: var(--qx-radius-sm);
2173
+ background: var(--qx-color-bg-brand-bold);
2174
+ block-size: 16px;
2175
+ inline-size: 16px;
2176
+ box-shadow: 0 0 0 var(--qx-border-width-strong) var(--qx-color-surface-default);
2177
+ cursor: grab;
2178
+ transition-property: background-color;
2179
+ transition-duration: var(--qx-motion-duration-fast);
2180
+ transition-timing-function: var(--qx-motion-easing-standard);
2181
+ }
2182
+
2183
+ .qx-slider-thumb:hover {
2184
+ background: var(--qx-color-bg-brand-bold-hover);
2185
+ }
2186
+
2187
+ .qx-slider-thumb[data-dragging] {
2188
+ cursor: grabbing;
2189
+ }
2190
+
2191
+ .qx-slider-thumb:has(:focus-visible) {
2192
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2193
+ outline-offset: var(--qx-focus-ring-offset);
2194
+ }
2195
+
2196
+ .qx-slider-thumb[data-disabled] {
2197
+ background: var(--qx-color-icon-disabled);
2198
+ cursor: not-allowed;
2199
+ }
2200
+ }
2201
+
2202
+ @layer qx.components {
2203
+ .qx-spinner {
2204
+ border: 2px solid;
2205
+ border-radius: var(--qx-radius-full);
2206
+ block-size: 16px;
2207
+ inline-size: 16px;
2208
+ animation-name: qx-spinner-turn;
2209
+ animation-duration: calc(2 * var(--qx-motion-duration-slower));
2210
+ animation-timing-function: var(--qx-motion-easing-linear);
2211
+ border-inline-end-color: #0000;
2212
+ flex: none;
2213
+ animation-iteration-count: infinite;
2214
+ display: inline-block;
2215
+ }
2216
+
2217
+ .qx-spinner[data-size="sm"] {
2218
+ block-size: 14px;
2219
+ inline-size: 14px;
2220
+ }
2221
+
2222
+ .qx-spinner[data-size="lg"] {
2223
+ block-size: 20px;
2224
+ inline-size: 20px;
2225
+ }
2226
+
2227
+ .qx-spinner[data-size="xl"] {
2228
+ block-size: 24px;
2229
+ inline-size: 24px;
2230
+ }
2231
+
2232
+ .qx-spinner[data-tone="brand"] {
2233
+ color: var(--qx-color-icon-brand);
2234
+ }
2235
+
2236
+ @keyframes qx-spinner-turn {
2237
+ to {
2238
+ rotate: 1turn;
2239
+ }
2240
+ }
2241
+
2242
+ @media (prefers-reduced-motion: reduce) {
2243
+ .qx-spinner {
2244
+ border-inline-end-color: currentColor;
2245
+ animation: 1.6s ease-in-out infinite qx-spinner-fade;
2246
+ }
2247
+ }
2248
+
2249
+ @keyframes qx-spinner-fade {
2250
+ 50% {
2251
+ opacity: .35;
2252
+ }
2253
+ }
2254
+ }
2255
+
2256
+ @layer qx.components {
2257
+ .qx-stack {
2258
+ flex-direction: column;
2259
+ display: flex;
2260
+ }
2261
+
2262
+ .qx-stack[data-gap="none"] {
2263
+ gap: 0;
2264
+ }
2265
+
2266
+ .qx-stack[data-gap="xs"] {
2267
+ gap: var(--qx-space-gap-xs);
2268
+ }
2269
+
2270
+ .qx-stack[data-gap="sm"] {
2271
+ gap: var(--qx-space-gap-sm);
2272
+ }
2273
+
2274
+ .qx-stack[data-gap="md"] {
2275
+ gap: var(--qx-space-gap-md);
2276
+ }
2277
+
2278
+ .qx-stack[data-gap="lg"] {
2279
+ gap: var(--qx-space-gap-lg);
2280
+ }
2281
+
2282
+ .qx-stack[data-gap="xl"] {
2283
+ gap: var(--qx-space-gap-xl);
2284
+ }
2285
+
2286
+ .qx-stack[data-gap="2xl"] {
2287
+ gap: var(--qx-space-layout-md);
2288
+ }
2289
+
2290
+ .qx-stack[data-gap="3xl"] {
2291
+ gap: var(--qx-space-layout-lg);
2292
+ }
2293
+
2294
+ .qx-stack[data-gap="4xl"] {
2295
+ gap: var(--qx-space-layout-xl);
2296
+ }
2297
+
2298
+ .qx-stack[data-align="start"] {
2299
+ align-items: flex-start;
2300
+ }
2301
+
2302
+ .qx-stack[data-align="center"] {
2303
+ align-items: center;
2304
+ }
2305
+
2306
+ .qx-stack[data-align="end"] {
2307
+ align-items: flex-end;
2308
+ }
2309
+
2310
+ .qx-stack[data-align="stretch"] {
2311
+ align-items: stretch;
2312
+ }
2313
+
2314
+ .qx-stack[data-justify="start"] {
2315
+ justify-content: flex-start;
2316
+ }
2317
+
2318
+ .qx-stack[data-justify="center"] {
2319
+ justify-content: center;
2320
+ }
2321
+
2322
+ .qx-stack[data-justify="end"] {
2323
+ justify-content: flex-end;
2324
+ }
2325
+
2326
+ .qx-stack[data-justify="between"] {
2327
+ justify-content: space-between;
2328
+ }
2329
+ }
2330
+
2331
+ @layer qx.components {
2332
+ .qx-switch {
2333
+ border: var(--qx-border-width-default) solid var(--qx-color-border-strong);
2334
+ border-radius: var(--qx-radius-sm);
2335
+ background: var(--qx-color-bg-input);
2336
+ cursor: pointer;
2337
+ block-size: 18px;
2338
+ inline-size: 32px;
2339
+ transition-property: background-color, border-color;
2340
+ transition-duration: var(--qx-motion-duration-fast);
2341
+ transition-timing-function: var(--qx-motion-easing-standard);
2342
+ flex: none;
2343
+ display: inline-block;
2344
+ position: relative;
2345
+ }
2346
+
2347
+ .qx-switch:hover:not([data-disabled], [data-readonly]) {
2348
+ border-color: var(--qx-color-border-strong-hover);
2349
+ }
2350
+
2351
+ .qx-switch[data-invalid] {
2352
+ border-color: var(--qx-color-border-danger);
2353
+ }
2354
+
2355
+ .qx-switch[data-checked] {
2356
+ border-color: var(--qx-color-bg-brand-bold);
2357
+ background: var(--qx-color-bg-brand-bold);
2358
+ }
2359
+
2360
+ .qx-switch[data-checked]:hover:not([data-disabled], [data-readonly]) {
2361
+ border-color: var(--qx-color-bg-brand-bold-hover);
2362
+ background: var(--qx-color-bg-brand-bold-hover);
2363
+ }
2364
+
2365
+ .qx-switch[data-disabled] {
2366
+ border-color: var(--qx-color-border-disabled);
2367
+ background: var(--qx-color-bg-disabled);
2368
+ cursor: not-allowed;
2369
+ }
2370
+
2371
+ .qx-switch[data-readonly] {
2372
+ cursor: default;
2373
+ }
2374
+
2375
+ .qx-switch:focus-visible {
2376
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2377
+ outline-offset: var(--qx-focus-ring-offset);
2378
+ }
2379
+
2380
+ .qx-switch-thumb {
2381
+ border-radius: calc(var(--qx-radius-sm) / 2);
2382
+ background: var(--qx-color-icon-subtle);
2383
+ block-size: 12px;
2384
+ inline-size: 12px;
2385
+ transition-property: inset-inline-start, background-color;
2386
+ transition-duration: var(--qx-motion-duration-normal);
2387
+ transition-timing-function: var(--qx-motion-easing-standard);
2388
+ position: absolute;
2389
+ inset-block-start: 50%;
2390
+ inset-inline-start: 2px;
2391
+ translate: 0 -50%;
2392
+ }
2393
+
2394
+ .qx-switch-thumb[data-checked] {
2395
+ background: var(--qx-color-surface-default);
2396
+ inset-inline-start: 16px;
2397
+ }
2398
+
2399
+ .qx-switch-thumb[data-disabled] {
2400
+ background: var(--qx-color-icon-disabled);
2401
+ }
2402
+
2403
+ .qx-choice-label > .qx-switch {
2404
+ margin-block: 1px;
2405
+ }
2406
+ }
2407
+
2408
+ @layer qx.components {
2409
+ .qx-table {
2410
+ border-collapse: collapse;
2411
+ inline-size: 100%;
2412
+ color: var(--qx-color-text-default);
2413
+ font: var(--qx-typography-body-md);
2414
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2415
+ }
2416
+
2417
+ .qx-table-caption {
2418
+ caption-side: top;
2419
+ font: var(--qx-typography-label-sm);
2420
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2421
+ color: var(--qx-color-text-subtle);
2422
+ text-align: start;
2423
+ padding-block-end: var(--qx-space-gap-sm);
2424
+ }
2425
+
2426
+ .qx-table-head {
2427
+ background: var(--qx-color-bg-neutral-subtle);
2428
+ font: var(--qx-typography-label-sm);
2429
+ font-weight: var(--qx-typography-title-sm-font-weight);
2430
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2431
+ white-space: nowrap;
2432
+ }
2433
+
2434
+ .qx-table-cell {
2435
+ border-block-start: var(--qx-border-width-default) solid var(--qx-color-border-subtle);
2436
+ }
2437
+
2438
+ .qx-table-head, .qx-table-cell {
2439
+ block-size: var(--qx-size-row);
2440
+ padding-block: 0;
2441
+ padding-inline: var(--qx-space-inset-sm);
2442
+ text-align: start;
2443
+ vertical-align: middle;
2444
+ }
2445
+
2446
+ :is(.qx-table-head, .qx-table-cell):first-child {
2447
+ padding-inline-start: var(--qx-space-inset-md);
2448
+ }
2449
+
2450
+ :is(.qx-table-head, .qx-table-cell):last-child {
2451
+ padding-inline-end: var(--qx-space-inset-md);
2452
+ }
2453
+
2454
+ :is(.qx-table-head, .qx-table-cell)[data-align="center"] {
2455
+ text-align: center;
2456
+ }
2457
+
2458
+ :is(.qx-table-head, .qx-table-cell)[data-align="end"] {
2459
+ text-align: end;
2460
+ }
2461
+
2462
+ :is(.qx-table-head, .qx-table-cell)[data-numeric] {
2463
+ font-variant-numeric: tabular-nums;
2464
+ }
2465
+
2466
+ .qx-table-row[data-selected] > .qx-table-cell {
2467
+ background: var(--qx-color-bg-selected);
2468
+ }
2469
+
2470
+ .qx-table-body > .qx-table-row:not([data-selected]):hover > .qx-table-cell {
2471
+ background: var(--qx-color-bg-neutral-subtle);
2472
+ }
2473
+ }
2474
+
2475
+ @layer qx.components {
2476
+ .qx-tabs {
2477
+ flex-direction: column;
2478
+ min-inline-size: 0;
2479
+ display: flex;
2480
+ }
2481
+
2482
+ .qx-tabs[data-orientation="vertical"] {
2483
+ flex-direction: row;
2484
+ }
2485
+
2486
+ .qx-tabs-list {
2487
+ min-inline-size: 0;
2488
+ box-shadow: inset 0 calc(-1 * var(--qx-border-width-strong)) 0 var(--qx-color-border-subtle);
2489
+ scrollbar-width: none;
2490
+ display: flex;
2491
+ position: relative;
2492
+ overflow-x: auto;
2493
+ }
2494
+
2495
+ .qx-tabs-list[data-orientation="vertical"] {
2496
+ box-shadow: none;
2497
+ border-inline-start: var(--qx-border-width-strong) solid var(--qx-color-border-subtle);
2498
+ flex-direction: column;
2499
+ flex: none;
2500
+ overflow-x: visible;
2501
+ }
2502
+
2503
+ .qx-tab {
2504
+ align-items: center;
2505
+ gap: var(--qx-space-gap-sm);
2506
+ block-size: var(--qx-size-control-lg);
2507
+ padding-inline: clamp(12px, var(--qx-size-control-lg) - 20px, 16px);
2508
+ color: var(--qx-color-text-subtle);
2509
+ font: var(--qx-typography-label-md);
2510
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2511
+ white-space: nowrap;
2512
+ cursor: pointer;
2513
+ transition-property: color;
2514
+ transition-duration: var(--qx-motion-duration-fast);
2515
+ transition-timing-function: var(--qx-motion-easing-standard);
2516
+ background: none;
2517
+ border: 0;
2518
+ flex: none;
2519
+ display: inline-flex;
2520
+ position: relative;
2521
+ }
2522
+
2523
+ .qx-tab:hover {
2524
+ color: var(--qx-color-text-default);
2525
+ }
2526
+
2527
+ .qx-tab[data-active] {
2528
+ color: var(--qx-color-text-default);
2529
+ font-weight: var(--qx-typography-title-sm-font-weight);
2530
+ }
2531
+
2532
+ .qx-tab[data-disabled] {
2533
+ color: var(--qx-color-text-disabled);
2534
+ cursor: not-allowed;
2535
+ }
2536
+
2537
+ .qx-tab:focus-visible {
2538
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2539
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
2540
+ }
2541
+
2542
+ .qx-tab-icon {
2543
+ flex: none;
2544
+ }
2545
+
2546
+ .qx-tab-icon-filled, .qx-tab:has( > .qx-tab-icon-filled)[data-active] > .qx-tab-icon-outline {
2547
+ display: none;
2548
+ }
2549
+
2550
+ .qx-tab[data-active] > .qx-tab-icon-filled {
2551
+ display: block;
2552
+ }
2553
+
2554
+ .qx-tabs-indicator {
2555
+ inline-size: var(--active-tab-width);
2556
+ block-size: var(--qx-border-width-accent);
2557
+ translate: var(--active-tab-left) 0;
2558
+ background: var(--qx-color-border-brand);
2559
+ transition-property: translate, inline-size, block-size;
2560
+ transition-duration: var(--qx-motion-duration-normal);
2561
+ transition-timing-function: var(--qx-motion-easing-standard);
2562
+ position: absolute;
2563
+ inset-block-end: 0;
2564
+ inset-inline-start: 0;
2565
+ }
2566
+
2567
+ [data-orientation="vertical"] > .qx-tabs-indicator {
2568
+ inline-size: var(--qx-border-width-accent);
2569
+ block-size: var(--active-tab-height);
2570
+ translate: 0 var(--active-tab-top);
2571
+ inset-block-end: auto;
2572
+ inset-inline-start: calc(-1 * var(--qx-border-width-strong));
2573
+ }
2574
+
2575
+ .qx-tabs-panel {
2576
+ outline: 0;
2577
+ min-inline-size: 0;
2578
+ }
2579
+
2580
+ .qx-tabs-panel:focus-visible {
2581
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2582
+ outline-offset: var(--qx-focus-ring-offset);
2583
+ }
2584
+ }
2585
+
2586
+ @layer qx.components {
2587
+ .qx-text {
2588
+ font: var(--qx-typography-body-md);
2589
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2590
+ margin: 0;
2591
+ }
2592
+
2593
+ .qx-text[data-size="sm"] {
2594
+ font-size: var(--qx-typography-body-sm-font-size);
2595
+ line-height: var(--qx-typography-body-sm-line-height);
2596
+ }
2597
+
2598
+ .qx-text[data-size="md"] {
2599
+ font-size: var(--qx-typography-body-md-font-size);
2600
+ line-height: var(--qx-typography-body-md-line-height);
2601
+ }
2602
+
2603
+ .qx-text[data-size="lg"] {
2604
+ font-size: var(--qx-typography-body-lg-font-size);
2605
+ line-height: var(--qx-typography-body-lg-line-height);
2606
+ }
2607
+
2608
+ .qx-text[data-weight="regular"] {
2609
+ font-weight: var(--qx-typography-body-md-font-weight);
2610
+ }
2611
+
2612
+ .qx-text[data-weight="medium"] {
2613
+ font-weight: var(--qx-typography-label-md-font-weight);
2614
+ }
2615
+
2616
+ .qx-text[data-weight="semibold"] {
2617
+ font-weight: var(--qx-typography-title-md-font-weight);
2618
+ }
2619
+
2620
+ .qx-text[data-mono] {
2621
+ font-family: var(--qx-font-family-mono);
2622
+ }
2623
+
2624
+ .qx-text[data-tone="default"] {
2625
+ color: var(--qx-color-text-default);
2626
+ }
2627
+
2628
+ .qx-text[data-tone="subtle"] {
2629
+ color: var(--qx-color-text-subtle);
2630
+ }
2631
+
2632
+ .qx-text[data-tone="subtlest"] {
2633
+ color: var(--qx-color-text-subtlest);
2634
+ }
2635
+
2636
+ .qx-text[data-tone="disabled"] {
2637
+ color: var(--qx-color-text-disabled);
2638
+ }
2639
+
2640
+ .qx-text[data-tone="inverse"] {
2641
+ color: var(--qx-color-text-inverse);
2642
+ }
2643
+
2644
+ .qx-text[data-tone="brand"] {
2645
+ color: var(--qx-color-text-brand);
2646
+ }
2647
+
2648
+ .qx-text[data-tone="danger"] {
2649
+ color: var(--qx-color-text-danger);
2650
+ }
2651
+
2652
+ .qx-text[data-tone="success"] {
2653
+ color: var(--qx-color-text-success);
2654
+ }
2655
+
2656
+ .qx-text[data-tone="warning"] {
2657
+ color: var(--qx-color-text-warning);
2658
+ }
2659
+
2660
+ .qx-text[data-tone="info"] {
2661
+ color: var(--qx-color-text-info);
2662
+ }
2663
+
2664
+ .qx-text[data-truncate="line"] {
2665
+ text-overflow: ellipsis;
2666
+ white-space: nowrap;
2667
+ overflow: hidden;
2668
+ }
2669
+
2670
+ .qx-text[data-truncate="lines"] {
2671
+ -webkit-line-clamp: var(--qx-text-lines);
2672
+ line-clamp: var(--qx-text-lines);
2673
+ -webkit-box-orient: vertical;
2674
+ display: -webkit-box;
2675
+ overflow: hidden;
2676
+ }
2677
+
2678
+ .qx-text[data-align="start"] {
2679
+ text-align: start;
2680
+ }
2681
+
2682
+ .qx-text[data-align="center"] {
2683
+ text-align: center;
2684
+ }
2685
+
2686
+ .qx-text[data-align="end"] {
2687
+ text-align: end;
2688
+ }
2689
+ }
2690
+
2691
+ @layer qx.components {
2692
+ .qx-toast-viewport {
2693
+ z-index: var(--qx-z-toast);
2694
+ gap: var(--qx-space-gap-sm);
2695
+ outline: 0;
2696
+ flex-direction: column-reverse;
2697
+ inline-size: min(360px, 100vw - 32px);
2698
+ display: flex;
2699
+ position: fixed;
2700
+ inset-block-end: var(--qx-space-inset-lg);
2701
+ inset-inline-end: var(--qx-space-inset-lg);
2702
+ }
2703
+
2704
+ .qx-toast {
2705
+ align-items: flex-start;
2706
+ gap: var(--qx-space-gap-md);
2707
+ border-inline-start: var(--qx-border-width-accent) solid var(--qx-color-icon-info);
2708
+ border-radius: var(--qx-radius-overlay);
2709
+ background: var(--qx-color-surface-overlay);
2710
+ box-shadow: var(--qx-shadow-overlay);
2711
+ color: var(--qx-color-text-default);
2712
+ font: var(--qx-typography-body-md);
2713
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2714
+ transform: translate(var(--toast-swipe-movement-x, 0px), var(--toast-swipe-movement-y, 0px));
2715
+ transition-property: opacity, translate, transform;
2716
+ transition-duration: var(--qx-motion-duration-normal);
2717
+ transition-timing-function: var(--qx-motion-easing-enter);
2718
+ padding: 12px 8px 12px 14px;
2719
+ display: flex;
2720
+ }
2721
+
2722
+ .qx-toast[data-starting-style], .qx-toast[data-ending-style] {
2723
+ opacity: 0;
2724
+ translate: 0 4px;
2725
+ }
2726
+
2727
+ .qx-toast[data-ending-style] {
2728
+ transition-duration: var(--qx-motion-duration-fast);
2729
+ transition-timing-function: var(--qx-motion-easing-exit);
2730
+ }
2731
+
2732
+ .qx-toast[data-swiping] {
2733
+ transition: none;
2734
+ }
2735
+
2736
+ .qx-toast[data-limited] {
2737
+ display: none;
2738
+ }
2739
+
2740
+ .qx-toast[data-tone="success"] {
2741
+ border-inline-start-color: var(--qx-color-icon-success);
2742
+ }
2743
+
2744
+ .qx-toast[data-tone="warning"] {
2745
+ border-inline-start-color: var(--qx-color-icon-warning);
2746
+ }
2747
+
2748
+ .qx-toast[data-tone="danger"] {
2749
+ border-inline-start-color: var(--qx-color-icon-danger);
2750
+ }
2751
+
2752
+ .qx-toast-icon {
2753
+ color: var(--qx-color-icon-info);
2754
+ flex: none;
2755
+ margin-block-start: 1px;
2756
+ }
2757
+
2758
+ .qx-toast[data-tone="success"] .qx-toast-icon {
2759
+ color: var(--qx-color-icon-success);
2760
+ }
2761
+
2762
+ .qx-toast[data-tone="warning"] .qx-toast-icon {
2763
+ color: var(--qx-color-icon-warning);
2764
+ }
2765
+
2766
+ .qx-toast[data-tone="danger"] .qx-toast-icon {
2767
+ color: var(--qx-color-icon-danger);
2768
+ }
2769
+
2770
+ .qx-toast-content {
2771
+ flex-direction: column;
2772
+ flex: 1;
2773
+ gap: 2px;
2774
+ min-inline-size: 0;
2775
+ display: flex;
2776
+ }
2777
+
2778
+ .qx-toast-title {
2779
+ font: var(--qx-typography-title-sm);
2780
+ font-variation-settings: "GEOM" var(--qx-font-geometry-heading);
2781
+ margin: 0;
2782
+ }
2783
+
2784
+ .qx-toast-description {
2785
+ font: var(--qx-typography-body-sm);
2786
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2787
+ color: var(--qx-color-text-subtle);
2788
+ margin: 0;
2789
+ }
2790
+
2791
+ .qx-toast-action {
2792
+ flex: none;
2793
+ margin-block: -2px;
2794
+ }
2795
+ }
2796
+
2797
+ @layer qx.components {
2798
+ .qx-toggle {
2799
+ justify-content: center;
2800
+ align-items: center;
2801
+ gap: var(--qx-space-gap-sm);
2802
+ block-size: var(--qx-size-control-md);
2803
+ border-radius: var(--qx-radius-control);
2804
+ color: var(--qx-color-text-subtle);
2805
+ font: var(--qx-typography-label-md);
2806
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2807
+ white-space: nowrap;
2808
+ cursor: pointer;
2809
+ -webkit-user-select: none;
2810
+ user-select: none;
2811
+ transition-property: background-color, color;
2812
+ transition-duration: var(--qx-motion-duration-fast);
2813
+ transition-timing-function: var(--qx-motion-easing-standard);
2814
+ background: none;
2815
+ border: 0;
2816
+ padding-inline: 12px;
2817
+ display: inline-flex;
2818
+ }
2819
+
2820
+ .qx-toggle:hover:not([data-disabled]):not([data-pressed]) {
2821
+ background: var(--qx-color-bg-neutral-subtle);
2822
+ color: var(--qx-color-text-default);
2823
+ }
2824
+
2825
+ .qx-toggle[data-pressed] {
2826
+ background: var(--qx-color-bg-neutral-bold);
2827
+ color: var(--qx-color-text-inverse);
2828
+ }
2829
+
2830
+ .qx-toggle[data-disabled] {
2831
+ color: var(--qx-color-text-disabled);
2832
+ cursor: not-allowed;
2833
+ }
2834
+
2835
+ .qx-toggle:focus-visible {
2836
+ outline: var(--qx-focus-ring-width) solid var(--qx-color-border-focus);
2837
+ outline-offset: calc(-1 * var(--qx-focus-ring-width));
2838
+ box-shadow: inset 0 0 0 calc(var(--qx-focus-ring-width) + var(--qx-border-width-default))
2839
+ var(--qx-color-surface-default);
2840
+ }
2841
+
2842
+ .qx-toggle[data-size="sm"] {
2843
+ block-size: var(--qx-size-control-sm);
2844
+ font-size: var(--qx-typography-label-sm-font-size);
2845
+ line-height: var(--qx-typography-label-sm-line-height);
2846
+ padding-inline: 8px;
2847
+ }
2848
+
2849
+ .qx-toggle[data-size="lg"] {
2850
+ block-size: var(--qx-size-control-lg);
2851
+ padding-inline: 16px;
2852
+ }
2853
+
2854
+ .qx-toggle[data-icon-only] {
2855
+ aspect-ratio: 1;
2856
+ padding-inline: 0;
2857
+ }
2858
+
2859
+ .qx-toggle .qx-toggle-icon-filled {
2860
+ display: none;
2861
+ }
2862
+
2863
+ .qx-toggle[data-pressed] .qx-toggle-icon-filled {
2864
+ display: block;
2865
+ }
2866
+
2867
+ .qx-toggle[data-pressed]:has(.qx-toggle-icon-filled) .qx-toggle-icon-outline {
2868
+ display: none;
2869
+ }
2870
+
2871
+ .qx-toggle-group {
2872
+ align-items: stretch;
2873
+ display: inline-flex;
2874
+ }
2875
+
2876
+ .qx-toggle-group[data-orientation="vertical"] {
2877
+ flex-direction: column;
2878
+ }
2879
+
2880
+ .qx-toggle-group[data-variant="separate"] {
2881
+ gap: var(--qx-space-gap-xs);
2882
+ }
2883
+
2884
+ .qx-toggle-group[data-variant="segmented"] {
2885
+ border: var(--qx-border-width-default) solid var(--qx-color-border-strong);
2886
+ border-radius: var(--qx-radius-control);
2887
+ overflow: hidden;
2888
+ }
2889
+
2890
+ .qx-toggle-group[data-variant="segmented"] > .qx-toggle {
2891
+ block-size: calc(var(--qx-size-control-md) - 2 * var(--qx-border-width-default));
2892
+ border-radius: 0;
2893
+ }
2894
+
2895
+ .qx-toggle-group[data-variant="segmented"] > .qx-toggle + .qx-toggle {
2896
+ border-inline-start: var(--qx-border-width-default) solid var(--qx-color-border-strong);
2897
+ }
2898
+
2899
+ .qx-toggle-group[data-variant="segmented"][data-size="sm"] > .qx-toggle {
2900
+ block-size: calc(var(--qx-size-control-sm) - 2 * var(--qx-border-width-default));
2901
+ }
2902
+
2903
+ .qx-toggle-group[data-variant="segmented"][data-size="lg"] > .qx-toggle {
2904
+ block-size: calc(var(--qx-size-control-lg) - 2 * var(--qx-border-width-default));
2905
+ }
2906
+ }
2907
+
2908
+ @layer qx.components {
2909
+ .qx-tooltip-positioner {
2910
+ z-index: var(--qx-z-tooltip);
2911
+ }
2912
+
2913
+ .qx-tooltip {
2914
+ border-radius: var(--qx-radius-tooltip);
2915
+ background: var(--qx-color-surface-inverse);
2916
+ max-inline-size: 280px;
2917
+ color: var(--qx-color-text-inverse);
2918
+ font: var(--qx-typography-body-sm);
2919
+ font-variation-settings: "GEOM" var(--qx-font-geometry-body);
2920
+ transition-property: opacity, translate;
2921
+ transition-duration: var(--qx-motion-duration-normal);
2922
+ transition-timing-function: var(--qx-motion-easing-enter);
2923
+ padding: 4px 8px;
2924
+ }
2925
+
2926
+ .qx-tooltip[data-starting-style], .qx-tooltip[data-ending-style] {
2927
+ opacity: 0;
2928
+ }
2929
+
2930
+ .qx-tooltip[data-side="top"]:is([data-starting-style], [data-ending-style]) {
2931
+ translate: 0 4px;
2932
+ }
2933
+
2934
+ .qx-tooltip[data-side="bottom"]:is([data-starting-style], [data-ending-style]) {
2935
+ translate: 0 -4px;
2936
+ }
2937
+
2938
+ .qx-tooltip[data-ending-style] {
2939
+ transition-duration: var(--qx-motion-duration-fast);
2940
+ transition-timing-function: var(--qx-motion-easing-exit);
2941
+ }
2942
+
2943
+ .qx-tooltip[data-instant] {
2944
+ transition: none;
2945
+ }
2946
+ }
2947
+
2948
+ @layer qx.components {
2949
+ .qx-visually-hidden {
2950
+ clip-path: inset(50%);
2951
+ white-space: nowrap;
2952
+ border: 0;
2953
+ block-size: 1px;
2954
+ inline-size: 1px;
2955
+ margin: -1px;
2956
+ padding: 0;
2957
+ position: absolute;
2958
+ overflow: hidden;
2959
+ }
2960
+ }