@sbb-esta/lyne-elements 1.11.3 → 1.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (166) hide show
  1. package/_index.scss +1 -1
  2. package/core/i18n/i18n.d.ts +5 -0
  3. package/core/i18n/i18n.d.ts.map +1 -1
  4. package/core/i18n.js +85 -55
  5. package/core/styles/core/functions.scss +1 -1
  6. package/core/styles/lists.scss +4 -0
  7. package/core/styles/mixins/helpers.scss +1 -1
  8. package/core/styles/mixins/lists.scss +128 -77
  9. package/core/styles/mixins/scrollbar.scss +2 -2
  10. package/core/styles/mixins/table.scss +4 -6
  11. package/core/styles/normalize.scss +62 -131
  12. package/core.css +0 -5
  13. package/custom-elements.json +781 -77
  14. package/development/accordion.js +2 -9
  15. package/development/action-group.js +2 -9
  16. package/development/alert/alert-group.js +2 -9
  17. package/development/alert/alert.js +2 -9
  18. package/development/autocomplete-grid/autocomplete-grid-button.js +2 -9
  19. package/development/autocomplete-grid/autocomplete-grid-cell.js +2 -9
  20. package/development/autocomplete-grid/autocomplete-grid-option.js +2 -9
  21. package/development/autocomplete-grid/autocomplete-grid-row.js +2 -9
  22. package/development/autocomplete.js +2 -12
  23. package/development/breadcrumb/breadcrumb-group.js +2 -9
  24. package/development/breadcrumb/breadcrumb.js +2 -9
  25. package/development/button/common.js +2 -11
  26. package/development/button/mini-button-group.js +2 -9
  27. package/development/button/mini-button.js +2 -9
  28. package/development/calendar.js +2 -9
  29. package/development/card/card-badge.js +2 -9
  30. package/development/card/card.js +2 -9
  31. package/development/card/common.js +2 -9
  32. package/development/checkbox/checkbox-group.js +2 -9
  33. package/development/checkbox/checkbox.js +2 -9
  34. package/development/checkbox/common.js +1 -8
  35. package/development/chip.js +2 -9
  36. package/development/clock.js +2 -9
  37. package/development/container/container.js +1 -8
  38. package/development/container/sticky-bar.js +2 -9
  39. package/development/core/i18n/i18n.d.ts +5 -0
  40. package/development/core/i18n/i18n.d.ts.map +1 -1
  41. package/development/core/i18n.js +36 -1
  42. package/development/core/mixins.js +2 -9
  43. package/development/datepicker/datepicker-next-day.js +2 -9
  44. package/development/datepicker/datepicker-previous-day.js +2 -9
  45. package/development/datepicker/datepicker-toggle.js +2 -9
  46. package/development/datepicker/datepicker.js +2 -9
  47. package/development/dialog/dialog-actions.js +2 -9
  48. package/development/dialog/dialog-content.js +2 -11
  49. package/development/dialog/dialog-title.js +2 -9
  50. package/development/dialog/dialog.js +2 -9
  51. package/development/divider.js +2 -9
  52. package/development/expansion-panel/expansion-panel-content.js +2 -9
  53. package/development/expansion-panel/expansion-panel-header.js +2 -9
  54. package/development/expansion-panel/expansion-panel.js +2 -9
  55. package/development/file-selector.js +2 -9
  56. package/development/flip-card/flip-card-details.js +2 -9
  57. package/development/flip-card/flip-card-summary.js +2 -9
  58. package/development/flip-card/flip-card.js +2 -9
  59. package/development/footer.js +2 -9
  60. package/development/form-error.js +2 -9
  61. package/development/form-field/form-field-clear.js +2 -9
  62. package/development/form-field/form-field.js +1 -12
  63. package/development/header/common.js +2 -9
  64. package/development/header/header.js +2 -9
  65. package/development/icon.js +2 -9
  66. package/development/image/image.d.ts +1 -0
  67. package/development/image/image.d.ts.map +1 -1
  68. package/development/image.js +13 -13
  69. package/development/journey-header.js +2 -9
  70. package/development/lead-container.js +2 -9
  71. package/development/link/common.js +4 -25
  72. package/development/link-list/common.js +2 -9
  73. package/development/link-list/link-list-anchor.js +2 -9
  74. package/development/link-list/link-list.js +2 -9
  75. package/development/loading-indicator.js +2 -10
  76. package/development/logo.js +2 -9
  77. package/development/map-container.js +2 -11
  78. package/development/menu/common.js +2 -9
  79. package/development/menu/menu.js +2 -11
  80. package/development/message.js +2 -9
  81. package/development/navigation/common.js +2 -9
  82. package/development/navigation/navigation-list.js +2 -9
  83. package/development/navigation/navigation-marker.js +2 -9
  84. package/development/navigation/navigation-section.js +2 -11
  85. package/development/navigation/navigation.js +2 -11
  86. package/development/notification.js +2 -10
  87. package/development/option/optgroup.js +2 -9
  88. package/development/option/option.js +2 -9
  89. package/development/overlay.js +2 -11
  90. package/development/paginator/index.d.ts +2 -0
  91. package/development/paginator/index.d.ts.map +1 -0
  92. package/development/paginator/paginator.d.ts +91 -0
  93. package/development/paginator/paginator.d.ts.map +1 -0
  94. package/development/paginator.d.ts +2 -0
  95. package/development/paginator.d.ts.map +1 -0
  96. package/development/paginator.js +519 -0
  97. package/development/popover/popover-trigger.js +2 -9
  98. package/development/popover/popover.js +2 -9
  99. package/development/radio-button/common.js +2 -9
  100. package/development/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  101. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  102. package/development/radio-button/radio-button-group.js +19 -22
  103. package/development/radio-button/radio-button.js +2 -9
  104. package/development/screen-reader-only.js +2 -9
  105. package/development/select/select.d.ts +6 -0
  106. package/development/select/select.d.ts.map +1 -1
  107. package/development/select.js +23 -18
  108. package/development/selection-expansion-panel.js +2 -9
  109. package/development/signet.js +2 -9
  110. package/development/skiplink-list.js +2 -9
  111. package/development/slider/slider.d.ts +35 -16
  112. package/development/slider/slider.d.ts.map +1 -1
  113. package/development/slider.js +102 -88
  114. package/development/status.js +2 -9
  115. package/development/stepper/step-label.js +2 -9
  116. package/development/stepper/step.js +2 -9
  117. package/development/stepper/stepper.js +2 -9
  118. package/development/table/table-wrapper.js +2 -11
  119. package/development/tabs/tab-group.js +2 -9
  120. package/development/tabs/tab-label.js +2 -9
  121. package/development/tabs/tab.js +1 -8
  122. package/development/tag/tag-group.js +2 -9
  123. package/development/tag/tag.js +2 -9
  124. package/development/teaser-hero.js +2 -9
  125. package/development/teaser-product/common.js +2 -9
  126. package/development/teaser-product/teaser-product.js +2 -9
  127. package/development/teaser.js +12 -11
  128. package/development/time-input.js +2 -9
  129. package/development/timetable-occupancy-icon.js +2 -9
  130. package/development/timetable-occupancy.js +2 -9
  131. package/development/title.js +3 -17
  132. package/development/toast.js +2 -9
  133. package/development/toggle/toggle-option.js +2 -9
  134. package/development/toggle/toggle.js +2 -9
  135. package/development/toggle-check.js +1 -8
  136. package/development/train/train-blocked-passage.js +2 -9
  137. package/development/train/train-formation.js +2 -11
  138. package/development/train/train-wagon.js +2 -9
  139. package/development/train/train.js +2 -9
  140. package/development/visual-checkbox.js +2 -9
  141. package/image/image.d.ts +1 -0
  142. package/image/image.d.ts.map +1 -1
  143. package/image.js +7 -7
  144. package/index.d.ts +2 -0
  145. package/index.js +2 -0
  146. package/lists.css +97 -38
  147. package/normalize.css +21 -113
  148. package/package.json +6 -1
  149. package/paginator/index.d.ts +2 -0
  150. package/paginator/index.d.ts.map +1 -0
  151. package/paginator/paginator.d.ts +91 -0
  152. package/paginator/paginator.d.ts.map +1 -0
  153. package/paginator.d.ts +2 -0
  154. package/paginator.d.ts.map +1 -0
  155. package/paginator.js +263 -0
  156. package/radio-button/radio-button-group/radio-button-group.d.ts +1 -1
  157. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  158. package/radio-button/radio-button-group.js +13 -8
  159. package/select/select.d.ts +6 -0
  160. package/select/select.d.ts.map +1 -1
  161. package/select.js +40 -24
  162. package/slider/slider.d.ts +35 -16
  163. package/slider/slider.d.ts.map +1 -1
  164. package/slider.js +111 -78
  165. package/standard-theme.css +116 -160
  166. package/teaser.js +16 -16
