@sbb-esta/lyne-elements-dev 5.10.0-dev.1791284739 → 5.10.0-dev.1791362600

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/calendar.pure.js CHANGED
@@ -1,4 +1,4 @@
1
- import{__esDecorate as e,__runInitializers as t}from"tslib";import{html as n,isServer as r,nothing as i,unsafeCSS as a}from"lit";import{property as o,state as s}from"lit/decorators.js";import{MONDAY as c,SbbButtonLikeBaseElement as l,SbbDisabledMixin as u,SbbElement as ee,SbbFormAssociatedMixin as te,SbbLanguageController as d,SbbPropertyWatcherController as f,THURSDAY as ne,TUESDAY as re,WEDNESDAY as ie,buttonResetStyles as ae,defaultDateAdapter as p,forceType as m,getNextElementIndex as oe,handleDistinctChange as se,i18nCalendarDateSelection as h,i18nCalendarWeekNumber as g,i18nNextMonth as ce,i18nNextYear as le,i18nNextYearRange as ue,i18nPreviousMonth as de,i18nPreviousYear as fe,i18nPreviousYearRange as pe,i18nYearMonthSelection as me,isArrowKeyOrPageKeysPressed as _,plainDate as v,readConfig as y,screenReaderOnlyStyles as he}from"./core.js";import{SbbSecondaryButtonElement as ge}from"./button.pure.js";import{SbbIconElement as _e}from"./icon.pure.js";var b=`:host{--sbb-focus-outline-offset:.125rem;--sbb-calendar-cell-transition-duration:var(--sbb-disable-animation-duration,var(--sbb-animation-duration-2x));font-size:var(--sbb-calendar-cell-font-size);letter-spacing:var(--sbb-letter-spacing-text);cursor:var(--sbb-calendar-cell-cursor);color:var(--sbb-calendar-cell-color);border-radius:calc(var(--sbb-border-radius-4x) + var(--sbb-calendar-cell-border-width));margin:var(--sbb-calendar-cell-margin);padding:var(--sbb-calendar-cell-border-width);transition-duration:var(--sbb-calendar-cell-transition-duration);transition-timing-function:var(--sbb-calendar-cell-transition-easing-function);background-clip:content-box;transition-property:background-color;display:block}:host(:is(sbb-calendar-weekday,sbb-calendar-weeknumber)){--sbb-calendar-cell-font-size:var(--sbb-text-font-size-xs);--sbb-calendar-day-height:var(--sbb-calendar-day-size);color:var(--sbb-calendar-header-color);margin-inline:auto}:host(:is(sbb-calendar-day,sbb-calendar-weekday,sbb-calendar-weeknumber)){height:var(--sbb-calendar-day-height);width:var(--sbb-calendar-day-width)}:host(:is(:state(current),[state--current])){font-weight:700}:host(:is(:state(selected),[state--selected])){border:var(--sbb-calendar-cell-border-width) solid var(--sbb-calendar-cell-border-color-selected);padding:0}:host(:disabled){--sbb-calendar-cell-color:var(--sbb-calendar-cell-disabled-color);--sbb-calendar-cell-cursor:default}:host(:disabled:is(:state(crossed-out),[state--crossed-out])){--sbb-calendar-cell-color:var(--sbb-calendar-cell-disabled-crossed-out-color)}:host(:focus-visible){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width)}@media (any-hover:hover){:host(:not(:disabled,:where(:is(:state(active),[state--active]),:active)):hover){background-color:var(--sbb-calendar-cell-background-color-hover)}}@media (any-hover:hover) and (forced-colors:active){:host(:not(:disabled):hover){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width);--sbb-focus-outline-style:initial}}:host(:not(:disabled):where(:is(:state(active),[state--active]),:active)){background-color:var(--sbb-calendar-cell-background-color-active)}.sbb-action-base{flex-direction:column;justify-content:center;width:100%;height:100%;display:flex}.sbb-calendar-year,.sbb-calendar-month{height:var(--sbb-calendar-cell-year-month-height);min-width:var(--sbb-calendar-cell-year-month-width);justify-content:center;width:100%}:host(:is(:state(crossed-out),[state--crossed-out])) :is(.sbb-calendar-year,.sbb-calendar-month,.sbb-calendar-day__value):after{content:"";height:var(--sbb-calendar-cell-disabled-height);width:var(--sbb-calendar-cell-disabled-width);background-color:var(--sbb-calendar-cell-disabled-crossed-out-color);position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:-45deg}
1
+ import{__esDecorate as e,__runInitializers as t}from"tslib";import{html as n,isServer as r,nothing as i,unsafeCSS as a}from"lit";import{property as o,state as s}from"lit/decorators.js";import{MONDAY as c,SbbButtonLikeBaseElement as l,SbbDisabledMixin as u,SbbElement as ee,SbbFormAssociatedMixin as te,SbbLanguageController as d,SbbPropertyWatcherController as f,THURSDAY as ne,TUESDAY as re,WEDNESDAY as ie,buttonResetStyles as ae,defaultDateAdapter as p,forceType as m,getNextElementIndex as oe,handleDistinctChange as se,i18nCalendarDateSelection as h,i18nCalendarWeekNumber as g,i18nNextMonth as ce,i18nNextYear as le,i18nNextYearRange as ue,i18nPreviousMonth as de,i18nPreviousYear as fe,i18nPreviousYearRange as pe,i18nYearMonthSelection as me,isArrowKeyOrPageKeysPressed as _,plainDate as v,readConfig as y,screenReaderOnlyStyles as he}from"./core.js";import{SbbSecondaryButtonElement as ge}from"./button.pure.js";import{SbbIconElement as _e}from"./icon.pure.js";var b=`:host{--sbb-focus-outline-offset:.125rem;--sbb-calendar-cell-transition-duration:var(--sbb-disable-animation-duration,var(--sbb-animation-duration-2x));font-size:var(--sbb-calendar-cell-font-size);letter-spacing:var(--sbb-letter-spacing-text);cursor:var(--sbb-calendar-cell-cursor);color:var(--sbb-calendar-cell-color);border-radius:calc(var(--sbb-border-radius-4x) + var(--sbb-calendar-cell-border-width));margin:var(--sbb-calendar-cell-margin);padding:var(--sbb-calendar-cell-border-width);transition-duration:var(--sbb-calendar-cell-transition-duration);transition-timing-function:var(--sbb-calendar-cell-transition-easing-function);background-clip:content-box;transition-property:background-color;display:block}:host(:is(sbb-calendar-weekday,sbb-calendar-weeknumber)){--sbb-calendar-cell-font-size:var(--sbb-text-font-size-xs);--sbb-calendar-day-height:var(--sbb-calendar-day-size);color:var(--sbb-calendar-header-color);margin-inline:auto}:host(:is(sbb-calendar-day,sbb-calendar-weekday,sbb-calendar-weeknumber)){height:var(--sbb-calendar-day-height);width:var(--sbb-calendar-day-width)}:host(:is(:state(current),[state--current])){font-weight:700}:host(:is(:state(selected),[state--selected])){border:var(--sbb-calendar-cell-border-width) solid var(--sbb-calendar-cell-border-color-selected);padding:0}:host(:disabled){--sbb-calendar-cell-color:var(--sbb-calendar-cell-disabled-color);--sbb-calendar-cell-cursor:var(--sbb-cursor-default)}:host(:disabled:is(:state(crossed-out),[state--crossed-out])){--sbb-calendar-cell-color:var(--sbb-calendar-cell-disabled-crossed-out-color)}:host(:focus-visible){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width)}@media (any-hover:hover){:host(:not(:disabled,:where(:is(:state(active),[state--active]),:active)):hover){background-color:var(--sbb-calendar-cell-background-color-hover)}}@media (any-hover:hover) and (forced-colors:active){:host(:not(:disabled):hover){outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) var(--sbb-focus-outline-style,solid) var(--sbb-focus-outline-width);--sbb-focus-outline-style:initial}}:host(:not(:disabled):where(:is(:state(active),[state--active]),:active)){background-color:var(--sbb-calendar-cell-background-color-active)}.sbb-action-base{flex-direction:column;justify-content:center;width:100%;height:100%;display:flex}.sbb-calendar-year,.sbb-calendar-month{height:var(--sbb-calendar-cell-year-month-height);min-width:var(--sbb-calendar-cell-year-month-width);justify-content:center;width:100%}:host(:is(:state(crossed-out),[state--crossed-out])) :is(.sbb-calendar-year,.sbb-calendar-month,.sbb-calendar-day__value):after{content:"";height:var(--sbb-calendar-cell-disabled-height);width:var(--sbb-calendar-cell-disabled-width);background-color:var(--sbb-calendar-cell-disabled-crossed-out-color);position:absolute;top:50%;left:50%;translate:-50% -50%;rotate:-45deg}
2
2
  `,x=class extends u(l){static{this.styles=[a(b)]}constructor(){super(),this.dateAdapter=y().datetime?.dateAdapter??p,this.addController(new f(this,()=>this.getParent(),{dateFilter:e=>this.setDisabledFilteredState(e),min:e=>this.setDisabledFilteredState(e),max:e=>this.setDisabledFilteredState(e),value:e=>this.setSelectedState(e)}))}getParent(){return this.getRootNode?.()?.host?.closest(`sbb-calendar`)}formResetCallback(){}formStateRestoreCallback(e,t){}},S=`.sbb-calendar-day{justify-content:var(--sbb-calendar-day-justify-content)}.sbb-calendar-day__value{height:var(--sbb-calendar-day-value-height);justify-content:center;align-items:center;display:flex;position:relative}.sbb-calendar-day__extra{display:var(--sbb-calendar-day-extra-display);height:var(--sbb-calendar-day-extra-height)}::slotted(*){height:var(--sbb-calendar-day-extra-height)}
