@sbb-esta/lyne-elements 1.8.0 → 1.10.0
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/accordion/accordion.d.ts +5 -5
- package/accordion/accordion.d.ts.map +1 -1
- package/accordion.js +17 -17
- package/action-group/action-group.d.ts +1 -1
- package/action-group/action-group.d.ts.map +1 -1
- package/action-group.js +3 -3
- package/alert/alert/alert.d.ts +1 -1
- package/alert/alert/alert.d.ts.map +1 -1
- package/alert/alert.js +3 -3
- package/autocomplete/autocomplete-base-element.d.ts +1 -1
- package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
- package/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/autocomplete-grid/autocomplete-grid-option.js +1 -1
- package/autocomplete-grid/autocomplete-grid.js +18 -18
- package/autocomplete.js +9 -9
- package/button/button.js +9 -9
- package/button/common.js +5 -5
- package/button/mini-button/mini-button.d.ts.map +1 -1
- package/button/mini-button.js +17 -15
- package/button/secondary-button.js +6 -6
- package/button/tertiary-button.js +13 -13
- package/button/transparent-button.js +8 -8
- package/calendar/calendar.d.ts +2 -2
- package/calendar/calendar.d.ts.map +1 -1
- package/calendar.js +5 -4
- package/clock/clock.d.ts +2 -2
- package/clock/clock.d.ts.map +1 -1
- package/clock.js +5 -5
- package/container/container.js +14 -14
- package/core/a11y/focus-visible-within-controller.d.ts +1 -1
- package/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/core/a11y/input-modality-detector.d.ts +2 -2
- package/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/core/a11y.js +3 -3
- package/core/base-elements/action-base-element.d.ts +1 -0
- package/core/base-elements/action-base-element.d.ts.map +1 -1
- package/core/base-elements/button-base-element.d.ts +1 -1
- package/core/base-elements/button-base-element.d.ts.map +1 -1
- package/core/base-elements/link-base-element.d.ts.map +1 -1
- package/core/base-elements.js +47 -45
- package/core/controllers/slot-state-controller.d.ts +1 -1
- package/core/controllers/slot-state-controller.d.ts.map +1 -1
- package/core/dom/platform.d.ts +2 -3
- package/core/dom/platform.d.ts.map +1 -1
- package/core/dom.js +38 -40
- package/core/mixins/disabled-mixin.d.ts +8 -0
- package/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/core/mixins.js +97 -89
- package/core/styles/core.scss +6 -0
- package/core/styles/mixins/lists.scss +11 -1
- package/core/styles/mixins/panel.scss +0 -2
- package/core/styles/mixins/table.scss +11 -0
- package/core/styles/mixins/typo.scss +0 -30
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables.scss +1 -0
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +2 -1
- package/core/styles/table.scss +6 -1
- package/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/core/testing.js +61 -54
- package/core.css +7 -14
- package/custom-elements.json +493 -299
- package/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
- package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/datepicker/datepicker-toggle.js +57 -47
- package/datepicker/datepicker.js +1 -0
- package/development/accordion/accordion.d.ts +5 -5
- package/development/accordion/accordion.d.ts.map +1 -1
- package/development/accordion.js +25 -38
- package/development/action-group/action-group.d.ts +1 -1
- package/development/action-group/action-group.d.ts.map +1 -1
- package/development/action-group.js +8 -21
- package/development/alert/alert/alert.d.ts +1 -1
- package/development/alert/alert/alert.d.ts.map +1 -1
- package/development/alert/alert-group.js +2 -15
- package/development/alert/alert.js +6 -19
- package/development/autocomplete/autocomplete-base-element.d.ts +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button/autocomplete-grid-button.d.ts.map +1 -1
- package/development/autocomplete-grid/autocomplete-grid-button.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid-option.js +4 -17
- package/development/autocomplete-grid/autocomplete-grid-row.js +2 -15
- package/development/autocomplete-grid/autocomplete-grid.js +6 -6
- package/development/autocomplete.js +7 -20
- package/development/breadcrumb/breadcrumb-group.js +2 -15
- package/development/breadcrumb/breadcrumb.js +2 -15
- package/development/button/button.js +3 -3
- package/development/button/common.js +2 -17
- package/development/button/mini-button/mini-button.d.ts.map +1 -1
- package/development/button/mini-button-group.js +2 -15
- package/development/button/mini-button.js +6 -17
- package/development/button/secondary-button.js +3 -3
- package/development/button/tertiary-button.js +3 -3
- package/development/button/transparent-button.js +3 -3
- package/development/calendar/calendar.d.ts +2 -2
- package/development/calendar/calendar.d.ts.map +1 -1
- package/development/calendar.js +7 -19
- package/development/card/card-badge.js +2 -15
- package/development/card/card.js +2 -15
- package/development/card/common.js +2 -15
- package/development/checkbox/checkbox-group.js +2 -15
- package/development/checkbox/checkbox.js +2 -15
- package/development/checkbox/common.js +1 -14
- package/development/chip.js +2 -15
- package/development/clock/clock.d.ts +2 -2
- package/development/clock/clock.d.ts.map +1 -1
- package/development/clock.js +3 -16
- package/development/container/container.js +2 -15
- package/development/container/sticky-bar.js +2 -15
- package/development/core/a11y/focus-visible-within-controller.d.ts +1 -1
- package/development/core/a11y/focus-visible-within-controller.d.ts.map +1 -1
- package/development/core/a11y/input-modality-detector.d.ts +2 -2
- package/development/core/a11y/input-modality-detector.d.ts.map +1 -1
- package/development/core/a11y.js +6 -6
- package/development/core/base-elements/action-base-element.d.ts +1 -0
- package/development/core/base-elements/action-base-element.d.ts.map +1 -1
- package/development/core/base-elements/button-base-element.d.ts +1 -1
- package/development/core/base-elements/button-base-element.d.ts.map +1 -1
- package/development/core/base-elements/link-base-element.d.ts.map +1 -1
- package/development/core/base-elements.js +11 -2
- package/development/core/controllers/slot-state-controller.d.ts +1 -1
- package/development/core/controllers/slot-state-controller.d.ts.map +1 -1
- package/development/core/controllers.js +1 -1
- package/development/core/dom/platform.d.ts +2 -3
- package/development/core/dom/platform.d.ts.map +1 -1
- package/development/core/dom.js +4 -5
- package/development/core/mixins/disabled-mixin.d.ts +8 -0
- package/development/core/mixins/disabled-mixin.d.ts.map +1 -1
- package/development/core/mixins.js +24 -15
- package/development/core/testing/wait-for-image-ready.d.ts.map +1 -1
- package/development/core/testing.js +16 -2
- package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
- package/development/datepicker/datepicker-next-day.js +2 -15
- package/development/datepicker/datepicker-previous-day.js +2 -15
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +2 -0
- package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
- package/development/datepicker/datepicker-toggle.js +22 -24
- package/development/datepicker/datepicker.js +3 -15
- package/development/dialog/dialog-actions.js +2 -15
- package/development/dialog/dialog-content.js +2 -15
- package/development/dialog/dialog-title.js +2 -15
- package/development/dialog/dialog.js +3 -16
- package/development/divider.js +2 -15
- package/development/expansion-panel/expansion-panel-content.js +2 -15
- package/development/expansion-panel/expansion-panel-header.js +5 -17
- package/development/expansion-panel/expansion-panel.js +2 -15
- package/development/file-selector/file-selector.d.ts +4 -4
- package/development/file-selector/file-selector.d.ts.map +1 -1
- package/development/file-selector.js +2 -17
- package/development/flip-card/flip-card-details.js +2 -15
- package/development/flip-card/flip-card-summary.js +2 -15
- package/development/flip-card/flip-card.js +2 -15
- package/development/footer.js +2 -15
- package/development/form-error.js +2 -15
- package/development/form-field/form-field-clear.js +2 -15
- package/development/form-field/form-field.js +1 -14
- package/development/header/common.js +2 -15
- package/development/header/header.js +2 -15
- package/development/icon/icon.d.ts +6 -0
- package/development/icon/icon.d.ts.map +1 -1
- package/development/icon.js +10 -15
- package/development/image.js +4 -17
- package/development/journey-header.js +2 -15
- package/development/lead-container.js +2 -15
- package/development/link/block-link-button.js +3 -3
- package/development/link/common.js +4 -43
- package/development/link/link-button.js +3 -3
- package/development/link-list/common.js +2 -15
- package/development/link-list/link-list-anchor.js +2 -15
- package/development/link-list/link-list.js +2 -15
- package/development/loading-indicator.js +2 -15
- package/development/logo.js +2 -15
- package/development/map-container.js +2 -15
- package/development/menu/common.js +2 -15
- package/development/menu/menu/menu.d.ts.map +1 -1
- package/development/menu/menu-button.js +3 -3
- package/development/menu/menu.js +3 -18
- package/development/message.js +2 -15
- package/development/navigation/common.js +2 -17
- package/development/navigation/navigation-list.js +2 -15
- package/development/navigation/navigation-marker.js +2 -17
- package/development/navigation/navigation-section.js +2 -19
- package/development/navigation/navigation.js +2 -15
- package/development/notification.js +2 -15
- package/development/option/optgroup/optgroup-base-element.d.ts +2 -2
- package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/development/option/optgroup.js +2 -15
- package/development/option/option/option-base-element.d.ts +14 -4
- package/development/option/option/option-base-element.d.ts.map +1 -1
- package/development/option/option.js +15 -21
- package/development/overlay/overlay-base-element.d.ts +1 -1
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay.js +3 -23
- package/development/popover/popover-trigger.js +4 -17
- package/development/popover/popover.js +2 -15
- package/development/radio-button/common.js +2 -15
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +9 -22
- package/development/radio-button/radio-button.js +2 -15
- package/development/screen-reader-only.js +2 -15
- package/development/select/select.d.ts +3 -1
- package/development/select/select.d.ts.map +1 -1
- package/development/select.js +49 -48
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/development/selection-expansion-panel.js +38 -18
- package/development/signet.js +2 -15
- package/development/skiplink-list.js +2 -15
- package/development/slider/slider.d.ts.map +1 -1
- package/development/slider.js +10 -16
- package/development/status.js +2 -15
- package/development/stepper/step-label/step-label.d.ts +6 -6
- package/development/stepper/step-label/step-label.d.ts.map +1 -1
- package/development/stepper/step-label.js +50 -45
- package/development/stepper/step.js +2 -15
- package/development/stepper/stepper/stepper.d.ts +6 -3
- package/development/stepper/stepper/stepper.d.ts.map +1 -1
- package/development/stepper/stepper.js +17 -15
- package/development/table/table-wrapper.js +2 -15
- package/development/tabs/tab-group/tab-group.d.ts +4 -4
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +22 -35
- package/development/tabs/tab-label.js +2 -19
- package/development/tabs/tab.js +1 -14
- package/development/tag/tag-group.js +2 -15
- package/development/tag/tag.js +4 -17
- package/development/teaser-hero.js +3 -23
- package/development/teaser-product/common.js +2 -15
- package/development/teaser-product/teaser-product.js +3 -16
- package/development/teaser.js +2 -15
- package/development/time-input.js +2 -15
- package/development/timetable-occupancy-icon.js +2 -15
- package/development/timetable-occupancy.js +2 -15
- package/development/title.js +3 -41
- package/development/toast.js +2 -17
- package/development/toggle/toggle/toggle.d.ts +2 -2
- package/development/toggle/toggle/toggle.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/development/toggle/toggle-option.js +3 -15
- package/development/toggle/toggle.js +23 -36
- package/development/toggle-check.js +1 -14
- package/development/train/train-blocked-passage.js +2 -15
- package/development/train/train-formation.js +2 -15
- package/development/train/train-wagon.js +2 -17
- package/development/train/train.js +2 -15
- package/development/visual-checkbox.js +2 -15
- package/dialog/dialog.js +1 -1
- package/expansion-panel/expansion-panel-header.js +5 -5
- package/file-selector/file-selector.d.ts +4 -4
- package/file-selector/file-selector.d.ts.map +1 -1
- package/file-selector.js +1 -1
- package/icon/icon.d.ts +6 -0
- package/icon/icon.d.ts.map +1 -1
- package/icon.js +27 -19
- package/image.js +2 -2
- package/link/block-link-button.js +10 -10
- package/link/link-button.js +4 -4
- package/lists.css +9 -14
- package/menu/menu/menu.d.ts.map +1 -1
- package/menu/menu-button.js +13 -13
- package/menu/menu.js +7 -9
- package/navigation/common.js +1 -1
- package/navigation/navigation-marker.js +1 -1
- package/navigation/navigation-section.js +1 -1
- package/option/optgroup/optgroup-base-element.d.ts +2 -2
- package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
- package/option/option/option-base-element.d.ts +14 -4
- package/option/option/option-base-element.d.ts.map +1 -1
- package/option/option.js +32 -25
- package/overlay/overlay-base-element.d.ts +1 -1
- package/overlay/overlay-base-element.d.ts.map +1 -1
- package/overlay.js +1 -1
- package/package.json +1 -1
- package/popover/popover-trigger.js +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +5 -5
- package/select/select.d.ts +3 -1
- package/select/select.d.ts.map +1 -1
- package/select.js +83 -72
- package/selection-expansion-panel/selection-expansion-panel.d.ts +12 -3
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -1
- package/selection-expansion-panel.js +70 -49
- package/slider/slider.d.ts.map +1 -1
- package/slider.js +2 -2
- package/standard-theme.css +49 -24
- package/stepper/step-label/step-label.d.ts +6 -6
- package/stepper/step-label/step-label.d.ts.map +1 -1
- package/stepper/step-label.js +30 -30
- package/stepper/stepper/stepper.d.ts +6 -3
- package/stepper/stepper/stepper.d.ts.map +1 -1
- package/stepper/stepper.js +34 -25
- package/tabs/tab-group/tab-group.d.ts +4 -4
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +15 -15
- package/tabs/tab-label.js +12 -12
- package/tag/tag.js +19 -19
- package/teaser-hero.js +13 -13
- package/teaser-product/teaser-product.js +5 -5
- package/teaser.js +15 -15
- package/title.js +23 -23
- package/toast.js +4 -4
- package/toggle/toggle/toggle.d.ts +2 -2
- package/toggle/toggle/toggle.d.ts.map +1 -1
- package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
- package/toggle/toggle-option.js +1 -0
- package/toggle/toggle.js +10 -10
- package/train/train-wagon.js +7 -7
- package/typography.css +0 -13
package/select.js
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
1
|
+
import { css as g, html as d, nothing as c } from "lit";
|
|
2
|
+
import { property as b, state as m, customElement as w } from "lit/decorators.js";
|
|
3
3
|
import { ref as v } from "lit/directives/ref.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { until as u } from "lit/directives/until.js";
|
|
5
|
+
import { getNextElementIndex as y } from "./core/a11y.js";
|
|
6
|
+
import { SbbOpenCloseBaseElement as x } from "./core/base-elements.js";
|
|
7
|
+
import { SbbConnectedAbortController as E } from "./core/controllers.js";
|
|
8
|
+
import { hostAttributes as O } from "./core/decorators.js";
|
|
9
|
+
import { isNextjs as f, getDocumentWritingMode as k, isSafari as C } from "./core/dom.js";
|
|
9
10
|
import { EventEmitter as p } from "./core/eventing.js";
|
|
10
|
-
import { SbbUpdateSchedulerMixin as
|
|
11
|
-
import { isEventOnElement as
|
|
12
|
-
const $ = _`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-time, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:calc(1em * var(--sbb-typo-line-height-body-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-color-metal));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-color-metal))}.sbb-select__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-select__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-select__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}:host([data-options-panel-position=below]) .sbb-select__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-select__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-select__options{padding-block:var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`;
|
|
13
|
-
var
|
|
14
|
-
for (var o = s > 1 ? void 0 : s ?
|
|
15
|
-
(l = e[
|
|
16
|
-
return s && o &&
|
|
11
|
+
import { SbbUpdateSchedulerMixin as A, SbbDisabledMixin as S, SbbNegativeMixin as I, SbbHydrationMixin as D } from "./core/mixins.js";
|
|
12
|
+
import { isEventOnElement as _, setOverlayPosition as P, overlayGapFixCorners as $ } from "./core/overlay.js";
|
|
13
|
+
const L = g`*,:before,:after{box-sizing:border-box}.sbb-gap-fix-wrapper{position:relative;overflow:hidden;width:var(--sbb-options-panel-border-radius);height:var(--sbb-options-panel-border-radius);background-color:transparent}.sbb-gap-fix-corner{position:absolute;border-radius:50%;border:calc(var(--sbb-options-panel-border-radius) / 2) solid var(--sbb-options-panel-background-color);width:calc(var(--sbb-options-panel-border-radius) * 3);height:calc(var(--sbb-options-panel-border-radius) * 3);bottom:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}.sbb-gap-fix-corner#left{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#left{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1);left:unset}.sbb-gap-fix-corner#right{right:calc(var(--sbb-options-panel-border-radius) / 2 * -1)}:host([dir=rtl]) .sbb-gap-fix-corner#right{left:calc(var(--sbb-options-panel-border-radius) / 2 * -1);right:unset}:host{--sbb-scrollbar-thumb-width: .125rem;--sbb-scrollbar-thumb-width-hover: .25rem;--sbb-scrollbar-width-firefox: thin;--sbb-scrollbar-color: var(--sbb-color-black-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-black-alpha-60);--sbb-scrollbar-track-color: transparent;--sbb-options-panel-position-x: 0;--sbb-options-panel-position-y: 0;--sbb-options-panel-active-option-y: 0;--sbb-options-panel-max-height: calc(85vh - var(--sbb-spacing-fixed-8x));--sbb-options-panel-min-height: var(--sbb-options-panel-origin-height);--sbb-options-panel-visibility: visible;--sbb-options-panel-width: fit-content;--sbb-options-panel-border-radius: var(--sbb-border-radius-4x);--sbb-options-panel-options-border-radius: 0 0 var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius);--sbb-options-panel-animation-duration: var( --sbb-disable-animation-time, var(--sbb-animation-duration-4x) );--sbb-options-panel-animation-timing-function: ease;--sbb-options-panel-gap-fix-opacity: 0;--sbb-options-panel-gap-fix-transform: none;--sbb-options-panel-gap-fix-top: calc( var(--sbb-options-panel-position-y) - var(--sbb-options-panel-border-radius) );--sbb-options-panel-background-color: var(--sbb-color-white);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);--sbb-options-panel-internal-z-index: var( --sbb-select-z-index, var(--sbb-overlay-default-z-index) );display:block}:host([negative]){--sbb-scrollbar-color: var(--sbb-color-white-alpha-30);--sbb-scrollbar-color-hover: var(--sbb-color-white-alpha-60);--sbb-options-panel-background-color: var(--sbb-color-midnight);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host(:not([data-state])),:host([data-state=closed]){--sbb-options-panel-visibility: hidden}:host([data-state=opening]){--sbb-options-panel-animation-name: open}:host([data-state=closing]){--sbb-options-panel-animation-name: close}:host([data-state=opened]),:host([data-state=opening]){--sbb-options-panel-gap-fix-opacity: 1}:host([data-options-panel-position=below]){--sbb-options-panel-animation-transform: translateY( calc((var(--sbb-options-panel-origin-height) / 2) * -1) )}:host([data-options-panel-position=above]){--sbb-options-panel-options-border-radius: var(--sbb-options-panel-border-radius) var(--sbb-options-panel-border-radius) 0 0;--sbb-options-panel-gap-fix-top: var(--sbb-options-panel-max-height);--sbb-options-panel-gap-fix-transform: rotate(180deg);--sbb-options-panel-animation-transform: translateY( calc(var(--sbb-options-panel-origin-height) / 2) )}::slotted(sbb-divider){margin-block:var(--sbb-spacing-fixed-3x)}:host([preserve-icon-space]){--sbb-option-icon-container-display: block}.sbb-select__trigger{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;height:calc(1em * var(--sbb-typo-line-height-body-text))}.sbb-select__trigger--placeholder{color:var(--sbb-select-placeholder-color, var(--sbb-color-metal));-webkit-text-fill-color:var(--sbb-select-placeholder-color, var(--sbb-color-metal))}.sbb-select__container{position:fixed;pointer-events:none;top:0;right:0;bottom:0;left:0;z-index:var(--sbb-options-panel-internal-z-index)}.sbb-select__gap-fix{display:flex;justify-content:space-between;position:fixed;visibility:var(--sbb-options-panel-visibility);opacity:var(--sbb-options-panel-gap-fix-opacity);background-color:transparent;width:var(--sbb-options-panel-width);height:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-gap-fix-top);left:var(--sbb-options-panel-position-x);transform:var(--sbb-options-panel-gap-fix-transform);transition:opacity var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel{display:block;position:absolute;visibility:var(--sbb-options-panel-visibility);overflow:hidden;background-color:transparent;border:none;border-radius:var(--sbb-options-panel-border-radius);top:var(--sbb-options-panel-position-y);left:var(--sbb-options-panel-position-x);width:var(--sbb-options-panel-width);transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function)}.sbb-select__panel:before,.sbb-select__panel:after{content:"";display:none;position:relative;width:100%;height:var(--sbb-options-panel-origin-height);background-color:transparent;border-radius:var(--sbb-options-panel-border-radius);pointer-events:none;transition:box-shadow var(--sbb-options-panel-animation-duration) var(--sbb-options-panel-animation-timing-function);z-index:1}:host([data-options-panel-position=below]) .sbb-select__panel{inset-block-start:calc(var(--sbb-options-panel-position-y) - var(--sbb-options-panel-origin-height))}:host(:is([data-state=opened],[data-state=opening])) .sbb-select__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[negative]) .sbb-select__panel{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}:host([data-options-panel-position=below]) .sbb-select__panel:before{display:block}:host([data-options-panel-position=above]) .sbb-select__panel:after{display:block}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless]) .sbb-select__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color)}:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:before,:host(:is([data-state=opened],[data-state=opening])[data-option-panel-origin-borderless][negative]) .sbb-select__panel:after{box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-negative-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-negative-1-color)}.sbb-select__wrapper{overflow:hidden}.sbb-select__options{background-color:var(--sbb-options-panel-background-color);padding-block:var(--sbb-spacing-fixed-3x);padding-inline:0;border-radius:var(--sbb-options-panel-options-border-radius);max-height:var(--sbb-options-panel-max-height);min-height:var(--sbb-options-panel-min-height);pointer-events:all;overflow-y:auto;animation-name:var(--sbb-options-panel-animation-name);animation-duration:var(--sbb-options-panel-animation-duration);animation-timing-function:var(--sbb-options-panel-animation-timing-function);--sbb-scrollbar-width: var(--sbb-spacing-fixed-3x)}.sbb-select__options::-webkit-scrollbar{width:var(--sbb-scrollbar-width);height:var(--sbb-scrollbar-width);background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-corner{background-color:var(--sbb-scrollbar-track-color, transparent)}.sbb-select__options::-webkit-scrollbar-thumb{background-color:var(--sbb-scrollbar-color, currentcolor);border:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width))) solid transparent;border-radius:var(--sbb-border-radius-4x);background-clip:padding-box}.sbb-select__options::-webkit-scrollbar-thumb:hover{background-color:var(--sbb-scrollbar-color-hover, currentcolor);border-width:calc(.5 * (var(--sbb-scrollbar-width) - var(--sbb-scrollbar-thumb-width-hover)))}.sbb-select__options::-webkit-scrollbar-button,.sbb-select__options::-webkit-scrollbar-corner{display:none}@supports not selector(::-webkit-scrollbar){.sbb-select__options{scrollbar-width:var(--sbb-scrollbar-width-firefox);scrollbar-color:var(--sbb-scrollbar-color, currentcolor) var(--sbb-scrollbar-track-color, transparent)}}.sbb-select__options{padding-block:var(--sbb-spacing-fixed-2x)}@media (forced-colors: active){.sbb-select__options{border:var(--sbb-border-width-1x) solid CanvasText;border-block-start:none}}@keyframes open{0%{transform:var(--sbb-options-panel-animation-transform);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes close{0%{transform:translateY(0);opacity:1}to{transform:var(--sbb-options-panel-animation-transform);opacity:0}}`;
|
|
14
|
+
var V = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (e, t, i, s) => {
|
|
15
|
+
for (var o = s > 1 ? void 0 : s ? T(t, i) : t, r = e.length - 1, l; r >= 0; r--)
|
|
16
|
+
(l = e[r]) && (o = (s ? l(t, i, o) : l(o)) || o);
|
|
17
|
+
return s && o && V(t, i, o), o;
|
|
17
18
|
};
|
|
18
|
-
const h =
|
|
19
|
-
let
|
|
20
|
-
|
|
19
|
+
const h = C;
|
|
20
|
+
let N = 0, a = class extends A(
|
|
21
|
+
S(I(D(x)))
|
|
21
22
|
) {
|
|
22
23
|
constructor() {
|
|
23
24
|
super(...arguments), this.multiple = !1, this.required = !1, this.readonly = !1, this._displayValue = null, this._didChange = new p(this, a.events.didChange), this._change = new p(this, a.events.change), this._input = new p(this, a.events.input), this._stateChange = new p(
|
|
@@ -26,10 +27,10 @@ let T = 0, a = class extends C(
|
|
|
26
27
|
{
|
|
27
28
|
composed: !1
|
|
28
29
|
}
|
|
29
|
-
), this._overlayId = `sbb-select-${++
|
|
30
|
-
this._isPointerDownEventOnMenu =
|
|
31
|
-
}, this._closeOnBackdropClick =
|
|
32
|
-
!this._isPointerDownEventOnMenu && !
|
|
30
|
+
), this._overlayId = `sbb-select-${++N}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._abort = new E(this), this._pointerDownListener = (e) => {
|
|
31
|
+
this._isPointerDownEventOnMenu = _(this._overlay, e);
|
|
32
|
+
}, this._closeOnBackdropClick = (e) => {
|
|
33
|
+
!this._isPointerDownEventOnMenu && !_(this._overlay, e) && this.close();
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
/**
|
|
@@ -59,7 +60,7 @@ let T = 0, a = class extends C(
|
|
|
59
60
|
}
|
|
60
61
|
/** Gets the current displayed value. */
|
|
61
62
|
getDisplayValue() {
|
|
62
|
-
return this._displayValue
|
|
63
|
+
return this._displayValue ?? "";
|
|
63
64
|
}
|
|
64
65
|
/** Listens to option changes. */
|
|
65
66
|
_onOptionChanged(e) {
|
|
@@ -86,7 +87,7 @@ let T = 0, a = class extends C(
|
|
|
86
87
|
this._stateChange.emit({ type: "value", value: e });
|
|
87
88
|
}
|
|
88
89
|
firstUpdated(e) {
|
|
89
|
-
super.firstUpdated(e), this.focus = () => this._triggerElement.focus(), this.blur = () => this._triggerElement.blur(),
|
|
90
|
+
super.firstUpdated(e), this.focus = () => this._triggerElement.focus(), this.blur = () => this._triggerElement.blur(), f() || (this.startUpdate(), this._setupSelect());
|
|
90
91
|
}
|
|
91
92
|
/**
|
|
92
93
|
* Removes element's first attribute whose qualified name is qualifiedName.
|
|
@@ -95,7 +96,7 @@ let T = 0, a = class extends C(
|
|
|
95
96
|
* @internal We need to override this due to a hydration issue with Next.js.
|
|
96
97
|
*/
|
|
97
98
|
removeAttribute(e) {
|
|
98
|
-
|
|
99
|
+
f() && e === "defer-hydration" && !this._didLoad && this.updateComplete.then(() => this._setupSelect()), super.removeAttribute(e);
|
|
99
100
|
}
|
|
100
101
|
connectedCallback() {
|
|
101
102
|
var i, s;
|
|
@@ -152,7 +153,7 @@ let T = 0, a = class extends C(
|
|
|
152
153
|
this._triggerElement.style.top = "0px", this._triggerElement.style.height = `${e.offsetHeight}px`, this._triggerElement.style.width = `${e.offsetWidth}px`;
|
|
153
154
|
}
|
|
154
155
|
_setOverlayPosition() {
|
|
155
|
-
|
|
156
|
+
P(
|
|
156
157
|
this._overlay,
|
|
157
158
|
this._originElement,
|
|
158
159
|
this._optionContainer,
|
|
@@ -194,10 +195,10 @@ let T = 0, a = class extends C(
|
|
|
194
195
|
signal: this._openPanelEventsController.signal
|
|
195
196
|
});
|
|
196
197
|
}
|
|
197
|
-
|
|
198
|
-
this.disabled || this.readonly || (this.state === "opened" &&
|
|
198
|
+
_onKeyDown(e) {
|
|
199
|
+
this.disabled || this.readonly || (this.state === "opened" && this._openedPanelKeyboardInteraction(e), this.state === "closed" && this._closedPanelKeyboardInteraction(e));
|
|
199
200
|
}
|
|
200
|
-
|
|
201
|
+
_closedPanelKeyboardInteraction(e) {
|
|
201
202
|
if (this._checkForLetterSelection(e))
|
|
202
203
|
return this._setNextActiveOptionByText(e);
|
|
203
204
|
switch (e.key) {
|
|
@@ -205,34 +206,34 @@ let T = 0, a = class extends C(
|
|
|
205
206
|
case " ":
|
|
206
207
|
case "ArrowDown":
|
|
207
208
|
case "ArrowUp":
|
|
208
|
-
e.preventDefault(),
|
|
209
|
+
e.preventDefault(), this.open();
|
|
209
210
|
break;
|
|
210
211
|
}
|
|
211
212
|
}
|
|
212
|
-
|
|
213
|
+
_openedPanelKeyboardInteraction(e) {
|
|
213
214
|
if (!(this.disabled || this.readonly || this.state !== "opened")) {
|
|
214
215
|
if (this._checkForLetterSelection(e))
|
|
215
216
|
return this._setNextActiveOptionByText(e);
|
|
216
217
|
switch (e.key) {
|
|
217
218
|
case "Escape":
|
|
218
219
|
case "Tab":
|
|
219
|
-
|
|
220
|
+
this.close();
|
|
220
221
|
break;
|
|
221
222
|
case "Enter":
|
|
222
223
|
case " ":
|
|
223
|
-
e.preventDefault(),
|
|
224
|
+
e.preventDefault(), this._selectByKeyboard();
|
|
224
225
|
break;
|
|
225
226
|
case "ArrowDown":
|
|
226
227
|
case "ArrowUp":
|
|
227
|
-
e.preventDefault(),
|
|
228
|
+
e.preventDefault(), this._setNextActiveOption(e);
|
|
228
229
|
break;
|
|
229
230
|
case "Home":
|
|
230
231
|
case "PageUp":
|
|
231
|
-
e.preventDefault(),
|
|
232
|
+
e.preventDefault(), this._setNextActiveOption(e, 0);
|
|
232
233
|
break;
|
|
233
234
|
case "End":
|
|
234
235
|
case "PageDown":
|
|
235
|
-
e.preventDefault(),
|
|
236
|
+
e.preventDefault(), this._setNextActiveOption(e, this._filteredOptions.length - 1);
|
|
236
237
|
break;
|
|
237
238
|
}
|
|
238
239
|
}
|
|
@@ -240,47 +241,47 @@ let T = 0, a = class extends C(
|
|
|
240
241
|
_checkForLetterSelection(e) {
|
|
241
242
|
return e.key === "Backspace" || e.key === "Clear" || e.key.length === 1 && e.key !== " " && !e.altKey && !e.ctrlKey && !e.metaKey;
|
|
242
243
|
}
|
|
243
|
-
|
|
244
|
+
_setNextActiveOptionByText(e) {
|
|
244
245
|
typeof this._searchTimeout == typeof setTimeout && clearTimeout(this._searchTimeout), this._searchTimeout = setTimeout(() => this._searchString = "", 1e3), this._searchString += e.key;
|
|
245
246
|
const t = this._activeItemIndex + 1, i = [
|
|
246
247
|
...this._filteredOptions.slice(t),
|
|
247
248
|
...this._filteredOptions.slice(0, t)
|
|
248
249
|
], s = i.find(
|
|
249
250
|
(o) => {
|
|
250
|
-
var
|
|
251
|
-
return ((
|
|
251
|
+
var r;
|
|
252
|
+
return ((r = o.textContent) == null ? void 0 : r.toLowerCase().indexOf(this._searchString.toLowerCase())) === 0;
|
|
252
253
|
}
|
|
253
254
|
);
|
|
254
255
|
if (s)
|
|
255
|
-
|
|
256
|
+
this._setNextActiveOption(e, this._filteredOptions.indexOf(s));
|
|
256
257
|
else if (this._searchString.length > 1 && new RegExp(`^${this._searchString.charAt(0)}*$`).test(this._searchString)) {
|
|
257
258
|
const o = i.find(
|
|
258
|
-
(
|
|
259
|
+
(r) => {
|
|
259
260
|
var l;
|
|
260
|
-
return ((l =
|
|
261
|
+
return ((l = r.textContent) == null ? void 0 : l.toLowerCase().indexOf(this._searchString[0].toLowerCase())) === 0;
|
|
261
262
|
}
|
|
262
263
|
);
|
|
263
|
-
o &&
|
|
264
|
+
o && this._setNextActiveOption(e, this._filteredOptions.indexOf(o));
|
|
264
265
|
} else
|
|
265
266
|
clearTimeout(this._searchTimeout), this._searchString = "";
|
|
266
267
|
}
|
|
267
|
-
|
|
268
|
+
_selectByKeyboard() {
|
|
268
269
|
const e = this._filteredOptions[this._activeItemIndex];
|
|
269
|
-
this.multiple ?
|
|
270
|
+
this.multiple ? e.setSelectedViaUserInteraction(!e.selected) : this.close();
|
|
270
271
|
}
|
|
271
|
-
|
|
272
|
-
const i = t ??
|
|
273
|
-
this._setActiveElement(s, o), this.multiple ? e != null && e.shiftKey &&
|
|
272
|
+
_setNextActiveOption(e, t) {
|
|
273
|
+
const i = t ?? y(e, this._activeItemIndex, this._filteredOptions.length), s = this._filteredOptions[i], o = this._filteredOptions[this._activeItemIndex];
|
|
274
|
+
this._setActiveElement(s, o), this.multiple ? e != null && e.shiftKey && s.setSelectedViaUserInteraction(!s.selected) : this._setSelectedElement(s, o), this._activeItemIndex = i;
|
|
274
275
|
}
|
|
275
276
|
_setActiveElement(e, t = null, i = !0) {
|
|
276
|
-
e.
|
|
277
|
+
e.setActive(!0), e.scrollIntoView({ block: "nearest" }), i && this._triggerElement.setAttribute("aria-activedescendant", e.id), t && t !== e && t.setActive(!1);
|
|
277
278
|
}
|
|
278
|
-
|
|
279
|
-
|
|
279
|
+
_setSelectedElement(e, t) {
|
|
280
|
+
e.setSelectedViaUserInteraction(!0), t && t !== e && t.setSelectedViaUserInteraction(!1);
|
|
280
281
|
}
|
|
281
282
|
_resetActiveElement() {
|
|
282
283
|
const e = this._filteredOptions[this._activeItemIndex];
|
|
283
|
-
e &&
|
|
284
|
+
e && e.setActive(!1), this._activeItemIndex = -1, this._triggerElement.removeAttribute("aria-activedescendant");
|
|
284
285
|
}
|
|
285
286
|
_setValueFromSelectedOption() {
|
|
286
287
|
if (this.multiple) {
|
|
@@ -312,8 +313,14 @@ let T = 0, a = class extends C(
|
|
|
312
313
|
}
|
|
313
314
|
}
|
|
314
315
|
}
|
|
316
|
+
_spreadDeferredDisplayValue(e) {
|
|
317
|
+
return [this._deferredDisplayValue(e), e];
|
|
318
|
+
}
|
|
319
|
+
async _deferredDisplayValue(e) {
|
|
320
|
+
return this.hydrationRequired && await this.hydrationComplete, this._displayValue ? d`${this._displayValue}` : e;
|
|
321
|
+
}
|
|
315
322
|
render() {
|
|
316
|
-
return
|
|
323
|
+
return d`
|
|
317
324
|
<!-- This element is visually hidden and will be appended to the light DOM to allow screen
|
|
318
325
|
readers to work properly -->
|
|
319
326
|
<div
|
|
@@ -329,17 +336,21 @@ let T = 0, a = class extends C(
|
|
|
329
336
|
@click=${this._toggleOpening}
|
|
330
337
|
${v((e) => this._triggerElement = e)}
|
|
331
338
|
>
|
|
332
|
-
${this.
|
|
339
|
+
${u(...this._spreadDeferredDisplayValue(d`<span>${this.placeholder}</span>`))}
|
|
333
340
|
</div>
|
|
334
341
|
|
|
335
342
|
<!-- Visually display the value -->
|
|
336
343
|
<div class="sbb-select__trigger" aria-hidden="true">
|
|
337
|
-
${
|
|
344
|
+
${u(
|
|
345
|
+
...this._spreadDeferredDisplayValue(
|
|
346
|
+
d`<span class="sbb-select__trigger--placeholder">${this.placeholder}</span>`
|
|
347
|
+
)
|
|
348
|
+
)}
|
|
338
349
|
</div>
|
|
339
350
|
|
|
340
351
|
<div class="sbb-select__gap-fix"></div>
|
|
341
352
|
<div class="sbb-select__container">
|
|
342
|
-
<div class="sbb-select__gap-fix">${
|
|
353
|
+
<div class="sbb-select__gap-fix">${$()}</div>
|
|
343
354
|
<div
|
|
344
355
|
@animationend=${this._onAnimationEnd}
|
|
345
356
|
class="sbb-select__panel"
|
|
@@ -361,7 +372,7 @@ let T = 0, a = class extends C(
|
|
|
361
372
|
`;
|
|
362
373
|
}
|
|
363
374
|
};
|
|
364
|
-
a.styles =
|
|
375
|
+
a.styles = L;
|
|
365
376
|
a.events = {
|
|
366
377
|
didChange: "didChange",
|
|
367
378
|
change: "change",
|
|
@@ -372,28 +383,28 @@ a.events = {
|
|
|
372
383
|
willClose: "willClose",
|
|
373
384
|
didClose: "didClose"
|
|
374
385
|
};
|
|
375
|
-
|
|
376
|
-
|
|
386
|
+
n([
|
|
387
|
+
b()
|
|
377
388
|
], a.prototype, "value", 2);
|
|
378
|
-
|
|
379
|
-
|
|
389
|
+
n([
|
|
390
|
+
b()
|
|
380
391
|
], a.prototype, "placeholder", 2);
|
|
381
|
-
|
|
382
|
-
|
|
392
|
+
n([
|
|
393
|
+
b({ type: Boolean, reflect: !0 })
|
|
383
394
|
], a.prototype, "multiple", 2);
|
|
384
|
-
|
|
385
|
-
|
|
395
|
+
n([
|
|
396
|
+
b({ reflect: !0, type: Boolean })
|
|
386
397
|
], a.prototype, "required", 2);
|
|
387
|
-
|
|
388
|
-
|
|
398
|
+
n([
|
|
399
|
+
b({ type: Boolean })
|
|
389
400
|
], a.prototype, "readonly", 2);
|
|
390
|
-
|
|
391
|
-
|
|
401
|
+
n([
|
|
402
|
+
m()
|
|
392
403
|
], a.prototype, "_displayValue", 2);
|
|
393
|
-
a =
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
dir:
|
|
404
|
+
a = n([
|
|
405
|
+
w("sbb-select"),
|
|
406
|
+
O({
|
|
407
|
+
dir: k(),
|
|
397
408
|
role: h ? "listbox" : null
|
|
398
409
|
})
|
|
399
410
|
], a);
|
|
@@ -38,17 +38,26 @@ export declare class SbbSelectionExpansionPanelElement extends SbbSelectionExpan
|
|
|
38
38
|
private _language;
|
|
39
39
|
private _abort;
|
|
40
40
|
private _initialized;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
*/
|
|
41
|
+
private _sizeAttributeObserver;
|
|
42
|
+
/** Whether it has an expandable content */
|
|
44
43
|
private get _hasContent();
|
|
44
|
+
private get _group();
|
|
45
45
|
connectedCallback(): void;
|
|
46
|
+
disconnectedCallback(): void;
|
|
46
47
|
protected willUpdate(changedProperties: PropertyValues<this>): void;
|
|
47
48
|
protected firstUpdated(changedProperties: PropertyValues<this>): void;
|
|
48
49
|
private _updateState;
|
|
49
50
|
private _open;
|
|
50
51
|
private _close;
|
|
51
52
|
private _initFromInput;
|
|
53
|
+
/**
|
|
54
|
+
* Set the data-size in two cases:
|
|
55
|
+
* - if there's no group, so the size change comes directly from a change on the inner panel;
|
|
56
|
+
* - if there's a wrapper group and its size changes, syncing it with the panel size.
|
|
57
|
+
*
|
|
58
|
+
* On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
|
|
59
|
+
*/
|
|
60
|
+
private _onSizeAttributesChange;
|
|
52
61
|
private _onInputStateChange;
|
|
53
62
|
private _onAnimationEnd;
|
|
54
63
|
private _updateExpandedLabel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-expansion-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/selection-expansion-panel/selection-expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"selection-expansion-panel.d.ts","sourceRoot":"","sources":["../../../src/elements/selection-expansion-panel/selection-expansion-panel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAE,MAAM,KAAK,CAAC;AAevC,OAAO,eAAe,CAAC;;AAEvB;;;;;;;;;GASG;AACH,qBAEa,iCAAkC,SAAQ,sCAA6B;IAElF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAK1C;IAEX,yCAAyC;IACtB,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAErD,qDAAqD;IACQ,SAAS,UAAS;IAE/E,iDAAiD;IACE,UAAU,UAAS;IAEtE,wCAAwC;IAExC,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8CAA8C;IAC9C,OAAO,KAAK,QAAQ,QAEnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,QAEpB;IAED,wEAAwE;IACxE,OAAO,CAAC,SAAS,CAGf;IAEF,oDAAoD;IACpD,OAAO,CAAC,QAAQ,CAGd;IAEF,wEAAwE;IACxE,OAAO,CAAC,UAAU,CAGhB;IAEF,oDAAoD;IACpD,OAAO,CAAC,SAAS,CAGf;IAEF,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,MAAM,CAAyC;IACvD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,sBAAsB,CAE5B;IAEF,2CAA2C;IAC3C,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,MAAM,GAIjB;IAEe,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;cAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAM9E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,KAAK;IAcb,OAAO,CAAC,MAAM;IASd,OAAO,CAAC,cAAc;IAWtB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;YAUT,oBAAoB;cAoBf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,+BAA+B,EAAE,iCAAiC,CAAC;KACpE;CACF"}
|
|
@@ -1,32 +1,35 @@
|
|
|
1
|
-
import { css as
|
|
2
|
-
import { property as
|
|
3
|
-
import { SbbLanguageController as
|
|
4
|
-
import { slotState as
|
|
5
|
-
import { EventEmitter as
|
|
6
|
-
import { i18nExpanded as
|
|
1
|
+
import { css as d, LitElement as c, html as h } from "lit";
|
|
2
|
+
import { property as b, state as u, customElement as _ } from "lit/decorators.js";
|
|
3
|
+
import { SbbLanguageController as m, SbbConnectedAbortController as g } from "./core/controllers.js";
|
|
4
|
+
import { slotState as x } from "./core/decorators.js";
|
|
5
|
+
import { EventEmitter as r } from "./core/eventing.js";
|
|
6
|
+
import { i18nExpanded as v, i18nCollapsed as f } from "./core/i18n.js";
|
|
7
7
|
import { SbbHydrationMixin as w } from "./core/mixins.js";
|
|
8
|
+
import { AgnosticMutationObserver as y } from "./core/observers.js";
|
|
8
9
|
import "./divider.js";
|
|
9
|
-
const
|
|
10
|
-
var
|
|
11
|
-
for (var
|
|
12
|
-
(p = e[l]) && (
|
|
13
|
-
return
|
|
10
|
+
const k = d`*,:before,:after{box-sizing:border-box}:host{--sbb-selection-expansion-panel-background: var(--sbb-color-white);--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);--sbb-selection-expansion-panel-inner-background: transparent;--sbb-selection-expansion-panel-inner-border-width: 0px;--sbb-selection-expansion-panel-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-4x) );--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-1x);--sbb-selection-expansion-panel-content-visibility: hidden;--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxs);--sbb-selection-expansion-panel-border-radius: var(--sbb-border-radius-4x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-default);display:contents}:host([data-size=s]){--sbb-selection-expansion-panel-content-padding-inline: var(--sbb-spacing-responsive-xxxs)}:host([color=milk]){--sbb-selection-expansion-panel-background: var(--sbb-color-milk)}:host([data-checked]:not([data-disabled])){--sbb-selection-expansion-panel-border-color: var(--sbb-color-charcoal);--sbb-selection-expansion-panel-border-width: var(--sbb-border-width-2x)}:host([data-slot-names~=content][data-disabled]){--sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud)}:host([borderless]:not([data-checked])){--sbb-selection-expansion-panel-border-color: transparent}:host([data-slot-names~=content]:where([data-state=opening],[data-state=opened])){--sbb-selection-expansion-panel-content-visibility: visible;--sbb-selection-expansion-panel-content-padding-block-end: var(--sbb-spacing-responsive-xs)}.sbb-selection-expansion-panel{flex:auto;position:relative;width:100%;background-color:var(--sbb-selection-expansion-panel-background);border-radius:var(--sbb-selection-expansion-panel-border-radius);box-shadow:inset 0 0 0 var(--sbb-selection-expansion-panel-border-width) var(--sbb-selection-expansion-panel-border-color);transition-duration:var(--sbb-selection-expansion-panel-animation-duration);transition-timing-function:var(--sbb-animation-easing);transition-property:box-shadow}@media (forced-colors: active){.sbb-selection-expansion-panel:after{content:"";display:block;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:var(--sbb-selection-expansion-panel-border-width) solid var(--sbb-selection-expansion-panel-border-color);border-radius:var(--sbb-selection-expansion-panel-border-radius)}}.sbb-selection-expansion-panel__content--wrapper{display:grid;visibility:var(--sbb-selection-expansion-panel-content-visibility);grid-template-rows:0fr;opacity:0}:host([data-state=opened]) .sbb-selection-expansion-panel__content--wrapper{grid-template-rows:1fr;opacity:1}:host([data-state=opening]) .sbb-selection-expansion-panel__content--wrapper{animation-name:open,open-opacity;animation-fill-mode:forwards;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing);animation-delay:0s,var(--sbb-selection-expansion-panel-animation-duration)}:host([data-state=closing]) .sbb-selection-expansion-panel__content--wrapper{animation-name:close;animation-duration:var(--sbb-selection-expansion-panel-animation-duration);animation-timing-function:var(--sbb-animation-easing)}:host(:not([data-slot-names~=content])) .sbb-selection-expansion-panel__content--wrapper{display:none}.sbb-selection-expansion-panel__content{overflow:hidden;padding-inline:var(--sbb-selection-expansion-panel-content-padding-inline);padding-block-end:var(--sbb-selection-expansion-panel-content-padding-block-end);transition:padding var(--sbb-selection-expansion-panel-animation-duration) var(--sbb-animation-easing)}sbb-divider{margin-block-end:var(--sbb-spacing-responsive-xxs)}@keyframes open{0%{grid-template-rows:0fr}to{grid-template-rows:1fr}}@keyframes open-opacity{0%{opacity:0}to{opacity:1}}@keyframes close{0%{grid-template-rows:1fr;opacity:1}to{grid-template-rows:0fr;opacity:0}}`;
|
|
11
|
+
var C = Object.defineProperty, O = Object.getOwnPropertyDescriptor, a = (e, t, o, i) => {
|
|
12
|
+
for (var s = i > 1 ? void 0 : i ? O(t, o) : t, l = e.length - 1, p; l >= 0; l--)
|
|
13
|
+
(p = e[l]) && (s = (i ? p(t, o, s) : p(s)) || s);
|
|
14
|
+
return i && s && C(t, o, s), s;
|
|
14
15
|
};
|
|
15
|
-
let
|
|
16
|
+
let n = class extends w(c) {
|
|
16
17
|
constructor() {
|
|
17
|
-
super(...arguments), this.color = "white", this.forceOpen = !1, this.borderless = !1, this._willOpen = new
|
|
18
|
+
super(...arguments), this.color = "white", this.forceOpen = !1, this.borderless = !1, this._willOpen = new r(
|
|
18
19
|
this,
|
|
19
|
-
|
|
20
|
-
), this._didOpen = new
|
|
20
|
+
n.events.willOpen
|
|
21
|
+
), this._didOpen = new r(
|
|
21
22
|
this,
|
|
22
|
-
|
|
23
|
-
), this._willClose = new
|
|
23
|
+
n.events.didOpen
|
|
24
|
+
), this._willClose = new r(
|
|
24
25
|
this,
|
|
25
|
-
|
|
26
|
-
), this._didClose = new
|
|
26
|
+
n.events.willClose
|
|
27
|
+
), this._didClose = new r(
|
|
27
28
|
this,
|
|
28
|
-
|
|
29
|
-
), this._language = new
|
|
29
|
+
n.events.didClose
|
|
30
|
+
), this._language = new m(this), this._abort = new g(this), this._initialized = !1, this._sizeAttributeObserver = new y(
|
|
31
|
+
(e) => this._onSizeAttributesChange(e)
|
|
32
|
+
);
|
|
30
33
|
}
|
|
31
34
|
set _state(e) {
|
|
32
35
|
this.setAttribute("data-state", e);
|
|
@@ -45,18 +48,22 @@ let t = class extends w(c) {
|
|
|
45
48
|
set _disabled(e) {
|
|
46
49
|
this.toggleAttribute("data-disabled", e);
|
|
47
50
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Whether it has an expandable content
|
|
50
|
-
*/
|
|
51
|
+
/** Whether it has an expandable content */
|
|
51
52
|
get _hasContent() {
|
|
52
53
|
var e;
|
|
53
54
|
return ((e = this.querySelectorAll) == null ? void 0 : e.call(this, '[slot="content"]').length) > 0;
|
|
54
55
|
}
|
|
56
|
+
get _group() {
|
|
57
|
+
return this.closest("sbb-radio-button-group, sbb-checkbox-group");
|
|
58
|
+
}
|
|
55
59
|
connectedCallback() {
|
|
56
60
|
super.connectedCallback(), this.addEventListener("panelConnected", this._initFromInput.bind(this), {
|
|
57
61
|
signal: this._abort.signal
|
|
58
62
|
}), this._state || (this._state = "closed");
|
|
59
63
|
}
|
|
64
|
+
disconnectedCallback() {
|
|
65
|
+
super.disconnectedCallback(), this._sizeAttributeObserver.disconnect();
|
|
66
|
+
}
|
|
60
67
|
willUpdate(e) {
|
|
61
68
|
super.willUpdate(e), e.has("forceOpen") && this._updateState();
|
|
62
69
|
}
|
|
@@ -73,8 +80,22 @@ let t = class extends w(c) {
|
|
|
73
80
|
this._state !== "opened" && this._state !== "opening" || (this._state = "closing", this._willClose.emit());
|
|
74
81
|
}
|
|
75
82
|
_initFromInput(e) {
|
|
76
|
-
const
|
|
77
|
-
this._checked =
|
|
83
|
+
const t = e.target;
|
|
84
|
+
this._checked = t.checked, this._disabled = t.disabled, this._sizeAttributeObserver.disconnect(), this._sizeAttributeObserver.observe(t, { attributeFilter: ["size"] }), this._updateState();
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Set the data-size in two cases:
|
|
88
|
+
* - if there's no group, so the size change comes directly from a change on the inner panel;
|
|
89
|
+
* - if there's a wrapper group and its size changes, syncing it with the panel size.
|
|
90
|
+
*
|
|
91
|
+
* On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
|
|
92
|
+
*/
|
|
93
|
+
_onSizeAttributesChange(e) {
|
|
94
|
+
for (const t of e)
|
|
95
|
+
if (t.attributeName === "size") {
|
|
96
|
+
const o = this._group, i = t.target.getAttribute("size");
|
|
97
|
+
(!o || o.size === i) && this.setAttribute("data-size", i);
|
|
98
|
+
}
|
|
78
99
|
}
|
|
79
100
|
_onInputStateChange(e) {
|
|
80
101
|
if (e.detail.type === "disabled") {
|
|
@@ -89,15 +110,15 @@ let t = class extends w(c) {
|
|
|
89
110
|
}
|
|
90
111
|
async _updateExpandedLabel(e) {
|
|
91
112
|
await this.hydrationComplete;
|
|
92
|
-
const
|
|
113
|
+
const t = this.querySelector(
|
|
93
114
|
"sbb-radio-button-panel, sbb-checkbox-panel"
|
|
94
115
|
);
|
|
95
|
-
if (
|
|
116
|
+
if (t) {
|
|
96
117
|
if (!this._hasContent) {
|
|
97
|
-
|
|
118
|
+
t.expansionState = "";
|
|
98
119
|
return;
|
|
99
120
|
}
|
|
100
|
-
|
|
121
|
+
t.expansionState = e ? ", " + v[this._language.current] : ", " + f[this._language.current];
|
|
101
122
|
}
|
|
102
123
|
}
|
|
103
124
|
render() {
|
|
@@ -120,29 +141,29 @@ let t = class extends w(c) {
|
|
|
120
141
|
`;
|
|
121
142
|
}
|
|
122
143
|
};
|
|
123
|
-
|
|
124
|
-
|
|
144
|
+
n.styles = k;
|
|
145
|
+
n.events = {
|
|
125
146
|
willOpen: "willOpen",
|
|
126
147
|
didOpen: "didOpen",
|
|
127
148
|
willClose: "willClose",
|
|
128
149
|
didClose: "didClose"
|
|
129
150
|
};
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
],
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
],
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
],
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
],
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
],
|
|
151
|
+
a([
|
|
152
|
+
b()
|
|
153
|
+
], n.prototype, "color", 2);
|
|
154
|
+
a([
|
|
155
|
+
b({ attribute: "force-open", type: Boolean })
|
|
156
|
+
], n.prototype, "forceOpen", 2);
|
|
157
|
+
a([
|
|
158
|
+
b({ reflect: !0, type: Boolean })
|
|
159
|
+
], n.prototype, "borderless", 2);
|
|
160
|
+
a([
|
|
161
|
+
u()
|
|
162
|
+
], n.prototype, "_state", 1);
|
|
163
|
+
n = a([
|
|
164
|
+
_("sbb-selection-expansion-panel"),
|
|
165
|
+
x()
|
|
166
|
+
], n);
|
|
146
167
|
export {
|
|
147
|
-
|
|
168
|
+
n as SbbSelectionExpansionPanelElement
|
|
148
169
|
};
|
package/slider/slider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAahD,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,
|
|
1
|
+
{"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../../../src/elements/slider/slider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAQ,UAAU,EAAW,MAAM,KAAK,CAAC;AAahD,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,qBAA2C;IAC/E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX,4CAA4C;IACzB,KAAK,CAAC,EAAE,MAAM,CAAM;IAEvC,oDAAoD;IACa,aAAa,CAAC,EAAE,MAAM,CAAC;IAExF,0CAA0C;IACN,IAAI,CAAC,EAAE,MAAM,CAAM;IAEvD,uEAAuE;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IAEjC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAO;IAEtC,+DAA+D;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAS;IAExC;;;OAGG;IACiC,QAAQ,CAAC,EAAE,OAAO,CAAS;IAE/D,6FAA6F;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEjE,2FAA2F;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IAE7D;;;OAGG;IACM,OAAO,CAAC,cAAc,CAAK;IAEpC;;OAEG;IACH,OAAO,CAAC,UAAU,CAGf;IAEH,iEAAiE;IACjE,OAAO,CAAC,WAAW,CAAoB;IAEvC,OAAO,CAAC,MAAM,CAAyC;IAEvC,iBAAiB,IAAI,IAAI;cAOtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA4B5E,OAAO,CAAC,WAAW;IAYnB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;YAqBP,cAAc;IAgC5B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;cAKA,MAAM,IAAI,cAAc;CAqC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
package/slider.js
CHANGED
|
@@ -6,7 +6,7 @@ import { SbbConnectedAbortController as g } from "./core/controllers.js";
|
|
|
6
6
|
import { hostAttributes as y } from "./core/decorators.js";
|
|
7
7
|
import { setOrRemoveAttribute as n } from "./core/dom.js";
|
|
8
8
|
import { EventEmitter as w, forwardEventToHost as k } from "./core/eventing.js";
|
|
9
|
-
import {
|
|
9
|
+
import { SbbFocusableDisabledActionMixin as x } from "./core/mixins.js";
|
|
10
10
|
import "./icon.js";
|
|
11
11
|
const I = u`@charset "UTF-8";*,:before,:after{box-sizing:border-box}:host{outline:none!important;display:inline-block;min-width:9.375rem;width:min(25rem,100%);--sbb-slider-line-height: .25rem;--sbb-slider-value-fraction: 0;--sbb-slider-knob-size: 1.75rem;--sbb-slider-knob-size-active: 1.9375rem;--sbb-slider-knob-border-size: .1875rem;--sbb-slider-knob-border-style: solid;--sbb-slider-knob-color: var(--sbb-color-white);--sbb-slider-knob-border-color: var(--sbb-color-red);--sbb-slider-icon-color: var(--sbb-color-black);--sbb-slider-selected-line-color: var(--sbb-color-red);--sbb-slider-selected-line-disabled-color: var(--sbb-color-smoke);--sbb-slider-line-color: var(--sbb-color-smoke);--sbb-slider-line-disabled-color: var(--sbb-color-graphite)}@media (forced-colors: active){:host{--sbb-slider-selected-line-color: Highlight;--sbb-slider-line-color: CanvasText}}:host([disabled]){--sbb-slider-icon-color: var(--sbb-color-graphite);--sbb-slider-knob-border-color: var(--sbb-color-smoke);--sbb-slider-knob-border-size: var(--sbb-border-width-2x);--sbb-slider-knob-border-style: dashed}:host([readonly]){--sbb-slider-icon-color: var(--sbb-color-smoke);--sbb-slider-knob-border-color: var(--sbb-slider-selected-line-disabled-color)}:host([disabled]),:host([readonly]){--sbb-slider-line-color: var(--sbb-slider-line-disabled-color);--sbb-slider-selected-line-color: var(--sbb-slider-selected-line-disabled-color)}@media (forced-colors: active){:host([disabled]),:host([readonly]){--sbb-slider-icon-color: GrayText;--sbb-slider-selected-line-disabled-color: GrayText;--sbb-slider-line-disabled-color: GrayText}}.sbb-slider__height-container{display:flex;flex-direction:column}.sbb-slider__height-container:before{content:"";-webkit-user-select:none;user-select:none;width:0;height:0}.sbb-slider__wrapper{display:flex;gap:var(--sbb-spacing-fixed-2x);padding-block:calc(var(--sbb-spacing-fixed-1x) / 2);color:var(--sbb-slider-icon-color)}.sbb-slider__container{position:relative;min-height:var(--sbb-size-icon-ui-small);flex-grow:1}.sbb-slider__range-input{position:absolute;width:100%;top:0;right:0;bottom:0;left:0;opacity:0;margin:0}.sbb-slider__line{position:absolute;top:50%;transform:translateY(-50%);height:var(--sbb-slider-line-height);width:100%;background-color:var(--sbb-slider-line-color);border-radius:var(--sbb-slider-line-height);overflow:hidden;pointer-events:none}.sbb-slider__selected-line{position:relative;height:100%;background-color:var(--sbb-slider-selected-line-color);width:calc(var(--sbb-slider-value-fraction) * 100%)}.sbb-slider__knob{position:absolute;top:50%;transform:translateY(-50%);box-shadow:var(--sbb-shadow-elevation-level-5-shadow-2-offset-x) var(--sbb-shadow-elevation-level-5-shadow-2-offset-y) var(--sbb-shadow-elevation-level-5-shadow-2-blur) var(--sbb-shadow-elevation-level-5-shadow-2-spread) var(--sbb-shadow-elevation-level-5-hard-2-color),var(--sbb-shadow-elevation-level-5-shadow-1-offset-x) var(--sbb-shadow-elevation-level-5-shadow-1-offset-y) var(--sbb-shadow-elevation-level-5-shadow-1-blur) var(--sbb-shadow-elevation-level-5-shadow-1-spread) var(--sbb-shadow-elevation-level-5-hard-1-color);width:var(--sbb-slider-knob-size);height:var(--sbb-slider-knob-size);inset-inline-start:calc(var(--sbb-slider-value-fraction) * 100% - var(--sbb-slider-knob-size) * var(--sbb-slider-value-fraction));transition-property:width,height;transition-duration:var(--sbb-disable-animation-zero-time, var(--sbb-animation-duration-1x));transition-timing-function:ease-in;background-color:var(--sbb-slider-knob-color);border:var(--sbb-slider-knob-border-size) var(--sbb-slider-knob-border-style) var(--sbb-slider-knob-border-color);border-radius:50%;pointer-events:none}:host(:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch])) .sbb-slider__knob{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}:host(:not(:is([disabled],[readonly]))) .sbb-slider__range-input:active~.sbb-slider__knob{--sbb-slider-knob-size: var(--sbb-slider-knob-size-active)}`;
|
|
12
12
|
var C = Object.defineProperty, A = Object.getOwnPropertyDescriptor, r = (e, o, l, a) => {
|
|
@@ -27,7 +27,7 @@ let s = class extends x(v) {
|
|
|
27
27
|
this.addEventListener("keydown", (o) => this._handleKeydown(o), { signal: e }), this._handleChange();
|
|
28
28
|
}
|
|
29
29
|
willUpdate(e) {
|
|
30
|
-
super.willUpdate(e), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null);
|
|
30
|
+
super.willUpdate(e), e.has("disabled") && (this.disabled ? this.removeAttribute("tabindex") : this.setAttribute("tabindex", "0")), e.has("value") ? this._handleChange(Number(this.value)) : e.has("valueAsNumber") && this._handleChange(Number(this.valueAsNumber)), e.has("min") && n(this, "aria-valuemin", this.min ?? null), e.has("max") && n(this, "aria-valuemax", this.max ?? null), e.has("readonly") && n(this, "aria-readonly", this.readonly ? "true" : null);
|
|
31
31
|
}
|
|
32
32
|
_syncValues(e) {
|
|
33
33
|
e != null && (e && typeof e != "number" && (e = +e), this.value = e.toString(), this.valueAsNumber = e, n(this, "aria-valuenow", this.value || null));
|