package/paginator.js ADDED
@@ -0,0 +1,263 @@
1
+ import { css as d, LitElement as u, html as r, nothing as h } from "lit";
2
+ import { property as p, customElement as m } from "lit/decorators.js";
3
+ import { repeat as c } from "lit/directives/repeat.js";
4
+ import { sbbInputModalityDetector as _ } from "./core/a11y.js";
5
+ import { SbbLanguageController as v } from "./core/controllers.js";
6
+ import { hostAttributes as f } from "./core/decorators.js";
7
+ import { EventEmitter as x } from "./core/eventing.js";
8
+ import { i18nSelectedPage as y, i18nPreviousPage as z, i18nNextPage as w, i18nItemsPerPage as P, i18nPage as I } from "./core/i18n.js";
9
+ import { SbbNegativeMixin as S } from "./core/mixins.js";
10
+ import "./button/mini-button.js";
11
+ import "./button/mini-button-group.js";
12
+ import "./divider.js";
13
+ import "./form-field.js";
14
+ import "./select.js";
15
+ import "./option.js";
16
+ import "./screen-reader-only.js";
17
+ const $ = d`*,:before,:after{box-sizing:border-box}:host{display:block;--sbb-paginator-height: var(--sbb-size-element-m);--sbb-paginator-page-color: var(--sbb-color-metal);--sbb-paginator-page-background-color: transparent;--sbb-paginator-page-border-width: 0;--sbb-paginator-page-border-style: none;--sbb-paginator-page-border-color: none;--sbb-paginator-page-inset: 0;--sbb-paginator-animation-easing: var(--sbb-animation-easing);--sbb-paginator-animation-duration: var( --sbb-disable-animation-zero-time, var(--sbb-animation-duration-2x) );--sbb-paginator-justify-content: start;--sbb-paginator-wrapping-group-wrap: wrap-reverse;--sbb-paginator-wrap: wrap}:host([size=s]){--sbb-paginator-height: var(--sbb-size-element-xs)}:host([negative]){--sbb-paginator-page-color: var(--sbb-color-smoke);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark)}:host([pager-position=end]){--sbb-paginator-justify-content: end;--sbb-paginator-wrapping-group-wrap: wrap;--sbb-paginator-wrap: wrap-reverse}.sbb-paginator,.sbb-paginator__wrapping-group{display:flex;gap:var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-6x);justify-content:var(--sbb-paginator-justify-content)}.sbb-paginator{flex-wrap:var(--sbb-paginator-wrap);min-height:var(--sbb-paginator-height)}.sbb-paginator__wrapping-group{flex-wrap:var(--sbb-paginator-wrapping-group-wrap)}.sbb-paginator__page-size-options{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);display:flex;align-items:center;gap:var(--sbb-spacing-fixed-2x);white-space:nowrap;color:var(--sbb-paginator-page-color)}.sbb-paginator__pages{list-style:none;margin:0;padding:0;font-size:inherit;display:flex;align-items:center;justify-content:center;gap:var(--sbb-spacing-fixed-1x);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.sbb-paginator__page--ellipsis,.sbb-paginator__page--number{--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);position:relative;color:var(--sbb-paginator-page-color)}.sbb-paginator__page--ellipsis-item,.sbb-paginator__page--number-item{display:flex;justify-content:center;align-items:center;width:var(--sbb-size-element-xxs);height:var(--sbb-size-element-xxs)}.sbb-paginator__page--number-item{-webkit-appearance:none;-moz-appearance:none;box-sizing:border-box;margin:0;outline:none;border:none;border-radius:0;padding:0;background:none;-webkit-tap-highlight-color:transparent;color:inherit;--sbb-text-font-size: var(--sbb-font-size-text-s);font-family:var(--sbb-typo-font-family);font-weight:400;line-height:var(--sbb-typo-line-height-body-text);letter-spacing:var(--sbb-typo-letter-spacing-body-text);font-size:var(--sbb-text-font-size);position:relative;cursor:pointer;outline:none!important;color:var(--sbb-paginator-page-color);transition:color var(--sbb-paginator-animation-duration) var(--sbb-paginator-animation-easing)}.sbb-paginator__page--number-item:before{content:"";position:absolute;background-color:var(--sbb-paginator-page-background-color);border:var(--sbb-paginator-page-border-width) var(--sbb-paginator-page-border-style) var(--sbb-paginator-page-border-color);border-radius:var(--sbb-border-radius-infinity);inset:var(--sbb-paginator-page-inset);transition-property:background-color,border,inset;transition-duration:var(--sbb-paginator-animation-duration);transition-timing-function:var(--sbb-paginator-animation-easing)}.sbb-paginator__page--number-item:focus-visible:not([data-focus-origin=mouse],[data-focus-origin=touch]):before{outline-offset:var(--sbb-focus-outline-offset);outline:var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);outline-offset:var(--sbb-border-width-2x)}.sbb-paginator__page--number-item[data-selected]{font-weight:700;--sbb-paginator-page-color: var(--sbb-color-charcoal);--sbb-paginator-page-border-width: var(--sbb-border-width-2x);--sbb-paginator-page-border-style: solid;--sbb-paginator-page-border-color: var(--sbb-color-charcoal)}:host([negative]) .sbb-paginator__page--number-item[data-selected]{--sbb-paginator-page-color: var(--sbb-color-milk);--sbb-paginator-page-border-width: var(--sbb-border-width-2x);--sbb-paginator-page-border-style: solid;--sbb-paginator-page-border-color: var(--sbb-color-white)}@media (forced-colors: active){.sbb-paginator__page--number-item[data-selected]{--sbb-paginator-page-border-color: Highlight !important}}@media (any-hover: hover){.sbb-paginator__page--number-item:hover{--sbb-paginator-page-background-color: var(--sbb-color-milk);--sbb-paginator-page-inset: calc(var(--sbb-border-width-2x) * -1);--sbb-paginator-translate-y-content-hover: -.0625rem}:host([negative]) .sbb-paginator__page--number-item:hover{--sbb-paginator-page-background-color: var(--sbb-color-charcoal)}}@media (any-hover: hover) and (forced-colors: active){.sbb-paginator__page--number-item:hover{--sbb-paginator-page-background-color: Highlight !important}}.sbb-paginator__page--number-item:active{--sbb-paginator-page-color: var(--sbb-color-charcoal);--sbb-paginator-page-background-color: var(--sbb-color-cloud);--sbb-paginator-page-inset: 0;--sbb-paginator-translate-y-content-hover: 0}:host([negative]) .sbb-paginator__page--number-item:active{--sbb-paginator-page-color: var(--sbb-color-milk);--sbb-paginator-page-background-color: var(--sbb-color-iron)}@media (forced-colors: active){.sbb-paginator__page--number-item:active{--sbb-paginator-page-background-color: Highlight !important}}.sbb-paginator__page--number-item-label{transition:transform var(--sbb-paginator-animation-duration) var(--sbb-paginator-animation-easing);transform:translateY(var(--sbb-paginator-translate-y-content-hover, 0rem))}.sbb-screen-reader-only{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}`;
18
+ var k = Object.defineProperty, O = Object.getOwnPropertyDescriptor, n = (e, t, a, s) => {
19
+ for (var o = s > 1 ? void 0 : s ? O(t, a) : t, g = e.length - 1, l; g >= 0; g--)
20
+ (l = e[g]) && (o = (s ? l(t, a, o) : l(o)) || o);
21
+ return s && o && k(t, a, o), o;
22
+ };
23
+ const b = 3;
24
+ let N = 0, i = class extends S(u) {
25
+ constructor() {
26
+ super(...arguments), this._length = 0, this._pageSize = 10, this._pageIndex = 0, this.pagerPosition = "start", this.size = "m", this._page = new x(
27
+ this,
28
+ i.events.page,
29
+ { composed: !0, bubbles: !0 }
30
+ ), this._paginatorOptionsLabel = `sbb-paginator-options-label-${++N}`, this._language = new v(this), this._markForFocus = null, this._updateSelectAriaLabelledBy = !1;
31
+ }
32
+ set length(e) {
33
+ this._length = isNaN(e) || e < 0 ? 0 : e, this.pageIndex = this.pageIndex;
34
+ }
35
+ get length() {
36
+ return this._length;
37
+ }
38
+ set pageSize(e) {
39
+ const t = this.pageSize;
40
+ this._pageSize = Math.max(e, 0), this.pageIndex = Math.floor(this.pageIndex * t / this.pageSize) || 0;
41
+ }
42
+ get pageSize() {
43
+ return this._pageSize;
44
+ }
45
+ set pageIndex(e) {
46
+ this._pageIndex = this._coercePageIndexInRange(e);
47
+ }
48
+ get pageIndex() {
49
+ return this._pageIndex;
50
+ }
51
+ set pageSizeOptions(e) {
52
+ this._pageSizeOptions = e, this._updateSelectAriaLabelledBy = !0;
53
+ }
54
+ get pageSizeOptions() {
55
+ return this._pageSizeOptions;
56
+ }
57
+ updated(e) {
58
+ if (super.updated(e), this._markForFocus && _.mostRecentModality === "keyboard") {
59
+ const a = this._getVisiblePages().find(
60
+ (s) => this.pageIndex === +s.getAttribute("data-index")
61
+ );
62
+ a && a.focus(), this._markForFocus = null;
63
+ }
64
+ const t = this.shadowRoot.querySelector("sbb-select");
65
+ t && this._updateSelectAriaLabelledBy && (t.setAttribute("aria-labelledby", this._paginatorOptionsLabel), this._updateSelectAriaLabelledBy = !1), this.shadowRoot.querySelector("sbb-screen-reader-only").textContent = this._currentPageLabel();
66
+ }
67
+ /**
68
+ * Calculates the current number of pages based on the `length` and the `pageSize`;
69
+ * value must be rounded up (e.g. `length = 21` and `pageSize = 10` means 3 pages).
70
+ */
71
+ _numberOfPages() {
72
+ return this.pageSize ? Math.ceil(this.length / this.pageSize) : 0;
73
+ }
74
+ /**
75
+ * If the `pageSize` changes due to user interaction with the `pageSizeOptions` select,
76
+ * emit the `page` event and then update the `pageSize` value.
77
+ */
78
+ _pageSizeChanged(e) {
79
+ const t = this.pageSize, a = this.pageIndex;
80
+ this.pageSize = e, t !== this.pageSize && this._emitPageEvent(a);
81
+ }
82
+ /**
83
+ * If the `pageIndex` changes due to user interaction,
84
+ * emit the `page` event and then update the `pageIndex` value.
85
+ */
86
+ _pageIndexChanged(e) {
87
+ const t = this.pageIndex;
88
+ this.pageIndex = e, t !== this.pageIndex && this._emitPageEvent(t);
89
+ }
90
+ _emitPageEvent(e) {
91
+ this._page.emit({
92
+ previousPageIndex: e,
93
+ pageIndex: this.pageIndex,
94
+ length: this.length,
95
+ pageSize: this.pageSize
96
+ });
97
+ }
98
+ /** Returns the displayed page elements. */
99
+ _getVisiblePages() {
100
+ return Array.from(this.shadowRoot.querySelectorAll(".sbb-paginator__page--number-item"));
101
+ }
102
+ /** Evaluate `pageIndex` by excluding edge cases. */
103
+ _coercePageIndexInRange(e) {
104
+ return Math.max(
105
+ Math.min(Math.max(isNaN(e) ? 0 : e, 0), this._numberOfPages() - 1),
106
+ 0
107
+ );
108
+ }
109
+ /**
110
+ * Calculate the pages set based on the following rules:
111
+ * - the first page must always be visible;
112
+ * - the last page must always be visible;
113
+ * - if there are more than `MAX_PAGE_NUMBERS_DISPLAYED` other pages, ellipsis button must be used.
114
+ */
115
+ _getVisiblePagesIndex() {
116
+ const e = this._numberOfPages(), t = this.pageIndex;
117
+ return e <= b + 2 ? this._range(e) : t < b ? [...this._range(b + 1), "ellipsis", e - 1] : t >= e - b ? [
118
+ 0,
119
+ "ellipsis",
120
+ ...this._range(b + 1, e - 1 - b)
121
+ ] : [
122
+ 0,
123
+ "ellipsis",
124
+ t - 1,
125
+ t,
126
+ t + 1,
127
+ "ellipsis",
128
+ e - 1
129
+ ];
130
+ }
131
+ /** Creates an array of consecutive numbers given the length and the starting value. */
132
+ _range(e, t = 0) {
133
+ return Array.from({ length: e }, (a, s) => s + t);
134
+ }
135
+ _handleKeyUp(e) {
136
+ if (e.key !== " " && e.key !== "Enter")
137
+ return;
138
+ this._getVisiblePages().find((a) => a === e.target) && (this._markForFocus = this.pageIndex);
139
+ }
140
+ _currentPageLabel() {
141
+ return y(this.pageIndex + 1)[this._language.current];
142
+ }
143
+ _renderPrevNextButtons() {
144
+ return r`
145
+ <sbb-mini-button-group ?negative=${this.negative} size=${this.size === "s" ? "s" : "l"}>
146
+ <sbb-mini-button
147
+ id="sbb-paginator-prev-page"
148
+ aria-label=${z[this._language.current]}
149
+ icon-name="chevron-small-left-small"
150
+ ?disabled=${this.pageIndex === 0}
151
+ @click=${() => this._pageIndexChanged(this._pageIndex - 1)}
152
+ ></sbb-mini-button>
153
+ <sbb-divider orientation="vertical"></sbb-divider>
154
+ <sbb-mini-button
155
+ id="sbb-paginator-next-page"
156
+ aria-label=${w[this._language.current]}
157
+ icon-name="chevron-small-right-small"
158
+ ?disabled=${this.pageIndex === this._numberOfPages() - 1}
159
+ @click=${() => this._pageIndexChanged(this._pageIndex + 1)}
160
+ ></sbb-mini-button>
161
+ </sbb-mini-button-group>
162
+ `;
163
+ }
164
+ _renderItemPerPageTemplate() {
165
+ var e;
166
+ return this.pageSizeOptions && this.pageSizeOptions.length > 0 ? r`
167
+ <div class="sbb-paginator__page-size-options">
168
+ <label id=${this._paginatorOptionsLabel}>
169
+ ${P[this._language.current]}
170
+ </label>
171
+ <sbb-form-field
172
+ borderless
173
+ width="collapse"
174
+ ?negative=${this.negative}
175
+ size=${this.size}
176
+ >
177
+ <sbb-select
178
+ value=${((e = this.pageSizeOptions) == null ? void 0 : e.find((t) => t === this.pageSize)) ?? this.pageSizeOptions[0]}
179
+ @change=${(t) => this._pageSizeChanged(+t.target.value)}
180
+ >
181
+ ${c(
182
+ this.pageSizeOptions,
183
+ (t) => r`<sbb-option value=${t}>${t}</sbb-option>`
184
+ )}
185
+ </sbb-select>
186
+ </sbb-form-field>
187
+ </div>
188
+ ` : h;
189
+ }
190
+ _renderPageNumbers() {
191
+ return r`
192
+ <ul class="sbb-paginator__pages">
193
+ ${c(
194
+ this._getVisiblePagesIndex(),
195
+ (e) => e === "ellipsis" ? r`
196
+ <li class="sbb-paginator__page--ellipsis">
197
+ <span class="sbb-paginator__page--ellipsis-item">…</span>
198
+ </li>
199
+ ` : r`
200
+ <li class="sbb-paginator__page--number">
201
+ <button
202
+ ?data-selected=${this.pageIndex === e}
203
+ class="sbb-paginator__page--number-item"
204
+ data-index=${e}
205
+ aria-label="${I[this._language.current]} ${e + 1}"
206
+ aria-current=${this.pageIndex === e ? "true" : h}
207
+ @click=${() => this._pageIndexChanged(e)}
208
+ @keyup=${this._handleKeyUp}
209
+ >
210
+ <span class="sbb-paginator__page--number-item-label">${e + 1}</span>
211
+ </button>
212
+ </li>
213
+ `
214
+ )}
215
+ </ul>
216
+ `;
217
+ }
218
+ render() {
219
+ return r`
220
+ <div class="sbb-paginator">
221
+ ${this.pagerPosition === "start" ? r`<span class="sbb-paginator__wrapping-group">
222
+ ${this._renderPrevNextButtons()} ${this._renderPageNumbers()}
223
+ </span>
224
+ ${this._renderItemPerPageTemplate()}` : r`${this._renderItemPerPageTemplate()}
225
+ <span class="sbb-paginator__wrapping-group">
226
+ ${this._renderPageNumbers()} ${this._renderPrevNextButtons()}
227
+ </span>`}</span>
228
+ </div>
229
+ <sbb-screen-reader-only role='status'></sbb-screen-reader-only>
230
+ `;
231
+ }
232
+ };
233
+ i.styles = $;
234
+ i.events = {
235
+ page: "page"
236
+ };
237
+ n([
238
+ p({ type: Number })
239
+ ], i.prototype, "length", 1);
240
+ n([
241
+ p({ attribute: "page-size", type: Number })
242
+ ], i.prototype, "pageSize", 1);
243
+ n([
244
+ p({ attribute: "page-index", type: Number })
245
+ ], i.prototype, "pageIndex", 1);
246
+ n([
247
+ p({ attribute: "page-size-options", type: Array })
248
+ ], i.prototype, "pageSizeOptions", 1);
249
+ n([
250
+ p({ attribute: "pager-position", reflect: !0 })
251
+ ], i.prototype, "pagerPosition", 2);
252
+ n([
253
+ p({ reflect: !0 })
254
+ ], i.prototype, "size", 2);
255
+ i = n([
256
+ m("sbb-paginator"),
257
+ f({
258
+ role: "group"
259
+ })
260
+ ], i);
261
+ export {
262
+ i as SbbPaginatorElement
263
+ };
@@ -74,7 +74,7 @@ export declare class SbbRadioButtonGroupElement extends SbbRadioButtonGroupEleme
74
74
  private _valueChanged;