3
3
  `;let C=(()=>{let r=x,i=[],c,l;return class extends r{constructor(){super(...arguments),this._value=(t(this,i),null)}static{let t=typeof Symbol==`function`&&Symbol.metadata?Object.create(r[Symbol.metadata]??null):void 0;c=[o()],l=[s()],e(this,null,c,{kind:`setter`,name:`slot`,static:!1,private:!1,access:{has:e=>`slot`in e,set:(e,t)=>{e.slot=t}},metadata:t},null,i),e(this,null,l,{kind:`setter`,name:`value`,static:!1,private:!1,access:{has:e=>`value`in e,set:(e,t)=>{e.value=t}},metadata:t},null,i),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}static{this.elementName=`sbb-calendar-day`}static{this.styles=[a(S)]}set slot(e){super.slot=e,this.value=this.dateAdapter.deserialize(e)}get slot(){return super.slot}set value(e){let t=this.dateAdapter.getValidDateOrNull(this.dateAdapter.deserialize(e));if(t){this._value=t;let e=this.dateAdapter.sameDate(t,this.dateAdapter.today());this.toggleState(`current`,e),this.internals.ariaCurrent=e?`date`:null,this.internals.ariaLabel=this.dateAdapter.getAccessibilityFormatDate(t);let n=this.getParent();n&&(this.setDisabledFilteredState(n),this.setSelectedState(n))}}get value(){return this._value}connectedCallback(){super.connectedCallback(),this.tabIndex=-1}getParent(){return this.closest?.(`sbb-calendar`)??this.getRootNode?.()?.host?.closest(`sbb-calendar`)}setSelectedState(e){let t=this.dateAdapter.isValid(this.value)&&(e.multiple?e.value.some(e=>this.dateAdapter.sameDate(this.value,e)):!!e.value&&this.dateAdapter.compareDate(this.value,e.value)===0);this.toggleState(`selected`,t),this.internals.ariaPressed=String(t)}setDisabledFilteredState(e){let t=!this._isActiveDate(e.dateFilter),n=!this._isDayInRange(e.min,e.max);this.disabled=t||n,this.internals.ariaDisabled=String(this.disabled),this.toggleState(`crossed-out`,t&&!n)}_isActiveDate(e){return e&&this.dateAdapter.isValid(this.value)?e(this.value):!0}_isDayInRange(e,t){return!this.dateAdapter.isValid(this.value)||!e&&!t||this.dateAdapter.sameDate(this.value,this.dateAdapter.clampDate(this.value,e,t))}_handleSlotchange(e){this.internals.ariaDescribedByElements=e.target.assignedElements()}renderTemplate(){return n` <span class="sbb-calendar-day__value" aria-hidden="true">
4
4
  ${this.value?this.dateAdapter.getDate(this.value):``}
@@ -1,10 +1,11 @@
1
- @use '../mixins/functions';
2
1
  @use '../mixins/typo';
3
2
 
4
3
  .sbb-input {
4
+ --_sbb-input-border-width: var(--sbb-form-field-border-width);
5
+
5
6
  display: inline-block;
6
- min-width: #{functions.px-to-rem-build(150)};
7
- width: min(#{functions.px-to-rem-build(300)}, 100%);
7
+ min-width: var(--sbb-form-field-min-width);
8
+ width: min(var(--sbb-form-field-max-width), 100%);
8
9
  min-height: var(--sbb-form-field-min-height);
9
10
  max-height: var(--sbb-form-field-max-height);
10
11
  appearance: none;
@@ -19,10 +20,10 @@
19
20
  // Fill color needed for Safari
20
21
  -webkit-text-fill-color: var(--sbb-form-field-text-color);
21
22
  opacity: 1;
22
- border: var(--sbb-form-field-border-width) var(--sbb-form-field-border-style)
23
+ border: var(--_sbb-input-border-width) var(--sbb-form-field-border-style)
23
24
  var(--sbb-form-field-border-color);
24
25
  border-radius: var(--sbb-form-field-border-radius);
25
- padding-inline: var(--sbb-form-field-padding-inline);
26
+ padding-inline: calc(var(--sbb-form-field-padding-inline) - var(--_sbb-input-border-width));
26
27
 
27
28
  // Using `!important` keeps the utility consistent with the existing form-field
28
29
  // rules when normalize/reset styles are loaded by the consumer.
@@ -37,28 +38,22 @@
37
38
 
38
39
  &:read-only,
39
40
  &:disabled {
40
- --sbb-form-field-background-color: var(--sbb-background-color-3);
41
- --sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));
42
-
43
- @media (forced-colors: active) {
44
- --sbb-form-field-border-color: ButtonBorder;
45
- }
41
+ background-color: var(--sbb-form-field-background-color-disabled);
46
42
  }
47
43
 
48
44
  &:disabled {
49
- --sbb-form-field-border-style: dashed;
45
+ border-style: var(--sbb-form-field-border-style-disabled);
46
+ color: var(--sbb-form-field-text-color-disabled);
47
+ border-color: var(--sbb-form-field-border-color-disabled);
50
48
 
51
49
  &::placeholder {
52
- color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
53
- -webkit-text-fill-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
50
+ color: var(--sbb-form-field-placeholder-color-disabled);
51
+ -webkit-text-fill-color: var(--sbb-form-field-placeholder-color-disabled);
54
52
  }
53
+ }
55
54
 
56
- @media (forced-colors: active) {
57
- --sbb-form-field-label-color: GrayText !important;
58
- --sbb-form-field-prefix-color: GrayText !important;
59
- --sbb-form-field-text-color: GrayText !important;
60
- --sbb-form-field-border-color: GrayText !important;
61
- }
55
+ &:read-only {
56
+ border-color: var(--sbb-form-field-border-color-readonly);
62
57
  }
63
58
 
64
59
  &:focus-visible {
@@ -68,22 +63,13 @@
68
63
  }
69
64
 
70
65
  &:focus {
71
- --sbb-form-field-border-color: var(--sbb-border-color-3);
72
- --sbb-form-field-border-width: var(--sbb-border-width-2x);
66
+ --_sbb-input-border-width: var(--sbb-form-field-border-width-focus);
73
67
 
74
- @media (forced-colors: active) {
75
- --sbb-form-field-border-color: Highlight;
76
- --sbb-form-field-prefix-color: Highlight;
77
- }
68
+ border-color: var(--sbb-form-field-border-color-focus);
78
69
  }
79
70
 
80
71
  &:user-invalid {
81
- --sbb-form-field-border-color: var(--sbb-color-error);
82
- --sbb-form-field-text-color: var(--sbb-color-error);
83
-
84
- @media (forced-colors: active) {
85
- --sbb-form-field-border-color: LinkText !important;
86
- --sbb-form-field-text-color: LinkText !important;
87
- }
72
+ border-color: var(--sbb-form-field-border-color-error);
73
+ color: var(--sbb-form-field-text-color-error);
88
74
  }
89
75
  }
@@ -6,7 +6,7 @@ import { SbbSecondaryButtonElement } from "./button.pure.js";
6
6
  import { SbbIconElement } from "./icon.pure.js";
7
7
 
8
8
  //#region src/elements/calendar/common/calendar-cell-base-element.scss?inline
