aeico-components 0.1.2 → 0.1.3
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.
- package/dist/index.cjs +1182 -1182
- package/dist/index.js +1182 -1182
- package/package.json +63 -63
- package/src/styles/color.css +117 -117
- package/src/styles/components/alert.css +104 -104
- package/src/styles/components/badge.css +67 -67
- package/src/styles/components/breadcrumb-item.css +59 -59
- package/src/styles/components/breadcrumb.css +19 -19
- package/src/styles/components/button-group.css +25 -25
- package/src/styles/components/button.css +213 -213
- package/src/styles/components/card.css +64 -64
- package/src/styles/components/checkbox.css +78 -78
- package/src/styles/components/detail.css +127 -127
- package/src/styles/components/dialog.css +103 -103
- package/src/styles/components/divider.css +18 -18
- package/src/styles/components/dropdown-item.css +91 -91
- package/src/styles/components/dropdown.css +179 -179
- package/src/styles/components/icon-button.css +116 -116
- package/src/styles/components/icon.css +29 -29
- package/src/styles/components/navbar.css +250 -250
- package/src/styles/components/radio-group.css +360 -360
- package/src/styles/components/select-option.css +43 -43
- package/src/styles/components/select.css +222 -222
- package/src/styles/components/slider.css +326 -326
- package/src/styles/components/switch.css +117 -117
- package/src/styles/components/tab-panel.css +8 -8
- package/src/styles/components/tab.css +44 -44
- package/src/styles/components/tabs.css +16 -16
- package/src/styles/components/tag.css +107 -107
- package/src/styles/components/text-input.css +110 -110
- package/src/styles/layout.css +43 -43
- package/src/styles/size.css +7 -7
- package/src/styles/variables.css +368 -368
package/dist/index.cjs
CHANGED
|
@@ -187,377 +187,377 @@ __publicField(AeicoField, "props", {
|
|
|
187
187
|
__publicField(AeicoField, "watchers", {
|
|
188
188
|
disabled: "onDisabledChanged"
|
|
189
189
|
});
|
|
190
|
-
const styleVariables = `:root
|
|
191
|
-
:host {
|
|
192
|
-
--ae-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue"
|
|
193
|
-
"Noto Sans", "Liberation Sans", Arial, sans-serif
|
|
194
|
-
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"
|
|
195
|
-
--ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas
|
|
196
|
-
"Liberation Mono", "Courier New", monospace
|
|
197
|
-
font-family: var(--ae-font-sans-serif)
|
|
198
|
-
--blue: #0e639c
|
|
199
|
-
--green: #28a745
|
|
200
|
-
--red: #dc3545
|
|
201
|
-
--yellow: #ffc107
|
|
202
|
-
--cyan: #17a2b8
|
|
203
|
-
--gray: #6e6e6e
|
|
204
|
-
--slate: #64748b
|
|
205
|
-
--dark: #343a40
|
|
206
|
-
--light: #f8f9fa
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
:root
|
|
210
|
-
:host {
|
|
211
|
-
/* Blue
|
|
212
|
-
--blue-100: color-mix(in srgb, var(--blue) 20%, white)
|
|
213
|
-
--blue-200: color-mix(in srgb, var(--blue) 40%, white)
|
|
214
|
-
--blue-300: color-mix(in srgb, var(--blue) 60%, white)
|
|
215
|
-
--blue-400: color-mix(in srgb, var(--blue) 80%, white)
|
|
216
|
-
--blue-500: var(--blue)
|
|
217
|
-
--blue-600: color-mix(in srgb, var(--blue) 80%, black)
|
|
218
|
-
--blue-700: color-mix(in srgb, var(--blue) 60%, black)
|
|
219
|
-
--blue-800: color-mix(in srgb, var(--blue) 40%, black)
|
|
220
|
-
--blue-900: color-mix(in srgb, var(--blue) 20%, black)
|
|
221
|
-
|
|
222
|
-
/* Green
|
|
223
|
-
--green-100: color-mix(in srgb, var(--green) 20%, white)
|
|
224
|
-
--green-200: color-mix(in srgb, var(--green) 40%, white)
|
|
225
|
-
--green-300: color-mix(in srgb, var(--green) 60%, white)
|
|
226
|
-
--green-400: color-mix(in srgb, var(--green) 80%, white)
|
|
227
|
-
--green-500: var(--green)
|
|
228
|
-
--green-600: color-mix(in srgb, var(--green) 80%, black)
|
|
229
|
-
--green-700: color-mix(in srgb, var(--green) 60%, black)
|
|
230
|
-
--green-800: color-mix(in srgb, var(--green) 40%, black)
|
|
231
|
-
--green-900: color-mix(in srgb, var(--green) 20%, black)
|
|
232
|
-
|
|
233
|
-
/* Red
|
|
234
|
-
--red-100: color-mix(in srgb, var(--red) 20%, white)
|
|
235
|
-
--red-200: color-mix(in srgb, var(--red) 40%, white)
|
|
236
|
-
--red-300: color-mix(in srgb, var(--red) 60%, white)
|
|
237
|
-
--red-400: color-mix(in srgb, var(--red) 80%, white)
|
|
238
|
-
--red-500: var(--red)
|
|
239
|
-
--red-600: color-mix(in srgb, var(--red) 80%, black)
|
|
240
|
-
--red-700: color-mix(in srgb, var(--red) 60%, black)
|
|
241
|
-
--red-800: color-mix(in srgb, var(--red) 40%, black)
|
|
242
|
-
--red-900: color-mix(in srgb, var(--red) 20%, black)
|
|
243
|
-
|
|
244
|
-
/* Yellow
|
|
245
|
-
--yellow-100: color-mix(in srgb, var(--yellow) 20%, white)
|
|
246
|
-
--yellow-200: color-mix(in srgb, var(--yellow) 40%, white)
|
|
247
|
-
--yellow-300: color-mix(in srgb, var(--yellow) 60%, white)
|
|
248
|
-
--yellow-400: color-mix(in srgb, var(--yellow) 80%, white)
|
|
249
|
-
--yellow-500: var(--yellow)
|
|
250
|
-
--yellow-600: color-mix(in srgb, var(--yellow) 80%, black)
|
|
251
|
-
--yellow-700: color-mix(in srgb, var(--yellow) 60%, black)
|
|
252
|
-
--yellow-800: color-mix(in srgb, var(--yellow) 40%, black)
|
|
253
|
-
--yellow-900: color-mix(in srgb, var(--yellow) 20%, black)
|
|
254
|
-
|
|
255
|
-
/* Cyan
|
|
256
|
-
--cyan-100: color-mix(in srgb, var(--cyan) 20%, white)
|
|
257
|
-
--cyan-200: color-mix(in srgb, var(--cyan) 40%, white)
|
|
258
|
-
--cyan-300: color-mix(in srgb, var(--cyan) 60%, white)
|
|
259
|
-
--cyan-400: color-mix(in srgb, var(--cyan) 80%, white)
|
|
260
|
-
--cyan-500: var(--cyan)
|
|
261
|
-
--cyan-600: color-mix(in srgb, var(--cyan) 80%, black)
|
|
262
|
-
--cyan-700: color-mix(in srgb, var(--cyan) 60%, black)
|
|
263
|
-
--cyan-800: color-mix(in srgb, var(--cyan) 40%, black)
|
|
264
|
-
--cyan-900: color-mix(in srgb, var(--cyan) 20%, black)
|
|
265
|
-
|
|
266
|
-
/* Gray (neutral — base #6e6e6e)
|
|
267
|
-
--gray-100: color-mix(in srgb, var(--gray) 20%, white)
|
|
268
|
-
--gray-200: color-mix(in srgb, var(--gray) 40%, white)
|
|
269
|
-
--gray-300: color-mix(in srgb, var(--gray) 60%, white)
|
|
270
|
-
--gray-400: color-mix(in srgb, var(--gray) 80%, white)
|
|
271
|
-
--gray-500: var(--gray)
|
|
272
|
-
--gray-600: color-mix(in srgb, var(--gray) 80%, black)
|
|
273
|
-
--gray-700: color-mix(in srgb, var(--gray) 60%, black)
|
|
274
|
-
--gray-800: color-mix(in srgb, var(--gray) 40%, black)
|
|
275
|
-
--gray-900: color-mix(in srgb, var(--gray) 20%, black)
|
|
276
|
-
|
|
277
|
-
/* Slate (blue-gray — base #64748b, used for 'secondary')
|
|
278
|
-
--slate-100: color-mix(in srgb, var(--slate) 20%, white)
|
|
279
|
-
--slate-200: color-mix(in srgb, var(--slate) 40%, white)
|
|
280
|
-
--slate-300: color-mix(in srgb, var(--slate) 60%, white)
|
|
281
|
-
--slate-400: color-mix(in srgb, var(--slate) 80%, white)
|
|
282
|
-
--slate-500: var(--slate)
|
|
283
|
-
--slate-600: color-mix(in srgb, var(--slate) 80%, black)
|
|
284
|
-
--slate-700: color-mix(in srgb, var(--slate) 60%, black)
|
|
285
|
-
--slate-800: color-mix(in srgb, var(--slate) 40%, black)
|
|
286
|
-
--slate-900: color-mix(in srgb, var(--slate) 20%, black)
|
|
287
|
-
|
|
288
|
-
/* Dark (base #343a40)
|
|
289
|
-
--dark-100: color-mix(in srgb, var(--dark) 20%, white)
|
|
290
|
-
--dark-200: color-mix(in srgb, var(--dark) 40%, white)
|
|
291
|
-
--dark-300: color-mix(in srgb, var(--dark) 60%, white)
|
|
292
|
-
--dark-400: color-mix(in srgb, var(--dark) 80%, white)
|
|
293
|
-
--dark-500: var(--dark)
|
|
294
|
-
--dark-600: color-mix(in srgb, var(--dark) 80%, black)
|
|
295
|
-
--dark-700: color-mix(in srgb, var(--dark) 60%, black)
|
|
296
|
-
--dark-800: color-mix(in srgb, var(--dark) 40%, black)
|
|
297
|
-
--dark-900: color-mix(in srgb, var(--dark) 20%, black)
|
|
298
|
-
|
|
299
|
-
/* Light (base #f8f9fa)
|
|
300
|
-
--light-100: color-mix(in srgb, var(--light) 20%, white)
|
|
301
|
-
--light-200: color-mix(in srgb, var(--light) 40%, white)
|
|
302
|
-
--light-300: color-mix(in srgb, var(--light) 60%, white)
|
|
303
|
-
--light-400: color-mix(in srgb, var(--light) 80%, white)
|
|
304
|
-
--light-500: var(--light)
|
|
305
|
-
--light-600: color-mix(in srgb, var(--light) 80%, black)
|
|
306
|
-
--light-700: color-mix(in srgb, var(--light) 60%, black)
|
|
307
|
-
--light-800: color-mix(in srgb, var(--light) 40%, black)
|
|
308
|
-
--light-900: color-mix(in srgb, var(--light) 20%, black)
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
:root
|
|
312
|
-
:host {
|
|
313
|
-
/* Hover / active mix (light default — overridden in § 6 dark)
|
|
314
|
-
--color-mix-hover: black 10
|
|
315
|
-
--color-mix-active: black 20
|
|
316
|
-
|
|
317
|
-
/* Primary (Blue)
|
|
318
|
-
--color-primary: var(--blue-500)
|
|
319
|
-
--color-primary-hover: color-mix(in srgb, var(--color-primary), var(--color-mix-hover))
|
|
320
|
-
--color-primary-active: color-mix(in srgb, var(--color-primary), var(--color-mix-active))
|
|
321
|
-
--color-primary-disabled: color-mix(in srgb, var(--blue) 50%, var(--gray-500))
|
|
322
|
-
|
|
323
|
-
/* Success (Green)
|
|
324
|
-
--color-success: var(--green-500)
|
|
325
|
-
--color-success-hover: color-mix(in srgb, var(--color-success), var(--color-mix-hover))
|
|
326
|
-
--color-success-active: color-mix(in srgb, var(--color-success), var(--color-mix-active))
|
|
327
|
-
--color-success-disabled: color-mix(in srgb, var(--green) 50%, var(--gray-500))
|
|
328
|
-
|
|
329
|
-
/* Danger (Red)
|
|
330
|
-
--color-danger: var(--red-500)
|
|
331
|
-
--color-danger-hover: color-mix(in srgb, var(--color-danger), var(--color-mix-hover))
|
|
332
|
-
--color-danger-active: color-mix(in srgb, var(--color-danger), var(--color-mix-active))
|
|
333
|
-
--color-danger-disabled: color-mix(in srgb, var(--red) 50%, var(--gray-500))
|
|
334
|
-
|
|
335
|
-
/* Warning (Yellow)
|
|
336
|
-
--color-warning: var(--yellow-500)
|
|
337
|
-
--color-warning-hover: color-mix(in srgb, var(--color-warning), var(--color-mix-hover))
|
|
338
|
-
--color-warning-active: color-mix(in srgb, var(--color-warning), var(--color-mix-active))
|
|
339
|
-
--color-warning-disabled: color-mix(in srgb, var(--yellow) 50%, var(--gray-500))
|
|
340
|
-
|
|
341
|
-
/* Info (Cyan)
|
|
342
|
-
--color-info: var(--cyan-500)
|
|
343
|
-
--color-info-hover: color-mix(in srgb, var(--color-info), var(--color-mix-hover))
|
|
344
|
-
--color-info-active: color-mix(in srgb, var(--color-info), var(--color-mix-active))
|
|
345
|
-
--color-info-disabled: color-mix(in srgb, var(--cyan) 50%, var(--gray-500))
|
|
346
|
-
|
|
347
|
-
/* Secondary (Slate) — base differs per theme, overridden in § 6 dark
|
|
348
|
-
--color-secondary: var(--slate-500)
|
|
349
|
-
--color-secondary-hover: color-mix(in srgb, var(--color-secondary), var(--color-mix-hover))
|
|
350
|
-
--color-secondary-active: color-mix(in srgb, var(--color-secondary), var(--color-mix-active))
|
|
351
|
-
--color-secondary-text: var(--slate-700)
|
|
352
|
-
|
|
353
|
-
/* On-solid — text color on filled (saturated) backgrounds
|
|
354
|
-
Fixed white: blue/green/red/cyan buttons always have white text
|
|
355
|
-
Does NOT follow --color-text-main.
|
|
356
|
-
--color-on-solid: white
|
|
357
|
-
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
.theme-light
|
|
361
|
-
:root[theme="light"]
|
|
362
|
-
:host([theme="light"])
|
|
363
|
-
:host-context([theme="light"])
|
|
364
|
-
:where(:root)
|
|
365
|
-
:host {
|
|
366
|
-
color-scheme: light
|
|
367
|
-
|
|
368
|
-
/* Gray UI aliases — lighter palette steps for elements on white background
|
|
369
|
-
--color-gray-dark: var(--gray-400)
|
|
370
|
-
--color-gray: var(--gray-300)
|
|
371
|
-
--color-gray-light: var(--gray-200)
|
|
372
|
-
--color-gray-lighter: var(--gray-100)
|
|
373
|
-
--color-gray-lightest: color-mix(in srgb, var(--gray) 10%, white)
|
|
374
|
-
|
|
375
|
-
/* Text
|
|
376
|
-
--color-text-main: var(--dark-700)
|
|
377
|
-
--color-text-muted: var(--gray-600)
|
|
378
|
-
--color-text-disabled: var(--gray-300)
|
|
379
|
-
--color-text-link: var(--blue-500)
|
|
380
|
-
--color-text-link-hover: var(--blue-700)
|
|
381
|
-
|
|
382
|
-
/* Surfaces
|
|
383
|
-
--surface-sunken: var(--light-500)
|
|
384
|
-
--surface-base: white
|
|
385
|
-
--surface-raised: var(--light-500)
|
|
386
|
-
--surface-overlay: white
|
|
387
|
-
--color-overlay: rgba(0, 0, 0, 0.4)
|
|
388
|
-
|
|
389
|
-
/* Borders
|
|
390
|
-
--border-subtle: rgba(0, 0, 0, 0.08)
|
|
391
|
-
--border-default: rgba(0, 0, 0, 0.15)
|
|
392
|
-
--border-hover: rgba(0, 0, 0, 0.25)
|
|
393
|
-
--border-focus: var(--color-primary)
|
|
394
|
-
--border-disabled: rgba(0, 0, 0, 0.06)
|
|
395
|
-
|
|
396
|
-
/* Focus ring
|
|
397
|
-
--focus-ring: rgb(from var(--blue) r g b / 0.30)
|
|
398
|
-
--focus-ring-sm: rgb(from var(--blue) r g b / 0.15)
|
|
399
|
-
|
|
400
|
-
/* Subtle intent tokens — light context
|
|
401
|
-
--color-primary-bg-subtle: rgb(from var(--blue) r g b / 0.08)
|
|
402
|
-
--color-primary-border-subtle: rgb(from var(--blue) r g b / 0.40)
|
|
403
|
-
--color-primary-text-emphasis: var(--blue-700)
|
|
404
|
-
|
|
405
|
-
--color-success-bg-subtle: rgb(from var(--green) r g b / 0.08)
|
|
406
|
-
--color-success-border-subtle: rgb(from var(--green) r g b / 0.40)
|
|
407
|
-
--color-success-text-emphasis: var(--green-700)
|
|
408
|
-
|
|
409
|
-
--color-danger-bg-subtle: rgb(from var(--red) r g b / 0.08)
|
|
410
|
-
--color-danger-border-subtle: rgb(from var(--red) r g b / 0.40)
|
|
411
|
-
--color-danger-text-emphasis: var(--red-700)
|
|
412
|
-
|
|
413
|
-
--color-warning-bg-subtle: rgb(from var(--yellow) r g b / 0.08)
|
|
414
|
-
--color-warning-border-subtle: rgb(from var(--yellow) r g b / 0.40)
|
|
415
|
-
--color-warning-text-emphasis: var(--yellow-700)
|
|
416
|
-
|
|
417
|
-
--color-info-bg-subtle: rgb(from var(--cyan) r g b / 0.08)
|
|
418
|
-
--color-info-border-subtle: rgb(from var(--cyan) r g b / 0.40)
|
|
419
|
-
--color-info-text-emphasis: var(--cyan-700)
|
|
420
|
-
|
|
421
|
-
--color-secondary-bg-subtle: rgb(from var(--slate) r g b / 0.08)
|
|
422
|
-
--color-secondary-border-subtle: rgb(from var(--slate) r g b / 0.40)
|
|
423
|
-
--color-secondary-text-emphasis: var(--slate-700)
|
|
424
|
-
|
|
425
|
-
--color-light-bg-subtle: var(--gray-100); /* opaque on white: ~#e2e2e2
|
|
426
|
-
--color-light-border-subtle: var(--gray-200); /* opaque on white: ~#c4c4c4
|
|
427
|
-
|
|
428
|
-
--color-dark-bg-subtle: var(--dark-100); /* opaque on white: ~#d6d8d9
|
|
429
|
-
--color-dark-border-subtle: var(--dark-300); /* opaque on white: ~#85898c
|
|
430
|
-
|
|
431
|
-
/* Component tokens — light defaults
|
|
432
|
-
--action-btn-bg: var(--gray-200)
|
|
433
|
-
--action-btn-bg-hover: var(--color-primary)
|
|
434
|
-
--action-btn-color: var(--gray-600)
|
|
435
|
-
--action-btn-color-hover: white
|
|
436
|
-
|
|
437
|
-
--clear-btn-bg-hover: var(--color-danger)
|
|
438
|
-
--clear-btn-color-hover: white
|
|
439
|
-
|
|
440
|
-
--reset-btn-border-radius: 2px
|
|
441
|
-
--reset-btn-bg: var(--action-btn-bg)
|
|
442
|
-
--reset-btn-bg-hover: var(--action-btn-bg-hover)
|
|
443
|
-
--reset-btn-color: var(--action-btn-color)
|
|
444
|
-
--reset-btn-color-hover: var(--action-btn-color-hover)
|
|
445
|
-
--reset-btn-transition: all 0.12s
|
|
446
|
-
|
|
447
|
-
--clear-btn-border-radius: 2px
|
|
448
|
-
--clear-btn-bg: var(--action-btn-bg)
|
|
449
|
-
--clear-btn-color: var(--action-btn-color)
|
|
450
|
-
--clear-btn-transition: all 0.12s
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
:root
|
|
454
|
-
:host {
|
|
455
|
-
--size-scale: 1
|
|
456
|
-
--size-base: calc(1rem * var(--size-scale)); /* 16px
|
|
457
|
-
--size-xl: round(calc(var(--size-l) * 1.125), 1px); /* 23px
|
|
458
|
-
--size-l: round(calc(var(--size-m) * 1.125 * 1.125), 1px); /* 20px
|
|
459
|
-
--size-m: var(--size-base); /* 16px
|
|
460
|
-
--size-s: round(calc(var(--size-m) / 1.125), 1px); /* 14px
|
|
461
|
-
--size-xs: round(calc(var(--size-s) / 1.125), 1px); /* 12px
|
|
462
|
-
--size-2xs: round(calc(var(--size-xs) / 1.125), 1px); /* 11px
|
|
463
|
-
--size-3xs: round(calc(var(--size-2xs) / 1.125), 1px); /* 10px
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
/* Layout tokens — defined on :root so all light DOM elements can use them
|
|
467
|
-
:root
|
|
468
|
-
:host {
|
|
469
|
-
--container-max-width: 1280px
|
|
470
|
-
--container-padding-x: 1.5rem
|
|
471
|
-
}
|
|
472
|
-
|
|
473
|
-
.theme-dark
|
|
474
|
-
:root[theme="dark"]
|
|
475
|
-
:host([theme="dark"])
|
|
476
|
-
:host-context([theme="dark"]) {
|
|
477
|
-
color-scheme: dark
|
|
478
|
-
|
|
479
|
-
/* Hover / active — slightly gentler on dark backgrounds
|
|
480
|
-
--color-mix-hover: black 8
|
|
481
|
-
--color-mix-active: black 16
|
|
482
|
-
|
|
483
|
-
/* Gray UI aliases — darker palette steps for elements on dark background
|
|
484
|
-
--color-gray-dark: var(--gray-800)
|
|
485
|
-
--color-gray: var(--gray-700)
|
|
486
|
-
--color-gray-light: var(--gray-600)
|
|
487
|
-
--color-gray-lighter: var(--gray-500)
|
|
488
|
-
--color-gray-lightest: var(--gray-400)
|
|
489
|
-
|
|
490
|
-
/* Secondary — deeper base on dark background
|
|
491
|
-
--color-secondary: var(--slate-700)
|
|
492
|
-
--color-secondary-text: var(--slate-300)
|
|
493
|
-
|
|
494
|
-
/* Text
|
|
495
|
-
--color-text-main: white
|
|
496
|
-
--color-text-muted: var(--gray-200)
|
|
497
|
-
--color-text-disabled: var(--gray-500)
|
|
498
|
-
--color-text-link: var(--blue-300)
|
|
499
|
-
--color-text-link-hover: var(--blue-200)
|
|
500
|
-
|
|
501
|
-
/* Surfaces
|
|
502
|
-
--surface-sunken: var(--gray-900)
|
|
503
|
-
--surface-base: color-mix(in srgb, var(--gray) 27%, black)
|
|
504
|
-
--surface-raised: color-mix(in srgb, var(--gray) 34%, black)
|
|
505
|
-
--surface-overlay: color-mix(in srgb, var(--gray) 38%, black)
|
|
506
|
-
--color-overlay: rgba(0, 0, 0, 0.6)
|
|
507
|
-
|
|
508
|
-
/* Borders
|
|
509
|
-
--border-subtle: rgba(255, 255, 255, 0.08)
|
|
510
|
-
--border-default: rgba(255, 255, 255, 0.12)
|
|
511
|
-
--border-hover: rgba(255, 255, 255, 0.20)
|
|
512
|
-
--border-focus: var(--color-primary)
|
|
513
|
-
--border-disabled: rgba(255, 255, 255, 0.06)
|
|
514
|
-
|
|
515
|
-
/* Focus ring
|
|
516
|
-
--focus-ring: rgb(from var(--blue) r g b / 0.25)
|
|
517
|
-
--focus-ring-sm: rgb(from var(--blue) r g b / 0.10)
|
|
518
|
-
|
|
519
|
-
/* Subtle intent tokens — dark context (more alpha, lighter text-emphasis)
|
|
520
|
-
--color-primary-bg-subtle: rgb(from var(--blue) r g b / 0.10)
|
|
521
|
-
--color-primary-border-subtle: rgb(from var(--blue) r g b / 0.30)
|
|
522
|
-
--color-primary-text-emphasis: var(--blue-300)
|
|
523
|
-
|
|
524
|
-
--color-success-bg-subtle: rgb(from var(--green) r g b / 0.10)
|
|
525
|
-
--color-success-border-subtle: rgb(from var(--green) r g b / 0.30)
|
|
526
|
-
--color-success-text-emphasis: var(--green-300)
|
|
527
|
-
|
|
528
|
-
--color-danger-bg-subtle: rgb(from var(--red) r g b / 0.10)
|
|
529
|
-
--color-danger-border-subtle: rgb(from var(--red) r g b / 0.30)
|
|
530
|
-
--color-danger-text-emphasis: var(--red-300)
|
|
531
|
-
|
|
532
|
-
--color-warning-bg-subtle: rgb(from var(--yellow) r g b / 0.10)
|
|
533
|
-
--color-warning-border-subtle: rgb(from var(--yellow) r g b / 0.30)
|
|
534
|
-
--color-warning-text-emphasis: var(--yellow-300)
|
|
535
|
-
|
|
536
|
-
--color-info-bg-subtle: rgb(from var(--cyan) r g b / 0.10)
|
|
537
|
-
--color-info-border-subtle: rgb(from var(--cyan) r g b / 0.30)
|
|
538
|
-
--color-info-text-emphasis: var(--cyan-300)
|
|
539
|
-
|
|
540
|
-
--color-secondary-bg-subtle: rgb(from var(--slate) r g b / 0.10)
|
|
541
|
-
--color-secondary-border-subtle: rgb(from var(--slate) r g b / 0.30)
|
|
542
|
-
--color-secondary-text-emphasis: var(--slate-300)
|
|
543
|
-
|
|
544
|
-
--color-light-bg-subtle: rgb(from var(--light) r g b / 0.20)
|
|
545
|
-
--color-light-border-subtle: rgb(from var(--light) r g b / 0.25)
|
|
546
|
-
|
|
547
|
-
--color-dark-bg-subtle: rgb(from var(--dark) r g b / 0.30)
|
|
548
|
-
--color-dark-border-subtle: rgb(from var(--dark) r g b / 0.50)
|
|
549
|
-
|
|
550
|
-
/* Component tokens — dark overrides
|
|
551
|
-
--action-btn-bg: var(--color-gray)
|
|
552
|
-
--action-btn-bg-hover: color-mix(in srgb, var(--blue) 25%, var(--gray-800))
|
|
553
|
-
--action-btn-color: var(--gray-400)
|
|
554
|
-
--action-btn-color-hover: var(--cyan-300)
|
|
555
|
-
--clear-btn-bg-hover: color-mix(in srgb, var(--red) 25%, var(--gray-800))
|
|
556
|
-
--clear-btn-color-hover: var(--red-300)
|
|
557
|
-
}
|
|
190
|
+
const styleVariables = `:root,
|
|
191
|
+
:host {
|
|
192
|
+
--ae-font-sans-serif: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue",
|
|
193
|
+
"Noto Sans", "Liberation Sans", Arial, sans-serif,
|
|
194
|
+
"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
195
|
+
--ae-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas,
|
|
196
|
+
"Liberation Mono", "Courier New", monospace;
|
|
197
|
+
font-family: var(--ae-font-sans-serif);
|
|
198
|
+
--blue: #0e639c;
|
|
199
|
+
--green: #28a745;
|
|
200
|
+
--red: #dc3545;
|
|
201
|
+
--yellow: #ffc107;
|
|
202
|
+
--cyan: #17a2b8;
|
|
203
|
+
--gray: #6e6e6e;
|
|
204
|
+
--slate: #64748b;
|
|
205
|
+
--dark: #343a40;
|
|
206
|
+
--light: #f8f9fa;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
:root,
|
|
210
|
+
:host {
|
|
211
|
+
/* Blue */
|
|
212
|
+
--blue-100: color-mix(in srgb, var(--blue) 20%, white);
|
|
213
|
+
--blue-200: color-mix(in srgb, var(--blue) 40%, white);
|
|
214
|
+
--blue-300: color-mix(in srgb, var(--blue) 60%, white);
|
|
215
|
+
--blue-400: color-mix(in srgb, var(--blue) 80%, white);
|
|
216
|
+
--blue-500: var(--blue);
|
|
217
|
+
--blue-600: color-mix(in srgb, var(--blue) 80%, black);
|
|
218
|
+
--blue-700: color-mix(in srgb, var(--blue) 60%, black);
|
|
219
|
+
--blue-800: color-mix(in srgb, var(--blue) 40%, black);
|
|
220
|
+
--blue-900: color-mix(in srgb, var(--blue) 20%, black);
|
|
221
|
+
|
|
222
|
+
/* Green */
|
|
223
|
+
--green-100: color-mix(in srgb, var(--green) 20%, white);
|
|
224
|
+
--green-200: color-mix(in srgb, var(--green) 40%, white);
|
|
225
|
+
--green-300: color-mix(in srgb, var(--green) 60%, white);
|
|
226
|
+
--green-400: color-mix(in srgb, var(--green) 80%, white);
|
|
227
|
+
--green-500: var(--green);
|
|
228
|
+
--green-600: color-mix(in srgb, var(--green) 80%, black);
|
|
229
|
+
--green-700: color-mix(in srgb, var(--green) 60%, black);
|
|
230
|
+
--green-800: color-mix(in srgb, var(--green) 40%, black);
|
|
231
|
+
--green-900: color-mix(in srgb, var(--green) 20%, black);
|
|
232
|
+
|
|
233
|
+
/* Red */
|
|
234
|
+
--red-100: color-mix(in srgb, var(--red) 20%, white);
|
|
235
|
+
--red-200: color-mix(in srgb, var(--red) 40%, white);
|
|
236
|
+
--red-300: color-mix(in srgb, var(--red) 60%, white);
|
|
237
|
+
--red-400: color-mix(in srgb, var(--red) 80%, white);
|
|
238
|
+
--red-500: var(--red);
|
|
239
|
+
--red-600: color-mix(in srgb, var(--red) 80%, black);
|
|
240
|
+
--red-700: color-mix(in srgb, var(--red) 60%, black);
|
|
241
|
+
--red-800: color-mix(in srgb, var(--red) 40%, black);
|
|
242
|
+
--red-900: color-mix(in srgb, var(--red) 20%, black);
|
|
243
|
+
|
|
244
|
+
/* Yellow */
|
|
245
|
+
--yellow-100: color-mix(in srgb, var(--yellow) 20%, white);
|
|
246
|
+
--yellow-200: color-mix(in srgb, var(--yellow) 40%, white);
|
|
247
|
+
--yellow-300: color-mix(in srgb, var(--yellow) 60%, white);
|
|
248
|
+
--yellow-400: color-mix(in srgb, var(--yellow) 80%, white);
|
|
249
|
+
--yellow-500: var(--yellow);
|
|
250
|
+
--yellow-600: color-mix(in srgb, var(--yellow) 80%, black);
|
|
251
|
+
--yellow-700: color-mix(in srgb, var(--yellow) 60%, black);
|
|
252
|
+
--yellow-800: color-mix(in srgb, var(--yellow) 40%, black);
|
|
253
|
+
--yellow-900: color-mix(in srgb, var(--yellow) 20%, black);
|
|
254
|
+
|
|
255
|
+
/* Cyan */
|
|
256
|
+
--cyan-100: color-mix(in srgb, var(--cyan) 20%, white);
|
|
257
|
+
--cyan-200: color-mix(in srgb, var(--cyan) 40%, white);
|
|
258
|
+
--cyan-300: color-mix(in srgb, var(--cyan) 60%, white);
|
|
259
|
+
--cyan-400: color-mix(in srgb, var(--cyan) 80%, white);
|
|
260
|
+
--cyan-500: var(--cyan);
|
|
261
|
+
--cyan-600: color-mix(in srgb, var(--cyan) 80%, black);
|
|
262
|
+
--cyan-700: color-mix(in srgb, var(--cyan) 60%, black);
|
|
263
|
+
--cyan-800: color-mix(in srgb, var(--cyan) 40%, black);
|
|
264
|
+
--cyan-900: color-mix(in srgb, var(--cyan) 20%, black);
|
|
265
|
+
|
|
266
|
+
/* Gray (neutral — base #6e6e6e) */
|
|
267
|
+
--gray-100: color-mix(in srgb, var(--gray) 20%, white);
|
|
268
|
+
--gray-200: color-mix(in srgb, var(--gray) 40%, white);
|
|
269
|
+
--gray-300: color-mix(in srgb, var(--gray) 60%, white);
|
|
270
|
+
--gray-400: color-mix(in srgb, var(--gray) 80%, white);
|
|
271
|
+
--gray-500: var(--gray);
|
|
272
|
+
--gray-600: color-mix(in srgb, var(--gray) 80%, black);
|
|
273
|
+
--gray-700: color-mix(in srgb, var(--gray) 60%, black);
|
|
274
|
+
--gray-800: color-mix(in srgb, var(--gray) 40%, black);
|
|
275
|
+
--gray-900: color-mix(in srgb, var(--gray) 20%, black);
|
|
276
|
+
|
|
277
|
+
/* Slate (blue-gray — base #64748b, used for 'secondary') */
|
|
278
|
+
--slate-100: color-mix(in srgb, var(--slate) 20%, white);
|
|
279
|
+
--slate-200: color-mix(in srgb, var(--slate) 40%, white);
|
|
280
|
+
--slate-300: color-mix(in srgb, var(--slate) 60%, white);
|
|
281
|
+
--slate-400: color-mix(in srgb, var(--slate) 80%, white);
|
|
282
|
+
--slate-500: var(--slate);
|
|
283
|
+
--slate-600: color-mix(in srgb, var(--slate) 80%, black);
|
|
284
|
+
--slate-700: color-mix(in srgb, var(--slate) 60%, black);
|
|
285
|
+
--slate-800: color-mix(in srgb, var(--slate) 40%, black);
|
|
286
|
+
--slate-900: color-mix(in srgb, var(--slate) 20%, black);
|
|
287
|
+
|
|
288
|
+
/* Dark (base #343a40) */
|
|
289
|
+
--dark-100: color-mix(in srgb, var(--dark) 20%, white);
|
|
290
|
+
--dark-200: color-mix(in srgb, var(--dark) 40%, white);
|
|
291
|
+
--dark-300: color-mix(in srgb, var(--dark) 60%, white);
|
|
292
|
+
--dark-400: color-mix(in srgb, var(--dark) 80%, white);
|
|
293
|
+
--dark-500: var(--dark);
|
|
294
|
+
--dark-600: color-mix(in srgb, var(--dark) 80%, black);
|
|
295
|
+
--dark-700: color-mix(in srgb, var(--dark) 60%, black);
|
|
296
|
+
--dark-800: color-mix(in srgb, var(--dark) 40%, black);
|
|
297
|
+
--dark-900: color-mix(in srgb, var(--dark) 20%, black);
|
|
298
|
+
|
|
299
|
+
/* Light (base #f8f9fa) */
|
|
300
|
+
--light-100: color-mix(in srgb, var(--light) 20%, white);
|
|
301
|
+
--light-200: color-mix(in srgb, var(--light) 40%, white);
|
|
302
|
+
--light-300: color-mix(in srgb, var(--light) 60%, white);
|
|
303
|
+
--light-400: color-mix(in srgb, var(--light) 80%, white);
|
|
304
|
+
--light-500: var(--light);
|
|
305
|
+
--light-600: color-mix(in srgb, var(--light) 80%, black);
|
|
306
|
+
--light-700: color-mix(in srgb, var(--light) 60%, black);
|
|
307
|
+
--light-800: color-mix(in srgb, var(--light) 40%, black);
|
|
308
|
+
--light-900: color-mix(in srgb, var(--light) 20%, black);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
:root,
|
|
312
|
+
:host {
|
|
313
|
+
/* Hover / active mix (light default — overridden in § 6 dark) */
|
|
314
|
+
--color-mix-hover: black 10%;
|
|
315
|
+
--color-mix-active: black 20%;
|
|
316
|
+
|
|
317
|
+
/* Primary (Blue) */
|
|
318
|
+
--color-primary: var(--blue-500);
|
|
319
|
+
--color-primary-hover: color-mix(in srgb, var(--color-primary), var(--color-mix-hover));
|
|
320
|
+
--color-primary-active: color-mix(in srgb, var(--color-primary), var(--color-mix-active));
|
|
321
|
+
--color-primary-disabled: color-mix(in srgb, var(--blue) 50%, var(--gray-500));
|
|
322
|
+
|
|
323
|
+
/* Success (Green) */
|
|
324
|
+
--color-success: var(--green-500);
|
|
325
|
+
--color-success-hover: color-mix(in srgb, var(--color-success), var(--color-mix-hover));
|
|
326
|
+
--color-success-active: color-mix(in srgb, var(--color-success), var(--color-mix-active));
|
|
327
|
+
--color-success-disabled: color-mix(in srgb, var(--green) 50%, var(--gray-500));
|
|
328
|
+
|
|
329
|
+
/* Danger (Red) */
|
|
330
|
+
--color-danger: var(--red-500);
|
|
331
|
+
--color-danger-hover: color-mix(in srgb, var(--color-danger), var(--color-mix-hover));
|
|
332
|
+
--color-danger-active: color-mix(in srgb, var(--color-danger), var(--color-mix-active));
|
|
333
|
+
--color-danger-disabled: color-mix(in srgb, var(--red) 50%, var(--gray-500));
|
|
334
|
+
|
|
335
|
+
/* Warning (Yellow) */
|
|
336
|
+
--color-warning: var(--yellow-500);
|
|
337
|
+
--color-warning-hover: color-mix(in srgb, var(--color-warning), var(--color-mix-hover));
|
|
338
|
+
--color-warning-active: color-mix(in srgb, var(--color-warning), var(--color-mix-active));
|
|
339
|
+
--color-warning-disabled: color-mix(in srgb, var(--yellow) 50%, var(--gray-500));
|
|
340
|
+
|
|
341
|
+
/* Info (Cyan) */
|
|
342
|
+
--color-info: var(--cyan-500);
|
|
343
|
+
--color-info-hover: color-mix(in srgb, var(--color-info), var(--color-mix-hover));
|
|
344
|
+
--color-info-active: color-mix(in srgb, var(--color-info), var(--color-mix-active));
|
|
345
|
+
--color-info-disabled: color-mix(in srgb, var(--cyan) 50%, var(--gray-500));
|
|
346
|
+
|
|
347
|
+
/* Secondary (Slate) — base differs per theme, overridden in § 6 dark */
|
|
348
|
+
--color-secondary: var(--slate-500);
|
|
349
|
+
--color-secondary-hover: color-mix(in srgb, var(--color-secondary), var(--color-mix-hover));
|
|
350
|
+
--color-secondary-active: color-mix(in srgb, var(--color-secondary), var(--color-mix-active));
|
|
351
|
+
--color-secondary-text: var(--slate-700);
|
|
352
|
+
|
|
353
|
+
/* On-solid — text color on filled (saturated) backgrounds.
|
|
354
|
+
Fixed white: blue/green/red/cyan buttons always have white text.
|
|
355
|
+
Does NOT follow --color-text-main. */
|
|
356
|
+
--color-on-solid: white;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
.theme-light,
|
|
361
|
+
:root[theme="light"],
|
|
362
|
+
:host([theme="light"]),
|
|
363
|
+
:host-context([theme="light"]),
|
|
364
|
+
:where(:root),
|
|
365
|
+
:host {
|
|
366
|
+
color-scheme: light;
|
|
367
|
+
|
|
368
|
+
/* Gray UI aliases — lighter palette steps for elements on white background */
|
|
369
|
+
--color-gray-dark: var(--gray-400);
|
|
370
|
+
--color-gray: var(--gray-300);
|
|
371
|
+
--color-gray-light: var(--gray-200);
|
|
372
|
+
--color-gray-lighter: var(--gray-100);
|
|
373
|
+
--color-gray-lightest: color-mix(in srgb, var(--gray) 10%, white);
|
|
374
|
+
|
|
375
|
+
/* Text */
|
|
376
|
+
--color-text-main: var(--dark-700);
|
|
377
|
+
--color-text-muted: var(--gray-600);
|
|
378
|
+
--color-text-disabled: var(--gray-300);
|
|
379
|
+
--color-text-link: var(--blue-500);
|
|
380
|
+
--color-text-link-hover: var(--blue-700);
|
|
381
|
+
|
|
382
|
+
/* Surfaces */
|
|
383
|
+
--surface-sunken: var(--light-500);
|
|
384
|
+
--surface-base: white;
|
|
385
|
+
--surface-raised: var(--light-500);
|
|
386
|
+
--surface-overlay: white;
|
|
387
|
+
--color-overlay: rgba(0, 0, 0, 0.4);
|
|
388
|
+
|
|
389
|
+
/* Borders */
|
|
390
|
+
--border-subtle: rgba(0, 0, 0, 0.08);
|
|
391
|
+
--border-default: rgba(0, 0, 0, 0.15);
|
|
392
|
+
--border-hover: rgba(0, 0, 0, 0.25);
|
|
393
|
+
--border-focus: var(--color-primary);
|
|
394
|
+
--border-disabled: rgba(0, 0, 0, 0.06);
|
|
395
|
+
|
|
396
|
+
/* Focus ring */
|
|
397
|
+
--focus-ring: rgb(from var(--blue) r g b / 0.30);
|
|
398
|
+
--focus-ring-sm: rgb(from var(--blue) r g b / 0.15);
|
|
399
|
+
|
|
400
|
+
/* Subtle intent tokens — light context */
|
|
401
|
+
--color-primary-bg-subtle: rgb(from var(--blue) r g b / 0.08);
|
|
402
|
+
--color-primary-border-subtle: rgb(from var(--blue) r g b / 0.40);
|
|
403
|
+
--color-primary-text-emphasis: var(--blue-700);
|
|
404
|
+
|
|
405
|
+
--color-success-bg-subtle: rgb(from var(--green) r g b / 0.08);
|
|
406
|
+
--color-success-border-subtle: rgb(from var(--green) r g b / 0.40);
|
|
407
|
+
--color-success-text-emphasis: var(--green-700);
|
|
408
|
+
|
|
409
|
+
--color-danger-bg-subtle: rgb(from var(--red) r g b / 0.08);
|
|
410
|
+
--color-danger-border-subtle: rgb(from var(--red) r g b / 0.40);
|
|
411
|
+
--color-danger-text-emphasis: var(--red-700);
|
|
412
|
+
|
|
413
|
+
--color-warning-bg-subtle: rgb(from var(--yellow) r g b / 0.08);
|
|
414
|
+
--color-warning-border-subtle: rgb(from var(--yellow) r g b / 0.40);
|
|
415
|
+
--color-warning-text-emphasis: var(--yellow-700);
|
|
416
|
+
|
|
417
|
+
--color-info-bg-subtle: rgb(from var(--cyan) r g b / 0.08);
|
|
418
|
+
--color-info-border-subtle: rgb(from var(--cyan) r g b / 0.40);
|
|
419
|
+
--color-info-text-emphasis: var(--cyan-700);
|
|
420
|
+
|
|
421
|
+
--color-secondary-bg-subtle: rgb(from var(--slate) r g b / 0.08);
|
|
422
|
+
--color-secondary-border-subtle: rgb(from var(--slate) r g b / 0.40);
|
|
423
|
+
--color-secondary-text-emphasis: var(--slate-700);
|
|
424
|
+
|
|
425
|
+
--color-light-bg-subtle: var(--gray-100); /* opaque on white: ~#e2e2e2 */
|
|
426
|
+
--color-light-border-subtle: var(--gray-200); /* opaque on white: ~#c4c4c4 */
|
|
427
|
+
|
|
428
|
+
--color-dark-bg-subtle: var(--dark-100); /* opaque on white: ~#d6d8d9 */
|
|
429
|
+
--color-dark-border-subtle: var(--dark-300); /* opaque on white: ~#85898c */
|
|
430
|
+
|
|
431
|
+
/* Component tokens — light defaults */
|
|
432
|
+
--action-btn-bg: var(--gray-200);
|
|
433
|
+
--action-btn-bg-hover: var(--color-primary);
|
|
434
|
+
--action-btn-color: var(--gray-600);
|
|
435
|
+
--action-btn-color-hover: white;
|
|
436
|
+
|
|
437
|
+
--clear-btn-bg-hover: var(--color-danger);
|
|
438
|
+
--clear-btn-color-hover: white;
|
|
439
|
+
|
|
440
|
+
--reset-btn-border-radius: 2px;
|
|
441
|
+
--reset-btn-bg: var(--action-btn-bg);
|
|
442
|
+
--reset-btn-bg-hover: var(--action-btn-bg-hover);
|
|
443
|
+
--reset-btn-color: var(--action-btn-color);
|
|
444
|
+
--reset-btn-color-hover: var(--action-btn-color-hover);
|
|
445
|
+
--reset-btn-transition: all 0.12s;
|
|
446
|
+
|
|
447
|
+
--clear-btn-border-radius: 2px;
|
|
448
|
+
--clear-btn-bg: var(--action-btn-bg);
|
|
449
|
+
--clear-btn-color: var(--action-btn-color);
|
|
450
|
+
--clear-btn-transition: all 0.12s;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
:root,
|
|
454
|
+
:host {
|
|
455
|
+
--size-scale: 1;
|
|
456
|
+
--size-base: calc(1rem * var(--size-scale)); /* 16px */
|
|
457
|
+
--size-xl: round(calc(var(--size-l) * 1.125), 1px); /* 23px */
|
|
458
|
+
--size-l: round(calc(var(--size-m) * 1.125 * 1.125), 1px); /* 20px */
|
|
459
|
+
--size-m: var(--size-base); /* 16px */
|
|
460
|
+
--size-s: round(calc(var(--size-m) / 1.125), 1px); /* 14px */
|
|
461
|
+
--size-xs: round(calc(var(--size-s) / 1.125), 1px); /* 12px */
|
|
462
|
+
--size-2xs: round(calc(var(--size-xs) / 1.125), 1px); /* 11px */
|
|
463
|
+
--size-3xs: round(calc(var(--size-2xs) / 1.125), 1px); /* 10px */
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
/* Layout tokens — defined on :root so all light DOM elements can use them */
|
|
467
|
+
:root,
|
|
468
|
+
:host {
|
|
469
|
+
--container-max-width: 1280px;
|
|
470
|
+
--container-padding-x: 1.5rem;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
.theme-dark,
|
|
474
|
+
:root[theme="dark"],
|
|
475
|
+
:host([theme="dark"]),
|
|
476
|
+
:host-context([theme="dark"]) {
|
|
477
|
+
color-scheme: dark;
|
|
478
|
+
|
|
479
|
+
/* Hover / active — slightly gentler on dark backgrounds */
|
|
480
|
+
--color-mix-hover: black 8%;
|
|
481
|
+
--color-mix-active: black 16%;
|
|
482
|
+
|
|
483
|
+
/* Gray UI aliases — darker palette steps for elements on dark background */
|
|
484
|
+
--color-gray-dark: var(--gray-800);
|
|
485
|
+
--color-gray: var(--gray-700);
|
|
486
|
+
--color-gray-light: var(--gray-600);
|
|
487
|
+
--color-gray-lighter: var(--gray-500);
|
|
488
|
+
--color-gray-lightest: var(--gray-400);
|
|
489
|
+
|
|
490
|
+
/* Secondary — deeper base on dark background */
|
|
491
|
+
--color-secondary: var(--slate-700);
|
|
492
|
+
--color-secondary-text: var(--slate-300);
|
|
493
|
+
|
|
494
|
+
/* Text */
|
|
495
|
+
--color-text-main: white;
|
|
496
|
+
--color-text-muted: var(--gray-200);
|
|
497
|
+
--color-text-disabled: var(--gray-500);
|
|
498
|
+
--color-text-link: var(--blue-300);
|
|
499
|
+
--color-text-link-hover: var(--blue-200);
|
|
500
|
+
|
|
501
|
+
/* Surfaces */
|
|
502
|
+
--surface-sunken: var(--gray-900);
|
|
503
|
+
--surface-base: color-mix(in srgb, var(--gray) 27%, black);
|
|
504
|
+
--surface-raised: color-mix(in srgb, var(--gray) 34%, black);
|
|
505
|
+
--surface-overlay: color-mix(in srgb, var(--gray) 38%, black);
|
|
506
|
+
--color-overlay: rgba(0, 0, 0, 0.6);
|
|
507
|
+
|
|
508
|
+
/* Borders */
|
|
509
|
+
--border-subtle: rgba(255, 255, 255, 0.08);
|
|
510
|
+
--border-default: rgba(255, 255, 255, 0.12);
|
|
511
|
+
--border-hover: rgba(255, 255, 255, 0.20);
|
|
512
|
+
--border-focus: var(--color-primary);
|
|
513
|
+
--border-disabled: rgba(255, 255, 255, 0.06);
|
|
514
|
+
|
|
515
|
+
/* Focus ring */
|
|
516
|
+
--focus-ring: rgb(from var(--blue) r g b / 0.25);
|
|
517
|
+
--focus-ring-sm: rgb(from var(--blue) r g b / 0.10);
|
|
518
|
+
|
|
519
|
+
/* Subtle intent tokens — dark context (more alpha, lighter text-emphasis) */
|
|
520
|
+
--color-primary-bg-subtle: rgb(from var(--blue) r g b / 0.10);
|
|
521
|
+
--color-primary-border-subtle: rgb(from var(--blue) r g b / 0.30);
|
|
522
|
+
--color-primary-text-emphasis: var(--blue-300);
|
|
523
|
+
|
|
524
|
+
--color-success-bg-subtle: rgb(from var(--green) r g b / 0.10);
|
|
525
|
+
--color-success-border-subtle: rgb(from var(--green) r g b / 0.30);
|
|
526
|
+
--color-success-text-emphasis: var(--green-300);
|
|
527
|
+
|
|
528
|
+
--color-danger-bg-subtle: rgb(from var(--red) r g b / 0.10);
|
|
529
|
+
--color-danger-border-subtle: rgb(from var(--red) r g b / 0.30);
|
|
530
|
+
--color-danger-text-emphasis: var(--red-300);
|
|
531
|
+
|
|
532
|
+
--color-warning-bg-subtle: rgb(from var(--yellow) r g b / 0.10);
|
|
533
|
+
--color-warning-border-subtle: rgb(from var(--yellow) r g b / 0.30);
|
|
534
|
+
--color-warning-text-emphasis: var(--yellow-300);
|
|
535
|
+
|
|
536
|
+
--color-info-bg-subtle: rgb(from var(--cyan) r g b / 0.10);
|
|
537
|
+
--color-info-border-subtle: rgb(from var(--cyan) r g b / 0.30);
|
|
538
|
+
--color-info-text-emphasis: var(--cyan-300);
|
|
539
|
+
|
|
540
|
+
--color-secondary-bg-subtle: rgb(from var(--slate) r g b / 0.10);
|
|
541
|
+
--color-secondary-border-subtle: rgb(from var(--slate) r g b / 0.30);
|
|
542
|
+
--color-secondary-text-emphasis: var(--slate-300);
|
|
543
|
+
|
|
544
|
+
--color-light-bg-subtle: rgb(from var(--light) r g b / 0.20);
|
|
545
|
+
--color-light-border-subtle: rgb(from var(--light) r g b / 0.25);
|
|
546
|
+
|
|
547
|
+
--color-dark-bg-subtle: rgb(from var(--dark) r g b / 0.30);
|
|
548
|
+
--color-dark-border-subtle: rgb(from var(--dark) r g b / 0.50);
|
|
549
|
+
|
|
550
|
+
/* Component tokens — dark overrides */
|
|
551
|
+
--action-btn-bg: var(--color-gray);
|
|
552
|
+
--action-btn-bg-hover: color-mix(in srgb, var(--blue) 25%, var(--gray-800));
|
|
553
|
+
--action-btn-color: var(--gray-400);
|
|
554
|
+
--action-btn-color-hover: var(--cyan-300);
|
|
555
|
+
--clear-btn-bg-hover: color-mix(in srgb, var(--red) 25%, var(--gray-800));
|
|
556
|
+
--clear-btn-color-hover: var(--red-300);
|
|
557
|
+
}
|
|
558
558
|
`;
|
|
559
|
-
const sizeCSS = ':host([size="xs"]) { font-size: var(--size-xs); }\
|
|
560
|
-
const style$a = ":host {\
|
|
559
|
+
const sizeCSS = ':host([size="xs"]) { font-size: var(--size-xs); }\n:host([size="sm"]) { font-size: var(--size-s); }\n:host([size="md"]) { font-size: var(--size-m); }\n:host([size="lg"]) { font-size: var(--size-l); }\n:host([size="xl"]) { font-size: var(--size-xl); }\n:host([size="3xs"]) { font-size: var(--size-3xs); }\n:host([size="2xs"]) { font-size: var(--size-2xs); }\n';
|
|
560
|
+
const style$a = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout variables */\n --input-field-gap: 4px;\n \n /* Input element variables */\n --input-font-size: 1em;\n --input-padding: 0.333em 0.583em;\n --input-border-width: 1px;\n --input-border-radius: 2px;\n --input-border-color: var(--border-subtle);\n --input-border-color-hover: var(--border-default);\n --input-border-color-focus: var(--border-focus);\n --input-bg: var(--surface-base);\n --input-bg-hover: var(--surface-raised);\n --input-bg-focus: var(--surface-raised);\n --input-color: var(--color-text-muted);\n --input-placeholder-color: var(--color-text-disabled);\n --input-transition: border-color 0.12s, background 0.12s;\n}\n\n.input-container {\n display: flex;\n align-items: center;\n gap: var(--input-field-gap);\n width: 100%;\n}\n\ninput {\n flex: 1;\n min-width: 0;\n font-size: var(--input-font-size);\n padding: var(--input-padding);\n border: var(--input-border-width) solid var(--input-border-color);\n border-radius: var(--input-border-radius);\n background: var(--input-bg);\n color: var(--input-color);\n transition: var(--input-transition);\n}\n\ninput::placeholder {\n color: var(--input-placeholder-color);\n}\n\ninput:focus {\n outline: none;\n border-color: var(--input-border-color-focus);\n background: var(--input-bg-focus);\n}\n\ninput:hover:not(:focus) {\n border-color: var(--input-border-color-hover);\n background: var(--input-bg-hover);\n}\n\ninput:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* Clear button styles */\n.clear-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--clear-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--clear-btn-bg);\n color: var(--clear-btn-color);\n transition: var(--clear-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n}\n\n.clear-btn:hover {\n background: var(--clear-btn-bg-hover);\n color: var(--clear-btn-color-hover);\n}\n\n/* Reset button styles */\n.reset-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--reset-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--reset-btn-bg);\n color: var(--reset-btn-color);\n transition: var(--reset-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n}\n\n.reset-btn:hover {\n background: var(--reset-btn-bg-hover);\n color: var(--reset-btn-color-hover);\n}\n\n\n\n";
|
|
561
561
|
class TextInput extends AeicoField {
|
|
562
562
|
constructor() {
|
|
563
563
|
super(...arguments);
|
|
@@ -606,9 +606,9 @@ __publicField(TextInput, "props", {
|
|
|
606
606
|
});
|
|
607
607
|
__publicField(TextInput, "styles", [styleVariables, sizeCSS, style$a]);
|
|
608
608
|
TextInput.register();
|
|
609
|
-
const style$9 = ":host {\
|
|
610
|
-
const colorCSS = ':host {\
|
|
611
|
-
const tagStyle = ':host {\
|
|
609
|
+
const style$9 = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout variables */\n --select-field-gap: 2px;\n\n /* Trigger variables */\n --select-font-size: 1em;\n --select-padding: 0.333em 0.583em;\n --select-border-width: 1px;\n --select-border-radius: 2px;\n --select-border-color: var(--border-subtle);\n --select-border-color-hover: var(--border-default);\n --select-border-color-focus: var(--border-focus);\n --select-bg: var(--surface-base);\n --select-bg-hover: var(--surface-raised);\n --select-bg-focus: var(--surface-raised);\n --select-color: var(--color-text-muted);\n --select-transition: border-color 0.12s, background 0.12s;\n\n /* Arrow */\n --select-arrow-color: var(--color-text-muted);\n --select-arrow-size: 0.75em;\n\n /* Dropdown */\n --select-dropdown-bg: var(--surface-overlay);\n --select-dropdown-border: var(--border-default);\n --select-dropdown-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n --select-dropdown-border-radius: 2px;\n --select-dropdown-max-height: 240px;\n --select-dropdown-z-index: 1000;\n}\n\n.container {\n display: flex;\n align-items: center;\n gap: var(--select-field-gap);\n width: 100%;\n position: relative;\n}\n\n.trigger {\n flex: 1;\n min-width: 0;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 0.333em;\n font-size: var(--select-font-size);\n padding: var(--select-padding);\n border: var(--select-border-width) solid var(--select-border-color);\n border-radius: var(--select-border-radius);\n background: var(--select-bg);\n color: var(--select-color);\n cursor: pointer;\n transition: var(--select-transition);\n user-select: none;\n outline: none;\n box-sizing: border-box;\n}\n\n.trigger:hover:not(.disabled) {\n border-color: var(--select-border-color-hover);\n background: var(--select-bg-hover);\n}\n\n.trigger.open {\n border-color: var(--select-border-color-focus);\n background: var(--select-bg-focus);\n}\n\n.trigger.disabled {\n opacity: 0.5;\n cursor: default;\n pointer-events: none;\n}\n\n.value {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.placeholder {\n color: var(--color-text-disabled);\n}\n\n.selected-list {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n align-items: center;\n padding: 2px 0;\n}\n\n/* Non-expandable (default): single-row, clip overflow */\n.trigger:has(.selected-list--clipped) {\n flex-wrap: nowrap;\n}\n\n.selected-list--clipped {\n flex-wrap: nowrap;\n overflow: hidden;\n}\n\n.overflow-indicator {\n flex-shrink: 0;\n align-self: center;\n padding: 1px 6px;\n background: color-mix(in srgb, var(--color-primary) 12%, transparent);\n color: var(--color-primary);\n border: 1px solid color-mix(in srgb, var(--color-primary) 30%, transparent);\n border-radius: 3px;\n font-size: 0.82em;\n line-height: 1.6;\n cursor: default;\n user-select: none;\n}\n\n.arrow {\n flex-shrink: 0;\n align-self: center;\n font-size: var(--select-arrow-size);\n color: var(--select-arrow-color);\n transition: transform 0.12s;\n pointer-events: none;\n line-height: 1;\n}\n\n.trigger.open .arrow {\n transform: rotate(180deg);\n}\n\n.dropdown {\n display: none;\n position: absolute;\n z-index: var(--select-dropdown-z-index);\n background: var(--select-dropdown-bg);\n border: 1px solid var(--select-dropdown-border);\n border-radius: var(--select-dropdown-border-radius);\n box-shadow: var(--select-dropdown-shadow);\n max-height: var(--select-dropdown-max-height);\n overflow-y: auto;\n min-width: 100%;\n box-sizing: border-box;\n}\n\n.dropdown.open {\n display: block;\n}\n\n.dropdown.position-bottom {\n top: 100%;\n left: 0;\n margin-top: 2px;\n}\n\n.dropdown.position-top {\n bottom: 100%;\n left: 0;\n margin-bottom: 2px;\n}\n\n.dropdown.position-left {\n right: 100%;\n top: 0;\n margin-right: 2px;\n}\n\n.dropdown.position-right {\n left: 100%;\n top: 0;\n margin-left: 2px;\n}\n\n.clear-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--clear-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--clear-btn-bg);\n color: var(--clear-btn-color);\n transition: var(--clear-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n}\n\n.clear-btn:hover {\n background: var(--clear-btn-bg-hover);\n color: var(--clear-btn-color-hover);\n}\n\n.reset-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--reset-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--reset-btn-bg);\n color: var(--reset-btn-color);\n transition: var(--reset-btn-transition);\n flex-shrink: 0;\n}\n\n.reset-btn:hover {\n background: var(--reset-btn-bg-hover);\n color: var(--reset-btn-color-hover);\n}\n";
|
|
610
|
+
const colorCSS = ':host {\n --color-solid: var(--color-gray);\n --color-solid-hover: color-mix(in srgb, var(--color-solid), var(--color-mix-hover));\n --color-solid-active: color-mix(in srgb, var(--color-solid), var(--color-mix-active));\n --color-on-solid: var(--color-text-main);\n --color-border: var(--color-gray);\n --color-border-hover: color-mix(in srgb, var(--color-border), var(--color-mix-hover));\n --color-accent: var(--color-text-muted);\n --color-accent-hover: var(--color-text-main);\n --color-subtle: var(--border-subtle);\n --color-subtle-hover: var(--border-default);\n --color-bg-subtle: var(--border-subtle);\n --color-text-subtle: var(--color-text-muted);\n --color-border-subtle: var(--border-default);\n}\n\n:host([color="primary"]) {\n --color-solid: var(--color-primary);\n --color-on-solid: white;\n --color-border: var(--color-primary);\n --color-accent: var(--color-text-link);\n --color-accent-hover: var(--color-text-link-hover);\n --color-subtle: var(--color-primary-bg-subtle);\n --color-subtle-hover: rgb(from var(--blue) r g b / 0.15);\n --color-bg-subtle: var(--color-primary-bg-subtle);\n --color-text-subtle: var(--color-primary-text-emphasis);\n --color-border-subtle: var(--color-primary-border-subtle);\n}\n\n:host([color="secondary"]) {\n --color-solid: var(--color-secondary);\n --color-on-solid: white;\n --color-border: var(--color-secondary-hover);\n --color-accent: var(--color-secondary-text-emphasis);\n --color-accent-hover: var(--color-text-main);\n --color-subtle: rgb(from var(--slate) r g b / 0.06);\n --color-subtle-hover: rgb(from var(--slate) r g b / 0.12);\n --color-bg-subtle: var(--color-secondary-bg-subtle);\n --color-text-subtle: var(--color-secondary-text-emphasis);\n --color-border-subtle: var(--color-secondary-border-subtle);\n}\n\n:host([color="success"]) {\n --color-solid: var(--color-success);\n --color-on-solid: white;\n --color-border: var(--color-success);\n --color-accent: var(--color-success-text-emphasis);\n --color-accent-hover: var(--color-success-hover);\n --color-subtle: var(--color-success-bg-subtle);\n --color-subtle-hover: rgb(from var(--green) r g b / 0.15);\n --color-bg-subtle: var(--color-success-bg-subtle);\n --color-text-subtle: var(--color-success-text-emphasis);\n --color-border-subtle: var(--color-success-border-subtle);\n}\n\n:host([color="danger"]) {\n --color-solid: var(--color-danger);\n --color-on-solid: white;\n --color-border: var(--color-danger);\n --color-accent: var(--color-danger-text-emphasis);\n --color-accent-hover: var(--color-danger-hover);\n --color-subtle: var(--color-danger-bg-subtle);\n --color-subtle-hover: rgb(from var(--red) r g b / 0.15);\n --color-bg-subtle: var(--color-danger-bg-subtle);\n --color-text-subtle: var(--color-danger-text-emphasis);\n --color-border-subtle: var(--color-danger-border-subtle);\n}\n\n:host([color="warning"]) {\n --color-solid: var(--color-warning);\n --color-on-solid: var(--gray-900);\n --color-border: var(--color-warning);\n --color-accent: var(--color-warning-text-emphasis);\n --color-accent-hover: var(--color-warning-hover);\n --color-subtle: var(--color-warning-bg-subtle);\n --color-subtle-hover: rgb(from var(--yellow) r g b / 0.15);\n --color-bg-subtle: var(--color-warning-bg-subtle);\n --color-text-subtle: var(--color-warning-text-emphasis);\n --color-border-subtle: var(--color-warning-border-subtle);\n}\n\n:host([color="info"]) {\n --color-solid: var(--color-info);\n --color-on-solid: white;\n --color-border: var(--color-info);\n --color-accent: var(--color-info-text-emphasis);\n --color-accent-hover: var(--color-info-hover);\n --color-subtle: var(--color-info-bg-subtle);\n --color-subtle-hover: rgb(from var(--cyan) r g b / 0.15);\n --color-bg-subtle: var(--color-info-bg-subtle);\n --color-text-subtle: var(--color-info-text-emphasis);\n --color-border-subtle: var(--color-info-border-subtle);\n}\n\n:host([color="light"]) {\n --color-solid: var(--light);\n --color-on-solid: var(--gray-900);\n --color-border: var(--border-hover);\n --color-subtle: var(--color-light-bg-subtle);\n --color-subtle-hover: var(--color-light-border-subtle);\n --color-bg-subtle: var(--color-light-bg-subtle);\n --color-text-subtle: var(--color-text-muted);\n --color-border-subtle: var(--color-light-border-subtle);\n}\n\n:host([color="dark"]) {\n --color-solid: var(--dark-500);\n --color-on-solid: white;\n --color-border: var(--dark-500);\n --color-accent: var(--color-text-main);\n --color-accent-hover: var(--color-text-main);\n --color-subtle: var(--color-dark-bg-subtle);\n --color-subtle-hover: var(--color-dark-border-subtle);\n --color-bg-subtle: var(--color-dark-bg-subtle);\n --color-text-subtle: var(--color-text-main);\n --color-border-subtle: var(--color-dark-border-subtle);\n}\n';
|
|
611
|
+
const tagStyle = ':host {\n display: inline-flex;\n align-items: center;\n --tag-solid-bg: var(--color-solid);\n --tag-solid-color: var(--color-on-solid);\n --tag-border: var(--color-border);\n --tag-accent: var(--color-accent);\n --tag-subtle-bg: var(--color-bg-subtle);\n --tag-subtle-color: var(--color-text-subtle);\n --tag-subtle-border: var(--color-border-subtle);\n}\n\n.tag {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-family: inherit;\n font-weight: 500;\n white-space: nowrap;\n vertical-align: middle;\n line-height: 1.2;\n font-size: 1em;\n padding: 0.15em 0.5em 0.15em 0.6em;\n border-radius: 4px;\n border: 1px solid var(--tag-solid-bg);\n background: var(--tag-solid-bg);\n color: var(--tag-solid-color);\n max-width: 160px;\n min-width: 0;\n}\n\n:host([variant="outlined"]) .tag {\n background: transparent;\n border-color: var(--tag-border);\n color: var(--tag-accent);\n}\n\n:host([variant="faint"]) .tag {\n background: var(--tag-subtle-bg);\n border-color: var(--tag-subtle-border);\n color: var(--tag-subtle-color);\n}\n\n:host([variant="subtle"]) .tag {\n background: var(--tag-subtle-bg);\n border-color: transparent;\n color: var(--tag-subtle-color);\n}\n\n:host([variant="text"]) .tag {\n background: transparent;\n border-color: transparent;\n color: var(--tag-accent);\n padding-left: 0;\n padding-right: 0;\n}\n\n\n:host([pill]) .tag { border-radius: 999px; }\n\n.tag-content {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n::slotted(ae-icon) { font-size: 1.1em; }\n\n.tag-dismiss {\n display: none;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n opacity: 0.55;\n line-height: 1;\n font-size: 1em;\n padding: 0 1px;\n border-radius: 2px;\n background: transparent;\n border: none;\n color: inherit;\n font-family: inherit;\n transition: opacity 0.1s, background 0.1s;\n}\n\n:host([dismissible]) .tag-dismiss {\n display: inline-flex;\n}\n\n.tag-dismiss:hover {\n opacity: 1;\n background: color-mix(in srgb, currentColor 15%, transparent);\n}\n\n/* disabled: button remains visible but is inert */\n:host([disabled]) .tag-dismiss {\n opacity: 0.4;\n pointer-events: none;\n cursor: default;\n}\n\n:host([disabled]) .tag {\n opacity: 0.6;\n}\n';
|
|
612
612
|
var __create$d = Object.create;
|
|
613
613
|
var __defProp$d = Object.defineProperty;
|
|
614
614
|
var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
|
|
@@ -1049,332 +1049,332 @@ __decoratorMetadata$c(_init$c, Select);
|
|
|
1049
1049
|
__publicField$c(Select, "tagName", "select");
|
|
1050
1050
|
__publicField$c(Select, "styles", [styleVariables, sizeCSS, style$9]);
|
|
1051
1051
|
Select.register();
|
|
1052
|
-
const style$8 = `:host {
|
|
1053
|
-
display: block
|
|
1054
|
-
flex: 1
|
|
1055
|
-
min-width: 0
|
|
1056
|
-
font-size: var(--size-base)
|
|
1057
|
-
|
|
1058
|
-
/* Default color when no [color] attribute — overridden by color.css :host([color=...])
|
|
1059
|
-
--color-solid: var(--color-primary)
|
|
1060
|
-
}
|
|
1061
|
-
|
|
1062
|
-
.range-container {
|
|
1063
|
-
display: flex
|
|
1064
|
-
align-items: center
|
|
1065
|
-
gap: 6px
|
|
1066
|
-
width: 100
|
|
1067
|
-
height: 26px
|
|
1068
|
-
}
|
|
1069
|
-
|
|
1070
|
-
input[type="range"] {
|
|
1071
|
-
flex: 1
|
|
1072
|
-
margin: 0
|
|
1073
|
-
}
|
|
1074
|
-
|
|
1075
|
-
.input-range
|
|
1076
|
-
.slider-input
|
|
1077
|
-
input[type="range"] {
|
|
1078
|
-
-webkit-appearance: none
|
|
1079
|
-
appearance: none
|
|
1080
|
-
width: 100
|
|
1081
|
-
height: 0.333em
|
|
1082
|
-
border-radius: 2px
|
|
1083
|
-
background: var(--border-subtle)
|
|
1084
|
-
outline: none
|
|
1085
|
-
cursor: pointer
|
|
1086
|
-
margin: 0
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
|
-
.input-range {
|
|
1090
|
-
margin: 10px 0
|
|
1091
|
-
}
|
|
1092
|
-
|
|
1093
|
-
.input-range::-webkit-slider-thumb
|
|
1094
|
-
.slider-input::-webkit-slider-thumb
|
|
1095
|
-
input[type="range"]::-webkit-slider-thumb {
|
|
1096
|
-
-webkit-appearance: none
|
|
1097
|
-
appearance: none
|
|
1098
|
-
width: 1.167em
|
|
1099
|
-
height: 1.167em
|
|
1100
|
-
border-radius: 50
|
|
1101
|
-
background: var(--color-solid)
|
|
1102
|
-
cursor: pointer
|
|
1103
|
-
transition: background 0.12s, transform 0.12s
|
|
1104
|
-
}
|
|
1105
|
-
|
|
1106
|
-
.input-range::-webkit-slider-thumb:hover
|
|
1107
|
-
.slider-input::-webkit-slider-thumb:hover
|
|
1108
|
-
input[type="range"]:hover::-webkit-slider-thumb {
|
|
1109
|
-
background: var(--color-solid-hover)
|
|
1110
|
-
transform: scale(1.1)
|
|
1111
|
-
}
|
|
1112
|
-
|
|
1113
|
-
.input-range::-webkit-slider-thumb:active
|
|
1114
|
-
.slider-input::-webkit-slider-thumb:active
|
|
1115
|
-
input[type="range"]:active::-webkit-slider-thumb {
|
|
1116
|
-
background: var(--color-solid-hover)
|
|
1117
|
-
transform: scale(1.2)
|
|
1118
|
-
}
|
|
1119
|
-
|
|
1120
|
-
.input-range:focus::-webkit-slider-thumb
|
|
1121
|
-
.slider-input:focus::-webkit-slider-thumb
|
|
1122
|
-
input[type="range"]:focus::-webkit-slider-thumb {
|
|
1123
|
-
background: var(--color-solid)
|
|
1124
|
-
outline: none
|
|
1125
|
-
box-shadow: none
|
|
1126
|
-
}
|
|
1127
|
-
|
|
1128
|
-
.input-range:focus:hover::-webkit-slider-thumb
|
|
1129
|
-
.slider-input:focus:hover::-webkit-slider-thumb
|
|
1130
|
-
input[type="range"]:focus:hover::-webkit-slider-thumb {
|
|
1131
|
-
background: var(--color-solid-hover)
|
|
1132
|
-
outline: none
|
|
1133
|
-
box-shadow: none
|
|
1134
|
-
}
|
|
1135
|
-
|
|
1136
|
-
.input-range:focus:active::-webkit-slider-thumb
|
|
1137
|
-
.slider-input:focus:active::-webkit-slider-thumb
|
|
1138
|
-
input[type="range"]:focus:active::-webkit-slider-thumb {
|
|
1139
|
-
background: var(--color-solid-hover)
|
|
1140
|
-
outline: none
|
|
1141
|
-
box-shadow: none
|
|
1142
|
-
}
|
|
1143
|
-
|
|
1144
|
-
.input-range::-moz-range-thumb
|
|
1145
|
-
.slider-input::-moz-range-thumb
|
|
1146
|
-
input[type="range"]::-moz-range-thumb {
|
|
1147
|
-
width: 1.167em
|
|
1148
|
-
height: 1.167em
|
|
1149
|
-
border: none
|
|
1150
|
-
border-radius: 50
|
|
1151
|
-
background: var(--color-solid)
|
|
1152
|
-
cursor: pointer
|
|
1153
|
-
transition: background 0.12s, transform 0.12s
|
|
1154
|
-
}
|
|
1155
|
-
|
|
1156
|
-
.input-range::-moz-range-thumb:hover
|
|
1157
|
-
.slider-input::-moz-range-thumb:hover
|
|
1158
|
-
input[type="range"]:hover::-moz-range-thumb {
|
|
1159
|
-
background: var(--color-solid-hover)
|
|
1160
|
-
transform: scale(1.1)
|
|
1161
|
-
}
|
|
1162
|
-
|
|
1163
|
-
.input-range::-moz-range-thumb:active
|
|
1164
|
-
.slider-input::-moz-range-thumb:active
|
|
1165
|
-
input[type="range"]:active::-moz-range-thumb {
|
|
1166
|
-
background: var(--color-solid-hover)
|
|
1167
|
-
transform: scale(1.2)
|
|
1168
|
-
}
|
|
1169
|
-
|
|
1170
|
-
.input-range:focus::-moz-range-thumb
|
|
1171
|
-
.slider-input:focus::-moz-range-thumb
|
|
1172
|
-
input[type="range"]:focus::-moz-range-thumb {
|
|
1173
|
-
background: var(--color-solid)
|
|
1174
|
-
outline: none
|
|
1175
|
-
box-shadow: none
|
|
1176
|
-
}
|
|
1177
|
-
|
|
1178
|
-
.input-range:focus:hover::-moz-range-thumb
|
|
1179
|
-
.slider-input:focus:hover::-moz-range-thumb
|
|
1180
|
-
input[type="range"]:focus:hover::-moz-range-thumb {
|
|
1181
|
-
background: var(--color-solid-hover)
|
|
1182
|
-
outline: none
|
|
1183
|
-
box-shadow: none
|
|
1184
|
-
}
|
|
1185
|
-
|
|
1186
|
-
.input-range:focus:active::-moz-range-thumb
|
|
1187
|
-
.slider-input:focus:active::-moz-range-thumb
|
|
1188
|
-
input[type="range"]:focus:active::-moz-range-thumb {
|
|
1189
|
-
background: var(--color-solid-hover)
|
|
1190
|
-
outline: none
|
|
1191
|
-
box-shadow: none
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
.input-range:disabled
|
|
1195
|
-
.slider-input:disabled
|
|
1196
|
-
input[type="range"]:disabled {
|
|
1197
|
-
opacity: 0.5
|
|
1198
|
-
cursor: not-allowed
|
|
1199
|
-
}
|
|
1200
|
-
|
|
1201
|
-
.input-range:disabled::-webkit-slider-thumb
|
|
1202
|
-
.slider-input:disabled::-webkit-slider-thumb
|
|
1203
|
-
input[type="range"]:disabled::-webkit-slider-thumb {
|
|
1204
|
-
cursor: not-allowed
|
|
1205
|
-
}
|
|
1206
|
-
|
|
1207
|
-
.input-range:disabled::-moz-range-thumb
|
|
1208
|
-
.slider-input:disabled::-moz-range-thumb
|
|
1209
|
-
input[type="range"]:disabled::-moz-range-thumb {
|
|
1210
|
-
cursor: not-allowed
|
|
1211
|
-
}
|
|
1212
|
-
|
|
1213
|
-
.value-label {
|
|
1214
|
-
min-width: 14px
|
|
1215
|
-
text-align: center
|
|
1216
|
-
font-size: 12px
|
|
1217
|
-
color: var(--color-text-muted)
|
|
1218
|
-
font-weight: 500
|
|
1219
|
-
font-variant-numeric: tabular-nums
|
|
1220
|
-
pointer-events: none
|
|
1221
|
-
user-select: none
|
|
1222
|
-
}
|
|
1223
|
-
|
|
1224
|
-
.reset-btn {
|
|
1225
|
-
width: 1.333em
|
|
1226
|
-
height: 1.333em
|
|
1227
|
-
border: none
|
|
1228
|
-
border-radius: var(--reset-btn-border-radius)
|
|
1229
|
-
cursor: pointer
|
|
1230
|
-
display: flex
|
|
1231
|
-
align-items: center
|
|
1232
|
-
justify-content: center
|
|
1233
|
-
background: var(--reset-btn-bg)
|
|
1234
|
-
color: var(--reset-btn-color)
|
|
1235
|
-
transition: var(--reset-btn-transition)
|
|
1236
|
-
flex-shrink: 0
|
|
1237
|
-
}
|
|
1238
|
-
|
|
1239
|
-
.reset-btn:hover {
|
|
1240
|
-
background: var(--reset-btn-bg-hover)
|
|
1241
|
-
color: var(--reset-btn-color-hover)
|
|
1242
|
-
}
|
|
1243
|
-
|
|
1244
|
-
.clear-btn {
|
|
1245
|
-
width: 1.333em
|
|
1246
|
-
height: 1.333em
|
|
1247
|
-
border: none
|
|
1248
|
-
border-radius: var(--clear-btn-border-radius)
|
|
1249
|
-
cursor: pointer
|
|
1250
|
-
display: flex
|
|
1251
|
-
align-items: center
|
|
1252
|
-
justify-content: center
|
|
1253
|
-
background: var(--clear-btn-bg)
|
|
1254
|
-
color: var(--clear-btn-color)
|
|
1255
|
-
transition: var(--clear-btn-transition)
|
|
1256
|
-
flex-shrink: 0
|
|
1257
|
-
}
|
|
1258
|
-
|
|
1259
|
-
.clear-btn:hover {
|
|
1260
|
-
background: var(--clear-btn-bg-hover)
|
|
1261
|
-
color: var(--clear-btn-color-hover)
|
|
1262
|
-
}
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
.input-range
|
|
1267
|
-
.slider-input
|
|
1268
|
-
input[type="range"] {
|
|
1269
|
-
height: 0.333em
|
|
1270
|
-
}
|
|
1271
|
-
|
|
1272
|
-
.input-range::-webkit-slider-thumb
|
|
1273
|
-
.slider-input::-webkit-slider-thumb
|
|
1274
|
-
input[type="range"]::-webkit-slider-thumb {
|
|
1275
|
-
width: 1.167em
|
|
1276
|
-
height: 1.167em
|
|
1277
|
-
}
|
|
1278
|
-
|
|
1279
|
-
.input-range::-moz-range-thumb
|
|
1280
|
-
.slider-input::-moz-range-thumb
|
|
1281
|
-
input[type="range"]::-moz-range-thumb {
|
|
1282
|
-
width: 1.167em
|
|
1283
|
-
height: 1.167em
|
|
1284
|
-
}
|
|
1285
|
-
|
|
1286
|
-
.value-label {
|
|
1287
|
-
font-size: 1em
|
|
1288
|
-
}
|
|
1289
|
-
|
|
1290
|
-
.value-input {
|
|
1291
|
-
width: 56px
|
|
1292
|
-
padding: 0 4px
|
|
1293
|
-
height: 22px
|
|
1294
|
-
border: 1px solid var(--border-subtle)
|
|
1295
|
-
border-radius: 4px
|
|
1296
|
-
background: transparent
|
|
1297
|
-
color: var(--color-text)
|
|
1298
|
-
font-size: 12px
|
|
1299
|
-
text-align: center
|
|
1300
|
-
outline: none
|
|
1301
|
-
flex-shrink: 0
|
|
1302
|
-
}
|
|
1303
|
-
|
|
1304
|
-
.value-input:focus {
|
|
1305
|
-
border-color: var(--color-solid)
|
|
1306
|
-
}
|
|
1307
|
-
|
|
1308
|
-
.value-input:disabled {
|
|
1309
|
-
opacity: 0.4
|
|
1310
|
-
cursor: not-allowed
|
|
1311
|
-
}
|
|
1312
|
-
|
|
1313
|
-
:host([tracked]) .input-range
|
|
1314
|
-
:host([tracked]) .slider-input
|
|
1315
|
-
:host([tracked]) input[type="range"] {
|
|
1316
|
-
background: linear-gradient(
|
|
1317
|
-
to right
|
|
1318
|
-
var(--color-solid) var(--fill-pct, 0%)
|
|
1319
|
-
var(--border-subtle) var(--fill-pct, 0%)
|
|
1320
|
-
)
|
|
1321
|
-
}
|
|
1322
|
-
|
|
1323
|
-
.range-wrapper {
|
|
1324
|
-
flex: 1
|
|
1325
|
-
min-width: 0
|
|
1326
|
-
display: flex
|
|
1327
|
-
flex-direction: column
|
|
1328
|
-
position: relative; /* marks-container positions against this
|
|
1329
|
-
}
|
|
1330
|
-
|
|
1331
|
-
.range-wrapper input[type="range"] {
|
|
1332
|
-
width: 100
|
|
1333
|
-
flex: none
|
|
1334
|
-
}
|
|
1335
|
-
|
|
1336
|
-
/* Marks are absolutely positioned so they don't affect range-wrapper's layout height
|
|
1337
|
-
.marks-container {
|
|
1338
|
-
position: absolute
|
|
1339
|
-
top: 100
|
|
1340
|
-
left: 7px; /* inset by half thumb so 0%/100% align with track ends
|
|
1341
|
-
right: 7px
|
|
1342
|
-
height: 18px
|
|
1343
|
-
margin-top: 2px
|
|
1344
|
-
overflow: visible
|
|
1345
|
-
}
|
|
1346
|
-
|
|
1347
|
-
.mark {
|
|
1348
|
-
position: absolute
|
|
1349
|
-
transform: translateX(-50%)
|
|
1350
|
-
display: flex
|
|
1351
|
-
flex-direction: column
|
|
1352
|
-
align-items: center
|
|
1353
|
-
gap: 2px
|
|
1354
|
-
pointer-events: none
|
|
1355
|
-
user-select: none
|
|
1356
|
-
}
|
|
1357
|
-
|
|
1358
|
-
.mark::before {
|
|
1359
|
-
content: ''
|
|
1360
|
-
display: block
|
|
1361
|
-
width: 1px
|
|
1362
|
-
height: 4px
|
|
1363
|
-
background: var(--border-default, var(--border-subtle))
|
|
1364
|
-
border-radius: 1px
|
|
1365
|
-
}
|
|
1366
|
-
|
|
1367
|
-
.mark-label {
|
|
1368
|
-
font-size: 10px
|
|
1369
|
-
color: var(--color-text-muted)
|
|
1370
|
-
white-space: nowrap
|
|
1371
|
-
}
|
|
1372
|
-
|
|
1373
|
-
/* When marks are active, add padding-bottom to make room for the absolute-positioned marks
|
|
1374
|
-
:host([marks]) .range-container {
|
|
1375
|
-
padding-bottom: 24px; /* marks-container height (18px) + margin-top (2px) + extra (4px)
|
|
1376
|
-
height: auto
|
|
1377
|
-
}
|
|
1052
|
+
const style$8 = `:host {
|
|
1053
|
+
display: block;
|
|
1054
|
+
flex: 1;
|
|
1055
|
+
min-width: 0;
|
|
1056
|
+
font-size: var(--size-base);
|
|
1057
|
+
|
|
1058
|
+
/* Default color when no [color] attribute — overridden by color.css :host([color=...]) */
|
|
1059
|
+
--color-solid: var(--color-primary);
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
.range-container {
|
|
1063
|
+
display: flex;
|
|
1064
|
+
align-items: center;
|
|
1065
|
+
gap: 6px;
|
|
1066
|
+
width: 100%;
|
|
1067
|
+
height: 26px;
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
input[type="range"] {
|
|
1071
|
+
flex: 1;
|
|
1072
|
+
margin: 0;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
.input-range,
|
|
1076
|
+
.slider-input,
|
|
1077
|
+
input[type="range"] {
|
|
1078
|
+
-webkit-appearance: none;
|
|
1079
|
+
appearance: none;
|
|
1080
|
+
width: 100%;
|
|
1081
|
+
height: 0.333em;
|
|
1082
|
+
border-radius: 2px;
|
|
1083
|
+
background: var(--border-subtle);
|
|
1084
|
+
outline: none;
|
|
1085
|
+
cursor: pointer;
|
|
1086
|
+
margin: 0;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
.input-range {
|
|
1090
|
+
margin: 10px 0;
|
|
1091
|
+
}
|
|
1092
|
+
|
|
1093
|
+
.input-range::-webkit-slider-thumb,
|
|
1094
|
+
.slider-input::-webkit-slider-thumb,
|
|
1095
|
+
input[type="range"]::-webkit-slider-thumb {
|
|
1096
|
+
-webkit-appearance: none;
|
|
1097
|
+
appearance: none;
|
|
1098
|
+
width: 1.167em;
|
|
1099
|
+
height: 1.167em;
|
|
1100
|
+
border-radius: 50%;
|
|
1101
|
+
background: var(--color-solid);
|
|
1102
|
+
cursor: pointer;
|
|
1103
|
+
transition: background 0.12s, transform 0.12s;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
.input-range::-webkit-slider-thumb:hover,
|
|
1107
|
+
.slider-input::-webkit-slider-thumb:hover,
|
|
1108
|
+
input[type="range"]:hover::-webkit-slider-thumb {
|
|
1109
|
+
background: var(--color-solid-hover);
|
|
1110
|
+
transform: scale(1.1);
|
|
1111
|
+
}
|
|
1112
|
+
|
|
1113
|
+
.input-range::-webkit-slider-thumb:active,
|
|
1114
|
+
.slider-input::-webkit-slider-thumb:active,
|
|
1115
|
+
input[type="range"]:active::-webkit-slider-thumb {
|
|
1116
|
+
background: var(--color-solid-hover);
|
|
1117
|
+
transform: scale(1.2);
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
.input-range:focus::-webkit-slider-thumb,
|
|
1121
|
+
.slider-input:focus::-webkit-slider-thumb,
|
|
1122
|
+
input[type="range"]:focus::-webkit-slider-thumb {
|
|
1123
|
+
background: var(--color-solid);
|
|
1124
|
+
outline: none;
|
|
1125
|
+
box-shadow: none;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
.input-range:focus:hover::-webkit-slider-thumb,
|
|
1129
|
+
.slider-input:focus:hover::-webkit-slider-thumb,
|
|
1130
|
+
input[type="range"]:focus:hover::-webkit-slider-thumb {
|
|
1131
|
+
background: var(--color-solid-hover);
|
|
1132
|
+
outline: none;
|
|
1133
|
+
box-shadow: none;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
1136
|
+
.input-range:focus:active::-webkit-slider-thumb,
|
|
1137
|
+
.slider-input:focus:active::-webkit-slider-thumb,
|
|
1138
|
+
input[type="range"]:focus:active::-webkit-slider-thumb {
|
|
1139
|
+
background: var(--color-solid-hover);
|
|
1140
|
+
outline: none;
|
|
1141
|
+
box-shadow: none;
|
|
1142
|
+
}
|
|
1143
|
+
|
|
1144
|
+
.input-range::-moz-range-thumb,
|
|
1145
|
+
.slider-input::-moz-range-thumb,
|
|
1146
|
+
input[type="range"]::-moz-range-thumb {
|
|
1147
|
+
width: 1.167em;
|
|
1148
|
+
height: 1.167em;
|
|
1149
|
+
border: none;
|
|
1150
|
+
border-radius: 50%;
|
|
1151
|
+
background: var(--color-solid);
|
|
1152
|
+
cursor: pointer;
|
|
1153
|
+
transition: background 0.12s, transform 0.12s;
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
.input-range::-moz-range-thumb:hover,
|
|
1157
|
+
.slider-input::-moz-range-thumb:hover,
|
|
1158
|
+
input[type="range"]:hover::-moz-range-thumb {
|
|
1159
|
+
background: var(--color-solid-hover);
|
|
1160
|
+
transform: scale(1.1);
|
|
1161
|
+
}
|
|
1162
|
+
|
|
1163
|
+
.input-range::-moz-range-thumb:active,
|
|
1164
|
+
.slider-input::-moz-range-thumb:active,
|
|
1165
|
+
input[type="range"]:active::-moz-range-thumb {
|
|
1166
|
+
background: var(--color-solid-hover);
|
|
1167
|
+
transform: scale(1.2);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
.input-range:focus::-moz-range-thumb,
|
|
1171
|
+
.slider-input:focus::-moz-range-thumb,
|
|
1172
|
+
input[type="range"]:focus::-moz-range-thumb {
|
|
1173
|
+
background: var(--color-solid);
|
|
1174
|
+
outline: none;
|
|
1175
|
+
box-shadow: none;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
1178
|
+
.input-range:focus:hover::-moz-range-thumb,
|
|
1179
|
+
.slider-input:focus:hover::-moz-range-thumb,
|
|
1180
|
+
input[type="range"]:focus:hover::-moz-range-thumb {
|
|
1181
|
+
background: var(--color-solid-hover);
|
|
1182
|
+
outline: none;
|
|
1183
|
+
box-shadow: none;
|
|
1184
|
+
}
|
|
1185
|
+
|
|
1186
|
+
.input-range:focus:active::-moz-range-thumb,
|
|
1187
|
+
.slider-input:focus:active::-moz-range-thumb,
|
|
1188
|
+
input[type="range"]:focus:active::-moz-range-thumb {
|
|
1189
|
+
background: var(--color-solid-hover);
|
|
1190
|
+
outline: none;
|
|
1191
|
+
box-shadow: none;
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
.input-range:disabled,
|
|
1195
|
+
.slider-input:disabled,
|
|
1196
|
+
input[type="range"]:disabled {
|
|
1197
|
+
opacity: 0.5;
|
|
1198
|
+
cursor: not-allowed;
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
.input-range:disabled::-webkit-slider-thumb,
|
|
1202
|
+
.slider-input:disabled::-webkit-slider-thumb,
|
|
1203
|
+
input[type="range"]:disabled::-webkit-slider-thumb {
|
|
1204
|
+
cursor: not-allowed;
|
|
1205
|
+
}
|
|
1206
|
+
|
|
1207
|
+
.input-range:disabled::-moz-range-thumb,
|
|
1208
|
+
.slider-input:disabled::-moz-range-thumb,
|
|
1209
|
+
input[type="range"]:disabled::-moz-range-thumb {
|
|
1210
|
+
cursor: not-allowed;
|
|
1211
|
+
}
|
|
1212
|
+
|
|
1213
|
+
.value-label {
|
|
1214
|
+
min-width: 14px;
|
|
1215
|
+
text-align: center;
|
|
1216
|
+
font-size: 12px;
|
|
1217
|
+
color: var(--color-text-muted);
|
|
1218
|
+
font-weight: 500;
|
|
1219
|
+
font-variant-numeric: tabular-nums;
|
|
1220
|
+
pointer-events: none;
|
|
1221
|
+
user-select: none;
|
|
1222
|
+
}
|
|
1223
|
+
|
|
1224
|
+
.reset-btn {
|
|
1225
|
+
width: 1.333em;
|
|
1226
|
+
height: 1.333em;
|
|
1227
|
+
border: none;
|
|
1228
|
+
border-radius: var(--reset-btn-border-radius);
|
|
1229
|
+
cursor: pointer;
|
|
1230
|
+
display: flex;
|
|
1231
|
+
align-items: center;
|
|
1232
|
+
justify-content: center;
|
|
1233
|
+
background: var(--reset-btn-bg);
|
|
1234
|
+
color: var(--reset-btn-color);
|
|
1235
|
+
transition: var(--reset-btn-transition);
|
|
1236
|
+
flex-shrink: 0;
|
|
1237
|
+
}
|
|
1238
|
+
|
|
1239
|
+
.reset-btn:hover {
|
|
1240
|
+
background: var(--reset-btn-bg-hover);
|
|
1241
|
+
color: var(--reset-btn-color-hover);
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
.clear-btn {
|
|
1245
|
+
width: 1.333em;
|
|
1246
|
+
height: 1.333em;
|
|
1247
|
+
border: none;
|
|
1248
|
+
border-radius: var(--clear-btn-border-radius);
|
|
1249
|
+
cursor: pointer;
|
|
1250
|
+
display: flex;
|
|
1251
|
+
align-items: center;
|
|
1252
|
+
justify-content: center;
|
|
1253
|
+
background: var(--clear-btn-bg);
|
|
1254
|
+
color: var(--clear-btn-color);
|
|
1255
|
+
transition: var(--clear-btn-transition);
|
|
1256
|
+
flex-shrink: 0;
|
|
1257
|
+
}
|
|
1258
|
+
|
|
1259
|
+
.clear-btn:hover {
|
|
1260
|
+
background: var(--clear-btn-bg-hover);
|
|
1261
|
+
color: var(--clear-btn-color-hover);
|
|
1262
|
+
}
|
|
1263
|
+
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
.input-range,
|
|
1267
|
+
.slider-input,
|
|
1268
|
+
input[type="range"] {
|
|
1269
|
+
height: 0.333em;
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
.input-range::-webkit-slider-thumb,
|
|
1273
|
+
.slider-input::-webkit-slider-thumb,
|
|
1274
|
+
input[type="range"]::-webkit-slider-thumb {
|
|
1275
|
+
width: 1.167em;
|
|
1276
|
+
height: 1.167em;
|
|
1277
|
+
}
|
|
1278
|
+
|
|
1279
|
+
.input-range::-moz-range-thumb,
|
|
1280
|
+
.slider-input::-moz-range-thumb,
|
|
1281
|
+
input[type="range"]::-moz-range-thumb {
|
|
1282
|
+
width: 1.167em;
|
|
1283
|
+
height: 1.167em;
|
|
1284
|
+
}
|
|
1285
|
+
|
|
1286
|
+
.value-label {
|
|
1287
|
+
font-size: 1em;
|
|
1288
|
+
}
|
|
1289
|
+
|
|
1290
|
+
.value-input {
|
|
1291
|
+
width: 56px;
|
|
1292
|
+
padding: 0 4px;
|
|
1293
|
+
height: 22px;
|
|
1294
|
+
border: 1px solid var(--border-subtle);
|
|
1295
|
+
border-radius: 4px;
|
|
1296
|
+
background: transparent;
|
|
1297
|
+
color: var(--color-text);
|
|
1298
|
+
font-size: 12px;
|
|
1299
|
+
text-align: center;
|
|
1300
|
+
outline: none;
|
|
1301
|
+
flex-shrink: 0;
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
.value-input:focus {
|
|
1305
|
+
border-color: var(--color-solid);
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
.value-input:disabled {
|
|
1309
|
+
opacity: 0.4;
|
|
1310
|
+
cursor: not-allowed;
|
|
1311
|
+
}
|
|
1312
|
+
|
|
1313
|
+
:host([tracked]) .input-range,
|
|
1314
|
+
:host([tracked]) .slider-input,
|
|
1315
|
+
:host([tracked]) input[type="range"] {
|
|
1316
|
+
background: linear-gradient(
|
|
1317
|
+
to right,
|
|
1318
|
+
var(--color-solid) var(--fill-pct, 0%),
|
|
1319
|
+
var(--border-subtle) var(--fill-pct, 0%)
|
|
1320
|
+
);
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1323
|
+
.range-wrapper {
|
|
1324
|
+
flex: 1;
|
|
1325
|
+
min-width: 0;
|
|
1326
|
+
display: flex;
|
|
1327
|
+
flex-direction: column;
|
|
1328
|
+
position: relative; /* marks-container positions against this */
|
|
1329
|
+
}
|
|
1330
|
+
|
|
1331
|
+
.range-wrapper input[type="range"] {
|
|
1332
|
+
width: 100%;
|
|
1333
|
+
flex: none;
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
/* Marks are absolutely positioned so they don't affect range-wrapper's layout height */
|
|
1337
|
+
.marks-container {
|
|
1338
|
+
position: absolute;
|
|
1339
|
+
top: 100%;
|
|
1340
|
+
left: 7px; /* inset by half thumb so 0%/100% align with track ends */
|
|
1341
|
+
right: 7px;
|
|
1342
|
+
height: 18px;
|
|
1343
|
+
margin-top: 2px;
|
|
1344
|
+
overflow: visible;
|
|
1345
|
+
}
|
|
1346
|
+
|
|
1347
|
+
.mark {
|
|
1348
|
+
position: absolute;
|
|
1349
|
+
transform: translateX(-50%);
|
|
1350
|
+
display: flex;
|
|
1351
|
+
flex-direction: column;
|
|
1352
|
+
align-items: center;
|
|
1353
|
+
gap: 2px;
|
|
1354
|
+
pointer-events: none;
|
|
1355
|
+
user-select: none;
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
.mark::before {
|
|
1359
|
+
content: '';
|
|
1360
|
+
display: block;
|
|
1361
|
+
width: 1px;
|
|
1362
|
+
height: 4px;
|
|
1363
|
+
background: var(--border-default, var(--border-subtle));
|
|
1364
|
+
border-radius: 1px;
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1367
|
+
.mark-label {
|
|
1368
|
+
font-size: 10px;
|
|
1369
|
+
color: var(--color-text-muted);
|
|
1370
|
+
white-space: nowrap;
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
/* When marks are active, add padding-bottom to make room for the absolute-positioned marks */
|
|
1374
|
+
:host([marks]) .range-container {
|
|
1375
|
+
padding-bottom: 24px; /* marks-container height (18px) + margin-top (2px) + extra (4px) */
|
|
1376
|
+
height: auto;
|
|
1377
|
+
}
|
|
1378
1378
|
`;
|
|
1379
1379
|
var __create$b = Object.create;
|
|
1380
1380
|
var __defProp$b = Object.defineProperty;
|
|
@@ -1689,7 +1689,7 @@ __decoratorMetadata$b(_init$b, Slider);
|
|
|
1689
1689
|
__publicField$b(Slider, "tagName", "slider");
|
|
1690
1690
|
__publicField$b(Slider, "styles", [styleVariables, sizeCSS, colorCSS, style$8]);
|
|
1691
1691
|
Slider.register();
|
|
1692
|
-
const styles$1 = ":host {\
|
|
1692
|
+
const styles$1 = ":host {\n display: block;\n flex: 1;\n min-width: 0;\n font-size: var(--size-base);\n\n /* Layout */\n --checkbox-field-gap: 4px;\n\n /* Checkbox */\n --checkbox-size: 1.167em;\n --checkbox-border-width: 1px;\n --checkbox-border-radius: 2px;\n --checkbox-border-color: var(--border-subtle);\n --checkbox-bg: var(--surface-base);\n --checkbox-accent-color: var(--color-solid);\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.checkbox-container {\n display: flex;\n align-items: center;\n gap: var(--checkbox-field-gap);\n width: 100%;\n}\n\n.checkbox-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.field-input {\n width: var(--checkbox-size);\n height: var(--checkbox-size);\n cursor: pointer;\n border: var(--checkbox-border-width) solid var(--checkbox-border-color);\n border-radius: var(--checkbox-border-radius);\n background: var(--checkbox-bg);\n accent-color: var(--checkbox-accent-color);\n margin: 0;\n flex-shrink: 0;\n}\n\n.field-input:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n/* action buttons */\n.reset-btn,\n.clear-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--reset-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--reset-btn-bg);\n color: var(--reset-btn-color);\n transition: var(--reset-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n}\n\n.reset-btn:hover {\n background: var(--reset-btn-bg-hover);\n color: var(--reset-btn-color-hover);\n}\n\n.clear-btn:hover {\n background: var(--clear-btn-bg-hover);\n color: var(--clear-btn-color-hover);\n}\n";
|
|
1693
1693
|
class Checkbox extends AeicoField {
|
|
1694
1694
|
constructor() {
|
|
1695
1695
|
super(...arguments);
|
|
@@ -1751,7 +1751,7 @@ __publicField(Checkbox, "props", {
|
|
|
1751
1751
|
});
|
|
1752
1752
|
__publicField(Checkbox, "styles", [styleVariables, sizeCSS, colorCSS, styles$1]);
|
|
1753
1753
|
Checkbox.register();
|
|
1754
|
-
const style$7 = ':host {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: var(--rg-gap, 0.286em);\r\n font-size: var(--size-m);\r\n --rg-solid-bg: var(--color-solid);\r\n --rg-solid-bg-hover: var(--color-solid-hover);\r\n --rg-solid-bg-active: var(--color-solid-active);\r\n --rg-solid-color: var(--color-on-solid);\r\n --rg-solid-color-hover: var(--color-on-solid-hover, var(--color-on-solid));\r\n --rg-border: var(--color-border);\r\n --rg-border-hover: var(--color-border-hover);\r\n --rg-accent: var(--color-accent);\r\n --rg-accent-hover: var(--color-accent-hover);\r\n --rg-subtle-bg: var(--color-subtle);\r\n --rg-subtle-bg-hover: var(--color-subtle-hover);\r\n\r\n --rg-font-size: 1em;\r\n --rg-height: 2.286em;\r\n --rg-padding: 0.429em 1.071em;\r\n --rg-min-width: 4.571em;\r\n --rg-radius: 4px;\r\n --rg-font-weight: 400;\r\n\r\n --color-unselected: var(--surface-base);\r\n --color-unselected-hover: var(--color-gray-lighter);\r\n}\r\n\r\n:host([size="xs"]) { --rg-radius: 3px; }\r\n:host([size="sm"]) { --rg-radius: 3px; }\r\n\r\n.rg-container {\r\n display: inline-flex;\r\n align-items: center;\r\n flex-wrap: wrap;\r\n gap: 6px;\r\n}\r\n\r\nslot {\r\n display: none;\r\n}\r\n\r\n.rg-radio-option {\r\n display: inline-flex;\r\n align-items: center;\r\n gap: 6px;\r\n cursor: pointer;\r\n font-size: var(--rg-font-size);\r\n color: var(--color-text-main);\r\n user-select: none;\r\n}\r\n\r\n.rg-radio-input {\r\n width: 14px;\r\n height: 14px;\r\n accent-color: var(--rg-solid-bg, var(--color-primary));\r\n cursor: pointer;\r\n margin: 0;\r\n flex-shrink: 0;\r\n}\r\n\r\n.rg-radio-label {\r\n line-height: 1.5;\r\n}\r\n\r\n.rg-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-family: inherit;\r\n font-size: var(--rg-font-size);\r\n font-weight: 400;\r\n height: var(--rg-height);\r\n padding: var(--rg-padding);\r\n min-width: var(--rg-min-width);\r\n white-space: nowrap;\r\n cursor: pointer;\r\n user-select: none;\r\n transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\r\n outline: none;\r\n border-radius: var(--rg-radius);\r\n\r\n background: var(--color-unselected);\r\n border: 1px solid var(--color-gray-light);\r\n color: var(--color-text-muted);\r\n}\r\n\r\n.rg-btn:hover:not(:disabled):not(.selected) {\r\n background: var(--color-unselected-hover);\r\n border-color: var(--color-gray-light);\r\n color: var(--color-text-main);\r\n}\r\n\r\n.rg-btn.selected {\r\n background: var(--rg-solid-bg);\r\n border-color: var(--rg-solid-bg);\r\n color: var(--rg-solid-color);\r\n font-weight: 500;\r\n box-shadow: 0 1px 4px rgb(from black r g b / 0.22);\r\n}\r\n\r\n.rg-btn.selected:hover:not(:disabled) {\r\n background: var(--rg-solid-bg-hover);\r\n border-color: var(--rg-solid-bg-hover);\r\n}\r\n\r\n.rg-btn:active:not(:disabled):not(.selected) {\r\n background: var(--rg-subtle-bg-hover);\r\n transform: translateY(1px);\r\n}\r\n\r\n.rg-btn:disabled {\r\n opacity: 0.45;\r\n cursor: not-allowed;\r\n pointer-events: none;\r\n}\r\n\r\n:host([variant="outlined"]) .rg-btn {\r\n background: transparent;\r\n border-color: var(--rg-border);\r\n color: var(--rg-accent);\r\n}\r\n:host([variant="outlined"]) .rg-btn:hover:not(:disabled):not(.selected) {\r\n background: var(--rg-subtle-bg);\r\n border-color: var(--rg-accent);\r\n color: var(--rg-accent-hover);\r\n}\r\n:host([variant="outlined"]) .rg-btn.selected {\r\n background: var(--rg-solid-bg);\r\n border-color: var(--rg-solid-bg);\r\n color: var(--rg-solid-color);\r\n}\r\n\r\n:host([variant="subtle"]) .rg-btn {\r\n background: transparent;\r\n border-color: transparent;\r\n color: var(--rg-accent);\r\n}\r\n:host([variant="subtle"]) .rg-btn:hover:not(:disabled):not(.selected) {\r\n background: var(--rg-subtle-bg);\r\n border-color: transparent;\r\n color: var(--rg-accent-hover);\r\n}\r\n:host([variant="subtle"]) .rg-btn.selected {\r\n background: var(--rg-subtle-bg-hover);\r\n border-color: transparent;\r\n color: var(--rg-accent-hover);\r\n font-weight: 600;\r\n box-shadow: none;\r\n}\r\n\r\n:host([variant="filled"]) .rg-btn:not(.selected) {\r\n background: var(--surface-base);\r\n border-color: var(--border-default);\r\n color: var(--color-text-muted);\r\n}\r\n\r\n:host([variant="filled"]) .rg-btn:hover:not(:disabled):not(.selected) {\r\n background: var(--surface-raised);\r\n border-color: var(--border-hover);\r\n color: var(--color-text-main);\r\n}\r\n\r\n:host([mode="button"]) .rg-container {\r\n gap: 6px;\r\n}\r\n\r\n:host([mode="button-group"]) .rg-container {\r\n gap: 0;\r\n}\r\n\r\n:host([mode="button-group"]) .rg-btn:not(.first):not(.only) {\r\n margin-left: -1px;\r\n}\r\n\r\n:host([mode="button-group"]) .rg-btn.first {\r\n border-radius: var(--rg-radius) 0 0 var(--rg-radius);\r\n}\r\n:host([mode="button-group"]) .rg-btn.inner {\r\n border-radius: 0;\r\n}\r\n:host([mode="button-group"]) .rg-btn.last {\r\n border-radius: 0 var(--rg-radius) var(--rg-radius) 0;\r\n}\r\n:host([mode="button-group"]) .rg-btn.only {\r\n border-radius: var(--rg-radius);\r\n}\r\n\r\n:host([mode="button-group"]) .rg-btn:hover:not(:disabled),\r\n:host([mode="button-group"]) .rg-btn.selected {\r\n position: relative;\r\n z-index: 1;\r\n}\r\n\r\n:host([mode="segmented"]) .rg-container {\r\n gap: 2px;\r\n background: var(--surface-raised);\r\n border: 1px solid var(--border-subtle);\r\n border-radius: calc(var(--rg-radius) + 2px);\r\n padding: 2px;\r\n flex-wrap: nowrap;\r\n}\r\n\r\n:host([mode="segmented"]) .rg-btn {\r\n background: transparent;\r\n border-color: transparent;\r\n color: var(--color-text-muted);\r\n border-radius: var(--rg-radius);\r\n min-width: var(--rg-min-width);\r\n box-shadow: none;\r\n font-weight: 400;\r\n}\r\n\r\n:host([mode="segmented"]) .rg-btn:hover:not(:disabled):not(.selected) {\r\n background: var(--rg-subtle-bg);\r\n border-color: transparent;\r\n color: var(--color-text-secondary, var(--color-text-main));\r\n}\r\n\r\n:host([mode="segmented"]) .rg-btn.selected {\r\n background: var(--rg-solid-bg);\r\n border-color: transparent;\r\n color: var(--rg-solid-color);\r\n font-weight: 500;\r\n box-shadow: 0 1px 4px rgb(from black r g b / 0.35);\r\n}\r\n\r\n:host([mode="segmented"]) .rg-btn.selected:hover:not(:disabled) {\r\n background: var(--rg-solid-bg-hover);\r\n}\r\n\r\n:host([mode="segmented"]:not([color])) .rg-btn.selected {\r\n background: var(--color-gray-lighter);\r\n color: var(--color-text-main);\r\n}\r\n\r\n:host([mode="segmented"][variant="outlined"]) .rg-container {\r\n border-color: var(--rg-border);\r\n}\r\n:host([mode="segmented"][variant="outlined"]) .rg-btn.selected {\r\n background: var(--rg-solid-bg);\r\n border-color: transparent;\r\n color: var(--rg-solid-color);\r\n}\r\n\r\n.reset-btn,\r\n.clear-btn {\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n transition: var(--reset-btn-transition);\r\n flex-shrink: 0;\r\n line-height: 1;\r\n font-family: inherit;\r\n padding: 0;\r\n\r\n width: 1.333em;\r\n height: 1.333em;\r\n border-radius: var(--reset-btn-border-radius);\r\n border: none;\r\n background: var(--reset-btn-bg);\r\n color: var(--reset-btn-color);\r\n}\r\n\r\n.reset-btn:hover { background: var(--reset-btn-bg-hover); color: var(--reset-btn-color-hover); }\r\n.clear-btn:hover { background: var(--clear-btn-bg-hover); color: var(--clear-btn-color-hover); }\r\n\r\n:host([mode="button"]) .reset-btn,\r\n:host([mode="button"]) .clear-btn,\r\n:host([mode="button-group"]) .reset-btn,\r\n:host([mode="button-group"]) .clear-btn,\r\n:host([mode="segmented"]) .reset-btn,\r\n:host([mode="segmented"]) .clear-btn {\r\n height: var(--rg-height);\r\n width: var(--rg-height);\r\n border-radius: var(--rg-radius);\r\n font-size: var(--rg-font-size);\r\n}\r\n\r\n:host([mode="button"]) .reset-btn,\r\n:host([mode="button"]) .clear-btn,\r\n:host([mode="button-group"]) .reset-btn,\r\n:host([mode="button-group"]) .clear-btn,\r\n:host([mode="segmented"]) .reset-btn,\r\n:host([mode="segmented"]) .clear-btn {\r\n background: transparent;\r\n border: 1px solid var(--color-gray-light);\r\n color: var(--color-text-muted);\r\n}\r\n\r\n:host([mode="button"]) .reset-btn:hover,\r\n:host([mode="button-group"]) .reset-btn:hover,\r\n:host([mode="segmented"]) .reset-btn:hover {\r\n background: var(--border-subtle);\r\n border-color: var(--color-gray-lighter);\r\n color: var(--color-text-main);\r\n}\r\n\r\n:host([mode="button"]) .clear-btn:hover,\r\n:host([mode="button-group"]) .clear-btn:hover,\r\n:host([mode="segmented"]) .clear-btn:hover {\r\n background: rgb(from var(--red) r g b / 0.10);\r\n border-color: var(--color-gray-lighter);\r\n color: var(--color-danger);\r\n}\r\n\r\n:host([variant="outlined"][mode="button"]) .reset-btn,\r\n:host([variant="outlined"][mode="button"]) .clear-btn,\r\n:host([variant="outlined"][mode="button-group"]) .reset-btn,\r\n:host([variant="outlined"][mode="button-group"]) .clear-btn,\r\n:host([variant="outlined"][mode="segmented"]) .reset-btn,\r\n:host([variant="outlined"][mode="segmented"]) .clear-btn {\r\n background: transparent;\r\n border-color: var(--rg-border);\r\n color: var(--rg-accent);\r\n}\r\n\r\n:host([variant="outlined"][mode="button"]) .reset-btn:hover,\r\n:host([variant="outlined"][mode="button-group"]) .reset-btn:hover,\r\n:host([variant="outlined"][mode="segmented"]) .reset-btn:hover {\r\n background: var(--border-subtle);\r\n border-color: var(--rg-border-hover);\r\n color: var(--rg-accent-hover);\r\n}\r\n\r\n:host([variant="outlined"][mode="button"]) .clear-btn:hover,\r\n:host([variant="outlined"][mode="button-group"]) .clear-btn:hover,\r\n:host([variant="outlined"][mode="segmented"]) .clear-btn:hover {\r\n background: rgb(from var(--red) r g b / 0.10);\r\n border-color: var(--rg-border-hover);\r\n color: var(--color-danger);\r\n}\r\n\r\n:host([variant="subtle"][mode="button"]) .reset-btn,\r\n:host([variant="subtle"][mode="button"]) .clear-btn,\r\n:host([variant="subtle"][mode="button-group"]) .reset-btn,\r\n:host([variant="subtle"][mode="button-group"]) .clear-btn,\r\n:host([variant="subtle"][mode="segmented"]) .reset-btn,\r\n:host([variant="subtle"][mode="segmented"]) .clear-btn {\r\n background: transparent;\r\n border-color: transparent;\r\n color: var(--rg-accent);\r\n}\r\n\r\n:host([variant="subtle"][mode="button"]) .reset-btn:hover,\r\n:host([variant="subtle"][mode="button-group"]) .reset-btn:hover,\r\n:host([variant="subtle"][mode="segmented"]) .reset-btn:hover {\r\n background: var(--border-subtle);\r\n border-color: transparent;\r\n color: var(--rg-accent-hover);\r\n}\r\n\r\n:host([variant="subtle"][mode="button"]) .clear-btn:hover,\r\n:host([variant="subtle"][mode="button-group"]) .clear-btn:hover,\r\n:host([variant="subtle"][mode="segmented"]) .clear-btn:hover {\r\n background: rgb(from var(--red) r g b / 0.10);\r\n border-color: transparent;\r\n color: var(--color-danger);\r\n}\r\n';
|
|
1754
|
+
const style$7 = ':host {\n display: inline-flex;\n align-items: center;\n gap: var(--rg-gap, 0.286em);\n font-size: var(--size-m);\n --rg-solid-bg: var(--color-solid);\n --rg-solid-bg-hover: var(--color-solid-hover);\n --rg-solid-bg-active: var(--color-solid-active);\n --rg-solid-color: var(--color-on-solid);\n --rg-solid-color-hover: var(--color-on-solid-hover, var(--color-on-solid));\n --rg-border: var(--color-border);\n --rg-border-hover: var(--color-border-hover);\n --rg-accent: var(--color-accent);\n --rg-accent-hover: var(--color-accent-hover);\n --rg-subtle-bg: var(--color-subtle);\n --rg-subtle-bg-hover: var(--color-subtle-hover);\n\n --rg-font-size: 1em;\n --rg-height: 2.286em;\n --rg-padding: 0.429em 1.071em;\n --rg-min-width: 4.571em;\n --rg-radius: 4px;\n --rg-font-weight: 400;\n\n --color-unselected: var(--surface-base);\n --color-unselected-hover: var(--color-gray-lighter);\n}\n\n:host([size="xs"]) { --rg-radius: 3px; }\n:host([size="sm"]) { --rg-radius: 3px; }\n\n.rg-container {\n display: inline-flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px;\n}\n\nslot {\n display: none;\n}\n\n.rg-radio-option {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n font-size: var(--rg-font-size);\n color: var(--color-text-main);\n user-select: none;\n}\n\n.rg-radio-input {\n width: 14px;\n height: 14px;\n accent-color: var(--rg-solid-bg, var(--color-primary));\n cursor: pointer;\n margin: 0;\n flex-shrink: 0;\n}\n\n.rg-radio-label {\n line-height: 1.5;\n}\n\n.rg-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-family: inherit;\n font-size: var(--rg-font-size);\n font-weight: 400;\n height: var(--rg-height);\n padding: var(--rg-padding);\n min-width: var(--rg-min-width);\n white-space: nowrap;\n cursor: pointer;\n user-select: none;\n transition: background 0.15s, color 0.15s, border-color 0.15s, box-shadow 0.15s;\n outline: none;\n border-radius: var(--rg-radius);\n\n background: var(--color-unselected);\n border: 1px solid var(--color-gray-light);\n color: var(--color-text-muted);\n}\n\n.rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--color-unselected-hover);\n border-color: var(--color-gray-light);\n color: var(--color-text-main);\n}\n\n.rg-btn.selected {\n background: var(--rg-solid-bg);\n border-color: var(--rg-solid-bg);\n color: var(--rg-solid-color);\n font-weight: 500;\n box-shadow: 0 1px 4px rgb(from black r g b / 0.22);\n}\n\n.rg-btn.selected:hover:not(:disabled) {\n background: var(--rg-solid-bg-hover);\n border-color: var(--rg-solid-bg-hover);\n}\n\n.rg-btn:active:not(:disabled):not(.selected) {\n background: var(--rg-subtle-bg-hover);\n transform: translateY(1px);\n}\n\n.rg-btn:disabled {\n opacity: 0.45;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n:host([variant="outlined"]) .rg-btn {\n background: transparent;\n border-color: var(--rg-border);\n color: var(--rg-accent);\n}\n:host([variant="outlined"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--rg-subtle-bg);\n border-color: var(--rg-accent);\n color: var(--rg-accent-hover);\n}\n:host([variant="outlined"]) .rg-btn.selected {\n background: var(--rg-solid-bg);\n border-color: var(--rg-solid-bg);\n color: var(--rg-solid-color);\n}\n\n:host([variant="subtle"]) .rg-btn {\n background: transparent;\n border-color: transparent;\n color: var(--rg-accent);\n}\n:host([variant="subtle"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--rg-subtle-bg);\n border-color: transparent;\n color: var(--rg-accent-hover);\n}\n:host([variant="subtle"]) .rg-btn.selected {\n background: var(--rg-subtle-bg-hover);\n border-color: transparent;\n color: var(--rg-accent-hover);\n font-weight: 600;\n box-shadow: none;\n}\n\n:host([variant="filled"]) .rg-btn:not(.selected) {\n background: var(--surface-base);\n border-color: var(--border-default);\n color: var(--color-text-muted);\n}\n\n:host([variant="filled"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--surface-raised);\n border-color: var(--border-hover);\n color: var(--color-text-main);\n}\n\n:host([mode="button"]) .rg-container {\n gap: 6px;\n}\n\n:host([mode="button-group"]) .rg-container {\n gap: 0;\n}\n\n:host([mode="button-group"]) .rg-btn:not(.first):not(.only) {\n margin-left: -1px;\n}\n\n:host([mode="button-group"]) .rg-btn.first {\n border-radius: var(--rg-radius) 0 0 var(--rg-radius);\n}\n:host([mode="button-group"]) .rg-btn.inner {\n border-radius: 0;\n}\n:host([mode="button-group"]) .rg-btn.last {\n border-radius: 0 var(--rg-radius) var(--rg-radius) 0;\n}\n:host([mode="button-group"]) .rg-btn.only {\n border-radius: var(--rg-radius);\n}\n\n:host([mode="button-group"]) .rg-btn:hover:not(:disabled),\n:host([mode="button-group"]) .rg-btn.selected {\n position: relative;\n z-index: 1;\n}\n\n:host([mode="segmented"]) .rg-container {\n gap: 2px;\n background: var(--surface-raised);\n border: 1px solid var(--border-subtle);\n border-radius: calc(var(--rg-radius) + 2px);\n padding: 2px;\n flex-wrap: nowrap;\n}\n\n:host([mode="segmented"]) .rg-btn {\n background: transparent;\n border-color: transparent;\n color: var(--color-text-muted);\n border-radius: var(--rg-radius);\n min-width: var(--rg-min-width);\n box-shadow: none;\n font-weight: 400;\n}\n\n:host([mode="segmented"]) .rg-btn:hover:not(:disabled):not(.selected) {\n background: var(--rg-subtle-bg);\n border-color: transparent;\n color: var(--color-text-secondary, var(--color-text-main));\n}\n\n:host([mode="segmented"]) .rg-btn.selected {\n background: var(--rg-solid-bg);\n border-color: transparent;\n color: var(--rg-solid-color);\n font-weight: 500;\n box-shadow: 0 1px 4px rgb(from black r g b / 0.35);\n}\n\n:host([mode="segmented"]) .rg-btn.selected:hover:not(:disabled) {\n background: var(--rg-solid-bg-hover);\n}\n\n:host([mode="segmented"]:not([color])) .rg-btn.selected {\n background: var(--color-gray-lighter);\n color: var(--color-text-main);\n}\n\n:host([mode="segmented"][variant="outlined"]) .rg-container {\n border-color: var(--rg-border);\n}\n:host([mode="segmented"][variant="outlined"]) .rg-btn.selected {\n background: var(--rg-solid-bg);\n border-color: transparent;\n color: var(--rg-solid-color);\n}\n\n.reset-btn,\n.clear-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n transition: var(--reset-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n font-family: inherit;\n padding: 0;\n\n width: 1.333em;\n height: 1.333em;\n border-radius: var(--reset-btn-border-radius);\n border: none;\n background: var(--reset-btn-bg);\n color: var(--reset-btn-color);\n}\n\n.reset-btn:hover { background: var(--reset-btn-bg-hover); color: var(--reset-btn-color-hover); }\n.clear-btn:hover { background: var(--clear-btn-bg-hover); color: var(--clear-btn-color-hover); }\n\n:host([mode="button"]) .reset-btn,\n:host([mode="button"]) .clear-btn,\n:host([mode="button-group"]) .reset-btn,\n:host([mode="button-group"]) .clear-btn,\n:host([mode="segmented"]) .reset-btn,\n:host([mode="segmented"]) .clear-btn {\n height: var(--rg-height);\n width: var(--rg-height);\n border-radius: var(--rg-radius);\n font-size: var(--rg-font-size);\n}\n\n:host([mode="button"]) .reset-btn,\n:host([mode="button"]) .clear-btn,\n:host([mode="button-group"]) .reset-btn,\n:host([mode="button-group"]) .clear-btn,\n:host([mode="segmented"]) .reset-btn,\n:host([mode="segmented"]) .clear-btn {\n background: transparent;\n border: 1px solid var(--color-gray-light);\n color: var(--color-text-muted);\n}\n\n:host([mode="button"]) .reset-btn:hover,\n:host([mode="button-group"]) .reset-btn:hover,\n:host([mode="segmented"]) .reset-btn:hover {\n background: var(--border-subtle);\n border-color: var(--color-gray-lighter);\n color: var(--color-text-main);\n}\n\n:host([mode="button"]) .clear-btn:hover,\n:host([mode="button-group"]) .clear-btn:hover,\n:host([mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--red) r g b / 0.10);\n border-color: var(--color-gray-lighter);\n color: var(--color-danger);\n}\n\n:host([variant="outlined"][mode="button"]) .reset-btn,\n:host([variant="outlined"][mode="button"]) .clear-btn,\n:host([variant="outlined"][mode="button-group"]) .reset-btn,\n:host([variant="outlined"][mode="button-group"]) .clear-btn,\n:host([variant="outlined"][mode="segmented"]) .reset-btn,\n:host([variant="outlined"][mode="segmented"]) .clear-btn {\n background: transparent;\n border-color: var(--rg-border);\n color: var(--rg-accent);\n}\n\n:host([variant="outlined"][mode="button"]) .reset-btn:hover,\n:host([variant="outlined"][mode="button-group"]) .reset-btn:hover,\n:host([variant="outlined"][mode="segmented"]) .reset-btn:hover {\n background: var(--border-subtle);\n border-color: var(--rg-border-hover);\n color: var(--rg-accent-hover);\n}\n\n:host([variant="outlined"][mode="button"]) .clear-btn:hover,\n:host([variant="outlined"][mode="button-group"]) .clear-btn:hover,\n:host([variant="outlined"][mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--red) r g b / 0.10);\n border-color: var(--rg-border-hover);\n color: var(--color-danger);\n}\n\n:host([variant="subtle"][mode="button"]) .reset-btn,\n:host([variant="subtle"][mode="button"]) .clear-btn,\n:host([variant="subtle"][mode="button-group"]) .reset-btn,\n:host([variant="subtle"][mode="button-group"]) .clear-btn,\n:host([variant="subtle"][mode="segmented"]) .reset-btn,\n:host([variant="subtle"][mode="segmented"]) .clear-btn {\n background: transparent;\n border-color: transparent;\n color: var(--rg-accent);\n}\n\n:host([variant="subtle"][mode="button"]) .reset-btn:hover,\n:host([variant="subtle"][mode="button-group"]) .reset-btn:hover,\n:host([variant="subtle"][mode="segmented"]) .reset-btn:hover {\n background: var(--border-subtle);\n border-color: transparent;\n color: var(--rg-accent-hover);\n}\n\n:host([variant="subtle"][mode="button"]) .clear-btn:hover,\n:host([variant="subtle"][mode="button-group"]) .clear-btn:hover,\n:host([variant="subtle"][mode="segmented"]) .clear-btn:hover {\n background: rgb(from var(--red) r g b / 0.10);\n border-color: transparent;\n color: var(--color-danger);\n}\n';
|
|
1755
1755
|
const _RadioGroup = class _RadioGroup extends AeicoField {
|
|
1756
1756
|
constructor() {
|
|
1757
1757
|
super();
|
|
@@ -1918,7 +1918,7 @@ __publicField(Radio, "props", {
|
|
|
1918
1918
|
disabled: { type: Boolean }
|
|
1919
1919
|
});
|
|
1920
1920
|
Radio.register();
|
|
1921
|
-
const styles = ":host {\
|
|
1921
|
+
const styles = ":host {\n display: block;\n font-size: var(--size-base);\n\n --switch-field-gap: 4px;\n\n --toggle-width: 2.667em;\n --toggle-height: 1.333em;\n --toggle-slider-size: 1em;\n --toggle-gap: calc((var(--toggle-height) - var(--toggle-slider-size)) / 2);\n --toggle-border-radius: calc(var(--toggle-height) / 2);\n --toggle-bg: var(--color-gray);\n --toggle-bg-checked: var(--color-solid);\n --toggle-slider-bg: white;\n --toggle-transition: 0.2s;\n\n /* Default color when no [color] attribute — overridden by color.css :host([color=...]) */\n --color-solid: var(--color-primary);\n}\n\n.switch-container {\n display: flex;\n align-items: center;\n gap: var(--switch-field-gap);\n}\n\n.switch-wrapper {\n position: relative;\n display: inline-flex;\n align-items: center;\n width: var(--toggle-width);\n height: var(--toggle-height);\n flex-shrink: 0;\n}\n\n.field-input {\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n margin: 0;\n z-index: 1;\n border: none;\n border-radius: 0;\n background: none;\n accent-color: unset;\n}\n\n.field-input:disabled {\n cursor: not-allowed;\n}\n\n.toggle-slider {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: var(--toggle-bg);\n border-radius: var(--toggle-border-radius);\n transition: var(--toggle-transition);\n pointer-events: none;\n}\n\n.toggle-slider::before {\n content: '';\n position: absolute;\n height: var(--toggle-slider-size);\n width: var(--toggle-slider-size);\n left: var(--toggle-gap);\n top: var(--toggle-gap);\n background: var(--toggle-slider-bg);\n border-radius: 50%;\n transition: var(--toggle-transition);\n}\n\n.field-input:checked + .toggle-slider {\n background: var(--toggle-bg-checked);\n}\n\n.field-input:checked + .toggle-slider::before {\n transform: translateX(calc(var(--toggle-width) - var(--toggle-height)));\n}\n\n.field-input:disabled + .toggle-slider {\n opacity: 0.5;\n pointer-events: auto;\n}\n\n/* action buttons */\n.reset-btn,\n.clear-btn {\n width: 1.333em;\n height: 1.333em;\n border: none;\n border-radius: var(--reset-btn-border-radius);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--reset-btn-bg);\n color: var(--reset-btn-color);\n transition: var(--reset-btn-transition);\n flex-shrink: 0;\n line-height: 1;\n}\n\n.reset-btn:hover {\n background: var(--reset-btn-bg-hover);\n color: var(--reset-btn-color-hover);\n}\n\n.clear-btn:hover {\n background: var(--clear-btn-bg-hover);\n color: var(--clear-btn-color-hover);\n}\n";
|
|
1922
1922
|
class Switch extends AeicoField {
|
|
1923
1923
|
constructor() {
|
|
1924
1924
|
super(...arguments);
|
|
@@ -1980,7 +1980,7 @@ __publicField(Switch, "props", {
|
|
|
1980
1980
|
});
|
|
1981
1981
|
__publicField(Switch, "styles", [styleVariables, sizeCSS, colorCSS, styles]);
|
|
1982
1982
|
Switch.register();
|
|
1983
|
-
const style$6 = ":host {\
|
|
1983
|
+
const style$6 = ":host {\n display: block;\n}\n\n/* Hide the separator template slot visually */\n.sep-template {\n display: none !important;\n}\n\n.list {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n";
|
|
1984
1984
|
var __create$a = Object.create;
|
|
1985
1985
|
var __defProp$a = Object.defineProperty;
|
|
1986
1986
|
var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
|
|
@@ -2096,65 +2096,65 @@ __decoratorMetadata$a(_init$a, Breadcrumb);
|
|
|
2096
2096
|
__publicField$a(Breadcrumb, "tagName", "breadcrumb");
|
|
2097
2097
|
__publicField$a(Breadcrumb, "styles", [styleVariables, colorCSS, style$6]);
|
|
2098
2098
|
Breadcrumb.register();
|
|
2099
|
-
const style$5 = `:host {
|
|
2100
|
-
display: contents
|
|
2101
|
-
}
|
|
2102
|
-
|
|
2103
|
-
.item {
|
|
2104
|
-
display: inline-flex
|
|
2105
|
-
align-items: center
|
|
2106
|
-
list-style: none
|
|
2107
|
-
white-space: nowrap
|
|
2108
|
-
}
|
|
2109
|
-
|
|
2110
|
-
/* Separator — uses a fixed muted color that does NOT follow the breadcrumb's color prop
|
|
2111
|
-
.sep {
|
|
2112
|
-
display: inline-flex
|
|
2113
|
-
align-items: center
|
|
2114
|
-
color: var(--color-text-muted)
|
|
2115
|
-
padding: 0 0.35em
|
|
2116
|
-
user-select: none
|
|
2117
|
-
pointer-events: none
|
|
2118
|
-
flex-shrink: 0
|
|
2119
|
-
font-size: 0.85em
|
|
2120
|
-
}
|
|
2121
|
-
|
|
2122
|
-
/* Hide separator on the first item
|
|
2123
|
-
:host(:first-child) .sep
|
|
2124
|
-
:host(:first-of-type) .sep {
|
|
2125
|
-
display: none
|
|
2126
|
-
}
|
|
2127
|
-
|
|
2128
|
-
.label {
|
|
2129
|
-
display: inline-flex
|
|
2130
|
-
align-items: center
|
|
2131
|
-
color: var(--color-text-muted)
|
|
2132
|
-
}
|
|
2133
|
-
|
|
2134
|
-
/* Current page — last item
|
|
2135
|
-
:host([aria-current="page"]) .label {
|
|
2136
|
-
color: var(--color-text-main)
|
|
2137
|
-
font-weight: 500
|
|
2138
|
-
cursor: default
|
|
2139
|
-
}
|
|
2140
|
-
|
|
2141
|
-
/* Link items
|
|
2142
|
-
.label a {
|
|
2143
|
-
color: var(--color-accent, var(--color-text-link))
|
|
2144
|
-
text-decoration: none
|
|
2145
|
-
outline: none
|
|
2146
|
-
}
|
|
2147
|
-
|
|
2148
|
-
.label a:hover {
|
|
2149
|
-
color: var(--color-accent-hover, var(--color-text-link-hover))
|
|
2150
|
-
text-decoration: underline
|
|
2151
|
-
}
|
|
2152
|
-
|
|
2153
|
-
.label a:focus-visible {
|
|
2154
|
-
outline: 2px solid var(--color-accent, var(--focus-ring-color))
|
|
2155
|
-
outline-offset: 2px
|
|
2156
|
-
border-radius: 2px
|
|
2157
|
-
}
|
|
2099
|
+
const style$5 = `:host {
|
|
2100
|
+
display: contents;
|
|
2101
|
+
}
|
|
2102
|
+
|
|
2103
|
+
.item {
|
|
2104
|
+
display: inline-flex;
|
|
2105
|
+
align-items: center;
|
|
2106
|
+
list-style: none;
|
|
2107
|
+
white-space: nowrap;
|
|
2108
|
+
}
|
|
2109
|
+
|
|
2110
|
+
/* Separator — uses a fixed muted color that does NOT follow the breadcrumb's color prop */
|
|
2111
|
+
.sep {
|
|
2112
|
+
display: inline-flex;
|
|
2113
|
+
align-items: center;
|
|
2114
|
+
color: var(--color-text-muted);
|
|
2115
|
+
padding: 0 0.35em;
|
|
2116
|
+
user-select: none;
|
|
2117
|
+
pointer-events: none;
|
|
2118
|
+
flex-shrink: 0;
|
|
2119
|
+
font-size: 0.85em;
|
|
2120
|
+
}
|
|
2121
|
+
|
|
2122
|
+
/* Hide separator on the first item */
|
|
2123
|
+
:host(:first-child) .sep,
|
|
2124
|
+
:host(:first-of-type) .sep {
|
|
2125
|
+
display: none;
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2128
|
+
.label {
|
|
2129
|
+
display: inline-flex;
|
|
2130
|
+
align-items: center;
|
|
2131
|
+
color: var(--color-text-muted);
|
|
2132
|
+
}
|
|
2133
|
+
|
|
2134
|
+
/* Current page — last item */
|
|
2135
|
+
:host([aria-current="page"]) .label {
|
|
2136
|
+
color: var(--color-text-main);
|
|
2137
|
+
font-weight: 500;
|
|
2138
|
+
cursor: default;
|
|
2139
|
+
}
|
|
2140
|
+
|
|
2141
|
+
/* Link items */
|
|
2142
|
+
.label a {
|
|
2143
|
+
color: var(--color-accent, var(--color-text-link));
|
|
2144
|
+
text-decoration: none;
|
|
2145
|
+
outline: none;
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2148
|
+
.label a:hover {
|
|
2149
|
+
color: var(--color-accent-hover, var(--color-text-link-hover));
|
|
2150
|
+
text-decoration: underline;
|
|
2151
|
+
}
|
|
2152
|
+
|
|
2153
|
+
.label a:focus-visible {
|
|
2154
|
+
outline: 2px solid var(--color-accent, var(--focus-ring-color));
|
|
2155
|
+
outline-offset: 2px;
|
|
2156
|
+
border-radius: 2px;
|
|
2157
|
+
}
|
|
2158
2158
|
`;
|
|
2159
2159
|
var __create$9 = Object.create;
|
|
2160
2160
|
var __defProp$9 = Object.defineProperty;
|
|
@@ -2233,219 +2233,219 @@ __decoratorMetadata$9(_init$9, BreadcrumbItem);
|
|
|
2233
2233
|
__publicField$9(BreadcrumbItem, "tagName", "breadcrumb-item");
|
|
2234
2234
|
__publicField$9(BreadcrumbItem, "styles", [styleVariables, style$5]);
|
|
2235
2235
|
BreadcrumbItem.register();
|
|
2236
|
-
const buttonStyle = `:host {
|
|
2237
|
-
display: inline-block
|
|
2238
|
-
--btn-solid-bg: var(--color-solid)
|
|
2239
|
-
--btn-solid-bg-hover: var(--color-solid-hover)
|
|
2240
|
-
--btn-solid-bg-active: var(--color-solid-active)
|
|
2241
|
-
--btn-solid-color: var(--color-on-solid)
|
|
2242
|
-
--btn-solid-color-hover: var(--color-on-solid-hover)
|
|
2243
|
-
--btn-border: var(--color-border)
|
|
2244
|
-
--btn-border-hover: var(--color-border-hover)
|
|
2245
|
-
--btn-accent: var(--color-accent)
|
|
2246
|
-
--btn-accent-hover: var(--color-accent-hover)
|
|
2247
|
-
--btn-subtle-bg: var(--color-subtle)
|
|
2248
|
-
--btn-subtle-bg-hover: var(--color-subtle-hover)
|
|
2249
|
-
}
|
|
2250
|
-
|
|
2251
|
-
button {
|
|
2252
|
-
display: inline-flex
|
|
2253
|
-
align-items: center
|
|
2254
|
-
justify-content: center
|
|
2255
|
-
gap: 6px
|
|
2256
|
-
font-family: inherit
|
|
2257
|
-
font-weight: 400
|
|
2258
|
-
text-align: center
|
|
2259
|
-
white-space: nowrap
|
|
2260
|
-
vertical-align: middle
|
|
2261
|
-
user-select: none
|
|
2262
|
-
cursor: pointer
|
|
2263
|
-
transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)
|
|
2264
|
-
outline: none
|
|
2265
|
-
position: relative
|
|
2266
|
-
padding: 0.429em 1.071em
|
|
2267
|
-
font-size: 1em
|
|
2268
|
-
line-height: 1.5
|
|
2269
|
-
border-radius: var(--_btn-r-tl, 4px) var(--_btn-r-tr, 4px) var(--_btn-r-br, 4px) var(--_btn-r-bl, 4px)
|
|
2270
|
-
min-width: 4.571em
|
|
2271
|
-
height: 2.286em
|
|
2272
|
-
width: 100
|
|
2273
|
-
|
|
2274
|
-
background: var(--btn-solid-bg)
|
|
2275
|
-
border: 1px solid var(--btn-solid-bg)
|
|
2276
|
-
color: var(--btn-solid-color)
|
|
2277
|
-
}
|
|
2278
|
-
|
|
2279
|
-
button:focus { outline: none; }
|
|
2280
|
-
button:active { transform: translateY(1px); }
|
|
2281
|
-
|
|
2282
|
-
button:hover:not(:disabled) {
|
|
2283
|
-
background: var(--btn-solid-bg-hover)
|
|
2284
|
-
border-color: var(--btn-border-hover)
|
|
2285
|
-
color: var(--btn-solid-color-hover, var(--btn-solid-color))
|
|
2286
|
-
}
|
|
2287
|
-
|
|
2288
|
-
button:active:not(:disabled) { background: var(--btn-solid-bg-active); }
|
|
2289
|
-
|
|
2290
|
-
button:disabled {
|
|
2291
|
-
opacity: 0.5
|
|
2292
|
-
cursor: not-allowed
|
|
2293
|
-
}
|
|
2294
|
-
|
|
2295
|
-
:host([size="xs"]) button { border-radius: var(--_btn-r-tl, 3px) var(--_btn-r-tr, 3px) var(--_btn-r-br, 3px) var(--_btn-r-bl, 3px); }
|
|
2296
|
-
:host([size="sm"]) button { border-radius: var(--_btn-r-tl, 3px) var(--_btn-r-tr, 3px) var(--_btn-r-br, 3px) var(--_btn-r-bl, 3px); }
|
|
2297
|
-
|
|
2298
|
-
/* --- Variants ---
|
|
2299
|
-
|
|
2300
|
-
:host([variant="outlined"]) button {
|
|
2301
|
-
background: transparent
|
|
2302
|
-
border-color: var(--btn-border)
|
|
2303
|
-
color: var(--btn-accent)
|
|
2304
|
-
}
|
|
2305
|
-
|
|
2306
|
-
:host([variant="outlined"]) button:hover:not(:disabled) {
|
|
2307
|
-
background: var(--btn-subtle-bg)
|
|
2308
|
-
border-color: var(--btn-border-hover)
|
|
2309
|
-
color: var(--btn-accent-hover)
|
|
2310
|
-
}
|
|
2311
|
-
|
|
2312
|
-
:host([variant="outlined"]) button:active:not(:disabled) {
|
|
2313
|
-
background: var(--btn-subtle-bg-hover)
|
|
2314
|
-
}
|
|
2315
|
-
|
|
2316
|
-
:host([variant="subtle"]) button {
|
|
2317
|
-
background: var(--btn-subtle-bg)
|
|
2318
|
-
border-color: transparent
|
|
2319
|
-
color: var(--btn-accent)
|
|
2320
|
-
}
|
|
2321
|
-
|
|
2322
|
-
:host([variant="subtle"]) button:hover:not(:disabled) {
|
|
2323
|
-
background: var(--btn-subtle-bg-hover)
|
|
2324
|
-
color: var(--btn-accent-hover)
|
|
2325
|
-
}
|
|
2326
|
-
|
|
2327
|
-
:host([variant="subtle"]) button:active:not(:disabled) {
|
|
2328
|
-
background: var(--btn-subtle-bg-hover)
|
|
2329
|
-
}
|
|
2330
|
-
|
|
2331
|
-
:host([variant="faint"]) button {
|
|
2332
|
-
background: var(--btn-subtle-bg)
|
|
2333
|
-
border-color: var(--btn-border)
|
|
2334
|
-
color: var(--btn-accent)
|
|
2335
|
-
}
|
|
2336
|
-
|
|
2337
|
-
:host([variant="faint"]) button:hover:not(:disabled) {
|
|
2338
|
-
background: var(--btn-subtle-bg-hover)
|
|
2339
|
-
border-color: var(--btn-border-hover)
|
|
2340
|
-
color: var(--btn-accent-hover)
|
|
2341
|
-
}
|
|
2342
|
-
|
|
2343
|
-
:host([variant="faint"]) button:active:not(:disabled) {
|
|
2344
|
-
background: var(--btn-subtle-bg-hover)
|
|
2345
|
-
}
|
|
2346
|
-
|
|
2347
|
-
:host([variant="text"]) button {
|
|
2348
|
-
background: transparent
|
|
2349
|
-
border-color: transparent
|
|
2350
|
-
color: var(--btn-accent)
|
|
2351
|
-
min-width: auto
|
|
2352
|
-
padding-left: 4px
|
|
2353
|
-
padding-right: 4px
|
|
2354
|
-
}
|
|
2355
|
-
|
|
2356
|
-
:host([variant="text"]) button:hover:not(:disabled) {
|
|
2357
|
-
background: var(--btn-subtle-bg)
|
|
2358
|
-
color: var(--btn-accent-hover)
|
|
2359
|
-
}
|
|
2360
|
-
|
|
2361
|
-
:host([variant="text"]) button:active:not(:disabled) {
|
|
2362
|
-
background: var(--btn-subtle-bg-hover)
|
|
2363
|
-
}
|
|
2364
|
-
|
|
2365
|
-
/* Icon-only: single ae-icon child → square compact layout
|
|
2366
|
-
:host([icon-only]) {
|
|
2367
|
-
display: inline-flex
|
|
2368
|
-
}
|
|
2369
|
-
|
|
2370
|
-
:host([icon-only]:not([size])) {
|
|
2371
|
-
font-size: var(--size-m)
|
|
2372
|
-
}
|
|
2373
|
-
|
|
2374
|
-
:host([icon-only]) button {
|
|
2375
|
-
padding: 0
|
|
2376
|
-
min-width: auto
|
|
2377
|
-
width: 2.286em
|
|
2378
|
-
height: 2.286em
|
|
2379
|
-
line-height: 1
|
|
2380
|
-
}
|
|
2381
|
-
|
|
2382
|
-
:host([icon-only]) ::slotted(ae-icon) {
|
|
2383
|
-
font-size: 1.5em
|
|
2384
|
-
}
|
|
2385
|
-
|
|
2386
|
-
:host([active]) button {
|
|
2387
|
-
background: var(--btn-solid-bg-active)
|
|
2388
|
-
border-color: var(--btn-border-hover)
|
|
2389
|
-
color: var(--btn-solid-color-hover, var(--btn-solid-color))
|
|
2390
|
-
}
|
|
2391
|
-
|
|
2392
|
-
.btn-icon {
|
|
2393
|
-
padding: 0
|
|
2394
|
-
min-width: auto
|
|
2395
|
-
width: 2.286em
|
|
2396
|
-
height: 2.286em
|
|
2397
|
-
display: inline-flex
|
|
2398
|
-
align-items: center
|
|
2399
|
-
justify-content: center
|
|
2400
|
-
border-radius: 4px
|
|
2401
|
-
}
|
|
2402
|
-
|
|
2403
|
-
.btn-icon.btn-lg {
|
|
2404
|
-
width: 2.857em
|
|
2405
|
-
height: 2.857em
|
|
2406
|
-
}
|
|
2407
|
-
|
|
2408
|
-
.btn-circle {
|
|
2409
|
-
border-radius: 50
|
|
2410
|
-
}
|
|
2411
|
-
|
|
2412
|
-
:host([block]) {
|
|
2413
|
-
display: block
|
|
2414
|
-
}
|
|
2415
|
-
|
|
2416
|
-
button.btn-loading {
|
|
2417
|
-
position: relative
|
|
2418
|
-
pointer-events: none
|
|
2419
|
-
color: transparent
|
|
2420
|
-
}
|
|
2421
|
-
|
|
2422
|
-
button.btn-loading::before {
|
|
2423
|
-
content: ''
|
|
2424
|
-
position: absolute
|
|
2425
|
-
width: 1em
|
|
2426
|
-
height: 1em
|
|
2427
|
-
border: 2px solid currentColor
|
|
2428
|
-
border-top-color: transparent
|
|
2429
|
-
border-radius: 50
|
|
2430
|
-
animation: btn-spin 0.6s linear infinite
|
|
2431
|
-
color: currentColor
|
|
2432
|
-
opacity: 0.8
|
|
2433
|
-
}
|
|
2434
|
-
|
|
2435
|
-
@keyframes btn-spin {
|
|
2436
|
-
to {
|
|
2437
|
-
transform: rotate(360deg)
|
|
2438
|
-
}
|
|
2439
|
-
}
|
|
2440
|
-
|
|
2441
|
-
.btn-icon-left {
|
|
2442
|
-
margin-right: -2px
|
|
2443
|
-
}
|
|
2444
|
-
|
|
2445
|
-
.btn-icon-right {
|
|
2446
|
-
margin-left: -2px
|
|
2447
|
-
}
|
|
2448
|
-
|
|
2236
|
+
const buttonStyle = `:host {
|
|
2237
|
+
display: inline-block;
|
|
2238
|
+
--btn-solid-bg: var(--color-solid);
|
|
2239
|
+
--btn-solid-bg-hover: var(--color-solid-hover);
|
|
2240
|
+
--btn-solid-bg-active: var(--color-solid-active);
|
|
2241
|
+
--btn-solid-color: var(--color-on-solid);
|
|
2242
|
+
--btn-solid-color-hover: var(--color-on-solid-hover);
|
|
2243
|
+
--btn-border: var(--color-border);
|
|
2244
|
+
--btn-border-hover: var(--color-border-hover);
|
|
2245
|
+
--btn-accent: var(--color-accent);
|
|
2246
|
+
--btn-accent-hover: var(--color-accent-hover);
|
|
2247
|
+
--btn-subtle-bg: var(--color-subtle);
|
|
2248
|
+
--btn-subtle-bg-hover: var(--color-subtle-hover);
|
|
2249
|
+
}
|
|
2250
|
+
|
|
2251
|
+
button {
|
|
2252
|
+
display: inline-flex;
|
|
2253
|
+
align-items: center;
|
|
2254
|
+
justify-content: center;
|
|
2255
|
+
gap: 6px;
|
|
2256
|
+
font-family: inherit;
|
|
2257
|
+
font-weight: 400;
|
|
2258
|
+
text-align: center;
|
|
2259
|
+
white-space: nowrap;
|
|
2260
|
+
vertical-align: middle;
|
|
2261
|
+
user-select: none;
|
|
2262
|
+
cursor: pointer;
|
|
2263
|
+
transition: all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
2264
|
+
outline: none;
|
|
2265
|
+
position: relative;
|
|
2266
|
+
padding: 0.429em 1.071em;
|
|
2267
|
+
font-size: 1em;
|
|
2268
|
+
line-height: 1.5;
|
|
2269
|
+
border-radius: var(--_btn-r-tl, 4px) var(--_btn-r-tr, 4px) var(--_btn-r-br, 4px) var(--_btn-r-bl, 4px);
|
|
2270
|
+
min-width: 4.571em;
|
|
2271
|
+
height: 2.286em;
|
|
2272
|
+
width: 100%;
|
|
2273
|
+
|
|
2274
|
+
background: var(--btn-solid-bg);
|
|
2275
|
+
border: 1px solid var(--btn-solid-bg);
|
|
2276
|
+
color: var(--btn-solid-color);
|
|
2277
|
+
}
|
|
2278
|
+
|
|
2279
|
+
button:focus { outline: none; }
|
|
2280
|
+
button:active { transform: translateY(1px); }
|
|
2281
|
+
|
|
2282
|
+
button:hover:not(:disabled) {
|
|
2283
|
+
background: var(--btn-solid-bg-hover);
|
|
2284
|
+
border-color: var(--btn-border-hover);
|
|
2285
|
+
color: var(--btn-solid-color-hover, var(--btn-solid-color));
|
|
2286
|
+
}
|
|
2287
|
+
|
|
2288
|
+
button:active:not(:disabled) { background: var(--btn-solid-bg-active); }
|
|
2289
|
+
|
|
2290
|
+
button:disabled {
|
|
2291
|
+
opacity: 0.5;
|
|
2292
|
+
cursor: not-allowed;
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
:host([size="xs"]) button { border-radius: var(--_btn-r-tl, 3px) var(--_btn-r-tr, 3px) var(--_btn-r-br, 3px) var(--_btn-r-bl, 3px); }
|
|
2296
|
+
:host([size="sm"]) button { border-radius: var(--_btn-r-tl, 3px) var(--_btn-r-tr, 3px) var(--_btn-r-br, 3px) var(--_btn-r-bl, 3px); }
|
|
2297
|
+
|
|
2298
|
+
/* --- Variants --- */
|
|
2299
|
+
|
|
2300
|
+
:host([variant="outlined"]) button {
|
|
2301
|
+
background: transparent;
|
|
2302
|
+
border-color: var(--btn-border);
|
|
2303
|
+
color: var(--btn-accent);
|
|
2304
|
+
}
|
|
2305
|
+
|
|
2306
|
+
:host([variant="outlined"]) button:hover:not(:disabled) {
|
|
2307
|
+
background: var(--btn-subtle-bg);
|
|
2308
|
+
border-color: var(--btn-border-hover);
|
|
2309
|
+
color: var(--btn-accent-hover);
|
|
2310
|
+
}
|
|
2311
|
+
|
|
2312
|
+
:host([variant="outlined"]) button:active:not(:disabled) {
|
|
2313
|
+
background: var(--btn-subtle-bg-hover);
|
|
2314
|
+
}
|
|
2315
|
+
|
|
2316
|
+
:host([variant="subtle"]) button {
|
|
2317
|
+
background: var(--btn-subtle-bg);
|
|
2318
|
+
border-color: transparent;
|
|
2319
|
+
color: var(--btn-accent);
|
|
2320
|
+
}
|
|
2321
|
+
|
|
2322
|
+
:host([variant="subtle"]) button:hover:not(:disabled) {
|
|
2323
|
+
background: var(--btn-subtle-bg-hover);
|
|
2324
|
+
color: var(--btn-accent-hover);
|
|
2325
|
+
}
|
|
2326
|
+
|
|
2327
|
+
:host([variant="subtle"]) button:active:not(:disabled) {
|
|
2328
|
+
background: var(--btn-subtle-bg-hover);
|
|
2329
|
+
}
|
|
2330
|
+
|
|
2331
|
+
:host([variant="faint"]) button {
|
|
2332
|
+
background: var(--btn-subtle-bg);
|
|
2333
|
+
border-color: var(--btn-border);
|
|
2334
|
+
color: var(--btn-accent);
|
|
2335
|
+
}
|
|
2336
|
+
|
|
2337
|
+
:host([variant="faint"]) button:hover:not(:disabled) {
|
|
2338
|
+
background: var(--btn-subtle-bg-hover);
|
|
2339
|
+
border-color: var(--btn-border-hover);
|
|
2340
|
+
color: var(--btn-accent-hover);
|
|
2341
|
+
}
|
|
2342
|
+
|
|
2343
|
+
:host([variant="faint"]) button:active:not(:disabled) {
|
|
2344
|
+
background: var(--btn-subtle-bg-hover);
|
|
2345
|
+
}
|
|
2346
|
+
|
|
2347
|
+
:host([variant="text"]) button {
|
|
2348
|
+
background: transparent;
|
|
2349
|
+
border-color: transparent;
|
|
2350
|
+
color: var(--btn-accent);
|
|
2351
|
+
min-width: auto;
|
|
2352
|
+
padding-left: 4px;
|
|
2353
|
+
padding-right: 4px;
|
|
2354
|
+
}
|
|
2355
|
+
|
|
2356
|
+
:host([variant="text"]) button:hover:not(:disabled) {
|
|
2357
|
+
background: var(--btn-subtle-bg);
|
|
2358
|
+
color: var(--btn-accent-hover);
|
|
2359
|
+
}
|
|
2360
|
+
|
|
2361
|
+
:host([variant="text"]) button:active:not(:disabled) {
|
|
2362
|
+
background: var(--btn-subtle-bg-hover);
|
|
2363
|
+
}
|
|
2364
|
+
|
|
2365
|
+
/* Icon-only: single ae-icon child → square compact layout */
|
|
2366
|
+
:host([icon-only]) {
|
|
2367
|
+
display: inline-flex;
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
:host([icon-only]:not([size])) {
|
|
2371
|
+
font-size: var(--size-m);
|
|
2372
|
+
}
|
|
2373
|
+
|
|
2374
|
+
:host([icon-only]) button {
|
|
2375
|
+
padding: 0;
|
|
2376
|
+
min-width: auto;
|
|
2377
|
+
width: 2.286em;
|
|
2378
|
+
height: 2.286em;
|
|
2379
|
+
line-height: 1;
|
|
2380
|
+
}
|
|
2381
|
+
|
|
2382
|
+
:host([icon-only]) ::slotted(ae-icon) {
|
|
2383
|
+
font-size: 1.5em;
|
|
2384
|
+
}
|
|
2385
|
+
|
|
2386
|
+
:host([active]) button {
|
|
2387
|
+
background: var(--btn-solid-bg-active);
|
|
2388
|
+
border-color: var(--btn-border-hover);
|
|
2389
|
+
color: var(--btn-solid-color-hover, var(--btn-solid-color));
|
|
2390
|
+
}
|
|
2391
|
+
|
|
2392
|
+
.btn-icon {
|
|
2393
|
+
padding: 0;
|
|
2394
|
+
min-width: auto;
|
|
2395
|
+
width: 2.286em;
|
|
2396
|
+
height: 2.286em;
|
|
2397
|
+
display: inline-flex;
|
|
2398
|
+
align-items: center;
|
|
2399
|
+
justify-content: center;
|
|
2400
|
+
border-radius: 4px;
|
|
2401
|
+
}
|
|
2402
|
+
|
|
2403
|
+
.btn-icon.btn-lg {
|
|
2404
|
+
width: 2.857em;
|
|
2405
|
+
height: 2.857em;
|
|
2406
|
+
}
|
|
2407
|
+
|
|
2408
|
+
.btn-circle {
|
|
2409
|
+
border-radius: 50%;
|
|
2410
|
+
}
|
|
2411
|
+
|
|
2412
|
+
:host([block]) {
|
|
2413
|
+
display: block;
|
|
2414
|
+
}
|
|
2415
|
+
|
|
2416
|
+
button.btn-loading {
|
|
2417
|
+
position: relative;
|
|
2418
|
+
pointer-events: none;
|
|
2419
|
+
color: transparent;
|
|
2420
|
+
}
|
|
2421
|
+
|
|
2422
|
+
button.btn-loading::before {
|
|
2423
|
+
content: '';
|
|
2424
|
+
position: absolute;
|
|
2425
|
+
width: 1em;
|
|
2426
|
+
height: 1em;
|
|
2427
|
+
border: 2px solid currentColor;
|
|
2428
|
+
border-top-color: transparent;
|
|
2429
|
+
border-radius: 50%;
|
|
2430
|
+
animation: btn-spin 0.6s linear infinite;
|
|
2431
|
+
color: currentColor;
|
|
2432
|
+
opacity: 0.8;
|
|
2433
|
+
}
|
|
2434
|
+
|
|
2435
|
+
@keyframes btn-spin {
|
|
2436
|
+
to {
|
|
2437
|
+
transform: rotate(360deg);
|
|
2438
|
+
}
|
|
2439
|
+
}
|
|
2440
|
+
|
|
2441
|
+
.btn-icon-left {
|
|
2442
|
+
margin-right: -2px;
|
|
2443
|
+
}
|
|
2444
|
+
|
|
2445
|
+
.btn-icon-right {
|
|
2446
|
+
margin-left: -2px;
|
|
2447
|
+
}
|
|
2448
|
+
|
|
2449
2449
|
`;
|
|
2450
2450
|
var __create$8 = Object.create;
|
|
2451
2451
|
var __defProp$8 = Object.defineProperty;
|
|
@@ -2576,100 +2576,100 @@ __decorateElement$8(_init$8, 5, "block", _block_dec, Button);
|
|
|
2576
2576
|
__decoratorMetadata$8(_init$8, Button);
|
|
2577
2577
|
__publicField$8(Button, "styles", [styleVariables, sizeCSS, colorCSS, buttonStyle]);
|
|
2578
2578
|
Button.register();
|
|
2579
|
-
const style$4 = ":host {\
|
|
2580
|
-
const style$3 = `:host {
|
|
2581
|
-
display: block
|
|
2582
|
-
|
|
2583
|
-
--dropdown-item-padding: 0.5rem 0.875rem
|
|
2584
|
-
--dropdown-item-bg: transparent
|
|
2585
|
-
--dropdown-item-bg-hover: var(--surface-raised, rgba(0, 0, 0, 0.05))
|
|
2586
|
-
--dropdown-item-bg-active: var(--surface-raised-active, rgba(0, 0, 0, 0.1))
|
|
2587
|
-
--dropdown-item-color: var(--color-text-main, inherit)
|
|
2588
|
-
--dropdown-item-color-disabled: var(--color-text-disabled, rgba(0, 0, 0, 0.35))
|
|
2589
|
-
--dropdown-item-font-size: 0.9375rem
|
|
2590
|
-
--dropdown-item-gap: 0.5rem
|
|
2591
|
-
--dropdown-item-transition: background 0.1s
|
|
2592
|
-
--dropdown-item-border-radius: var(--ae-radius-sm, 4px)
|
|
2593
|
-
}
|
|
2594
|
-
|
|
2595
|
-
.item {
|
|
2596
|
-
display: flex
|
|
2597
|
-
align-items: center
|
|
2598
|
-
gap: var(--dropdown-item-gap)
|
|
2599
|
-
width: 100
|
|
2600
|
-
padding: var(--dropdown-item-padding)
|
|
2601
|
-
font-size: var(--dropdown-item-font-size)
|
|
2602
|
-
font-family: inherit
|
|
2603
|
-
color: var(--dropdown-item-color)
|
|
2604
|
-
background: var(--dropdown-item-bg)
|
|
2605
|
-
border: none
|
|
2606
|
-
border-radius: var(--dropdown-item-border-radius)
|
|
2607
|
-
text-align: left
|
|
2608
|
-
text-decoration: none
|
|
2609
|
-
cursor: pointer
|
|
2610
|
-
user-select: none
|
|
2611
|
-
white-space: nowrap
|
|
2612
|
-
box-sizing: border-box
|
|
2613
|
-
transition: var(--dropdown-item-transition)
|
|
2614
|
-
outline: none
|
|
2615
|
-
}
|
|
2616
|
-
|
|
2617
|
-
.item:hover:not(:disabled):not([aria-disabled="true"]) {
|
|
2618
|
-
background: var(--dropdown-item-bg-hover)
|
|
2619
|
-
}
|
|
2620
|
-
|
|
2621
|
-
.item:active:not(:disabled):not([aria-disabled="true"]) {
|
|
2622
|
-
background: var(--dropdown-item-bg-active)
|
|
2623
|
-
}
|
|
2624
|
-
|
|
2625
|
-
.item:focus-visible {
|
|
2626
|
-
background: var(--dropdown-item-bg-hover)
|
|
2627
|
-
outline: 2px solid var(--color-primary, #0e639c)
|
|
2628
|
-
outline-offset: -2px
|
|
2629
|
-
}
|
|
2630
|
-
|
|
2631
|
-
/* disabled
|
|
2632
|
-
:host([disabled]) .item
|
|
2633
|
-
.item:disabled {
|
|
2634
|
-
color: var(--dropdown-item-color-disabled)
|
|
2635
|
-
cursor: default
|
|
2636
|
-
pointer-events: none
|
|
2637
|
-
}
|
|
2638
|
-
|
|
2639
|
-
/* Active item — current selection, current route, etc.
|
|
2640
|
-
:host([active]) .item {
|
|
2641
|
-
background: var(--dropdown-item-bg-selected, rgba(0, 0, 0, 0.06))
|
|
2642
|
-
color: var(--dropdown-item-color-active, var(--color-primary, #0e639c))
|
|
2643
|
-
font-weight: 500
|
|
2644
|
-
}
|
|
2645
|
-
|
|
2646
|
-
/* Checkbox mode — fixed-width indicator column
|
|
2647
|
-
.check-indicator {
|
|
2648
|
-
display: inline-flex
|
|
2649
|
-
align-items: center
|
|
2650
|
-
justify-content: center
|
|
2651
|
-
width: 1em
|
|
2652
|
-
flex-shrink: 0
|
|
2653
|
-
}
|
|
2654
|
-
|
|
2655
|
-
/* CSS-drawn checkmark (border trick)
|
|
2656
|
-
.check-indicator::after {
|
|
2657
|
-
content: ''
|
|
2658
|
-
display: block
|
|
2659
|
-
width: 0.3em
|
|
2660
|
-
height: 0.55em
|
|
2661
|
-
border-right: 0.125em solid currentColor
|
|
2662
|
-
border-bottom: 0.125em solid currentColor
|
|
2663
|
-
transform: rotate(45deg) translateY(-0.1em)
|
|
2664
|
-
opacity: 0
|
|
2665
|
-
transition: opacity 0.1s
|
|
2666
|
-
}
|
|
2667
|
-
|
|
2668
|
-
:host([checked]) .check-indicator::after {
|
|
2669
|
-
opacity: 1
|
|
2670
|
-
}
|
|
2579
|
+
const style$4 = ":host {\n display: inline-block;\n position: relative;\n\n --dropdown-z-index: 1000;\n --dropdown-bg: var(--surface-overlay, #fff);\n --dropdown-border: 1px solid var(--color-border, rgba(0, 0, 0, 0.12));\n --dropdown-border-radius: var(--ae-radius-md, 6px);\n --dropdown-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);\n --dropdown-min-width: 10rem;\n --dropdown-padding: 0.25rem 0;\n}\n\n.trigger-wrapper {\n display: flex;\n align-items: stretch;\n height: 100%;\n}\n\n/* Internal trigger rendered when `label` prop is set.\n Uses --dropdown-trigger-* variables. Context components (e.g. ae-navbar)\n map their own tokens to these variables via ::slotted(ae-dropdown). */\n.trigger-label {\n display: inline-flex;\n align-items: center;\n height: var(--dropdown-trigger-height, auto);\n padding: 0 var(--dropdown-trigger-padding-x, 0.75rem);\n color: var(--dropdown-trigger-color, inherit);\n background: var(--dropdown-trigger-bg, none);\n border: none;\n border-radius: var(--dropdown-trigger-radius, 0);\n -webkit-appearance: none;\n appearance: none;\n cursor: pointer;\n font: inherit;\n font-size: var(--dropdown-trigger-font-size, inherit);\n white-space: nowrap;\n transition: color 0.15s ease, background-color 0.15s ease;\n outline-offset: 2px;\n}\n\n.trigger-label:hover {\n color: var(--dropdown-trigger-hover-color, inherit);\n background-color: var(--dropdown-trigger-hover-bg, transparent);\n}\n\n:host([disabled]) .trigger-label {\n opacity: 0.5;\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* Bootstrap-style CSS border caret — shadow DOM only, no global injection needed */\n.ae-dropdown-arrow {\n display: inline-block;\n width: 0;\n height: 0;\n margin-left: 0.3em;\n vertical-align: 0.2em;\n flex-shrink: 0;\n}\n.ae-dropdown-arrow--bottom {\n border-top: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--top {\n border-bottom: 0.35em solid;\n border-right: 0.35em solid transparent;\n border-left: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--right {\n border-left: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n.ae-dropdown-arrow--left {\n border-right: 0.35em solid;\n border-top: 0.35em solid transparent;\n border-bottom: 0.35em solid transparent;\n}\n\n.panel {\n display: none;\n position: absolute;\n z-index: var(--dropdown-z-index);\n background: var(--dropdown-bg);\n border: var(--dropdown-border);\n border-radius: var(--dropdown-border-radius);\n box-shadow: var(--dropdown-shadow);\n min-width: var(--dropdown-min-width);\n padding: var(--dropdown-padding);\n box-sizing: border-box;\n /* Prevent panel from being wider than viewport */\n max-width: calc(100vw - 16px);\n}\n\n.panel.open {\n display: block;\n}\n\n/* placement variants */\n.panel.placement-bottom-start {\n top: 100%;\n left: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom-end {\n top: 100%;\n right: 0;\n margin-top: 4px;\n}\n\n.panel.placement-bottom {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-top: 4px;\n}\n\n.panel.placement-top-start {\n bottom: 100%;\n left: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top-end {\n bottom: 100%;\n right: 0;\n margin-bottom: 4px;\n}\n\n.panel.placement-top {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n margin-bottom: 4px;\n}\n\n/* right placements */\n.panel.placement-right-start {\n top: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right-end {\n bottom: 0;\n left: 100%;\n margin-left: 4px;\n}\n\n.panel.placement-right {\n top: 50%;\n left: 100%;\n transform: translateY(-50%);\n margin-left: 4px;\n}\n\n/* left placements */\n.panel.placement-left-start {\n top: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left-end {\n bottom: 0;\n right: 100%;\n margin-right: 4px;\n}\n\n.panel.placement-left {\n top: 50%;\n right: 100%;\n transform: translateY(-50%);\n margin-right: 4px;\n}\n";
|
|
2580
|
+
const style$3 = `:host {
|
|
2581
|
+
display: block;
|
|
2582
|
+
|
|
2583
|
+
--dropdown-item-padding: 0.5rem 0.875rem;
|
|
2584
|
+
--dropdown-item-bg: transparent;
|
|
2585
|
+
--dropdown-item-bg-hover: var(--surface-raised, rgba(0, 0, 0, 0.05));
|
|
2586
|
+
--dropdown-item-bg-active: var(--surface-raised-active, rgba(0, 0, 0, 0.1));
|
|
2587
|
+
--dropdown-item-color: var(--color-text-main, inherit);
|
|
2588
|
+
--dropdown-item-color-disabled: var(--color-text-disabled, rgba(0, 0, 0, 0.35));
|
|
2589
|
+
--dropdown-item-font-size: 0.9375rem;
|
|
2590
|
+
--dropdown-item-gap: 0.5rem;
|
|
2591
|
+
--dropdown-item-transition: background 0.1s;
|
|
2592
|
+
--dropdown-item-border-radius: var(--ae-radius-sm, 4px);
|
|
2593
|
+
}
|
|
2594
|
+
|
|
2595
|
+
.item {
|
|
2596
|
+
display: flex;
|
|
2597
|
+
align-items: center;
|
|
2598
|
+
gap: var(--dropdown-item-gap);
|
|
2599
|
+
width: 100%;
|
|
2600
|
+
padding: var(--dropdown-item-padding);
|
|
2601
|
+
font-size: var(--dropdown-item-font-size);
|
|
2602
|
+
font-family: inherit;
|
|
2603
|
+
color: var(--dropdown-item-color);
|
|
2604
|
+
background: var(--dropdown-item-bg);
|
|
2605
|
+
border: none;
|
|
2606
|
+
border-radius: var(--dropdown-item-border-radius);
|
|
2607
|
+
text-align: left;
|
|
2608
|
+
text-decoration: none;
|
|
2609
|
+
cursor: pointer;
|
|
2610
|
+
user-select: none;
|
|
2611
|
+
white-space: nowrap;
|
|
2612
|
+
box-sizing: border-box;
|
|
2613
|
+
transition: var(--dropdown-item-transition);
|
|
2614
|
+
outline: none;
|
|
2615
|
+
}
|
|
2616
|
+
|
|
2617
|
+
.item:hover:not(:disabled):not([aria-disabled="true"]) {
|
|
2618
|
+
background: var(--dropdown-item-bg-hover);
|
|
2619
|
+
}
|
|
2620
|
+
|
|
2621
|
+
.item:active:not(:disabled):not([aria-disabled="true"]) {
|
|
2622
|
+
background: var(--dropdown-item-bg-active);
|
|
2623
|
+
}
|
|
2624
|
+
|
|
2625
|
+
.item:focus-visible {
|
|
2626
|
+
background: var(--dropdown-item-bg-hover);
|
|
2627
|
+
outline: 2px solid var(--color-primary, #0e639c);
|
|
2628
|
+
outline-offset: -2px;
|
|
2629
|
+
}
|
|
2630
|
+
|
|
2631
|
+
/* disabled */
|
|
2632
|
+
:host([disabled]) .item,
|
|
2633
|
+
.item:disabled {
|
|
2634
|
+
color: var(--dropdown-item-color-disabled);
|
|
2635
|
+
cursor: default;
|
|
2636
|
+
pointer-events: none;
|
|
2637
|
+
}
|
|
2638
|
+
|
|
2639
|
+
/* Active item — current selection, current route, etc. */
|
|
2640
|
+
:host([active]) .item {
|
|
2641
|
+
background: var(--dropdown-item-bg-selected, rgba(0, 0, 0, 0.06));
|
|
2642
|
+
color: var(--dropdown-item-color-active, var(--color-primary, #0e639c));
|
|
2643
|
+
font-weight: 500;
|
|
2644
|
+
}
|
|
2645
|
+
|
|
2646
|
+
/* Checkbox mode — fixed-width indicator column */
|
|
2647
|
+
.check-indicator {
|
|
2648
|
+
display: inline-flex;
|
|
2649
|
+
align-items: center;
|
|
2650
|
+
justify-content: center;
|
|
2651
|
+
width: 1em;
|
|
2652
|
+
flex-shrink: 0;
|
|
2653
|
+
}
|
|
2654
|
+
|
|
2655
|
+
/* CSS-drawn checkmark (border trick) */
|
|
2656
|
+
.check-indicator::after {
|
|
2657
|
+
content: '';
|
|
2658
|
+
display: block;
|
|
2659
|
+
width: 0.3em;
|
|
2660
|
+
height: 0.55em;
|
|
2661
|
+
border-right: 0.125em solid currentColor;
|
|
2662
|
+
border-bottom: 0.125em solid currentColor;
|
|
2663
|
+
transform: rotate(45deg) translateY(-0.1em);
|
|
2664
|
+
opacity: 0;
|
|
2665
|
+
transition: opacity 0.1s;
|
|
2666
|
+
}
|
|
2667
|
+
|
|
2668
|
+
:host([checked]) .check-indicator::after {
|
|
2669
|
+
opacity: 1;
|
|
2670
|
+
}
|
|
2671
2671
|
`;
|
|
2672
|
-
const style$2 = ":host {\
|
|
2672
|
+
const style$2 = ":host {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n font-size: 20px;\n width: 1em;\n height: 1em;\n color: inherit;\n flex-shrink: 0;\n line-height: 0;\n vertical-align: middle;\n}\n\n:host([color]) {\n color: var(--color-solid);\n}\n\n.icon-svg {\n display: block;\n width: 100%;\n height: 100%;\n fill: var(--icon-fill, currentColor);\n stroke: var(--icon-stroke, none);\n stroke-width: var(--icon-stroke-width, 2);\n stroke-linecap: var(--icon-stroke-linecap, round);\n stroke-linejoin: var(--icon-stroke-linejoin, round);\n pointer-events: none;\n overflow: visible;\n}\n";
|
|
2673
2673
|
const defaultViewBox = "0 0 24 24";
|
|
2674
2674
|
class IconRegistry {
|
|
2675
2675
|
static add(icons) {
|
|
@@ -3168,7 +3168,7 @@ __publicField$5(DropdownButton, "styles", [
|
|
|
3168
3168
|
".caret--left { border-right: 0.35em solid; border-top: 0.35em solid transparent; border-bottom: 0.35em solid transparent; }"
|
|
3169
3169
|
]);
|
|
3170
3170
|
DropdownButton.register();
|
|
3171
|
-
const buttonGroupStyle = ":host {\
|
|
3171
|
+
const buttonGroupStyle = ":host {\n display: inline-flex;\n align-items: stretch;\n gap: 8px;\n}\n\n:host([block]) {\n display: flex;\n width: 100%;\n}\n\n:host([block]) ::slotted(ae-button) {\n flex: 1;\n}\n\n:host([compact]) {\n gap: 0;\n}\n\n/* Raise hovered/focused button so its border shows above neighbours */\n:host([compact]) ::slotted(ae-button:hover),\n:host([compact]) ::slotted(ae-button:focus-within) {\n position: relative;\n z-index: 1;\n}\n";
|
|
3172
3172
|
class ButtonGroup extends AeicoComponent {
|
|
3173
3173
|
constructor() {
|
|
3174
3174
|
super(...arguments);
|
|
@@ -3238,7 +3238,7 @@ __publicField(ButtonGroup, "props", {
|
|
|
3238
3238
|
});
|
|
3239
3239
|
__publicField(ButtonGroup, "styles", [styleVariables, buttonGroupStyle]);
|
|
3240
3240
|
ButtonGroup.register();
|
|
3241
|
-
const badgeStyle = ':host {\
|
|
3241
|
+
const badgeStyle = ':host {\n display: inline-flex;\n align-items: center;\n --badge-solid-bg: var(--color-solid);\n --badge-solid-color: var(--color-on-solid);\n --badge-border: var(--color-border);\n --badge-accent: var(--color-accent);\n --badge-subtle-bg: var(--color-bg-subtle);\n --badge-subtle-color: var(--color-text-subtle);\n --badge-subtle-border: var(--color-border-subtle);\n}\n\n.badge {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n font-family: inherit;\n font-weight: 500;\n white-space: nowrap;\n vertical-align: middle;\n line-height: 1.2;\n font-size: 1em;\n padding: 0.15em 0.6em;\n border-radius: 4px;\n border: 1px solid var(--badge-solid-bg);\n background: var(--badge-solid-bg);\n color: var(--badge-solid-color);\n}\n\n/* Default (no [variant]) = filled */\n\n/* --- Variants --- */\n\n:host([variant="outlined"]) .badge {\n background: transparent;\n border-color: var(--badge-border);\n color: var(--badge-accent);\n}\n\n:host([variant="faint"]) .badge {\n background: var(--badge-subtle-bg);\n border-color: var(--badge-subtle-border);\n color: var(--badge-subtle-color);\n}\n\n:host([variant="subtle"]) .badge {\n background: var(--badge-subtle-bg);\n border-color: transparent;\n color: var(--badge-subtle-color);\n}\n\n:host([variant="text"]) .badge {\n background: transparent;\n border-color: transparent;\n color: var(--badge-accent);\n padding-left: 0;\n padding-right: 0;\n}\n\n:host([pill]) .badge {\n border-radius: 999px;\n}\n\n/* Icon slots */\n::slotted(ae-icon) {\n font-size: 1.1em;\n}\n';
|
|
3242
3242
|
var __create$4 = Object.create;
|
|
3243
3243
|
var __defProp$4 = Object.defineProperty;
|
|
3244
3244
|
var __getOwnPropDesc$4 = Object.getOwnPropertyDescriptor;
|
|
@@ -3315,110 +3315,110 @@ __decorateElement$4(_init$4, 4, "pill", _pill_dec, Badge, _pill);
|
|
|
3315
3315
|
__decoratorMetadata$4(_init$4, Badge);
|
|
3316
3316
|
__publicField$4(Badge, "styles", [styleVariables, sizeCSS, colorCSS, badgeStyle]);
|
|
3317
3317
|
Badge.register();
|
|
3318
|
-
const alertStyle = `.alert {
|
|
3319
|
-
position: relative
|
|
3320
|
-
padding: 12px 16px
|
|
3321
|
-
margin-bottom: 12px
|
|
3322
|
-
border-radius: 4px
|
|
3323
|
-
font-size: 12px
|
|
3324
|
-
line-height: 1.6
|
|
3325
|
-
background-color: var(--alert-solid-bg)
|
|
3326
|
-
color: var(--alert-solid-color)
|
|
3327
|
-
border: 1px solid var(--alert-solid-bg)
|
|
3328
|
-
}
|
|
3329
|
-
|
|
3330
|
-
.alert:last-child {
|
|
3331
|
-
margin-bottom: 0
|
|
3332
|
-
}
|
|
3333
|
-
|
|
3334
|
-
:host {
|
|
3335
|
-
--color-solid: var(--color-primary)
|
|
3336
|
-
--color-on-solid: var(--color-text-main)
|
|
3337
|
-
--color-border: var(--color-primary)
|
|
3338
|
-
--color-bg-subtle: var(--color-primary-bg-subtle)
|
|
3339
|
-
--color-text-subtle: var(--color-primary-text-emphasis)
|
|
3340
|
-
--color-border-subtle: var(--color-primary-border-subtle)
|
|
3341
|
-
|
|
3342
|
-
--alert-solid-bg: var(--color-solid)
|
|
3343
|
-
--alert-solid-color: var(--color-on-solid)
|
|
3344
|
-
--alert-border: var(--color-border)
|
|
3345
|
-
--alert-subtle-bg: var(--color-bg-subtle)
|
|
3346
|
-
--alert-subtle-color: var(--color-text-subtle)
|
|
3347
|
-
--alert-subtle-border:var(--color-border-subtle)
|
|
3348
|
-
}
|
|
3349
|
-
|
|
3350
|
-
|
|
3351
|
-
:host([variant="faint"]) .alert {
|
|
3352
|
-
background-color: var(--alert-subtle-bg)
|
|
3353
|
-
color: var(--alert-subtle-color)
|
|
3354
|
-
border-color: var(--alert-subtle-border)
|
|
3355
|
-
}
|
|
3356
|
-
|
|
3357
|
-
:host([variant="subtle"]) .alert {
|
|
3358
|
-
background-color: var(--alert-subtle-bg)
|
|
3359
|
-
color: var(--alert-subtle-color)
|
|
3360
|
-
border-color: transparent
|
|
3361
|
-
}
|
|
3362
|
-
|
|
3363
|
-
:host([variant="filled"]) .alert {
|
|
3364
|
-
background-color: var(--alert-solid-bg)
|
|
3365
|
-
color: var(--alert-solid-color)
|
|
3366
|
-
border-color: var(--alert-solid-bg)
|
|
3367
|
-
}
|
|
3368
|
-
|
|
3369
|
-
:host([variant="outlined"]) .alert {
|
|
3370
|
-
background-color: transparent
|
|
3371
|
-
color: var(--alert-subtle-color)
|
|
3372
|
-
border-color: var(--alert-border)
|
|
3373
|
-
}
|
|
3374
|
-
|
|
3375
|
-
:host([dismissible]) .alert {
|
|
3376
|
-
padding-right: 40px
|
|
3377
|
-
}
|
|
3378
|
-
|
|
3379
|
-
:host([icon]) .alert {
|
|
3380
|
-
display: flex
|
|
3381
|
-
align-items: flex-start
|
|
3382
|
-
gap: 10px
|
|
3383
|
-
}
|
|
3384
|
-
|
|
3385
|
-
:host([icon]) .alert::before {
|
|
3386
|
-
content: ''
|
|
3387
|
-
flex-shrink: 0
|
|
3388
|
-
width: 16px
|
|
3389
|
-
height: 16px
|
|
3390
|
-
margin-top: 2px
|
|
3391
|
-
}
|
|
3392
|
-
|
|
3393
|
-
.alert-close {
|
|
3394
|
-
position: absolute
|
|
3395
|
-
top: 50
|
|
3396
|
-
right: 12px
|
|
3397
|
-
transform: translateY(-50%)
|
|
3398
|
-
background: transparent
|
|
3399
|
-
border: none
|
|
3400
|
-
color: inherit
|
|
3401
|
-
opacity: 0.6
|
|
3402
|
-
cursor: pointer
|
|
3403
|
-
padding: 4px
|
|
3404
|
-
font-size: 18px
|
|
3405
|
-
line-height: 1
|
|
3406
|
-
transition: opacity 0.15s
|
|
3407
|
-
}
|
|
3408
|
-
|
|
3409
|
-
.alert-close:hover {
|
|
3410
|
-
opacity: 1
|
|
3411
|
-
}
|
|
3412
|
-
|
|
3413
|
-
:host([size="sm"]) .alert {
|
|
3414
|
-
padding: 8px 12px
|
|
3415
|
-
font-size: 11px
|
|
3416
|
-
}
|
|
3417
|
-
|
|
3418
|
-
:host([size="lg"]) .alert {
|
|
3419
|
-
padding: 16px 20px
|
|
3420
|
-
font-size: 13px
|
|
3421
|
-
}
|
|
3318
|
+
const alertStyle = `.alert {
|
|
3319
|
+
position: relative;
|
|
3320
|
+
padding: 12px 16px;
|
|
3321
|
+
margin-bottom: 12px;
|
|
3322
|
+
border-radius: 4px;
|
|
3323
|
+
font-size: 12px;
|
|
3324
|
+
line-height: 1.6;
|
|
3325
|
+
background-color: var(--alert-solid-bg);
|
|
3326
|
+
color: var(--alert-solid-color);
|
|
3327
|
+
border: 1px solid var(--alert-solid-bg);
|
|
3328
|
+
}
|
|
3329
|
+
|
|
3330
|
+
.alert:last-child {
|
|
3331
|
+
margin-bottom: 0;
|
|
3332
|
+
}
|
|
3333
|
+
|
|
3334
|
+
:host {
|
|
3335
|
+
--color-solid: var(--color-primary);
|
|
3336
|
+
--color-on-solid: var(--color-text-main);
|
|
3337
|
+
--color-border: var(--color-primary);
|
|
3338
|
+
--color-bg-subtle: var(--color-primary-bg-subtle);
|
|
3339
|
+
--color-text-subtle: var(--color-primary-text-emphasis);
|
|
3340
|
+
--color-border-subtle: var(--color-primary-border-subtle);
|
|
3341
|
+
|
|
3342
|
+
--alert-solid-bg: var(--color-solid);
|
|
3343
|
+
--alert-solid-color: var(--color-on-solid);
|
|
3344
|
+
--alert-border: var(--color-border);
|
|
3345
|
+
--alert-subtle-bg: var(--color-bg-subtle);
|
|
3346
|
+
--alert-subtle-color: var(--color-text-subtle);
|
|
3347
|
+
--alert-subtle-border:var(--color-border-subtle);
|
|
3348
|
+
}
|
|
3349
|
+
|
|
3350
|
+
|
|
3351
|
+
:host([variant="faint"]) .alert {
|
|
3352
|
+
background-color: var(--alert-subtle-bg);
|
|
3353
|
+
color: var(--alert-subtle-color);
|
|
3354
|
+
border-color: var(--alert-subtle-border);
|
|
3355
|
+
}
|
|
3356
|
+
|
|
3357
|
+
:host([variant="subtle"]) .alert {
|
|
3358
|
+
background-color: var(--alert-subtle-bg);
|
|
3359
|
+
color: var(--alert-subtle-color);
|
|
3360
|
+
border-color: transparent;
|
|
3361
|
+
}
|
|
3362
|
+
|
|
3363
|
+
:host([variant="filled"]) .alert {
|
|
3364
|
+
background-color: var(--alert-solid-bg);
|
|
3365
|
+
color: var(--alert-solid-color);
|
|
3366
|
+
border-color: var(--alert-solid-bg);
|
|
3367
|
+
}
|
|
3368
|
+
|
|
3369
|
+
:host([variant="outlined"]) .alert {
|
|
3370
|
+
background-color: transparent;
|
|
3371
|
+
color: var(--alert-subtle-color);
|
|
3372
|
+
border-color: var(--alert-border);
|
|
3373
|
+
}
|
|
3374
|
+
|
|
3375
|
+
:host([dismissible]) .alert {
|
|
3376
|
+
padding-right: 40px;
|
|
3377
|
+
}
|
|
3378
|
+
|
|
3379
|
+
:host([icon]) .alert {
|
|
3380
|
+
display: flex;
|
|
3381
|
+
align-items: flex-start;
|
|
3382
|
+
gap: 10px;
|
|
3383
|
+
}
|
|
3384
|
+
|
|
3385
|
+
:host([icon]) .alert::before {
|
|
3386
|
+
content: '';
|
|
3387
|
+
flex-shrink: 0;
|
|
3388
|
+
width: 16px;
|
|
3389
|
+
height: 16px;
|
|
3390
|
+
margin-top: 2px;
|
|
3391
|
+
}
|
|
3392
|
+
|
|
3393
|
+
.alert-close {
|
|
3394
|
+
position: absolute;
|
|
3395
|
+
top: 50%;
|
|
3396
|
+
right: 12px;
|
|
3397
|
+
transform: translateY(-50%);
|
|
3398
|
+
background: transparent;
|
|
3399
|
+
border: none;
|
|
3400
|
+
color: inherit;
|
|
3401
|
+
opacity: 0.6;
|
|
3402
|
+
cursor: pointer;
|
|
3403
|
+
padding: 4px;
|
|
3404
|
+
font-size: 18px;
|
|
3405
|
+
line-height: 1;
|
|
3406
|
+
transition: opacity 0.15s;
|
|
3407
|
+
}
|
|
3408
|
+
|
|
3409
|
+
.alert-close:hover {
|
|
3410
|
+
opacity: 1;
|
|
3411
|
+
}
|
|
3412
|
+
|
|
3413
|
+
:host([size="sm"]) .alert {
|
|
3414
|
+
padding: 8px 12px;
|
|
3415
|
+
font-size: 11px;
|
|
3416
|
+
}
|
|
3417
|
+
|
|
3418
|
+
:host([size="lg"]) .alert {
|
|
3419
|
+
padding: 16px 20px;
|
|
3420
|
+
font-size: 13px;
|
|
3421
|
+
}
|
|
3422
3422
|
`;
|
|
3423
3423
|
class Alert extends AeicoComponent {
|
|
3424
3424
|
constructor() {
|
|
@@ -3474,7 +3474,7 @@ __publicField(Alert, "props", {
|
|
|
3474
3474
|
__publicField(Alert, "useStyles", ["alert"]);
|
|
3475
3475
|
__publicField(Alert, "styles", [styleVariables, colorCSS, alertStyle]);
|
|
3476
3476
|
Alert.register();
|
|
3477
|
-
const style$1 = ":host {\
|
|
3477
|
+
const style$1 = ":host {\n display: contents;\n}\n\ndialog {\n display: none;\n flex-direction: column;\n border: none;\n border-radius: 8px;\n padding: 0;\n max-width: min(90vw, 600px);\n max-height: 90vh;\n background: var(--surface-overlay);\n color: var(--color-text-main);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);\n overflow: hidden;\n}\n\ndialog[open] {\n display: flex;\n animation: dialog-slide-in 0.2s ease;\n}\n\ndialog::backdrop {\n background: var(--color-overlay);\n animation: dialog-backdrop-in 0.2s ease;\n}\n\n@keyframes dialog-backdrop-in {\n from { opacity: 0; }\n to { opacity: 1; }\n}\n\n@keyframes dialog-slide-in {\n from {\n opacity: 0;\n transform: scale(0.96) translateY(-8px);\n }\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\nheader {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 16px 20px;\n border-bottom: 1px solid var(--border-subtle);\n flex-shrink: 0;\n}\n\n.label {\n flex: 1;\n font-size: var(--size-m, 1rem);\n font-weight: 500;\n margin: 0;\n color: var(--color-text-main);\n}\n\n.close-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 28px;\n height: 28px;\n padding: 0;\n border: none;\n border-radius: 4px;\n background: transparent;\n color: var(--color-text-muted);\n font-size: 18px;\n line-height: 1;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n}\n\n.close-btn:hover {\n background: var(--border-subtle);\n color: var(--color-text-main);\n}\n\n.body {\n flex: 1;\n overflow-y: auto;\n padding: 20px;\n}\n\nfooter {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 8px;\n padding: 12px 20px;\n border-top: 1px solid var(--border-subtle);\n flex-shrink: 0;\n}\n\n::slotted([data-align-left]) {\n margin-right: auto;\n}\n";
|
|
3478
3478
|
class Dialog extends AeicoComponent {
|
|
3479
3479
|
constructor() {
|
|
3480
3480
|
super(...arguments);
|
|
@@ -3609,7 +3609,7 @@ __publicField(IconButton, "props", {
|
|
|
3609
3609
|
});
|
|
3610
3610
|
__publicField(IconButton, "styles", [":host { display: contents; }"]);
|
|
3611
3611
|
IconButton.register();
|
|
3612
|
-
const tabsStyle = ':host {\
|
|
3612
|
+
const tabsStyle = ':host {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n[part="tab-nav"] {\n display: flex;\n flex-shrink: 0;\n border-bottom: 1px solid var(--ae-tabs-border-color, var(--border-default));\n}\n\n[part="panels"] {\n flex: 1;\n overflow: auto;\n}\n';
|
|
3613
3613
|
class Tabs extends AeicoComponent {
|
|
3614
3614
|
constructor() {
|
|
3615
3615
|
super(...arguments);
|
|
@@ -3710,7 +3710,7 @@ __publicField(Tabs, "props", {
|
|
|
3710
3710
|
});
|
|
3711
3711
|
__publicField(Tabs, "styles", [styleVariables, tabsStyle]);
|
|
3712
3712
|
Tabs.register();
|
|
3713
|
-
const tabStyle = ":host {\
|
|
3713
|
+
const tabStyle = ":host {\n display: inline-flex;\n cursor: pointer;\n margin-bottom: -1px;\n}\n\nbutton {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 8px 16px;\n background: none;\n border: none;\n border-bottom: 2px solid transparent;\n cursor: pointer;\n font-size: inherit;\n font-family: inherit;\n color: var(--ae-tab-color, #909090);\n font-size: var(--ae-tab-font-size, inherit);\n transition: color 0.15s, border-color 0.15s;\n outline: none;\n white-space: nowrap;\n user-select: none;\n}\n\nbutton:hover {\n color: var(--ae-tab-hover-color, var(--color-primary));\n}\n\nbutton:focus-visible {\n outline: 2px solid var(--color-primary);\n outline-offset: -2px;\n}\n\n:host([active]) button {\n color: var(--ae-tab-active-color, var(--color-primary));\n border-bottom-color: var(--ae-tab-active-color, var(--color-primary));\n}\n\n:host([disabled]) button {\n opacity: 0.4;\n cursor: not-allowed;\n pointer-events: none;\n}\n";
|
|
3714
3714
|
class Tab extends AeicoComponent {
|
|
3715
3715
|
constructor() {
|
|
3716
3716
|
super(...arguments);
|
|
@@ -3754,7 +3754,7 @@ __publicField(Tab, "props", {
|
|
|
3754
3754
|
});
|
|
3755
3755
|
__publicField(Tab, "styles", [tabStyle]);
|
|
3756
3756
|
Tab.register();
|
|
3757
|
-
const tabPanelStyle = ":host {\
|
|
3757
|
+
const tabPanelStyle = ":host {\n display: none;\n padding: 16px 0;\n}\n\n:host([active]) {\n display: block;\n}\n";
|
|
3758
3758
|
class TabPanel extends AeicoComponent {
|
|
3759
3759
|
render() {
|
|
3760
3760
|
return aeico.html(({ slot }) => {
|
|
@@ -3764,7 +3764,7 @@ class TabPanel extends AeicoComponent {
|
|
|
3764
3764
|
}
|
|
3765
3765
|
__publicField(TabPanel, "styles", [tabPanelStyle]);
|
|
3766
3766
|
TabPanel.register();
|
|
3767
|
-
const style = ":host {\
|
|
3767
|
+
const style = ":host {\n display: block;\n width: 100%;\n height: var(--thickness, 1px);\n flex-shrink: 0;\n\n /* Override colorCSS default --color-border from gray to the subtle border token */\n --color-border: var(--border-default);\n\n background: var(--color-border);\n}\n\n:host([vertical]) {\n display: inline-block;\n width: var(--thickness, 1px);\n height: 1lh;\n vertical-align: middle;\n}\n";
|
|
3768
3768
|
var __create$3 = Object.create;
|
|
3769
3769
|
var __defProp$3 = Object.defineProperty;
|
|
3770
3770
|
var __getOwnPropDesc$3 = Object.getOwnPropertyDescriptor;
|
|
@@ -3837,7 +3837,7 @@ __decoratorMetadata$3(_init$3, Divider);
|
|
|
3837
3837
|
__publicField$3(Divider, "tagName", "divider");
|
|
3838
3838
|
__publicField$3(Divider, "styles", [styleVariables, colorCSS, style]);
|
|
3839
3839
|
Divider.register();
|
|
3840
|
-
const cardStyle = ':host {\
|
|
3840
|
+
const cardStyle = ':host {\n display: block;\n\n --card-bg: var(--color-bg-subtle);\n --card-color: var(--color-text-subtle);\n --card-border: var(--color-border-subtle);\n --card-divider: var(--color-border-subtle);\n}\n\n:host([variant="faint"]) {\n --card-bg: var(--color-bg-subtle);\n --card-color: var(--color-text-subtle);\n --card-border: var(--color-border-subtle);\n --card-divider: var(--color-border-subtle);\n}\n\n:host([variant="subtle"]) {\n --card-border: transparent;\n --card-divider: transparent;\n}\n\n:host([variant="filled"]) {\n --card-bg: var(--color-solid);\n --card-color: var(--color-on-solid);\n --card-border: var(--color-solid);\n --card-divider: color-mix(in srgb, var(--color-solid), black 15%);\n}\n\n:host([variant="outlined"]) {\n --card-bg: transparent;\n --card-color: var(--color-text-subtle);\n --card-border: var(--color-border);\n --card-divider: var(--color-border-subtle);\n}\n\n.card {\n border: 1px solid var(--card-border);\n border-radius: 8px;\n background: var(--card-bg);\n color: var(--card-color);\n overflow: hidden;\n}\n\n.header,\n.footer {\n display: none;\n padding: 10px 16px;\n font-size: 14px;\n font-weight: 500;\n}\n\n:host([has-header]) .header {\n display: block;\n border-bottom: 1px solid var(--card-divider);\n}\n\n:host([has-footer]) .footer {\n display: block;\n border-top: 1px solid var(--card-divider);\n}\n\n.body {\n padding: 16px;\n}\n';
|
|
3841
3841
|
var __create$2 = Object.create;
|
|
3842
3842
|
var __defProp$2 = Object.defineProperty;
|
|
3843
3843
|
var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
|
|
@@ -3923,7 +3923,7 @@ __decoratorMetadata$2(_init$2, Card);
|
|
|
3923
3923
|
__publicField$2(Card, "tagName", "card");
|
|
3924
3924
|
__publicField$2(Card, "styles", [styleVariables, colorCSS, cardStyle]);
|
|
3925
3925
|
Card.register();
|
|
3926
|
-
const navbarStyle = ':host {\
|
|
3926
|
+
const navbarStyle = ':host {\n /* layout — padding lives in .inner so document * { padding:0 } cannot override it */\n display: block;\n position: static;\n top: auto;\n z-index: var(--ae-navbar-z-index, 100);\n box-sizing: border-box;\n height: var(--ae-navbar-height, 3.25rem);\n border-radius: var(--ae-navbar-radius, 0);\n\n /* color */\n background: var(--ae-navbar-bg, var(--surface-base));\n color: var(--ae-navbar-color, var(--color-text-main));\n border-bottom: var(--ae-navbar-border-width, 1px) solid var(--ae-navbar-border-color, var(--border-default));\n box-shadow: var(--ae-navbar-shadow, none);\n\n /* layout tokens — declared here so they are clearly part of the public API */\n --ae-navbar-radius: 0;\n /* Default padding-x references the global layout token so ae-navbar content\n automatically aligns with .container / .container-fluid in light DOM.\n Override with --ae-navbar-padding-x to decouple if needed. */\n --ae-navbar-padding-x: var(--container-padding-x, 1.5rem);\n --ae-navbar-gap: 0.5rem;\n\n /* link style tokens — text mode defaults.\n CSS custom properties inherit into slotted content, so\n ::slotted(a[slot="start"]) can reference --ae-navbar-height. */\n --ae-navbar-link-color: inherit;\n --ae-navbar-link-font-size: inherit;\n --ae-navbar-link-padding-x: 0.75rem; /* horizontal padding only; height fills vertically */\n --ae-navbar-link-radius: 0;\n --ae-navbar-link-hover-color: var(--color-text-link-hover);\n --ae-navbar-link-hover-bg: transparent;\n --ae-navbar-link-active-color: var(--color-text-link);\n --ae-navbar-link-active-font-weight: 600;\n}\n\n:host([sticky]) {\n position: sticky;\n top: 0;\n}\n\n:host([color]) {\n --ae-navbar-bg: var(--color-solid);\n --ae-navbar-color: var(--color-on-solid);\n --ae-navbar-border-color: transparent;\n --ae-navbar-link-hover-color: var(--color-on-solid);\n --ae-navbar-link-active-color: var(--color-on-solid);\n}\n\n/* block preset: hover shows a subtle filled block */\n:host([appearance="block"]) {\n --ae-navbar-link-hover-bg: var(--color-bg-subtle);\n --ae-navbar-link-hover-color: inherit;\n}\n\n/* block preset on colored navbar: use semi-transparent white */\n:host([color][appearance="block"]) {\n --ae-navbar-link-hover-bg: rgba(255, 255, 255, 0.15);\n --ae-navbar-link-hover-color: var(--color-on-solid);\n}\n\n.inner {\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 var(--ae-navbar-padding-x);\n gap: var(--ae-navbar-gap);\n box-sizing: border-box;\n}\n\n[part="brand"] {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n}\n\n/* nav wraps start + end; takes all remaining space */\n[part="nav"] {\n flex: 1 1 auto;\n display: flex;\n align-self: stretch; /* stretch to host height so children can fill it */\n align-items: stretch;\n min-width: 0;\n}\n\n[part="start"],\n[part="end"] {\n flex: 0 0 auto;\n display: flex;\n align-self: stretch;\n}\n\n[part="start"] {\n align-items: stretch; /* slotted <a> will stretch to full height */\n gap: var(--ae-navbar-start-gap, 0);\n}\n\n[part="end"] {\n align-items: center; /* buttons / avatars stay vertically centred */\n gap: var(--ae-navbar-end-gap, 0.5rem);\n margin-left: auto;\n}\n\n/* hamburger — hidden on desktop */\n[part="hamburger"] {\n display: none;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 5px;\n flex-shrink: 0;\n width: var(--ae-navbar-hamburger-size, 2rem);\n height: var(--ae-navbar-hamburger-size, 2rem);\n margin-left: auto;\n padding: 0;\n background: none;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n color: var(--ae-navbar-hamburger-color, inherit);\n}\n\n[part="hamburger"]:hover {\n background: color-mix(in srgb, currentColor 10%, transparent);\n}\n\n[part="hamburger"] span {\n display: block;\n width: 18px;\n height: 2px;\n background: currentColor;\n border-radius: 1px;\n transition: transform 0.2s ease, opacity 0.2s ease;\n}\n\n/* Brand link — sensible defaults, no full-height stretch */\n::slotted(a[slot="brand"]) {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-weight: 700;\n font-size: 1.05rem;\n text-decoration: none;\n white-space: nowrap;\n}\n\n/* Nav links (start / end slots) — fill full navbar height for block hover effect */\n::slotted(a[slot="start"]),\n::slotted(a[slot="end"]) {\n display: inline-flex;\n align-items: center;\n height: var(--ae-navbar-height, 3.25rem); /* full-height hover area */\n /* !important overrides document-level * { padding: 0 } reset */\n padding: 0 var(--ae-navbar-link-padding-x) !important;\n border-radius: var(--ae-navbar-link-radius);\n color: var(--ae-navbar-link-color);\n font-size: var(--ae-navbar-link-font-size);\n text-decoration: none;\n white-space: nowrap;\n transition: color 0.15s ease, background-color 0.15s ease;\n outline-offset: 2px;\n}\n\n::slotted(a[slot="start"]:hover),\n::slotted(a[slot="end"]:hover) {\n color: var(--ae-navbar-link-hover-color);\n background-color: var(--ae-navbar-link-hover-bg);\n}\n\n::slotted(a[slot="start"][aria-current="page"]),\n::slotted(a[slot="end"][aria-current="page"]) {\n color: var(--ae-navbar-link-active-color);\n font-weight: var(--ae-navbar-link-active-font-weight);\n}\n\n/* ae-dropdown inside navbar — map navbar tokens to dropdown trigger API */\n::slotted(ae-dropdown) {\n align-self: stretch;\n --dropdown-trigger-height: 100%;\n --dropdown-trigger-padding-x: var(--ae-navbar-link-padding-x);\n --dropdown-trigger-color: var(--ae-navbar-link-color);\n --dropdown-trigger-bg: none;\n --dropdown-trigger-radius: var(--ae-navbar-link-radius);\n --dropdown-trigger-font-size: var(--ae-navbar-link-font-size);\n --dropdown-trigger-hover-color: var(--ae-navbar-link-hover-color);\n --dropdown-trigger-hover-bg: var(--ae-navbar-link-hover-bg);\n}\n\n@media (max-width: 768px) {\n /* collapse the nav container */\n [part="nav"] {\n display: none;\n position: absolute;\n top: 100%;\n left: 0;\n right: 0;\n flex-direction: column;\n align-items: stretch;\n gap: 0;\n padding: 0.5rem 0;\n background: var(--ae-navbar-mobile-bg, var(--ae-navbar-bg, var(--surface-base)));\n border-bottom: 1px solid var(--ae-navbar-border-color, var(--border-default));\n box-shadow: var(--ae-navbar-mobile-shadow, 0 4px 12px rgba(0, 0, 0, 0.1));\n z-index: 1;\n }\n\n :host([open]) [part="nav"] {\n display: flex;\n }\n\n /* stack start/end vertically inside the panel */\n [part="start"],\n [part="end"] {\n flex-direction: column;\n align-items: flex-start;\n align-self: auto;\n gap: 0;\n margin-left: 0;\n width: 100%;\n }\n\n /* Mobile: links revert to auto height and add vertical padding */\n ::slotted(a[slot="start"]),\n ::slotted(a[slot="end"]) {\n height: auto;\n width: 100%;\n padding: 0.75rem var(--ae-navbar-link-padding-x);\n border-radius: 0;\n }\n\n /* show hamburger */\n [part="hamburger"] {\n display: flex;\n }\n\n /* hamburger → × animation */\n :host([open]) [part="hamburger"] span:nth-child(1) {\n transform: translateY(7px) rotate(45deg);\n }\n\n :host([open]) [part="hamburger"] span:nth-child(2) {\n opacity: 0;\n transform: scaleX(0);\n }\n\n :host([open]) [part="hamburger"] span:nth-child(3) {\n transform: translateY(-7px) rotate(-45deg);\n }\n}\n';
|
|
3927
3927
|
var __create$1 = Object.create;
|
|
3928
3928
|
var __defProp$1 = Object.defineProperty;
|
|
3929
3929
|
var __getOwnPropDesc$1 = Object.getOwnPropertyDescriptor;
|
|
@@ -4059,7 +4059,7 @@ __decoratorMetadata$1(_init$1, Navbar);
|
|
|
4059
4059
|
__publicField$1(Navbar, "tagName", "navbar");
|
|
4060
4060
|
__publicField$1(Navbar, "styles", [styleVariables, colorCSS, navbarStyle]);
|
|
4061
4061
|
Navbar.register();
|
|
4062
|
-
const detailStyle = ':host {\
|
|
4062
|
+
const detailStyle = ':host {\n display: block;\n\n --detail-bg: var(--color-solid);\n --detail-color: var(--color-on-solid);\n --detail-border: var(--color-solid);\n --detail-header-bg: color-mix(in srgb, var(--color-solid), black 10%);\n --detail-radius: 6px;\n}\n\n:host([variant="faint"]) {\n --detail-bg: var(--color-bg-subtle);\n --detail-color: var(--color-text-subtle);\n --detail-border: var(--color-border-subtle);\n --detail-header-bg: var(--color-bg-subtle);\n}\n\n:host([variant="subtle"]) {\n --detail-bg: transparent;\n --detail-color: var(--color-text-main);\n --detail-border: transparent;\n --detail-header-bg: transparent;\n}\n\n:host([variant="filled"]) {\n --detail-bg: var(--color-solid);\n --detail-color: var(--color-on-solid);\n --detail-border: var(--color-solid);\n --detail-header-bg: color-mix(in srgb, var(--color-solid), black 10%);\n}\n\n:host([variant="outlined"]) {\n --detail-bg: transparent;\n --detail-color: var(--color-text-subtle);\n --detail-border: var(--color-border);\n --detail-header-bg: transparent;\n}\n\n:host([disabled]) {\n opacity: 0.5;\n pointer-events: none;\n}\n\n.detail {\n border: 1px solid var(--detail-border);\n border-radius: var(--detail-radius);\n color: var(--detail-color);\n background: var(--detail-bg);\n overflow: hidden;\n}\n\n.summary {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 10px 14px;\n background: var(--detail-header-bg);\n color: inherit;\n font-size: inherit;\n font-family: inherit;\n font-weight: 500;\n border: none;\n cursor: pointer;\n text-align: left;\n outline-offset: -2px;\n user-select: none;\n}\n\n.summary:hover {\n filter: brightness(0.93);\n}\n\n.summary:focus-visible {\n outline: 2px solid var(--color-border);\n}\n\nslot[name="summary"] {\n display: flex;\n align-items: center;\n flex: 1;\n min-width: 0;\n}\n\n.label {\n flex: 1;\n}\n\nslot[name="expand"],\nslot[name="collapse"] {\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n}\n\nslot[name="collapse"] {\n display: none;\n}\n\n:host([open]) slot[name="expand"] {\n display: none;\n}\n\n:host([open]) slot[name="collapse"] {\n display: inline-flex;\n}\n\n.content-outer {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 0.25s ease;\n}\n\n:host([open]) .content-outer {\n grid-template-rows: 1fr;\n}\n\n.content {\n overflow: hidden;\n padding: 0 14px;\n transition: padding 0.25s ease;\n}\n\n:host([open]) .content {\n padding: 12px 14px;\n}\n\n';
|
|
4063
4063
|
var __create = Object.create;
|
|
4064
4064
|
var __defProp2 = Object.defineProperty;
|
|
4065
4065
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|