75
75
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
76
76
  disconnectedCallback(): void;
77
- private _onRadioButtonSelect;
77
+ private _onRadioButtonChange;
78
78
  private _emitChange;
79
79
  private _updateRadios;
80
80
  private _setFocusableRadio;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button-group.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-group/radio-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAElG,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAIhE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,qBAAqB,GAAG,0BAA0B,CAAC;CACjE,CAAC;;AAEF;;;;;;;;GAQG;AACH,qBAKa,0BAA2B,SAAQ,+BAA4B;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX;;OAEG;IAEI,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACiC,QAAQ,EAAE,OAAO,CAAS;IAE9D;;OAEG;IACgB,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACgB,IAAI,EAAE,kBAAkB,CAAO;IAElD;;OAEG;IAEI,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IAEI,WAAW,EAAE,cAAc,CAAgB;IAElD;;OAEG;IACH,IAAW,YAAY,IAAI,CAAC,qBAAqB,GAAG,0BAA0B,CAAC,EAAE,CAOhF;IAED,OAAO,KAAK,cAAc,GAIzB;IAED,OAAO,CAAC,kCAAkC,CAAkB;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyC;IAEvD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGhB;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAGb;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAGZ;IAEc,iBAAiB,IAAI,IAAI;IAuBzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAqBzE,OAAO,CAAC,aAAa;cAQF,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAI5C,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;cA+BH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