9
- var calendar_cell_base_element_default = ":host {\n --sbb-focus-outline-offset: 0.125rem;\n --sbb-calendar-cell-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: block;\n font-size: var(--sbb-calendar-cell-font-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n cursor: var(--sbb-calendar-cell-cursor);\n color: var(--sbb-calendar-cell-color);\n border-radius: calc(var(--sbb-border-radius-4x) + var(--sbb-calendar-cell-border-width));\n margin: var(--sbb-calendar-cell-margin);\n padding: var(--sbb-calendar-cell-border-width);\n background-clip: content-box;\n transition-duration: var(--sbb-calendar-cell-transition-duration);\n transition-timing-function: var(--sbb-calendar-cell-transition-easing-function);\n transition-property: background-color;\n}\n\n:host(:is(sbb-calendar-weekday, sbb-calendar-weeknumber)) {\n --sbb-calendar-cell-font-size: var(--sbb-text-font-size-xs);\n --sbb-calendar-day-height: var(--sbb-calendar-day-size);\n color: var(--sbb-calendar-header-color);\n margin-inline: auto;\n}\n\n:host(:is(sbb-calendar-day, sbb-calendar-weekday, sbb-calendar-weeknumber)) {\n height: var(--sbb-calendar-day-height);\n width: var(--sbb-calendar-day-width);\n}\n\n:host(:is(:state(current),[state--current])) {\n font-weight: bold;\n}\n\n:host(:is(:state(selected),[state--selected])) {\n border: var(--sbb-calendar-cell-border-width) solid var(--sbb-calendar-cell-border-color-selected);\n padding: 0;\n}\n\n:host(:disabled) {\n --sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-color);\n --sbb-calendar-cell-cursor: default;\n}\n\n:host(:disabled:is(:state(crossed-out),[state--crossed-out])) {\n --sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-crossed-out-color);\n}\n\n:host(:focus-visible) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}\n\n@media (any-hover: hover) {\n :host(:not(:disabled, :where(:is(:state(active),[state--active]), :active)):hover) {\n background-color: var(--sbb-calendar-cell-background-color-hover);\n }\n}\n\n@media (any-hover: hover) and (forced-colors: active) {\n :host(:not(:disabled):hover) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-focus-outline-style: initial;\n }\n}\n\n:host(:not(:disabled):where(:is(:state(active),[state--active]), :active)) {\n background-color: var(--sbb-calendar-cell-background-color-active);\n}\n\n.sbb-action-base {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n\n.sbb-calendar-year,\n.sbb-calendar-month {\n justify-content: center;\n height: var(--sbb-calendar-cell-year-month-height);\n min-width: var(--sbb-calendar-cell-year-month-width);\n width: 100%;\n}\n\n:host(:is(:state(crossed-out),[state--crossed-out])) :is(.sbb-calendar-year, .sbb-calendar-month, .sbb-calendar-day__value)::after {\n position: absolute;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n content: \"\";\n height: var(--sbb-calendar-cell-disabled-height);\n width: var(--sbb-calendar-cell-disabled-width);\n background-color: var(--sbb-calendar-cell-disabled-crossed-out-color);\n rotate: -45deg;\n}\n";
9
+ var calendar_cell_base_element_default = ":host {\n --sbb-focus-outline-offset: 0.125rem;\n --sbb-calendar-cell-transition-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: block;\n font-size: var(--sbb-calendar-cell-font-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n cursor: var(--sbb-calendar-cell-cursor);\n color: var(--sbb-calendar-cell-color);\n border-radius: calc(var(--sbb-border-radius-4x) + var(--sbb-calendar-cell-border-width));\n margin: var(--sbb-calendar-cell-margin);\n padding: var(--sbb-calendar-cell-border-width);\n background-clip: content-box;\n transition-duration: var(--sbb-calendar-cell-transition-duration);\n transition-timing-function: var(--sbb-calendar-cell-transition-easing-function);\n transition-property: background-color;\n}\n\n:host(:is(sbb-calendar-weekday, sbb-calendar-weeknumber)) {\n --sbb-calendar-cell-font-size: var(--sbb-text-font-size-xs);\n --sbb-calendar-day-height: var(--sbb-calendar-day-size);\n color: var(--sbb-calendar-header-color);\n margin-inline: auto;\n}\n\n:host(:is(sbb-calendar-day, sbb-calendar-weekday, sbb-calendar-weeknumber)) {\n height: var(--sbb-calendar-day-height);\n width: var(--sbb-calendar-day-width);\n}\n\n:host(:is(:state(current),[state--current])) {\n font-weight: bold;\n}\n\n:host(:is(:state(selected),[state--selected])) {\n border: var(--sbb-calendar-cell-border-width) solid var(--sbb-calendar-cell-border-color-selected);\n padding: 0;\n}\n\n:host(:disabled) {\n --sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-color);\n --sbb-calendar-cell-cursor: var(--sbb-cursor-default);\n}\n\n:host(:disabled:is(:state(crossed-out),[state--crossed-out])) {\n --sbb-calendar-cell-color: var(--sbb-calendar-cell-disabled-crossed-out-color);\n}\n\n:host(:focus-visible) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n}\n\n@media (any-hover: hover) {\n :host(:not(:disabled, :where(:is(:state(active),[state--active]), :active)):hover) {\n background-color: var(--sbb-calendar-cell-background-color-hover);\n }\n}\n\n@media (any-hover: hover) and (forced-colors: active) {\n :host(:not(:disabled):hover) {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n --sbb-focus-outline-style: initial;\n }\n}\n\n:host(:not(:disabled):where(:is(:state(active),[state--active]), :active)) {\n background-color: var(--sbb-calendar-cell-background-color-active);\n}\n\n.sbb-action-base {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n width: 100%;\n}\n\n.sbb-calendar-year,\n.sbb-calendar-month {\n justify-content: center;\n height: var(--sbb-calendar-cell-year-month-height);\n min-width: var(--sbb-calendar-cell-year-month-width);\n width: 100%;\n}\n\n:host(:is(:state(crossed-out),[state--crossed-out])) :is(.sbb-calendar-year, .sbb-calendar-month, .sbb-calendar-day__value)::after {\n position: absolute;\n top: 50%;\n left: 50%;\n translate: -50% -50%;\n content: \"\";\n height: var(--sbb-calendar-cell-disabled-height);\n width: var(--sbb-calendar-cell-disabled-width);\n background-color: var(--sbb-calendar-cell-disabled-crossed-out-color);\n rotate: -45deg;\n}\n";
10
10
 
11
11
  //#endregion
12
12
  //#region src/elements/calendar/common/calendar-cell-base-element.ts
