@db-ux/core-components 1.1.1 → 2.0.0-0-custom-select-16b8cce

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/build/assets/icons/LICENCES.json +6 -0
  3. package/build/assets/icons/circular_arrows.svg +1 -0
  4. package/build/assets/icons/fonts/all/db-ux.woff2 +0 -0
  5. package/build/assets/icons/fonts/default/db-ux.woff2 +0 -0
  6. package/build/assets/icons/fonts/default_12/db-ux.woff2 +0 -0
  7. package/build/assets/icons/fonts/default_14/db-ux.woff2 +0 -0
  8. package/build/assets/icons/fonts/default_16/db-ux.woff2 +0 -0
  9. package/build/assets/icons/fonts/default_20/db-ux.woff2 +0 -0
  10. package/build/assets/icons/fonts/default_24/db-ux.woff2 +0 -0
  11. package/build/assets/icons/fonts/default_28/db-ux.woff2 +0 -0
  12. package/build/assets/icons/fonts/default_32/db-ux.woff2 +0 -0
  13. package/build/assets/icons/fonts/default_48/db-ux.woff2 +0 -0
  14. package/build/assets/icons/fonts/default_64/db-ux.woff2 +0 -0
  15. package/build/assets/icons/fonts/filled/db-ux.woff2 +0 -0
  16. package/build/assets/icons/fonts/filled_12/db-ux.woff2 +0 -0
  17. package/build/assets/icons/fonts/filled_14/db-ux.woff2 +0 -0
  18. package/build/assets/icons/fonts/filled_16/db-ux.woff2 +0 -0
  19. package/build/assets/icons/fonts/filled_20/db-ux.woff2 +0 -0
  20. package/build/assets/icons/fonts/filled_24/db-ux.woff2 +0 -0
  21. package/build/assets/icons/fonts/filled_28/db-ux.woff2 +0 -0
  22. package/build/assets/icons/fonts/filled_32/db-ux.woff2 +0 -0
  23. package/build/assets/icons/fonts/filled_48/db-ux.woff2 +0 -0
  24. package/build/assets/icons/fonts/filled_64/db-ux.woff2 +0 -0
  25. package/build/components/accordion/accordion.css +1 -1
  26. package/build/components/accordion-item/accordion-item.css +7 -2
  27. package/build/components/badge/badge.css +56 -4
  28. package/build/components/badge/badge.scss +1 -1
  29. package/build/components/button/button.css +4 -4
  30. package/build/components/card/card.css +6 -6
  31. package/build/components/checkbox/checkbox.css +60 -57
  32. package/build/components/custom-select/custom-select.css +1028 -0
  33. package/build/components/custom-select/custom-select.scss +172 -0
  34. package/build/components/custom-select-dropdown/custom-select-dropdown.css +402 -0
  35. package/build/components/custom-select-dropdown/custom-select-dropdown.scss +86 -0
  36. package/build/components/custom-select-form-field/custom-select-form-field.css +49 -0
  37. package/build/components/custom-select-form-field/custom-select-form-field.scss +24 -0
  38. package/build/components/custom-select-list/custom-select-list.css +48 -0
  39. package/build/components/custom-select-list/custom-select-list.scss +35 -0
  40. package/build/components/custom-select-list-item/custom-select-list-item.css +187 -0
  41. package/build/components/custom-select-list-item/custom-select-list-item.scss +99 -0
  42. package/build/components/divider/divider.css +2 -2
  43. package/build/components/drawer/drawer.css +6 -1
  44. package/build/components/header/header.css +4 -4
  45. package/build/components/input/input.css +71 -61
  46. package/build/components/input/input.scss +1 -5
  47. package/build/components/link/link.css +9 -4
  48. package/build/components/navigation-item/navigation-item.css +8 -3
  49. package/build/components/notification/notification.css +7 -2
  50. package/build/components/popover/popover.css +5 -0
  51. package/build/components/radio/radio.css +57 -54
  52. package/build/components/select/select.css +84 -75
  53. package/build/components/select/select.scss +4 -49
  54. package/build/components/switch/switch.css +64 -61
  55. package/build/components/tab-item/tab-item.css +5 -5
  56. package/build/components/tab-list/tab-list.css +17 -3
  57. package/build/components/tag/tag.css +40 -35
  58. package/build/components/textarea/textarea.css +93 -65
  59. package/build/components/textarea/textarea.scss +1 -1
  60. package/build/components/tooltip/tooltip.css +6 -1
  61. package/build/components/tooltip/tooltip.scss +2 -2
  62. package/build/styles/_select-components.scss +50 -0
  63. package/build/styles/absolute.css +32 -32
  64. package/build/styles/component-animations.css +1 -1
  65. package/build/styles/index.css +31 -31
  66. package/build/styles/index.scss +5 -0
  67. package/build/styles/internal/_custom-elements.scss +3 -0
  68. package/build/styles/internal/_form-components.scss +81 -70
  69. package/build/styles/internal/_scrollbar.scss +14 -3
  70. package/build/styles/internal/_tag-components.scss +20 -2
  71. package/build/styles/relative.css +32 -32
  72. package/build/styles/rollup.css +32 -32
  73. package/build/styles/wc-workarounds.css +1 -1
  74. package/build/styles/webpack.css +32 -32
  75. package/package.json +6 -5