1
+ {"version":3,"file":"radio-button-group.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-group/radio-button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAkB,MAAM,0BAA0B,CAAC;AAElG,OAAO,KAAK,EAA6B,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAIhE,MAAM,MAAM,8BAA8B,GAAG;IAC3C,KAAK,EAAE,GAAG,GAAG,IAAI,CAAC;IAClB,WAAW,EAAE,qBAAqB,GAAG,0BAA0B,CAAC;CACjE,CAAC;;AAEF;;;;;;;;GAQG;AACH,qBAKa,0BAA2B,SAAQ,+BAA4B;IAC1E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;MAIlB;IAEX;;OAEG;IAEI,mBAAmB,EAAE,OAAO,CAAS;IAE5C;;OAEG;IACiC,QAAQ,EAAE,OAAO,CAAS;IAE9D;;OAEG;IACgB,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACgB,IAAI,EAAE,kBAAkB,CAAO;IAElD;;OAEG;IAEI,cAAc,CAAC,EAAE,iBAAiB,CAAC;IAE1C;;OAEG;IAEI,WAAW,EAAE,cAAc,CAAgB;IAElD;;OAEG;IACH,IAAW,YAAY,IAAI,CAAC,qBAAqB,GAAG,0BAA0B,CAAC,EAAE,CAOhF;IAED,OAAO,KAAK,cAAc,GAIzB;IAED,OAAO,CAAC,kCAAkC,CAAkB;IAC5D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAyC;IAEvD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAGhB;IAEF;;OAEG;IACH,OAAO,CAAC,OAAO,CAGb;IAEF;;OAEG;IACH,OAAO,CAAC,MAAM,CAGZ;IAEc,iBAAiB,IAAI,IAAI;IAuBzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAqBzE,OAAO,CAAC,aAAa;cAQF,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9D,oBAAoB,IAAI,IAAI;IAI5C,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,aAAa;IAiBrB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,cAAc;cA+BH,MAAM,IAAI,cAAc;CAU5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
@@ -44,7 +44,7 @@ let a = class extends _(u) {
44
44
  const t = this._abort.signal;
45
45
  this.addEventListener(
46
46
  "stateChange",
47
- (i) => this._onRadioButtonSelect(i),
47
+ (i) => this._onRadioButtonChange(i),
48
48
  {
49
49
  signal: t,
50
50
  passive: !0
@@ -83,12 +83,16 @@ let a = class extends _(u) {
83
83
  disconnectedCallback() {
84
84
  super.disconnectedCallback();
85
85
  }
86
- _onRadioButtonSelect(t) {
87
- var e;
88
- if (t.stopPropagation(), t.detail.type !== "checked" || !this._didLoad)
89
- return;
90
- const o = t.target;
91
- t.detail.checked ? (this.value = o.value, this._emitChange(o, this.value)) : this.allowEmptySelection && (this.value = (e = this.radioButtons.find((i) => i.checked)) == null ? void 0 : e.value, this.value || this._emitChange(o));
86
+ _onRadioButtonChange(t) {
87
+ var o;
88
+ if (t.stopPropagation(), !!this._didLoad) {
89
+ if (t.detail.type === "disabled")
90
+ this._updateRadios(this.value);
91
+ else if (t.detail.type === "checked") {
92
+ const e = t.target;
93
+ t.detail.checked ? (this.value = e.value, this._emitChange(e, this.value)) : this.allowEmptySelection && (this.value = (o = this.radioButtons.find((i) => i.checked)) == null ? void 0 : o.value, this.value || this._emitChange(e));
94
+ }
95
+ }
92
96
  }
93
97
  _emitChange(t, o) {
94
98
  this._change.emit({ value: o, radioButton: t }), this._input.emit({ value: o, radioButton: t }), this._didChange.emit({ value: o, radioButton: t });
@@ -108,7 +112,8 @@ let a = class extends _(u) {
108
112
  !t && (o != null && o.length) && (o[0].tabIndex = 0);
109
113
  }
110
114
  _getRadioTabIndex(t) {
111
- return t.checked && !t.disabled && !this.disabled || this._hasSelectionExpansionPanelElement ? 0 : -1;
115
+ const o = !t.disabled && !this.disabled;
116
+ return (t.checked || this._hasSelectionExpansionPanelElement) && o ? 0 : -1;
112
117
  }
113
118
  _handleKeyDown(t) {
114
119
  var n;
@@ -74,6 +74,12 @@ export declare class SbbSelectElement extends SbbSelectElement_base {
74
74
  /** Gets all the SbbOptionElement projected in the select. */
75
75
  private get _options();
76
76
  private get _filteredOptions();
77
+ constructor();
78
+ /**
79
+ * TODO: Accessibility fix required to correctly read the label;
80
+ * can be possibly removed after the merge of https://github.com/sbb-design-systems/lyne-components/issues/3062
81
+ */
82
+ private _onSelectAttributesChange;
77
83
  /** Opens the selection panel. */
78
84
  open(): void;
79
85
  /** Closes the selection panel. */
@@ -1 +1 @@
1
- {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/elements/select/select.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/elements/select/select.ts"],"names":[],"mappings":"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"}
package/select.js CHANGED
@@ -1,37 +1,41 @@
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";
1
+ import { MutationController as g } from "@lit-labs/observers/mutation-controller.js";
2
+ import { css as m, html as d, nothing as c } from "lit";
3
+ import { property as b, state as w, customElement as y } from "lit/decorators.js";
3
4
  import { ref as v } from "lit/directives/ref.js";
4
5
  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";
6
+ import { getNextElementIndex as x } from "./core/a11y.js";
7
+ import { SbbOpenCloseBaseElement as E } from "./core/base-elements.js";
8
+ import { SbbConnectedAbortController as k } from "./core/controllers.js";
8
9
  import { hostAttributes as O } from "./core/decorators.js";
9
- import { isNextjs as f, isSafari as k } from "./core/dom.js";
10
+ import { isNextjs as f, isSafari as C } from "./core/dom.js";
10
11
  import { EventEmitter as p } from "./core/eventing.js";
11
- import { SbbUpdateSchedulerMixin as C, SbbDisabledMixin as A, SbbNegativeMixin as S, SbbHydrationMixin as I } from "./core/mixins.js";
12
- import { isEventOnElement as _, setOverlayPosition as D, overlayGapFixCorners as P } from "./core/overlay.js";
13
- const $ = 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 L = Object.defineProperty, V = Object.getOwnPropertyDescriptor, n = (e, t, i, s) => {
15
- for (var o = s > 1 ? void 0 : s ? V(t, i) : t, r = e.length - 1, l; r >= 0; r--)
12
+ import { SbbUpdateSchedulerMixin as A, SbbDisabledMixin as S, SbbNegativeMixin as I, SbbHydrationMixin as D } from "./core/mixins.js";
13
+ import { isEventOnElement as _, setOverlayPosition as P, overlayGapFixCorners as $ } from "./core/overlay.js";
14
+ const L = m`*,: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}}`;
15
+ var V = Object.defineProperty, T = Object.getOwnPropertyDescriptor, n = (e, t, i, s) => {
16
+ for (var o = s > 1 ? void 0 : s ? T(t, i) : t, r = e.length - 1, l; r >= 0; r--)
16
17
  (l = e[r]) && (o = (s ? l(t, i, o) : l(o)) || o);
17
- return s && o && L(t, i, o), o;
18
+ return s && o && V(t, i, o), o;
18
19
  };
19
- const h = k;
20
- let T = 0, a = class extends C(
21
- A(S(I(x)))
20
+ const h = C;
21
+ let N = 0, a = class extends A(
22
+ S(I(D(E)))
22
23
  ) {
23
24
  constructor() {
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(
25
+ super(), 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(
25
26
  this,
26
27
  a.events.stateChange,
27
28
  {
28
29
  composed: !1
29
30
  }
30
- ), this._overlayId = `sbb-select-${++T}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._abort = new E(this), this._pointerDownListener = (e) => {
31
+ ), this._overlayId = `sbb-select-${++N}`, this._activeItemIndex = -1, this._searchString = "", this._didLoad = !1, this._isPointerDownEventOnMenu = !1, this._abort = new k(this), this._pointerDownListener = (e) => {
31
32
  this._isPointerDownEventOnMenu = _(this._overlay, e);
32
33
  }, this._closeOnBackdropClick = (e) => {
33
34
  !this._isPointerDownEventOnMenu && !_(this._overlay, e) && this.close();
34
- };
35
+ }, new g(this, {
36
+ config: { attributeFilter: ["aria-labelledby"] },
37
+ callback: (e) => this._onSelectAttributesChange(e)
38
+ });
35
39
  }
36
40
  /**
37
41
  * The 'combobox' input element
@@ -50,6 +54,18 @@ let T = 0, a = class extends C(
50
54
  (e) => !e.disabled && !e.hasAttribute("data-group-disabled")
51
55
  );
52
56
  }
57
+ /**
58
+ * TODO: Accessibility fix required to correctly read the label;
59
+ * can be possibly removed after the merge of https://github.com/sbb-design-systems/lyne-components/issues/3062
60
+ */
61
+ _onSelectAttributesChange(e) {
62
+ var t;
63
+ for (const i of e)
64
+ i.attributeName === "aria-labelledby" && ((t = this._triggerElement) == null || t.setAttribute(
65
+ "aria-labelledby",
66
+ this.getAttribute("aria-labelledby")
67
+ ));
68
+ }
53
69
  /** Opens the selection panel. */
54
70
  open() {
55
71
  this.state !== "closed" || !this._overlay || this._options.length === 0 || this.willOpen.emit() && (this.state = "opening", this._setOverlayPosition());
@@ -153,7 +169,7 @@ let T = 0, a = class extends C(
153
169
  this._triggerElement.style.top = "0px", this._triggerElement.style.height = `${e.offsetHeight}px`, this._triggerElement.style.width = `${e.offsetWidth}px`;
154
170
  }
155
171
  _setOverlayPosition() {
156
- D(
172
+ P(
157
173
  this._overlay,
158
174
  this._originElement,
159
175
  this._optionContainer,
@@ -270,7 +286,7 @@ let T = 0, a = class extends C(
270
286
  this.multiple ? e.setSelectedViaUserInteraction(!e.selected) : this.close();
271
287
  }
272
288
  _setNextActiveOption(e, t) {
273
- const i = t ?? y(e, this._activeItemIndex, this._filteredOptions.length), s = this._filteredOptions[i], o = this._filteredOptions[this._activeItemIndex];
289
+ const i = t ?? x(e, this._activeItemIndex, this._filteredOptions.length), s = this._filteredOptions[i], o = this._filteredOptions[this._activeItemIndex];
274
290
  this._setActiveElement(s, o), this.multiple ? e != null && e.shiftKey && s.setSelectedViaUserInteraction(!s.selected) : this._setSelectedElement(s, o), this._activeItemIndex = i;
275
291
  }
276
292
  _setActiveElement(e, t = null, i = !0) {
@@ -350,7 +366,7 @@ let T = 0, a = class extends C(
350
366
 
351
367
  <div class="sbb-select__gap-fix"></div>
352
368
  <div class="sbb-select__container">
353
- <div class="sbb-select__gap-fix">${P()}</div>
369
+ <div class="sbb-select__gap-fix">${$()}</div>
354
370
  <div
355
371
  @animationend=${this._onAnimationEnd}
356
372
  class="sbb-select__panel"
@@ -372,7 +388,7 @@ let T = 0, a = class extends C(
372
388
  `;
373
389
  }
374
390
  };
375
- a.styles = $;
391
+ a.styles = L;
376
392
  a.events = {
377
393
  didChange: "didChange",
378
394
  change: "change",
@@ -399,10 +415,10 @@ n([
399
415
  b({ type: Boolean })
400
416
  ], a.prototype, "readonly", 2);
401
417
  n([
402
- m()
418
+ w()
403
419
  ], a.prototype, "_displayValue", 2);
404
420
  a = n([
405
- w("sbb-select"),
421
+ y("sbb-select"),
406
422
  O({
407
423
  role: h ? "listbox" : null
408
424
  })
@@ -1,5 +1,6 @@
1
1
  import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
2
- declare const SbbSliderElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & typeof LitElement;
2
+ import { FormRestoreReason, FormRestoreState } from '../core/mixins.js';
3
+ declare const SbbSliderElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbDisabledMixinType> & import('../core/mixins.js').Constructor<import('../core/mixins.js').SbbFormAssociatedMixinType> & typeof LitElement;
3
4
  /**
4
5
  * It displays an input knob that can be moved in a range.
5
6
  *
@@ -12,18 +13,23 @@ export declare class SbbSliderElement extends SbbSliderElement_base {
12
13
  static readonly events: {
13
14
  readonly didChange: "didChange";
14
15
  };
15
- /** Value for the inner HTMLInputElement. */
16
- value?: string;
16
+ /**
17
+ * Value of the form element.
18
+ * If no value is provided, default is the middle point between min and max.
19
+ */
20
+ set value(value: string | null);
21
+ get value(): string;
17
22
  /** Numeric value for the inner HTMLInputElement. */
18
- valueAsNumber?: number;
19
- /** Name of the inner HTMLInputElement. */
20
- name?: string;
21
- /** The <form> element to associate the inner HTMLInputElement with. */
22
- form?: string;
23
+ set valueAsNumber(value: number);
24
+ get valueAsNumber(): number | null;
23
25
  /** Minimum acceptable value for the inner HTMLInputElement. */
24
- min?: string;
26
+ set min(value: string);
27
+ get min(): string;
28
+ private _min;
25
29
  /** Maximum acceptable value for the inner HTMLInputElement. */
26
- max?: string;
30
+ set max(value: string);
31
+ get max(): string;
32
+ private _max;
27
33
  /**
28
34
  * Readonly state for the inner HTMLInputElement.
29
35
  * Since the input range does not allow this attribute, it will be merged with the `disabled` one.
@@ -45,16 +51,29 @@ export declare class SbbSliderElement extends SbbSliderElement_base {
45
51
  /** Reference to the inner HTMLInputElement with type='range'. */
46
52
  private _rangeInput;
47
53
  private _abort;
54
+ constructor();
48
55
  connectedCallback(): void;
49
56
  protected willUpdate(changedProperties: PropertyValues<this>): void;
50
- private _syncValues;
51
57
  /**
52
- * Recalculates the `_valueFraction` on change to correctly display the slider knob and lines.
53
- * The first calculation happens in connectedCallback(...), so since `_rangeInput` is not yet available,
54
- * the `min` and `max` values are used; if `value` is not provided, the default value is halfway between min and max
55
- * (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value).
58
+ * The reset value is the attribute value (the setup value). If not present, calculates the default.
59
+ * @internal
60
+ */
61
+ formResetCallback(): void;
62
+ /**
63
+ * @internal
64
+ */
65
+ formStateRestoreCallback(state: FormRestoreState | null, _reason: FormRestoreReason): void;
66
+ /**
67
+ * If no value is provided, default is the middle point between min and max
68
+ * (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value)
69
+ */
70
+ private _getDefaultValue;
71
+ private _isValidNumber;
72
+ /**
73
+ * Restrains the value between the min and max
56
74
  */
57
- private _handleChange;
75
+ private _boundBetweenMinMax;
76
+ private _calculateValueFraction;
58
77
  private _handleKeydown;
59
78
  /** Emits the change event. */
60
79
  private _emitChange;
@@ -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,qBAA4B;IAChE,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;IA8B5E,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"}
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;AAQhD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,YAAY,CAAC;;AAEpB;;;;;;GAMG;AACH,qBAIa,gBAAiB,SAAQ,qBAAoD;IACxF,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,IACoB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAQ7C;IACD,IAAoB,KAAK,IAAI,MAAM,CAElC;IAED,oDAAoD;IACpD,IACW,aAAa,CAAC,KAAK,EAAE,MAAM,EAErC;IACD,IAAW,aAAa,IAAI,MAAM,GAAG,IAAI,CAExC;IAED,+DAA+D;IAC/D,IACW,GAAG,CAAC,KAAK,EAAE,MAAM,EAO3B;IACD,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,OAAO,CAAC,IAAI,CAAe;IAE3B,+DAA+D;IAC/D,IACW,GAAG,CAAC,KAAK,EAAE,MAAM,EAO3B;IACD,IAAW,GAAG,IAAI,MAAM,CAEvB;IACD,OAAO,CAAC,IAAI,CAAiB;IAE7B;;;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;;IAQvC,iBAAiB,IAAI,IAAI;cAUtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAc5E;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;IACI,wBAAwB,CAC7B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,EAAE,iBAAiB,GACzB,IAAI;IAIP;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,uBAAuB;YASjB,cAAc;IAgC5B,8BAA8B;IAC9B,OAAO,CAAC,WAAW;cAKA,MAAM,IAAI,cAAc;CAmC5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}