@@ -56,7 +56,7 @@ var SbbErrorElement = class extends SbbNegativeMixin(SbbElement) {
56
56
 
57
57
  //#endregion
58
58
  //#region src/elements/form-field/form-field/form-field.scss?inline
59
- var form_field_default = "@charset \"UTF-8\";\n:host {\n --sbb-form-field-hint-divider-width: var(--sbb-spacing-fixed-1x);\n --sbb-form-field-hint-padding-block-start: var(--sbb-form-field-hint-divider-width);\n --sbb-form-field-select-inline-padding-end: calc(\n var(--sbb-icon-svg-width) + var(--sbb-form-field-gap)\n );\n --sbb-form-field-label-size: calc(\n var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text)\n );\n --sbb-form-field-text-line-height: calc(\n var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text)\n );\n --sbb-form-field-margin-block-start: calc(\n (\n var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var(\n --sbb-form-field-text-line-height\n ) +\n var(--_sbb-form-field-label-to-input-overlapping)\n ) /\n 2\n );\n --sbb-icon-svg-width: var(--sbb-form-field-icon-size);\n --sbb-icon-svg-height: var(--sbb-form-field-icon-size);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);\n --sbb-focus-outline-color: light-dark(\n var(--sbb-focus-outline-color-default),\n var(--sbb-focus-outline-color-dark)\n );\n display: inline-block;\n color: var(--sbb-form-field-color);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host(:where(:not([width=collapse]))) {\n min-width: 9.375rem;\n width: min(18.75rem, 100%);\n}\n\n:host([negative]) {\n color: var(--sbb-color-3-negative);\n --sbb-form-field-background-color: var(--sbb-background-color-1-negative);\n --sbb-form-field-border-color: var(--sbb-border-color-5);\n --sbb-form-field-label-color: var(--sbb-color-5);\n --sbb-form-field-prefix-color: var(--sbb-color-5);\n --sbb-form-field-text-color: var(--sbb-color-3-negative);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n --sbb-form-field-arrow-color: var(--sbb-color-3-negative);\n}\n@media (forced-colors: active) {\n :host([negative]) {\n --sbb-form-field-border-color: ButtonBorder;\n }\n}\n\n:host([size=s]) {\n --sbb-form-field-min-height: var(--sbb-size-element-xs);\n --sbb-form-field-padding-inline: var(--sbb-spacing-fixed-2x);\n --sbb-form-field-input-text-size: var(--sbb-text-font-size-s);\n --sbb-form-field-label-text-size: var(--sbb-text-font-size-xxs);\n --_sbb-form-field-input-margin-block-end: -0.125rem;\n --_sbb-form-field-label-to-input-overlapping: 0.625rem;\n --_sbb-form-field-floating-label-transform: 0.34375rem;\n --_sbb-form-field-spacer-margin-block-end: -0.53125rem;\n}\n@media (min-width: calc(64rem)) {\n :host([size=s]) {\n --_sbb-form-field-label-to-input-overlapping: 0.6875rem;\n --_sbb-form-field-floating-label-transform: 0.3125rem;\n --_sbb-form-field-spacer-margin-block-end: -0.5rem;\n }\n}\n\n:host([size=s]:where(:is(:state(input-element-textarea),[state--input-element-textarea]))) {\n --_sbb-form-field-spacer-margin-block-end-textarea: var(--sbb-form-field-textarea-s-spacer);\n}\n\n:host([size=m]) {\n --sbb-form-field-min-height: var(--sbb-size-element-m);\n --sbb-form-field-padding-inline: var(--sbb-spacing-fixed-3x);\n}\n\n:host([size=l]) {\n --sbb-form-field-min-height: var(--sbb-size-element-l);\n --sbb-form-field-padding-inline: var(--sbb-spacing-responsive-xxxs);\n}\n\n:host(:is([size=m], [size=l])) {\n --sbb-form-field-input-text-size: var(--sbb-text-font-size-m);\n --sbb-form-field-label-text-size: var(--sbb-text-font-size-xs);\n --_sbb-form-field-input-margin-block-end: 0;\n --_sbb-form-field-label-to-input-overlapping: var(--sbb-spacing-fixed-1x);\n --_sbb-form-field-floating-label-transform: 0.53125rem;\n --_sbb-form-field-spacer-margin-block-end: calc(\n -1 * var(--_sbb-form-field-label-to-input-overlapping)\n );\n}\n@media (min-width: calc(64rem)) {\n :host(:is([size=m], [size=l])) {\n --_sbb-form-field-floating-label-transform: 0.65625rem;\n }\n}\n\n:host([error-space=reserve]) {\n --sbb-form-field-hint-min-height: calc(\n var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs)\n );\n --sbb-form-field-hint-padding-block-start-override: var(--sbb-form-field-hint-divider-width);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]), :is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-background-color: var(--sbb-background-color-3);\n --sbb-form-field-border-color: var(--sbb-color-graphite);\n --sbb-form-field-border-color: light-dark(var(--sbb-color-graphite), var(--sbb-color-smoke));\n --sbb-form-field-arrow-color: var(--sbb-color-granite);\n --sbb-form-field-arrow-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));\n}\n@media (forced-colors: active) {\n :host(:where(:is(:state(readonly),[state--readonly]), :is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-border-color: ButtonBorder;\n }\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]), :is(:state(disabled),[state--disabled]))[negative]) {\n --sbb-form-field-background-color: var(--sbb-background-color-3-negative);\n --sbb-form-field-border-color: var(--sbb-border-color-5);\n --sbb-form-field-arrow-color: var(--sbb-border-color-5);\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-label-color: var(--sbb-color-granite);\n --sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));\n --sbb-form-field-prefix-color: var(--sbb-color-granite);\n --sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));\n --sbb-form-field-border-style: dashed;\n}\n@media (forced-colors: active) {\n :host(:where(:is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-label-color: GrayText !important;\n --sbb-form-field-prefix-color: GrayText !important;\n --sbb-form-field-text-color: GrayText !important;\n --sbb-form-field-border-color: GrayText !important;\n }\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]))[negative]) {\n --sbb-form-field-text-color: var(--sbb-color-5);\n --sbb-form-field-label-color: var(--sbb-color-5);\n --sbb-form-field-prefix-color: var(--sbb-color-5);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly])):not([negative])) {\n --sbb-form-field-label-color: var(--sbb-color-granite);\n --sbb-form-field-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));\n --sbb-form-field-prefix-color: var(--sbb-color-granite);\n --sbb-form-field-prefix-color: light-dark(var(--sbb-color-granite), var(--sbb-color-storm));\n}\n\n:host(:where(:is(:state(focus),[state--focus]))) {\n --sbb-form-field-border-color: var(--sbb-border-color-3);\n --sbb-form-field-prefix-color: var(--sbb-color-3);\n --sbb-form-field-border-width: var(--sbb-border-width-2x);\n}\n\n:host(:where(:is(:state(focus),[state--focus]))[negative]) {\n --sbb-form-field-border-color: var(--sbb-border-color-3-negative);\n --sbb-form-field-prefix-color: var(--sbb-color-3-negative);\n}\n\n@media (forced-colors: active) {\n :host(:is(:state(focus),[state--focus])) {\n --sbb-form-field-border-color: Highlight;\n --sbb-form-field-prefix-color: Highlight;\n }\n}\n\n:host(:not(:where(:is(:state(has-error),[state--has-error]), :is(:state(has-hint),[state--has-hint])))) {\n --sbb-form-field-hint-padding-block-start: 0;\n}\n\n:host([floating-label]) {\n --sbb-select-placeholder-color: transparent;\n}\n@media (forced-colors: active) {\n :host([floating-label]) {\n --sbb-select-placeholder-color: Canvas;\n }\n}\n\n:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])), [hidden-label])) {\n --sbb-form-field-label-size: 0rem;\n --_sbb-form-field-label-to-input-overlapping: 0rem;\n}\n\n:host(:where(:is(:state(input-element-sbb-slider),[state--input-element-sbb-slider]))) {\n --sbb-form-field-overflow: visible;\n}\n\n.sbb-form-field__space-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.sbb-form-field__space-wrapper::before {\n content: \"​\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-form-field__wrapper {\n display: flex;\n flex: 1;\n gap: var(--sbb-form-field-gap);\n padding-inline: var(--sbb-form-field-padding-inline);\n border-radius: var(--sbb-form-field-border-radius);\n min-height: var(--sbb-form-field-min-height);\n max-height: var(--sbb-form-field-max-height);\n background-color: var(--sbb-form-field-background-color);\n position: relative;\n}\n.sbb-form-field__wrapper::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n border: var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);\n border-radius: var(--sbb-form-field-border-radius);\n pointer-events: none;\n}\n:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n outline-offset: var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset));\n}\n@media (forced-colors: none) {\n :host(:is([borderless], :is(:state(input-element-sbb-slider),[state--input-element-sbb-slider]))) .sbb-form-field__wrapper::before {\n border-color: transparent;\n }\n .sbb-form-field__wrapper::after {\n position: absolute;\n border-block-end: var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);\n inset-inline: var(--sbb-form-field-border-block-end-inset-inline, var(--sbb-form-field-padding-inline));\n inset-block-end: 0;\n z-index: var(--sbb-form-field-focus-underline-z-index, initial);\n }\n :host(:where(:is(:state(focus),[state--focus]), :is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper::after {\n content: \"\";\n }\n}\n\n::slotted(*[slot=prefix]) {\n color: var(--sbb-form-field-prefix-color);\n}\n\n::slotted(*[slot=prefix]),\n::slotted(*[slot=suffix]) {\n display: flex;\n min-width: var(--sbb-icon-svg-width);\n margin-block-start: calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2);\n}\n\n:host(:where(:is(:state(empty),[state--empty]), :is(:state(disabled),[state--disabled]), :is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear) {\n display: none;\n}\n\n:host(:is(:state(has-error),[state--has-error])) slot[name=hint] {\n display: none;\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]), :is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-text-counter) {\n display: none;\n}\n\n::slotted(sbb-datepicker-toggle) {\n padding-block-end: calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2);\n}\n\n@media (forced-colors: active) {\n ::slotted(*[slot=suffix]) {\n color: var(--sbb-form-field-prefix-color);\n }\n}\n.sbb-form-field__select-input-icon {\n position: absolute;\n top: 50%;\n translate: 0 -50%;\n display: none;\n position: absolute;\n inset-inline-end: 0;\n margin-block-start: calc(-1 * var(--sbb-form-field-margin-block-start) / 2);\n pointer-events: none;\n color: var(--sbb-form-field-arrow-color);\n}\n:host(:is(:is(:state(input-element-select),[state--input-element-select]),\n:is(:state(input-element-sbb-select),[state--input-element-sbb-select]),\n:is(:state(explicit-input-element-select),[state--explicit-input-element-select]))) .sbb-form-field__select-input-icon {\n display: inline-block;\n}\n\n.sbb-form-field__input-container {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n position: relative;\n margin-block-start: var(--sbb-form-field-margin-block-start);\n min-width: 0;\n}\n\n.sbb-form-field__label-spacer {\n display: flex;\n height: calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));\n margin-block-end: calc(var(--_sbb-form-field-spacer-margin-block-end) + var(--_sbb-form-field-spacer-margin-block-end-textarea, 0px));\n}\n\n:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label, .sbb-form-field__label-spacer) {\n display: none;\n}\n:host([hidden-label]) :is(.sbb-form-field__label, .sbb-form-field__label-spacer) {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.sbb-form-field__label {\n display: flex;\n max-width: 100%;\n cursor: var(--sbb-cursor-default);\n position: absolute;\n inset-block-start: 0;\n color: var(--sbb-form-field-label-color);\n font-size: var(--sbb-form-field-label-text-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n}\n:host(:where(:is(:state(input-element-select),[state--input-element-select]), :is(:state(input-element-sbb-select),[state--input-element-sbb-select]))) .sbb-form-field__label {\n padding-inline-end: var(--sbb-form-field-select-inline-padding-end);\n}\n:host([floating-label]) .sbb-form-field__label {\n transform-origin: 0 0;\n pointer-events: none;\n backface-visibility: hidden;\n will-change: transform, font-size;\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));\n transition-timing-function: var(--sbb-animation-easing);\n transition-property: transform, font-size;\n}\n:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-element-sbb-select),[state--input-element-sbb-select]))),\n:where(:is(:state(has-popup-open),[state--has-popup-open]))),\n:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label {\n font-size: var(--sbb-form-field-input-text-size);\n transform: translateY(var(--_sbb-form-field-floating-label-transform));\n}\n@media (forced-colors: active) {\n :host(:where(:is(:state(input-element-textarea),[state--input-element-textarea]))) .sbb-form-field__label {\n z-index: 1;\n }\n}\n\n.sbb-form-field__label-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbb-form-field__input {\n display: flex;\n flex: 1;\n align-items: start;\n}\n:host(:is(:is(:state(input-element-input),[state--input-element-input]),\n:is(:state(input-element-select),[state--input-element-select]),\n:is(:state(input-element-sbb-select),[state--input-element-sbb-select]),\n:is(:state(input-element-sbb-date-input),[state--input-element-sbb-date-input]),\n:is(:state(input-element-sbb-time-input),[state--input-element-sbb-time-input]))) .sbb-form-field__input {\n margin-block-end: var(--_sbb-form-field-input-margin-block-end);\n}\n\n.sbb-form-field__hint {\n display: flex;\n min-height: var(--sbb-form-field-hint-min-height);\n flex-direction: column;\n margin-inline-start: var(--sbb-form-field-padding-inline);\n margin-block-start: var(--sbb-form-field-hint-padding-block-start-override, var(--sbb-form-field-hint-padding-block-start));\n}\n";
59
+ var form_field_default = "@charset \"UTF-8\";\n:host {\n --sbb-form-field-hint-divider-width: var(--sbb-spacing-fixed-1x);\n --sbb-form-field-hint-padding-block-start: var(--sbb-form-field-hint-divider-width);\n --sbb-form-field-select-inline-padding-end: calc(\n var(--sbb-icon-svg-width) + var(--sbb-form-field-gap)\n );\n --sbb-form-field-label-size: calc(\n var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text)\n );\n --sbb-form-field-text-line-height: calc(\n var(--sbb-form-field-input-text-size) * var(--sbb-typo-line-height-text)\n );\n --sbb-form-field-margin-block-start: calc(\n (\n var(--sbb-form-field-min-height) - var(--sbb-form-field-label-size) - var(\n --sbb-form-field-text-line-height\n ) +\n var(--_sbb-form-field-label-to-input-overlapping)\n ) /\n 2\n );\n --sbb-icon-svg-width: var(--sbb-form-field-icon-size);\n --sbb-icon-svg-height: var(--sbb-form-field-icon-size);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-default);\n --sbb-focus-outline-color: light-dark(\n var(--sbb-focus-outline-color-default),\n var(--sbb-focus-outline-color-dark)\n );\n display: inline-block;\n color: var(--sbb-form-field-color);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host(:where(:not([width=collapse]))) {\n min-width: var(--sbb-form-field-min-width);\n width: min(var(--sbb-form-field-max-width), 100%);\n}\n\n:host([negative]) {\n color: var(--sbb-form-field-color-negative);\n --sbb-form-field-background-color: var(--sbb-form-field-background-color-negative);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-negative);\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-negative);\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-negative);\n --sbb-form-field-text-color: var(--sbb-form-field-text-color-negative);\n --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);\n --sbb-form-field-arrow-color: var(--sbb-form-field-arrow-color-negative);\n}\n\n:host([size=s]) {\n --sbb-form-field-min-height: var(--sbb-form-field-min-height-s);\n --sbb-form-field-padding-inline: var(--sbb-form-field-padding-inline-s);\n --sbb-form-field-input-text-size: var(--sbb-form-field-input-text-size-s);\n --sbb-form-field-label-text-size: var(--sbb-form-field-label-text-size-s);\n --_sbb-form-field-input-margin-block-end: var(--_sbb-form-field-input-margin-block-end-s);\n --_sbb-form-field-label-to-input-overlapping: var(--_sbb-form-field-label-to-input-overlapping-s);\n --_sbb-form-field-floating-label-transform: var(--_sbb-form-field-floating-label-transform-s);\n --_sbb-form-field-spacer-margin-block-end: var(--_sbb-form-field-spacer-margin-block-end-s);\n}\n\n:host([size=s]:where(:is(:state(input-element-textarea),[state--input-element-textarea]))) {\n --_sbb-form-field-spacer-margin-block-end-textarea: var(--sbb-form-field-textarea-s-spacer);\n}\n\n:host([size=m]) {\n --sbb-form-field-min-height: var(--sbb-form-field-min-height-m);\n --sbb-form-field-padding-inline: var(--sbb-form-field-padding-inline-m);\n --sbb-form-field-input-text-size: var(--sbb-form-field-input-text-size-m);\n --sbb-form-field-label-text-size: var(--sbb-form-field-label-text-size-m);\n --_sbb-form-field-input-margin-block-end: var(--_sbb-form-field-input-margin-block-end-m);\n --_sbb-form-field-label-to-input-overlapping: var(--_sbb-form-field-label-to-input-overlapping-m);\n --_sbb-form-field-floating-label-transform: var(--_sbb-form-field-floating-label-transform-m);\n --_sbb-form-field-spacer-margin-block-end: var(--_sbb-form-field-spacer-margin-block-end-m);\n}\n\n:host([size=l]) {\n --sbb-form-field-min-height: var(--sbb-form-field-min-height-l);\n --sbb-form-field-padding-inline: var(--sbb-form-field-padding-inline-l);\n --sbb-form-field-input-text-size: var(--sbb-form-field-input-text-size-l);\n --sbb-form-field-label-text-size: var(--sbb-form-field-label-text-size-l);\n --_sbb-form-field-input-margin-block-end: var(--_sbb-form-field-input-margin-block-end-l);\n --_sbb-form-field-label-to-input-overlapping: var(--_sbb-form-field-label-to-input-overlapping-l);\n --_sbb-form-field-floating-label-transform: var(--_sbb-form-field-floating-label-transform-l);\n --_sbb-form-field-spacer-margin-block-end: var(--_sbb-form-field-spacer-margin-block-end-l);\n}\n\n:host([error-space=reserve]) {\n --sbb-form-field-hint-min-height: calc(\n var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs)\n );\n --sbb-form-field-hint-padding-block-start-override: var(--sbb-form-field-hint-divider-width);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]), :is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-background-color: var(--sbb-form-field-background-color-disabled);\n --sbb-form-field-arrow-color: var(--sbb-form-field-arrow-color-disabled);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]), :is(:state(disabled),[state--disabled]))[negative]) {\n --sbb-form-field-background-color: var(--sbb-form-field-background-color-disabled-negative);\n --sbb-form-field-arrow-color: var(--sbb-form-field-arrow-color-disabled-negative);\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]))) {\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-disabled);\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-disabled);\n --sbb-form-field-text-color: var(--sbb-form-field-text-color-disabled);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-disabled);\n --sbb-form-field-border-style: var(--sbb-form-field-border-style-disabled);\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]))[negative]) {\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-disabled-negative);\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-disabled-negative);\n --sbb-form-field-text-color: var(--sbb-form-field-text-color-disabled-negative);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-disabled-negative);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]))) {\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-readonly);\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-readonly);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-readonly);\n}\n\n:host(:where(:is(:state(readonly),[state--readonly]))[negative]) {\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-readonly-negative);\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-readonly-negative);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-readonly-negative);\n}\n\n:host(:where(:is(:state(focus),[state--focus]))) {\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-focus);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-focus);\n --sbb-form-field-border-width: var(--sbb-form-field-border-width-focus);\n}\n\n:host(:where(:is(:state(focus),[state--focus]))[negative]) {\n --sbb-form-field-prefix-color: var(--sbb-form-field-prefix-color-focus-negative);\n --sbb-form-field-border-color: var(--sbb-form-field-border-color-focus-negative);\n}\n\n:host(:not(:where(:is(:state(has-error),[state--has-error]), :is(:state(has-hint),[state--has-hint])))) {\n --sbb-form-field-hint-padding-block-start: 0;\n}\n\n:host([floating-label]) {\n --sbb-select-placeholder-color: transparent;\n}\n@media (forced-colors: active) {\n :host([floating-label]) {\n --sbb-select-placeholder-color: Canvas;\n }\n}\n\n:host(:is(:not(:is(:state(slotted-label),[state--slotted-label])), [hidden-label])) {\n --sbb-form-field-label-size: 0rem;\n --_sbb-form-field-label-to-input-overlapping: 0rem;\n}\n\n:host(:where(:is(:state(input-element-sbb-slider),[state--input-element-sbb-slider]))) {\n --sbb-form-field-overflow: visible;\n}\n\n.sbb-form-field__space-wrapper {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.sbb-form-field__space-wrapper::before {\n content: \"​\";\n user-select: none;\n width: 0;\n height: 0;\n}\n\n.sbb-form-field__wrapper {\n display: flex;\n flex: 1;\n gap: var(--sbb-form-field-gap);\n padding-inline: var(--sbb-form-field-padding-inline);\n border-radius: var(--sbb-form-field-border-radius);\n min-height: var(--sbb-form-field-min-height);\n max-height: var(--sbb-form-field-max-height);\n background-color: var(--sbb-form-field-background-color);\n position: relative;\n}\n.sbb-form-field__wrapper::before {\n content: \"\";\n display: block;\n position: absolute;\n inset: 0;\n border: var(--sbb-form-field-border-width) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);\n border-radius: var(--sbb-form-field-border-radius);\n pointer-events: none;\n}\n:host(:where(:is(:state(focus),[state--focus]):is(:state(focus-origin-keyboard),[state--focus-origin-keyboard]))) .sbb-form-field__wrapper {\n outline-offset: var(--sbb-focus-outline-offset);\n outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);\n outline-offset: var(--sbb-form-field-outline-offset, var(--sbb-focus-outline-offset));\n}\n@media (forced-colors: none) {\n :host(:is([borderless], :is(:state(input-element-sbb-slider),[state--input-element-sbb-slider]))) .sbb-form-field__wrapper::before {\n border-color: transparent;\n }\n .sbb-form-field__wrapper::after {\n position: absolute;\n border-block-end: var(--sbb-border-width-1x) var(--sbb-form-field-border-style) var(--sbb-form-field-border-color);\n inset-inline: var(--sbb-form-field-border-block-end-inset-inline, var(--sbb-form-field-padding-inline));\n inset-block-end: 0;\n z-index: var(--sbb-form-field-focus-underline-z-index, initial);\n }\n :host(:where(:is(:state(focus),[state--focus]), :is(:state(disabled),[state--disabled]))[borderless]) .sbb-form-field__wrapper::after {\n content: \"\";\n }\n}\n\n::slotted(*[slot=prefix]) {\n color: var(--sbb-form-field-prefix-color);\n}\n\n::slotted(*[slot=prefix]),\n::slotted(*[slot=suffix]) {\n display: flex;\n min-width: var(--sbb-icon-svg-width);\n margin-block-start: calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2);\n}\n\n:host(:where(:is(:state(empty),[state--empty]), :is(:state(disabled),[state--disabled]), :is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-clear) {\n display: none;\n}\n\n:host(:is(:state(has-error),[state--has-error])) slot[name=hint] {\n display: none;\n}\n\n:host(:where(:is(:state(disabled),[state--disabled]), :is(:state(readonly),[state--readonly]))) ::slotted(sbb-form-field-text-counter) {\n display: none;\n}\n\n::slotted(sbb-datepicker-toggle) {\n padding-block-end: calc((var(--sbb-form-field-min-height) - var(--sbb-size-icon-ui-small)) / 2);\n}\n\n@media (forced-colors: active) {\n ::slotted(*[slot=suffix]) {\n color: var(--sbb-form-field-prefix-color);\n }\n}\n.sbb-form-field__select-input-icon {\n position: absolute;\n top: 50%;\n translate: 0 -50%;\n display: none;\n position: absolute;\n inset-inline-end: 0;\n margin-block-start: calc(-1 * var(--sbb-form-field-margin-block-start) / 2);\n pointer-events: none;\n color: var(--sbb-form-field-arrow-color);\n}\n:host(:is(:is(:state(input-element-select),[state--input-element-select]),\n:is(:state(input-element-sbb-select),[state--input-element-sbb-select]),\n:is(:state(explicit-input-element-select),[state--explicit-input-element-select]))) .sbb-form-field__select-input-icon {\n display: inline-block;\n}\n\n.sbb-form-field__input-container {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n position: relative;\n margin-block-start: var(--sbb-form-field-margin-block-start);\n min-width: 0;\n}\n\n.sbb-form-field__label-spacer {\n display: flex;\n height: calc(var(--sbb-form-field-label-text-size) * var(--sbb-typo-line-height-text));\n margin-block-end: calc(var(--_sbb-form-field-spacer-margin-block-end) + var(--_sbb-form-field-spacer-margin-block-end-textarea, 0px));\n}\n\n:host(:not(:is(:state(slotted-label),[state--slotted-label]))) :is(.sbb-form-field__label, .sbb-form-field__label-spacer) {\n display: none;\n}\n:host([hidden-label]) :is(.sbb-form-field__label, .sbb-form-field__label-spacer) {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}\n\n.sbb-form-field__label {\n display: flex;\n max-width: 100%;\n cursor: var(--sbb-cursor-default);\n position: absolute;\n inset-block-start: 0;\n color: var(--sbb-form-field-label-color);\n font-size: var(--sbb-form-field-label-text-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n}\n:host(:where(:is(:state(input-element-select),[state--input-element-select]), :is(:state(input-element-sbb-select),[state--input-element-sbb-select]))) .sbb-form-field__label {\n padding-inline-end: var(--sbb-form-field-select-inline-padding-end);\n}\n:host([floating-label]) .sbb-form-field__label {\n transform-origin: 0 0;\n pointer-events: none;\n backface-visibility: hidden;\n will-change: transform, font-size;\n transition-duration: var(--sbb-disable-animation-duration, var(--sbb-animation-duration-2x));\n transition-timing-function: var(--sbb-animation-easing);\n transition-property: transform, font-size;\n}\n:host([floating-label]:is(:not(:where(:is(:state(focus),[state--focus])):not(:where(:is(:state(input-element-sbb-select),[state--input-element-sbb-select]))),\n:where(:is(:state(has-popup-open),[state--has-popup-open]))),\n:where(:is(:state(readonly),[state--readonly]))):where(:is(:state(empty),[state--empty]))) .sbb-form-field__label {\n font-size: var(--sbb-form-field-input-text-size);\n transform: translateY(var(--_sbb-form-field-floating-label-transform));\n}\n@media (forced-colors: active) {\n :host(:where(:is(:state(input-element-textarea),[state--input-element-textarea]))) .sbb-form-field__label {\n z-index: 1;\n }\n}\n\n.sbb-form-field__label-ellipsis {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n.sbb-form-field__input {\n display: flex;\n flex: 1;\n align-items: start;\n}\n:host(:is(:is(:state(input-element-input),[state--input-element-input]),\n:is(:state(input-element-select),[state--input-element-select]),\n:is(:state(input-element-sbb-select),[state--input-element-sbb-select]),\n:is(:state(input-element-sbb-date-input),[state--input-element-sbb-date-input]),\n:is(:state(input-element-sbb-time-input),[state--input-element-sbb-time-input]))) .sbb-form-field__input {\n margin-block-end: var(--_sbb-form-field-input-margin-block-end);\n}\n\n.sbb-form-field__hint {\n display: flex;\n min-height: var(--sbb-form-field-hint-min-height);\n flex-direction: column;\n margin-inline-start: var(--sbb-form-field-padding-inline);\n margin-block-start: var(--sbb-form-field-hint-padding-block-start-override, var(--sbb-form-field-hint-padding-block-start));\n}\n";
60
60
 
61
61
  //#endregion
62
62
  //#region src/elements/form-field/form-field/form-field.component.ts
@@ -775,7 +775,7 @@ var SbbFormFieldClearElement = class extends SbbNegativeMixin(SbbButtonBaseEleme
775
775
 
776
776
  //#endregion
777
777
  //#region src/elements/form-field/hint/hint.scss?inline
778
- var hint_default = ":host {\n --sbb-form-field-hint-font-size: var(--sbb-text-font-size-xxs);\n display: inline-block;\n color: var(--sbb-form-field-label-color);\n font-size: var(--sbb-form-field-hint-font-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host([negative]) {\n --sbb-form-field-label-color: var(--sbb-color-5);\n}\n";
778
+ var hint_default = ":host {\n --sbb-form-field-hint-font-size: var(--sbb-text-font-size-xxs);\n display: inline-block;\n color: var(--sbb-form-field-label-color);\n font-size: var(--sbb-form-field-hint-font-size);\n letter-spacing: var(--sbb-letter-spacing-text);\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host([negative]) {\n --sbb-form-field-label-color: var(--sbb-form-field-label-color-negative);\n}\n";
779
779
 
780
780
  //#endregion
781
781
  //#region src/elements/form-field/hint/hint.component.ts
@@ -7,71 +7,170 @@ $theme: 'standard' !default;
7
7
  --sbb-error-icon-size: #{sbb.px-to-rem-build(17)};
8
8
  --sbb-error-font-size: var(--sbb-text-font-size-xs);
9
9
  --sbb-form-field-background-color: var(--sbb-background-color-1);
10
+ --sbb-form-field-background-color-disabled: var(--sbb-background-color-3);
11
+ --sbb-form-field-background-color-negative: var(--sbb-background-color-1-negative);
12
+ --sbb-form-field-background-color-disabled-negative: var(--sbb-background-color-3-negative);
13
+ --sbb-form-field-background-color-required-highlight: light-dark(
14
+ color-mix(in srgb, var(--sbb-color-peach) 5%, var(--sbb-background-color-1)),
15
+ color-mix(in srgb, var(--sbb-color-peach) 10%, var(--sbb-background-color-1))
16
+ );
17
+ --sbb-form-field-background-color-required-highlight-negative: color-mix(
18
+ in srgb,
19
+ var(--sbb-color-peach) 10%,
20
+ var(--sbb-background-color-1-negative)
21
+ );
10
22
  --sbb-form-field-border-color: var(--sbb-border-color-5);
23
+ --sbb-form-field-border-color-disabled: light-dark(
24
+ var(--sbb-color-graphite),
25
+ var(--sbb-color-smoke)
26
+ );
27
+ --sbb-form-field-border-color-negative: var(--sbb-border-color-5);
28
+ --sbb-form-field-border-color-disabled-negative: var(--sbb-border-color-5);
29
+ --sbb-form-field-border-color-focus: var(--sbb-border-color-3);
30
+ --sbb-form-field-border-color-focus-negative: var(--sbb-border-color-3-negative);
31
+ --sbb-form-field-border-color-error: var(--sbb-color-error);
32
+ --sbb-form-field-border-color-error-negative: var(--sbb-color-red85);
33
+ --sbb-form-field-border-color-readonly: light-dark(
34
+ var(--sbb-color-graphite),
35
+ var(--sbb-color-smoke)
36
+ );
37
+ --sbb-form-field-border-color-readonly-negative: var(--sbb-border-color-5);
38
+ --sbb-form-field-label-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
39
+ --sbb-form-field-label-color-disabled: light-dark(
40
+ var(--sbb-color-granite),
41
+ var(--sbb-color-smoke)
42
+ );
43
+ --sbb-form-field-label-color-negative: var(--sbb-color-5);
44
+ --sbb-form-field-label-color-disabled-negative: var(--sbb-color-5);
45
+ --sbb-form-field-label-color-readonly: light-dark(
46
+ var(--sbb-color-granite),
47
+ var(--sbb-color-smoke)
48
+ );
49
+ --sbb-form-field-label-color-readonly-negative: var(--sbb-color-5);
50
+ --sbb-form-field-prefix-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
51
+ --sbb-form-field-prefix-color-disabled: light-dark(
52
+ var(--sbb-color-granite),
53
+ var(--sbb-color-storm)
54
+ );
55
+ --sbb-form-field-prefix-color-negative: var(--sbb-color-5);
56
+ --sbb-form-field-prefix-color-disabled-negative: var(--sbb-color-5);
57
+ --sbb-form-field-prefix-color-focus: var(--sbb-color-3);
58
+ --sbb-form-field-prefix-color-focus-negative: var(--sbb-color-3-negative);
59
+ --sbb-form-field-prefix-color-readonly: light-dark(
60
+ var(--sbb-color-granite),
61
+ var(--sbb-color-storm)
62
+ );
63
+ --sbb-form-field-prefix-color-readonly-negative: var(--sbb-color-5);
11
64
  --sbb-form-field-border-style: solid;
65
+ --sbb-form-field-border-style-disabled: dashed;
12
66
  --sbb-form-field-border-radius: var(--sbb-border-radius-4x);
13
67
  --sbb-form-field-border-width: var(--sbb-border-width-1x);
68
+ --sbb-form-field-border-width-focus: var(--sbb-border-width-2x);
14
69
  --sbb-form-field-color: var(--sbb-color-3);
15
- --sbb-form-field-label-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
16
- --sbb-form-field-prefix-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
70
+ --sbb-form-field-color-negative: var(--sbb-color-3-negative);
71
+ --sbb-form-field-min-width: #{sbb.px-to-rem-build(150)};
72
+ --sbb-form-field-max-width: #{sbb.px-to-rem-build(300)};
17
73
  --sbb-form-field-text-color: var(--sbb-color-3);
74
+ --sbb-form-field-text-color-disabled: var(--sbb-color-3);
75
+ --sbb-form-field-text-color-negative: var(--sbb-color-3-negative);
76
+ --sbb-form-field-text-color-disabled-negative: var(--sbb-color-5);
77
+ --sbb-form-field-text-color-error: var(--sbb-color-error);
78
+ --sbb-form-field-text-color-error-negative: var(--sbb-color-red85);
18
79
  --sbb-form-field-arrow-color: var(--sbb-color-3);
80
+ --sbb-form-field-arrow-color-disabled: light-dark(
81
+ var(--sbb-color-granite),
82
+ var(--sbb-color-storm)
83
+ );
84
+ --sbb-form-field-arrow-color-negative: var(--sbb-color-3-negative);
85
+ --sbb-form-field-arrow-color-disabled-negative: var(--sbb-border-color-5);
86
+ --sbb-form-field-placeholder-color-disabled: light-dark(
87
+ var(--sbb-color-granite),
88
+ var(--sbb-color-smoke)
89
+ );
19
90
  --sbb-form-field-gap: var(--sbb-spacing-fixed-2x);
20
91
  --sbb-form-field-icon-size: var(--sbb-size-icon-ui-small);
21
92
  --sbb-form-field-textarea-s-spacer: var(--sbb-spacing-fixed-1x);
93
+ --sbb-form-field-min-height-s: var(--sbb-size-element-xs);
94
+ --sbb-form-field-min-height-m: var(--sbb-size-element-m);
95
+ --sbb-form-field-min-height-l: var(--sbb-size-element-l);
22
96
  --sbb-form-field-min-height: #{sbb.theme-pattern-select(
23
97
  (
24
- 'standard': var(--sbb-size-element-m),
25
- 'lean': var(--sbb-size-element-xs),
98
+ 'standard': var(--sbb-form-field-min-height-m),
99
+ 'lean': var(--sbb-form-field-min-height-s),
26
100
  ),
27
101
  $theme
28
102
  )};