@@ -5,7 +5,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
5
5
  /* Elevation */
6
6
  /* Border */
7
7
  /* Transitions */
8
- .db-input[data-hide-label=true] label, .db-visually-hidden,
8
+ .db-input[data-hide-label=true] > label, .db-visually-hidden,
9
9
  [data-visually-hidden=true] {
10
10
  clip: rect(0, 0, 0, 0) !important;
11
11
  overflow: hidden !important;
@@ -25,7 +25,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
25
25
  }
26
26
 
27
27
  /* Variants for adaptive components like input, select, notification, ... */
28
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid), .db-input:has(input[data-custom-validity=invalid]) {
28
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid), .db-input:has(input[data-custom-validity=invalid]), .db-input[data-custom-validity=invalid] {
29
29
  --db-adaptive-bg-basic-level-1-default: var(
30
30
  --db-critical-bg-basic-level-1-default
31
31
  );
@@ -169,7 +169,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
169
169
  );
170
170
  }
171
171
 
172
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid), .db-input:has(input[data-custom-validity=valid]) {
172
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid), .db-input:has(input[data-custom-validity=valid]), .db-input[data-custom-validity=valid] {
173
173
  --db-adaptive-bg-basic-level-1-default: var(
174
174
  --db-successful-bg-basic-level-1-default
175
175
  );
@@ -355,7 +355,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
355
355
  - %db-font-size-md
356
356
  - %db-overwrite-font-size-md
357
357
  */
358
- .db-input[data-variant=floating] label, .db-input input {
358
+ .db-input[data-variant=floating] > label, .db-input input {
359
359
  /* Those variables are only for components to calculate heights and change icons */
360
360
  --db-icon-font-weight: var(--db-base-body-icon-weight-md);
361
361
  --db-icon-font-size: var(--db-base-body-icon-font-size-md);
@@ -371,7 +371,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
371
371
  font-size: var(--db-type-body-font-size-sm);
372
372
  }
373
373
 
374
- .db-input label, .db-input:has(input[type=file])[data-variant=floating] input, .db-input:has(input[type=file])[data-variant=floating] input::file-selector-button {
374
+ .db-input > label, .db-input:has(input[type=file])[data-variant=floating] input, .db-input:has(input[type=file])[data-variant=floating] input::file-selector-button {
375
375
  /* Those variables are only for components to calculate heights and change icons */
376
376
  --db-icon-font-weight: var(--db-base-body-icon-weight-xs);
377
377
  --db-icon-font-size: var(--db-base-body-icon-font-size-xs);
@@ -381,7 +381,8 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
381
381
 
382
382
  .db-input[data-variant=floating]:has(input:focus-within,
383
383
  input:is(input, textarea):not(:placeholder-shown),
384
- > select option:checked:not([hidden])) label {
384
+ > select option:checked:not([hidden]),
385
+ input[type=checkbox]:checked) > label {
385
386
  /* Those variables are only for components to calculate heights and change icons */
386
387
  --db-icon-font-weight: var(--db-base-body-icon-weight-2xs);
387
388
  --db-icon-font-size: var(--db-base-body-icon-font-size-2xs);
@@ -419,7 +420,7 @@ input:is(input, textarea):not(:placeholder-shown),
419
420
  .db-input .db-infotext {
420
421
  margin-block-start: var(--db-spacing-fixed-2xs);
421
422
  }
422
- .db-input .db-infotext[data-semantic] {
423
+ .db-input .db-infotext:is([data-semantic=successful], [data-semantic=critical]) {
423
424
  display: none;
424
425
  }
425
426
 
@@ -432,60 +433,70 @@ input:is(input, textarea):not(:placeholder-shown),
432
433
  align-items: center;
433
434
  }
434
435
 
436
+ .db-input {
437
+ /* stylelint-disable-next-line scss/selector-no-redundant-nesting-selector */
438
+ }
435
439
  .db-input {
436
440
  --db-form-has-before: 0;
437
441
  position: relative;
438
442
  display: flex;
439
443
  flex-direction: column;
440
444
  }
441
- .db-input[data-variant=floating] label {
445
+ .db-input[data-variant=floating], .db-input[data-hide-label=true] {
446
+ --db-label-visible-above: 0;
447
+ }
448
+ .db-input[data-variant=floating] > label {
442
449
  opacity: 0.69;
443
450
  position: absolute;
444
451
  z-index: 2;
445
452
  inset-block-start: calc((var(--db-sizing-md) - var(--db-icon-font-size)) / 2);
446
- inset-inline: var(--db-form-component-padding-inline-start, var(--db-spacing-fixed-sm));
453
+ inset-inline: var(--db-form-component-padding-inline-start, var(--db-spacing-fixed-sm)) var(--db-form-component-padding-inline-end, var(--db-spacing-fixed-sm));
447
454
  pointer-events: none;
448
455
  }
449
- .db-input[data-variant=floating]::after, .db-input[data-variant=floating]::before {
450
- inset-block-start: calc(var(--db-sizing-md) / 2 - var(--db-icon-font-size) / 2);
451
- }
452
456
  .db-input[data-variant=floating] [id$=-placeholder] {
453
457
  inset-block-start: calc(50% - 0.5em + var(--db-spacing-fixed-3xs));
454
458
  }
455
- .db-input[data-variant=floating] input {
456
- padding-block-start: calc(var(--db-type-body-font-size-2xs) + var(--db-spacing-fixed-3xs));
457
- }
458
459
  .db-input[data-variant=floating] input::placeholder,
459
- .db-input[data-variant=floating] input + [id$=-placeholder] {
460
+ .db-input[data-variant=floating] [id$=-placeholder] {
460
461
  transition: none;
461
462
  opacity: 0;
462
463
  }
464
+ .db-input[data-variant=floating] input {
465
+ /* stylelint-disable-next-line db-ux/use-spacings */
466
+ padding-block-start: calc(var(--db-type-body-font-size-2xs) + var(--db-spacing-fixed-3xs));
467
+ }
463
468
  .db-input[data-variant=floating]:has(input:focus-within,
464
469
  input:is(input, textarea):not(:placeholder-shown),
465
- > select option:checked:not([hidden])) label {
470
+ > select option:checked:not([hidden]),
471
+ input[type=checkbox]:checked) > label {
466
472
  inset-block-start: var(--db-spacing-fixed-2xs);
467
473
  opacity: 1;
468
474
  }
469
475
  .db-input[data-variant=floating]:has(input:focus-within,
470
476
  input:is(input, textarea):not(:placeholder-shown),
471
- > select option:checked:not([hidden])) input::placeholder,
477
+ > select option:checked:not([hidden]),
478
+ input[type=checkbox]:checked) input::placeholder,
472
479
  .db-input[data-variant=floating]:has(input:focus-within,
473
480
  input:is(input, textarea):not(:placeholder-shown),
474
- > select option:checked:not([hidden])) input + [id$=-placeholder] {
481
+ > select option:checked:not([hidden]),
482
+ input[type=checkbox]:checked) [id$=-placeholder] {
475
483
  opacity: 0.69;
476
484
  }
477
485
  @media screen and (prefers-reduced-motion: no-preference) {
478
486
  .db-input[data-variant=floating]:has(input:focus-within,
479
487
  input:is(input, textarea):not(:placeholder-shown),
480
- > select option:checked:not([hidden])) input::placeholder,
488
+ > select option:checked:not([hidden]),
489
+ input[type=checkbox]:checked) input::placeholder,
481
490
  .db-input[data-variant=floating]:has(input:focus-within,
482
491
  input:is(input, textarea):not(:placeholder-shown),
483
- > select option:checked:not([hidden])) input + [id$=-placeholder] {
492
+ > select option:checked:not([hidden]),
493
+ input[type=checkbox]:checked) [id$=-placeholder] {
484
494
  transition: opacity var(--db-transition-straight-emotional);
485
495
  }
486
496
  }
487
497
  .db-input:has(input:required):is(label)::after,
488
- .db-input:has(input:required) label::after {
498
+ .db-input:has(input:required) > label::after, .db-input[data-required=true]:is(label)::after,
499
+ .db-input[data-required=true] > label::after {
489
500
  content: "*";
490
501
  content: "*"/"";
491
502
  /* stylelint-disable-next-line db-ux/use-spacings */
@@ -494,6 +505,11 @@ input:is(input, textarea):not(:placeholder-shown),
494
505
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) {
495
506
  /* stylelint-disable-next-line at-rule-empty-line-before */
496
507
  }
508
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) input,
509
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) [id$=-placeholder] {
510
+ color: var(--db-successful-on-bg-basic-emphasis-100-default);
511
+ caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
512
+ }
497
513
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) .db-infotext {
498
514
  /* stylelint-disable-next-line at-rule-empty-line-before */
499
515
  }
@@ -503,55 +519,56 @@ input:is(input, textarea):not(:placeholder-shown),
503
519
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) .db-infotext:not([data-semantic]) {
504
520
  display: none;
505
521
  }
506
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) input,
507
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-valid) [id$=-placeholder] {
522
+ .db-input:has(input[data-custom-validity=valid]), .db-input[data-custom-validity=valid] {
523
+ /* stylelint-disable-next-line at-rule-empty-line-before */
524
+ }
525
+ .db-input:has(input[data-custom-validity=valid]) input,
526
+ .db-input:has(input[data-custom-validity=valid]) [id$=-placeholder], .db-input[data-custom-validity=valid] input,
527
+ .db-input[data-custom-validity=valid] [id$=-placeholder] {
508
528
  color: var(--db-successful-on-bg-basic-emphasis-100-default);
509
529
  caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
510
530
  }
511
- .db-input:has(input[data-custom-validity=valid]) {
531
+ .db-input:has(input[data-custom-validity=valid]) .db-infotext, .db-input[data-custom-validity=valid] .db-infotext {
512
532
  /* stylelint-disable-next-line at-rule-empty-line-before */
513
533
  }
514
- .db-input:has(input[data-custom-validity=valid]) .db-infotext {
515
- /* stylelint-disable-next-line at-rule-empty-line-before */
516
- }
517
- .db-input:has(input[data-custom-validity=valid]) .db-infotext[data-semantic=successful] {
534
+ .db-input:has(input[data-custom-validity=valid]) .db-infotext[data-semantic=successful], .db-input[data-custom-validity=valid] .db-infotext[data-semantic=successful] {
518
535
  display: flex;
519
536
  }
520
- .db-input:has(input[data-custom-validity=valid]) .db-infotext:not([data-semantic]) {
537
+ .db-input:has(input[data-custom-validity=valid]) .db-infotext:not([data-semantic]), .db-input[data-custom-validity=valid] .db-infotext:not([data-semantic]) {
521
538
  display: none;
522
539
  }
523
- .db-input:has(input[data-custom-validity=valid]) input,
524
- .db-input:has(input[data-custom-validity=valid]) [id$=-placeholder] {
525
- color: var(--db-successful-on-bg-basic-emphasis-100-default);
526
- caret-color: var(--db-successful-on-bg-basic-emphasis-100-default);
527
- }
528
540
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) {
529
541
  /* stylelint-disable-next-line at-rule-empty-line-before */
530
542
  }
543
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) input,
544
+ .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) [id$=-placeholder] {
545
+ color: var(--db-critical-on-bg-basic-emphasis-100-default);
546
+ caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
547
+ }
531
548
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) .db-infotext[data-semantic=critical] {
532
549
  display: flex;
533
550
  }