103
+ --sbb-form-field-padding-inline-s: var(--sbb-spacing-fixed-2x);
104
+ --sbb-form-field-padding-inline-m: var(--sbb-spacing-fixed-3x);
105
+ --sbb-form-field-padding-inline-l: var(--sbb-spacing-responsive-xxxs);
29
106
  --sbb-form-field-padding-inline: #{sbb.theme-pattern-select(
30
107
  (
31
- 'standard': var(--sbb-spacing-fixed-3x),
32
- 'lean': var(--sbb-spacing-fixed-2x),
108
+ 'standard': var(--sbb-form-field-padding-inline-m),
109
+ 'lean': var(--sbb-form-field-padding-inline-s),
33
110
  ),
34
111
  $theme
35
112
  )};
113
+ --sbb-form-field-input-text-size-s: var(--sbb-text-font-size-s);
114
+ --sbb-form-field-input-text-size-m: var(--sbb-text-font-size-m);
115
+ --sbb-form-field-input-text-size-l: var(--sbb-text-font-size-m);
36
116
  --sbb-form-field-input-text-size: #{sbb.theme-pattern-select(
37
117
  (
38
- 'standard': var(--sbb-text-font-size-m),
39
- 'lean': var(--sbb-text-font-size-s),
118
+ 'standard': var(--sbb-form-field-input-text-size-m),
119
+ 'lean': var(--sbb-form-field-input-text-size-s),
40
120
  ),
41
121
  $theme
42
122
  )};
123
+ --sbb-form-field-label-text-size-s: var(--sbb-text-font-size-xxs);
124
+ --sbb-form-field-label-text-size-m: var(--sbb-text-font-size-xs);
125
+ --sbb-form-field-label-text-size-l: var(--sbb-text-font-size-xs);
43
126
  --sbb-form-field-label-text-size: #{sbb.theme-pattern-select(
44
127
  (
45
- 'standard': var(--sbb-text-font-size-xs),
46
- 'lean': var(--sbb-text-font-size-xxs),
128
+ 'standard': var(--sbb-form-field-label-text-size-m),
129
+ 'lean': var(--sbb-form-field-label-text-size-s),
47
130
  ),
48
131
  $theme
49
132
  )};
133
+ --_sbb-form-field-label-to-input-overlapping-s: #{sbb.px-to-rem-build(10)};
134
+ --_sbb-form-field-label-to-input-overlapping-m: var(--sbb-spacing-fixed-1x);
135
+ --_sbb-form-field-label-to-input-overlapping-l: var(--sbb-spacing-fixed-1x);
50
136
  --_sbb-form-field-label-to-input-overlapping: #{sbb.theme-pattern-select(
51
137
  (
52
- 'standard': var(--sbb-spacing-fixed-1x),
53
- 'lean': #{sbb.px-to-rem-build(10)},
138
+ 'standard': var(--_sbb-form-field-label-to-input-overlapping-m),
139
+ 'lean': var(--_sbb-form-field-label-to-input-overlapping-s),
54
140
  ),