534
551
  .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) .db-infotext:not([data-semantic]) {
535
552
  display: none;
536
553
  }
537
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) input,
538
- .db-input:has(input:not([data-custom-validity]):is(:required, [minlength], [maxlength], [pattern], [type=color], [type=date], [type=datetime-local], [type=email], [type=file], [type=hidden], [type=month], [type=number], [type=range], [type=tel], [type=time], [type=url], [type=week]):user-invalid) [id$=-placeholder] {
554
+ .db-input:has(input[data-custom-validity=invalid]), .db-input[data-custom-validity=invalid] {
555
+ /* stylelint-disable-next-line at-rule-empty-line-before */
556
+ }
557
+ .db-input:has(input[data-custom-validity=invalid]) input,
558
+ .db-input:has(input[data-custom-validity=invalid]) [id$=-placeholder], .db-input[data-custom-validity=invalid] input,
559
+ .db-input[data-custom-validity=invalid] [id$=-placeholder] {
539
560
  color: var(--db-critical-on-bg-basic-emphasis-100-default);
540
561
  caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
541
562
  }
542
- .db-input:has(input[data-custom-validity=invalid]) {
543
- /* stylelint-disable-next-line at-rule-empty-line-before */
544
- }
545
- .db-input:has(input[data-custom-validity=invalid]) .db-infotext[data-semantic=critical] {
563
+ .db-input:has(input[data-custom-validity=invalid]) .db-infotext[data-semantic=critical], .db-input[data-custom-validity=invalid] .db-infotext[data-semantic=critical] {
546
564
  display: flex;
547
565
  }
548
- .db-input:has(input[data-custom-validity=invalid]) .db-infotext:not([data-semantic]) {
566
+ .db-input:has(input[data-custom-validity=invalid]) .db-infotext:not([data-semantic]), .db-input[data-custom-validity=invalid] .db-infotext:not([data-semantic]) {
549
567
  display: none;
550
568
  }
551
- .db-input:has(input[data-custom-validity=invalid]) input,
552
- .db-input:has(input[data-custom-validity=invalid]) [id$=-placeholder] {
553
- color: var(--db-critical-on-bg-basic-emphasis-100-default);
554
- caret-color: var(--db-critical-on-bg-basic-emphasis-100-default);
569
+ .db-input input::placeholder,
570
+ .db-input [id$=-placeholder] {
571
+ opacity: 0.69;
555
572
  }
556
573
  .db-input input {
557
574
  background-color: var(--db-adaptive-bg-basic-transparent-semi-default);
@@ -563,12 +580,8 @@ input:is(input, textarea):not(:placeholder-shown),
563
580
  padding-inline: var(--db-form-component-padding-inline-start, var(--db-spacing-fixed-sm)) var(--db-form-component-padding-inline-end, var(--db-spacing-fixed-sm));
564
581
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
565
582
  }
566
- .db-input input::placeholder,
567
- .db-input input + [id$=-placeholder] {
568
- opacity: 0.69;
569
- }
570
583
  .db-input input:hover:not(:disabled, [aria-disabled=true]) {
571
- cursor: pointer;
584
+ cursor: var(--db-overwrite-cursor, pointer);
572
585
  background-color: var(--db-adaptive-bg-basic-transparent-hovered);
573
586
  }
574
587
  .db-input input:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-input input:hover:not(:disabled, [aria-disabled=true]):is(input) {
@@ -580,7 +593,7 @@ input:is(input, textarea):not(:placeholder-shown),
580
593
  .db-input input:is(input, textarea):not(:disabled):read-only {
581
594
  background-color: var(--db-textarea-read-only, var(--db-adaptive-bg-basic-level-1-default)) !important;
582
595
  }
583
- .db-input label {
596
+ .db-input > label {
584
597
  padding-block-end: var(--db-spacing-fixed-xs);
585
598
  max-inline-size: 25ch;
586
599
  text-overflow: ellipsis;
@@ -588,22 +601,23 @@ input:is(input, textarea):not(:placeholder-shown),
588
601
  overflow: hidden;
589
602
  }
590
603
  @media screen and (prefers-reduced-motion: no-preference) {
591
- .db-input label {
604
+ .db-input > label {
592
605
  transition: font-size var(--db-transition-straight-emotional);
593
606
  }
594
607
  }
595
- .db-input[data-hide-label=true] label {
608
+ .db-input[data-hide-label=true] > label {
596
609
  padding: 0;
597
610
  }
598
- .db-input:has(input:disabled) {
611
+ .db-input:has(input:disabled, input[data-disabled=true]) {
599
612
  opacity: 0.4;
600
613
  pointer-events: none;
601
614
  }
602
615
  .db-input::after, .db-input::before {
603
616
  position: absolute;
604
617
  pointer-events: none;
605
- inset-block-start: calc(var(--db-sizing-md) / 2 - var(--db-spacing-fixed-xs) * var(--db-label-visible-spacing, 0) + var(--db-base-body-icon-font-size-xs) * var(--db-label-visible-height, 1) - 1px);
618
+ inset-block-start: calc((var(--db-spacing-fixed-xs) + var(--db-base-body-icon-font-size-xs)) * var(--db-label-visible-above, 1) + var(--db-sizing-md) / 2);
606
619
  color: var(--db-adaptive-on-bg-basic-emphasis-100-default);
620
+ transform: translateY(-50%);
607
621
  }
608
622
  .db-input::before {
609
623
  margin-inline-end: var(--db-spacing-fixed-sm);
@@ -623,16 +637,12 @@ input:is(input, textarea):not(:placeholder-shown),
623
637
  .db-input[data-icon-after], .db-input:has(input[type=search]), .db-input:has(datalist) {
624
638
  --db-form-component-padding-inline-end: calc(var(--db-icon-font-size) + var(--db-spacing-fixed-sm) + var(--db-spacing-fixed-xs));
625
639
  }
626
- .db-input[data-hide-label=true] {
627
- --db-label-visible-height: 0;
628
- --db-label-visible-spacing: 1;
629
- }
630
640
  .db-input:has(input[type=search]):not([data-hide-icon-before=true])::before {
631
641
  --db-icon: "magnifying_glass";
632
642
  margin-inline-end: var(--db-icon-margin-end, var(--db-spacing-fixed-xs));
633
643
  }
634
644
  .db-input:has(input[type=search]):not([data-hide-icon-after=true])::after {
635
- --db-icon-after: "cross_circle";
645
+ --db-icon-after: "cross";
636
646
  content: var(--db-icon-after, attr(data-icon-after));
637
647
  content: var(--db-icon-after, attr(data-icon-after))/"";
638
648
  margin-inline-start: var(--db-icon-margin-start, var(--db-spacing-fixed-xs));
@@ -27,14 +27,10 @@ $icon-padding: calc(
27
27
  --db-form-component-padding-inline-end: #{$icon-padding};
28
28
  }
29
29
 
30
- &[data-hide-label="true"] {
31
- --db-label-visible-height: 0;
32
- --db-label-visible-spacing: 1;
33
- }
34
30
 
35
31
  &:has(input[type="search"]) {
36
32
  @include icons.set-icon("magnifying_glass");
37
- @include icons.set-icon("cross_circle", "after");
33
+ @include icons.set-icon("cross", "after");
38
34
 
39
35
  &::after {
40
36
  opacity: 0;
@@ -105,6 +105,11 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
105
105
  transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
106
106
  }
107
107
  }
108
+ @keyframes rotate {
109
+ 100% {
110
+ transform: rotate(1turn);
111
+ }
112
+ }
108
113
  /* Variants for adaptive components like input, select, notification, ... */
109
114
  .db-link[data-content=internal]:not([data-hide-icon-after=true])::after, .db-link[data-content=external]:not([data-hide-icon-after=true])::after {
110
115
  content: var(--db-icon, attr(data-icon));
@@ -152,7 +157,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
152
157
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
153
158
  }
154
159
  .db-link:hover:not(:disabled, [aria-disabled=true]) {
155
- cursor: pointer;
160
+ cursor: var(--db-overwrite-cursor, pointer);
156
161
  color: color-mix(in srgb, transparent 25%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
157
162
  }
158
163
  .db-link:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:hover:not(:disabled, [aria-disabled=true]):is(input) {
@@ -162,7 +167,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
162
167
  cursor: pointer;
163
168
  }
164
169
  .db-link:active:not(:disabled, [aria-disabled=true]) {
165
- cursor: pointer;
170
+ cursor: var(--db-overwrite-cursor, pointer);
166
171
  color: color-mix(in srgb, transparent 50%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
167
172
  }
168
173
  .db-link:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link:active:not(:disabled, [aria-disabled=true]):is(input) {
@@ -219,7 +224,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
219
224
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
220
225
  }
221
226
  .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]) {
222
- cursor: pointer;
227
+ cursor: var(--db-overwrite-cursor, pointer);
223
228
  color: var(--db-brand-bg-inverted-contrast-high-hovered);
224
229
  }
225
230
  .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:hover:not(:disabled, [aria-disabled=true]):is(input) {
@@ -229,7 +234,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
229
234
  cursor: pointer;
230
235
  }
231
236
  .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]) {
232
- cursor: pointer;
237
+ cursor: var(--db-overwrite-cursor, pointer);
233
238
  color: var(--db-brand-bg-inverted-contrast-high-pressed);
234
239
  }
235
240
  .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-link[data-variant=brand]:active:not(:disabled, [aria-disabled=true]):is(input) {
@@ -95,6 +95,11 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
95
95
  transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
96
96
  }
97
97
  }
98
+ @keyframes rotate {
99
+ 100% {
100
+ transform: rotate(1turn);
101
+ }
102
+ }
98
103
  .db-navigation-item .db-navigation-item-expand-button:is(button):not([data-hide-icon-after=true])::after,
99
104
  .db-navigation-item .db-navigation-item-expand-button > button:not([data-hide-icon-after=true])::after {
100
105
  content: var(--db-icon, attr(data-icon));
@@ -179,7 +184,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
179
184
  }
180
185
  .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(button),
181
186
  .db-navigation-item .db-navigation-item-expand-button > button:hover:not(:disabled, [aria-disabled=true]), .db-navigation-item a:hover:not(:disabled, [aria-disabled=true]) {
182
- cursor: pointer;
187
+ cursor: var(--db-overwrite-cursor, pointer);
183
188
  background-color: var(--db-adaptive-bg-basic-transparent-hovered);
184
189
  }
185
190
  .db-navigation-item .db-navigation-item-expand-button:hover:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
@@ -194,7 +199,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
194
199
  }
195
200
  .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(button),
196
201
  .db-navigation-item .db-navigation-item-expand-button > button:active:not(:disabled, [aria-disabled=true]), .db-navigation-item a:active:not(:disabled, [aria-disabled=true]) {
197
- cursor: pointer;
202
+ cursor: var(--db-overwrite-cursor, pointer);
198
203
  background-color: var(--db-adaptive-bg-basic-transparent-pressed);
199
204
  }
200
205
  .db-navigation-item .db-navigation-item-expand-button:active:not(:disabled, [aria-disabled=true]):is(textarea):is(button),
@@ -451,7 +456,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
451
456
  padding-block-end: var(--db-spacing-fixed-md);
452
457
  margin-block-end: var(--db-spacing-fixed-md);
453
458
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-60-default);
454
- position: relative;
459
+ position: var(--db-tooltip-parent-position, relative);
455
460
  }
456
461
  .db-mobile-navigation-back[data-emphasis=strong] {
457
462
  --db-divider-bg-color: var(--db-adaptive-on-bg-basic-emphasis-70-default);
@@ -871,6 +871,11 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
871
871
  transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
872
872
  }
873
873
  }
874
+ @keyframes rotate {
875
+ 100% {
876
+ transform: rotate(1turn);
877
+ }
878
+ }
874
879
  .db-notification a {
875
880
  display: inline-block;
876
881
  block-size: var(--db-sizing-sm);
@@ -881,7 +886,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
881
886
  /* stylelint-disable-next-line a11y/selector-pseudo-class-focus */
882
887
  }
883
888
  .db-notification a:hover:not(:disabled, [aria-disabled=true]) {
884
- cursor: pointer;
889
+ cursor: var(--db-overwrite-cursor, pointer);
885
890
  color: color-mix(in srgb, transparent 25%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
886
891
  }
887
892
  .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(textarea), .db-notification a:hover:not(:disabled, [aria-disabled=true]):is(input) {
@@ -891,7 +896,7 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
891
896
  cursor: pointer;
892
897
  }
893
898
  .db-notification a:active:not(:disabled, [aria-disabled=true]) {
894
- cursor: pointer;
899
+ cursor: var(--db-overwrite-cursor, pointer);
895
900
  color: color-mix(in srgb, transparent 50%, var(--db-adaptive-on-bg-basic-emphasis-100-default));
896
901
  }
897
902
  .db-notification a:active:not(:disabled, [aria-disabled=true]):is(textarea), .db-notification a:active:not(:disabled, [aria-disabled=true]):is(input) {
@@ -80,6 +80,11 @@ paddings/gaps in an application e.g. the <main> should have a responsive padding
80
80
  transform: translate(var(--db-popover-center-x, 0%), var(--db-popover-center-y, 0%));
81
81
  }
82
82
  }
83
+ @keyframes rotate {
84
+ 100% {
85
+ transform: rotate(1turn);
86
+ }
87
+ }
83
88
  .db-popover > article {
84
89
  border: var(--db-border-height-3xs) solid var(--db-adaptive-on-bg-basic-emphasis-60-default);
85
90
  }