55
141
  $theme
56
142
  )};
143
+ --_sbb-form-field-floating-label-transform-s: #{sbb.px-to-rem-build(5.5)};
144
+ --_sbb-form-field-floating-label-transform-m: #{sbb.px-to-rem-build(8.5)};
145
+ --_sbb-form-field-floating-label-transform-l: #{sbb.px-to-rem-build(8.5)};
57
146
  --_sbb-form-field-floating-label-transform: #{sbb.theme-pattern-select(
58
147
  (
59
- 'standard': #{sbb.px-to-rem-build(8.5)},
60
- 'lean': #{sbb.px-to-rem-build(5.5)},
148
+ 'standard': var(--_sbb-form-field-floating-label-transform-m),
149
+ 'lean': var(--_sbb-form-field-floating-label-transform-s),
61
150
  ),
62
151
  $theme
63
152
  )};
153
+ --_sbb-form-field-spacer-margin-block-end-s: #{sbb.px-to-rem-build(-8.5)};
154
+ --_sbb-form-field-spacer-margin-block-end-m: calc(
155
+ -1 * var(--_sbb-form-field-label-to-input-overlapping-m)
156
+ );
157
+ --_sbb-form-field-spacer-margin-block-end-l: calc(
158
+ -1 * var(--_sbb-form-field-label-to-input-overlapping-l)
159
+ );
64
160
  --_sbb-form-field-spacer-margin-block-end: #{sbb.theme-pattern-select(
65
161
  (
66
- 'standard': calc(-1 * var(--_sbb-form-field-label-to-input-overlapping)),
67
- 'lean': #{sbb.px-to-rem-build(-8.5)},
162
+ 'standard': var(--_sbb-form-field-spacer-margin-block-end-m),
163
+ 'lean': var(--_sbb-form-field-spacer-margin-block-end-s),
68
164
  ),
69
165
  $theme
70
166
  )};
167
+ --_sbb-form-field-input-margin-block-end-s: #{sbb.px-to-rem-build(-2)};
168
+ --_sbb-form-field-input-margin-block-end-m: 0;
169
+ --_sbb-form-field-input-margin-block-end-l: 0;
71
170
  --_sbb-form-field-input-margin-block-end: #{sbb.theme-pattern-select(
72
171
  (
73
- 'standard': 0,
74
- 'lean': #{sbb.px-to-rem-build(-2)},
172
+ 'standard': var(--_sbb-form-field-input-margin-block-end-m),
173
+ 'lean': var(--_sbb-form-field-input-margin-block-end-s),
75
174
  ),
76
175
  $theme
77
176
  )};
@@ -79,27 +178,57 @@ $theme: 'standard' !default;
79
178
 
80
179
  @mixin forced-colors {
81
180
  --sbb-form-field-border-color: ButtonBorder;
181
+ --sbb-form-field-border-color-disabled: GrayText;
182
+ --sbb-form-field-border-color-disabled-negative: GrayText;
183
+ --sbb-form-field-border-color-negative: ButtonBorder;
184
+ --sbb-form-field-border-color-focus: Highlight;
185
+ --sbb-form-field-border-color-focus-negative: Highlight;
186
+ --sbb-form-field-border-color-error: LinkText;
187
+ --sbb-form-field-border-color-error-negative: LinkText;
188
+ --sbb-form-field-label-color-disabled: GrayText;
189
+ --sbb-form-field-label-color-disabled-negative: GrayText;
190
+ --sbb-form-field-prefix-color-disabled: GrayText;
191
+ --sbb-form-field-prefix-color-disabled-negative: GrayText;
192
+ --sbb-form-field-prefix-color-focus: Highlight;
193
+ --sbb-form-field-prefix-color-focus-negative: Highlight;
194
+ --sbb-form-field-text-color-disabled: GrayText;
195
+ --sbb-form-field-text-color-disabled-negative: GrayText;
196
+ --sbb-form-field-text-color-error: LinkText;
197
+ --sbb-form-field-text-color-error-negative: LinkText;
82
198
  }
83
199
 
84
200
  @mixin breakpoint-large {
201
+ --_sbb-form-field-label-to-input-overlapping-s: #{sbb.px-to-rem-build(11)};
202
+ --_sbb-form-field-label-to-input-overlapping-m: var(--sbb-spacing-fixed-1x);
203
+ --_sbb-form-field-label-to-input-overlapping-l: var(--sbb-spacing-fixed-1x);
85
204
  --_sbb-form-field-label-to-input-overlapping: #{sbb.theme-pattern-select(
86
205
  (
87
- 'standard': var(--sbb-spacing-fixed-1x),
88
- 'lean': #{sbb.px-to-rem-build(11)},
206
+ 'standard': var(--_sbb-form-field-label-to-input-overlapping-m),
207
+ 'lean': var(--_sbb-form-field-label-to-input-overlapping-s),
89
208
  ),
90
209
  $theme
91
210
  )};
211
+ --_sbb-form-field-floating-label-transform-s: #{sbb.px-to-rem-build(5)};
212
+ --_sbb-form-field-floating-label-transform-m: #{sbb.px-to-rem-build(10.5)};
213
+ --_sbb-form-field-floating-label-transform-l: #{sbb.px-to-rem-build(10.5)};
92
214
  --_sbb-form-field-floating-label-transform: #{sbb.theme-pattern-select(
93
215
  (
94
- 'standard': #{sbb.px-to-rem-build(10.5)},
95
- 'lean': #{sbb.px-to-rem-build(5)},
216
+ 'standard': var(--_sbb-form-field-floating-label-transform-m),
217
+ 'lean': var(--_sbb-form-field-floating-label-transform-s),
96
218
  ),
97
219
  $theme
98
220
  )};
221
+ --_sbb-form-field-spacer-margin-block-end-s: #{sbb.px-to-rem-build(-8)};
222
+ --_sbb-form-field-spacer-margin-block-end-m: calc(
223
+ -1 * var(--_sbb-form-field-label-to-input-overlapping-m)
224
+ );
225
+ --_sbb-form-field-spacer-margin-block-end-l: calc(
226
+ -1 * var(--_sbb-form-field-label-to-input-overlapping-l)
227
+ );
99
228
  --_sbb-form-field-spacer-margin-block-end: #{sbb.theme-pattern-select(
100
229
  (
101
- 'standard': calc(-1 * var(--_sbb-form-field-label-to-input-overlapping)),
102
- 'lean': #{sbb.px-to-rem-build(-8)},
230
+ 'standard': var(--_sbb-form-field-spacer-margin-block-end-m),
231
+ 'lean': var(--_sbb-form-field-spacer-margin-block-end-s),
103
232
  ),
104
233
  $theme
105
234
  )};
@@ -157,8 +286,8 @@ $theme: 'standard' !default;
157
286
 
158
287
  // TODO: Remove if webkit bug is resolved: https://bugs.webkit.org/show_bug.cgi?id=223814
159
288
  &:not([floating-label]) :where(input, select, textarea, sbb-select):disabled::placeholder {
160
- color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
161
- -webkit-text-fill-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
289
+ color: var(--sbb-form-field-placeholder-color-disabled);
290
+ -webkit-text-fill-color: var(--sbb-form-field-placeholder-color-disabled);
162
291
  }
163
292
 
164
293
  // Fix positioning issue for select which occurs in Safari
@@ -228,17 +357,12 @@ $theme: 'standard' !default;
228
357
  ),
229
358
  :is(.ng-submitted, .sbb-show-errors) &:has(:is(:invalid, .ng-invalid)),
230
359
  &:state(interacted):state(invalid) {
231
- --sbb-form-field-border-color: var(--sbb-color-error);
232
- --sbb-form-field-text-color: var(--sbb-color-error);
360
+ --sbb-form-field-border-color: var(--sbb-form-field-border-color-error);
361
+ --sbb-form-field-text-color: var(--sbb-form-field-text-color-error);
233
362
 
234
363
  &[negative] {
235
- --sbb-form-field-border-color: var(--sbb-color-red85);
236
- --sbb-form-field-text-color: var(--sbb-color-red85);
237
- }
238
-
239
- @media (forced-colors: active) {
240
- --sbb-form-field-border-color: LinkText !important;
241
- --sbb-form-field-text-color: LinkText !important;
364
+ --sbb-form-field-border-color: var(--sbb-form-field-border-color-error-negative);
365
+ --sbb-form-field-text-color: var(--sbb-form-field-text-color-error-negative);
242
366
  }
243
367
  }
244
368
  }
@@ -250,16 +374,11 @@ $theme: 'standard' !default;
250
374
  :root.sbb-form-field-required-highlight
251
375
  &:has(:where(input, select, textarea, sbb-select, sbb-date-input, sbb-time-input)[required]),
252
376
  &.sbb-form-field-required-highlight {
253
- --sbb-form-field-background-color: light-dark(
254
- color-mix(in srgb, var(--sbb-color-peach) 5%, var(--sbb-background-color-1)),
255
- color-mix(in srgb, var(--sbb-color-peach) 10%, var(--sbb-background-color-1))
256
- );
377
+ --sbb-form-field-background-color: var(--sbb-form-field-background-color-required-highlight);
257
378
 
258
379
  &[negative] {
259
- --sbb-form-field-background-color: color-mix(
260
- in srgb,
261
- var(--sbb-color-peach) 10%,
262
- var(--sbb-background-color-1-negative)
380
+ --sbb-form-field-background-color: var(
381
+ --sbb-form-field-background-color-required-highlight-negative
263
382
  );
264
383
  }
265
384
  }