@sbb-esta/lyne-elements 2.0.3 → 2.2.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.
Files changed (266) hide show
  1. package/accordion/accordion.d.ts.map +1 -1
  2. package/accordion.js +6 -6
  3. package/action-group.js +3 -3
  4. package/alert/alert.js +8 -8
  5. package/autocomplete/autocomplete-base-element.d.ts +4 -0
  6. package/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  7. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  8. package/autocomplete-grid/autocomplete-grid-cell.js +3 -3
  9. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  10. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  11. package/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  12. package/autocomplete-grid/autocomplete-grid-option.js +10 -10
  13. package/autocomplete-grid/autocomplete-grid-row.js +5 -5
  14. package/autocomplete.js +99 -90
  15. package/breadcrumb/breadcrumb-group.js +5 -5
  16. package/button/accent-button-link.js +9 -9
  17. package/button/accent-button-static.js +6 -6
  18. package/button/accent-button.js +6 -6
  19. package/button/button-link.js +7 -7
  20. package/button/button-static.js +7 -7
  21. package/button/button.js +8 -8
  22. package/button/common.js +15 -15
  23. package/button/mini-button-group.js +8 -8
  24. package/button/secondary-button-link.js +7 -7
  25. package/button/secondary-button-static.js +7 -7
  26. package/button/secondary-button.js +3 -3
  27. package/button/transparent-button-link.js +6 -6
  28. package/button/transparent-button-static.js +5 -5
  29. package/button/transparent-button.js +6 -6
  30. package/card/card-badge.js +11 -11
  31. package/card/card-button.js +5 -5
  32. package/card/card-link.js +7 -7
  33. package/card/card.js +3 -3
  34. package/checkbox/checkbox-panel.js +16 -16
  35. package/checkbox/checkbox.js +15 -15
  36. package/checkbox/common.js +3 -3
  37. package/chip-label.js +3 -3
  38. package/clock.js +10 -10
  39. package/container/container/container.d.ts +1 -1
  40. package/container/container/container.d.ts.map +1 -1
  41. package/container/container.js +23 -23
  42. package/container/sticky-bar/sticky-bar.d.ts +1 -1
  43. package/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  44. package/container/sticky-bar.js +4 -4
  45. package/core/a11y/focus.d.ts.map +1 -1
  46. package/core/a11y.js +8 -8
  47. package/core/base-elements/link-base-element.d.ts +2 -0
  48. package/core/base-elements/link-base-element.d.ts.map +1 -1
  49. package/core/base-elements.js +125 -114
  50. package/core/controllers.js +4 -4
  51. package/core/datetime/date-adapter.d.ts +1 -1
  52. package/core/datetime/date-adapter.d.ts.map +1 -1
  53. package/core/datetime/native-date-adapter.d.ts +1 -1
  54. package/core/datetime/native-date-adapter.d.ts.map +1 -1
  55. package/core/datetime.js +6 -6
  56. package/core/dom/scroll.d.ts +1 -0
  57. package/core/dom/scroll.d.ts.map +1 -1
  58. package/core/dom.js +35 -35
  59. package/core/eventing.js +4 -4
  60. package/core/images.d.ts.map +1 -1
  61. package/core/mixins.js +18 -18
  62. package/core/styles/core.scss +23 -2
  63. package/core/testing.js +14 -14
  64. package/core.css +20 -2
  65. package/custom-elements.json +828 -431
  66. package/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  67. package/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  68. package/datepicker/common/datepicker-button.d.ts +17 -9
  69. package/datepicker/common/datepicker-button.d.ts.map +1 -1
  70. package/datepicker/common.d.ts +1 -0
  71. package/datepicker/common.d.ts.map +1 -1
  72. package/datepicker/common.js +130 -92
  73. package/datepicker/datepicker/datepicker.d.ts +19 -4
  74. package/datepicker/datepicker/datepicker.d.ts.map +1 -1
  75. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  76. package/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  77. package/datepicker/datepicker-toggle.js +106 -113
  78. package/datepicker/datepicker.js +95 -80
  79. package/development/accordion/accordion.d.ts.map +1 -1
  80. package/development/accordion.js +1 -1
  81. package/development/action-group.js +1 -1
  82. package/development/autocomplete/autocomplete-base-element.d.ts +4 -0
  83. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  84. package/development/autocomplete-grid/autocomplete-grid-cell.js +1 -1
  85. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts +1 -1
  86. package/development/autocomplete-grid/autocomplete-grid-option/autocomplete-grid-option.d.ts.map +1 -1
  87. package/development/autocomplete-grid/autocomplete-grid-option.js +3 -3
  88. package/development/autocomplete-grid/autocomplete-grid-row.js +1 -1
  89. package/development/autocomplete.js +37 -8
  90. package/development/breadcrumb/breadcrumb-group.js +3 -3
  91. package/development/button/common.js +69 -70
  92. package/development/calendar.js +1 -1
  93. package/development/card/card-badge.js +1 -1
  94. package/development/card/card.js +1 -1
  95. package/development/chip-label.js +1 -1
  96. package/development/clock.js +1 -1
  97. package/development/container/container/container.d.ts +1 -1
  98. package/development/container/container/container.d.ts.map +1 -1
  99. package/development/container/container.js +18 -2
  100. package/development/container/sticky-bar/sticky-bar.d.ts +1 -1
  101. package/development/container/sticky-bar/sticky-bar.d.ts.map +1 -1
  102. package/development/container/sticky-bar.js +9 -1
  103. package/development/core/a11y/focus.d.ts.map +1 -1
  104. package/development/core/a11y.js +3 -3
  105. package/development/core/base-elements/link-base-element.d.ts +2 -0
  106. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  107. package/development/core/base-elements.js +22 -5
  108. package/development/core/controllers.js +1 -1
  109. package/development/core/datetime/date-adapter.d.ts +1 -1
  110. package/development/core/datetime/date-adapter.d.ts.map +1 -1
  111. package/development/core/datetime/native-date-adapter.d.ts +1 -1
  112. package/development/core/datetime/native-date-adapter.d.ts.map +1 -1
  113. package/development/core/datetime.js +1 -1
  114. package/development/core/dom/scroll.d.ts +1 -0
  115. package/development/core/dom/scroll.d.ts.map +1 -1
  116. package/development/core/dom.js +4 -1
  117. package/development/core/images.d.ts.map +1 -1
  118. package/development/core/mixins.js +1 -1
  119. package/development/datepicker/common/datepicker-association-controllers.d.ts +21 -0
  120. package/development/datepicker/common/datepicker-association-controllers.d.ts.map +1 -0
  121. package/development/datepicker/common/datepicker-button.d.ts +17 -9
  122. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  123. package/development/datepicker/common.d.ts +1 -0
  124. package/development/datepicker/common.d.ts.map +1 -1
  125. package/development/datepicker/common.js +139 -90
  126. package/development/datepicker/datepicker/datepicker.d.ts +19 -4
  127. package/development/datepicker/datepicker/datepicker.d.ts.map +1 -1
  128. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts +14 -8
  129. package/development/datepicker/datepicker-toggle/datepicker-toggle.d.ts.map +1 -1
  130. package/development/datepicker/datepicker-toggle.js +76 -73
  131. package/development/datepicker/datepicker.js +55 -37
  132. package/development/dialog/dialog/dialog.d.ts +2 -0
  133. package/development/dialog/dialog/dialog.d.ts.map +1 -1
  134. package/development/dialog/dialog-content.js +1 -1
  135. package/development/dialog/dialog.js +38 -12
  136. package/development/expansion-panel/expansion-panel-content.js +1 -1
  137. package/development/flip-card/flip-card-details.js +1 -1
  138. package/development/flip-card/flip-card-summary.js +1 -1
  139. package/development/icon.js +1 -1
  140. package/development/image.js +2 -2
  141. package/development/lead-container.js +1 -1
  142. package/development/link-list/link-list-anchor.js +1 -1
  143. package/development/link-list/link-list.js +1 -1
  144. package/development/loading-indicator-circle.js +1 -1
  145. package/development/loading-indicator.js +1 -1
  146. package/development/map-container.js +1 -1
  147. package/development/menu/menu/menu.d.ts.map +1 -1
  148. package/development/menu/menu.js +35 -12
  149. package/development/message.js +1 -1
  150. package/development/navigation/navigation/navigation.d.ts.map +1 -1
  151. package/development/navigation/navigation.js +15 -8
  152. package/development/notification.js +1 -1
  153. package/development/option/optgroup.js +1 -1
  154. package/development/option/option/option-base-element.d.ts +3 -2
  155. package/development/option/option/option-base-element.d.ts.map +1 -1
  156. package/development/option/option.js +16 -9
  157. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  158. package/development/overlay/overlay.d.ts.map +1 -1
  159. package/development/overlay.js +29 -13
  160. package/development/paginator/paginator.js +1 -1
  161. package/development/popover/popover/popover.d.ts.map +1 -1
  162. package/development/popover/popover.js +16 -13
  163. package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  164. package/development/radio-button/radio-button-group.js +2 -2
  165. package/development/{sbb-tokens-BdGhUJjM.js → sbb-tokens-CSAKTXUi.js} +15 -15
  166. package/development/screen-reader-only.js +1 -1
  167. package/development/select/select.d.ts +11 -0
  168. package/development/select/select.d.ts.map +1 -1
  169. package/development/select.js +60 -9
  170. package/development/signet.js +1 -1
  171. package/development/stepper/step.js +1 -1
  172. package/development/tabs/tab.js +1 -1
  173. package/development/time-input.js +1 -1
  174. package/development/title/title-base.d.ts.map +1 -1
  175. package/development/title.js +4 -5
  176. package/development/toast/toast.d.ts.map +1 -1
  177. package/development/toast.js +14 -8
  178. package/development/toggle/toggle.js +2 -2
  179. package/development/train/train-blocked-passage.js +1 -1
  180. package/development/train/train-wagon.js +1 -1
  181. package/dialog/dialog/dialog.d.ts +2 -0
  182. package/dialog/dialog/dialog.d.ts.map +1 -1
  183. package/dialog/dialog-content.js +4 -4
  184. package/dialog/dialog-title.js +8 -8
  185. package/dialog/dialog.js +59 -49
  186. package/divider.js +12 -12
  187. package/expansion-panel/expansion-panel-content.js +3 -3
  188. package/file-selector/file-selector-dropzone.js +5 -5
  189. package/file-selector/file-selector.js +6 -6
  190. package/flip-card/flip-card-details.js +7 -7
  191. package/flip-card/flip-card-summary.js +12 -12
  192. package/header/header-button.js +5 -5
  193. package/header/header-link.js +5 -5
  194. package/icon.js +37 -37
  195. package/image.js +16 -16
  196. package/lead-container.js +3 -3
  197. package/link/block-link-button.js +4 -4
  198. package/link/block-link-static.js +9 -9
  199. package/link/block-link.js +4 -4
  200. package/link/common.js +16 -16
  201. package/link/link-button.js +7 -7
  202. package/link/link-static.js +7 -7
  203. package/link/link.js +4 -4
  204. package/link-list/common.js +12 -12
  205. package/link-list/link-list-anchor.js +3 -3
  206. package/link-list/link-list.js +3 -3
  207. package/loading-indicator-circle.js +14 -14
  208. package/loading-indicator.js +3 -3
  209. package/map-container.js +6 -6
  210. package/menu/common.js +7 -7
  211. package/menu/menu/menu.d.ts.map +1 -1
  212. package/menu/menu-button.js +8 -8
  213. package/menu/menu-link.js +6 -6
  214. package/menu/menu.js +64 -42
  215. package/message.js +3 -3
  216. package/navigation/navigation/navigation.d.ts.map +1 -1
  217. package/navigation/navigation-button.js +4 -4
  218. package/navigation/navigation-link.js +7 -7
  219. package/navigation/navigation-list.js +4 -4
  220. package/navigation/navigation-marker.js +3 -3
  221. package/navigation/navigation.js +21 -20
  222. package/notification.js +19 -19
  223. package/option/optgroup.js +14 -14
  224. package/option/option/option-base-element.d.ts +3 -2
  225. package/option/option/option-base-element.d.ts.map +1 -1
  226. package/option/option.js +115 -103
  227. package/overlay/overlay-base-element.d.ts.map +1 -1
  228. package/overlay/overlay.d.ts.map +1 -1
  229. package/overlay.js +87 -84
  230. package/package.json +1 -1
  231. package/paginator/common.js +6 -6
  232. package/paginator/paginator.js +1 -1
  233. package/popover/popover/popover.d.ts.map +1 -1
  234. package/popover/popover.js +73 -73
  235. package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
  236. package/radio-button/radio-button-group.js +1 -1
  237. package/radio-button/radio-button-panel.js +5 -5
  238. package/{sbb-tokens-Dx20OtVg.js → sbb-tokens-BgDF8jIh.js} +14 -14
  239. package/screen-reader-only.js +8 -8
  240. package/select/select.d.ts +11 -0
  241. package/select/select.d.ts.map +1 -1
  242. package/select.js +111 -83
  243. package/signet.js +1 -1
  244. package/slider.js +8 -8
  245. package/standard-theme.css +20 -2
  246. package/status.js +3 -3
  247. package/stepper/step-label.js +4 -4
  248. package/stepper/step.js +3 -3
  249. package/table/table-wrapper.js +4 -4
  250. package/tabs/tab-group.js +24 -24
  251. package/tabs/tab.js +4 -4
  252. package/tag/tag-group.js +7 -7
  253. package/teaser-product/common.js +5 -5
  254. package/teaser-product/teaser-product-static.js +2 -2
  255. package/time-input.js +3 -3
  256. package/timetable-occupancy-icon.js +3 -3
  257. package/timetable-occupancy.js +6 -6
  258. package/title/title-base.d.ts.map +1 -1
  259. package/title.js +41 -42
  260. package/toast/toast.d.ts.map +1 -1
  261. package/toast.js +58 -54
  262. package/toggle/toggle-option.js +11 -11
  263. package/toggle/toggle.js +3 -3
  264. package/toggle-check.js +5 -5
  265. package/train/train-blocked-passage.js +3 -3
  266. package/train/train.js +28 -28
@@ -75,16 +75,13 @@ const buttonCommon = css`*,
75
75
  display: inline-block;
76
76
  outline: none !important;
77
77
  --sbb-button-icon-size: var(--sbb-size-icon-ui-small);
78
- --sbb-button-color-disabled-background: var(--sbb-color-milk);
79
- --sbb-button-color-disabled-border: var(--sbb-color-smoke);
80
- --sbb-button-color-disabled-text: var(--sbb-color-granite);
81
78
  --sbb-button-shadow-1-offset-y: var(--sbb-shadow-elevation-level-3-shadow-1-offset-y);
82
79
  --sbb-button-shadow-2-offset-y: var(--sbb-shadow-elevation-level-3-shadow-2-offset-y);
83
80
  --sbb-button-shadow-1-blur: var(--sbb-shadow-elevation-level-3-shadow-1-blur);
84
81
  --sbb-button-shadow-2-blur: var(--sbb-shadow-elevation-level-3-shadow-2-blur);
85
- --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-20);
86
- --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-20);
87
- --sbb-button-border-style: solid;
82
+ --sbb-button-color-disabled-background: var(--sbb-color-milk);
83
+ --sbb-button-color-disabled-border: var(--sbb-color-smoke);
84
+ --sbb-button-color-disabled-text: var(--sbb-color-granite);
88
85
  --sbb-button-border-disabled-style: dashed;
89
86
  --sbb-button-border-width: var(--sbb-border-width-2x);
90
87
  --sbb-button-border-disabled-width: var(--sbb-border-width-1x);
@@ -98,14 +95,21 @@ const buttonCommon = css`*,
98
95
  --sbb-button-padding-block-min: var(--sbb-spacing-fixed-1x);
99
96
  --sbb-button-padding-inline: var(--sbb-spacing-fixed-8x);
100
97
  --sbb-button-gap: var(--sbb-spacing-fixed-2x);
101
- --sbb-button-inset: 0;
102
- --sbb-button-box-shadow: transparent;
98
+ --sbb-button-box-shadow: transparent 0 0;
103
99
  --sbb-button-box-shadow-definition: var(--sbb-shadow-elevation-level-3-shadow-2-offset-x)
104
100
  var(--sbb-button-shadow-2-offset-y) var(--sbb-button-shadow-2-blur)
105
101
  var(--sbb-shadow-elevation-level-3-shadow-2-spread) var(--sbb-button-shadow-2-color),
106
102
  var(--sbb-shadow-elevation-level-3-shadow-1-offset-x) var(--sbb-button-shadow-1-offset-y)
107
103
  var(--sbb-button-shadow-1-blur) var(--sbb-shadow-elevation-level-3-shadow-1-spread)
108
104
  var(--sbb-button-shadow-1-color);
105
+ --_width: unset;
106
+ --_border-color: var(--sbb-button-color-default-border);
107
+ --_background-color: var(--sbb-button-color-default-background);
108
+ --_color: var(--sbb-button-color-default-text);
109
+ --_button-inset: 0;
110
+ --_outline-width: 0;
111
+ --_border: calc(var(--sbb-button-border-width) + var(--sbb-button-border-overlap-fix, 1px)) solid
112
+ var(--_border-color);
109
113
  }
110
114
  @media (min-width: calc(52.5rem)) {
111
115
  :host {
@@ -124,6 +128,7 @@ const buttonCommon = css`*,
124
128
  --sbb-button-color-default-text: CanvasText !important;
125
129
  --sbb-button-color-hover-text: CanvasText !important;
126
130
  --sbb-button-color-active-text: CanvasText !important;
131
+ --sbb-button-border-overlap-fix: 0rem;
127
132
  }
128
133
  }
129
134
 
@@ -171,16 +176,22 @@ const buttonCommon = css`*,
171
176
 
172
177
  :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) {
173
178
  --sbb-button-padding-inline: 0;
179
+ --_width: var(--sbb-button-min-height);
174
180
  }
175
181
 
176
182
  @media (any-hover: hover) {
177
183
  :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) {
178
- --sbb-button-translate-y-content-hover: -0.0625rem;
184
+ --sbb-button-translate-y-content-hover: 0.0625rem;
179
185
  --sbb-button-shadow-1-offset-y: calc(
180
186
  0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-offset-y)
181
187
  );
182
188
  --sbb-button-shadow-1-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-blur));
183
189
  --sbb-button-shadow-2-blur: calc(0.5 * var(--sbb-shadow-elevation-level-3-shadow-2-blur));
190
+ --sbb-button-cursor: pointer;
191
+ --_border-color: var(--sbb-button-color-hover-border);
192
+ --_color: var(--sbb-button-color-hover-text);
193
+ --_background-color: var(--sbb-button-color-hover-background);
194
+ --_button-inset: calc(var(--sbb-button-border-width) * -1);
184
195
  }
185
196
  }
186
197
  @media (forced-colors: active) {
@@ -189,6 +200,27 @@ const buttonCommon = css`*,
189
200
  }
190
201
  }
191
202
 
203
+ :host(:is([disabled], :disabled, [disabled-interactive])) {
204
+ --sbb-button-cursor: default;
205
+ --_color: var(--sbb-button-color-disabled-text);
206
+ --_background-color: var(--sbb-button-color-disabled-background);
207
+ --_border-color: var(--sbb-button-color-disabled-border);
208
+ --_border: var(--sbb-button-border-disabled-width) var(--sbb-button-border-disabled-style)
209
+ var(--_border-color);
210
+ }
211
+
212
+ :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) {
213
+ --_color: var(--sbb-button-color-active-text);
214
+ --_background-color: var(--sbb-button-color-active-background);
215
+ --_border-color: var(--sbb-button-color-active-border);
216
+ }
217
+
218
+ :host([data-focus-visible]),
219
+ :host(:focus-visible:not([data-focus-origin=mouse], [data-focus-origin=touch])),
220
+ :host(:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base:focus-visible {
221
+ --_outline-width: var(--sbb-focus-outline-width);
222
+ }
223
+
192
224
  .sbb-action-base {
193
225
  --sbb-text-font-size: var(--sbb-font-size-text-xs);
194
226
  font-family: var(--sbb-typo-font-family);
@@ -197,87 +229,51 @@ const buttonCommon = css`*,
197
229
  letter-spacing: var(--sbb-typo-letter-spacing-body-text);
198
230
  font-size: var(--sbb-text-font-size);
199
231
  font-weight: bold;
200
- text-decoration: none;
201
- width: 100%;
202
- position: relative;
203
- display: flex;
232
+ display: inline-flex;
204
233
  gap: var(--sbb-button-gap);
205
234
  align-items: center;
206
235
  justify-content: center;
207
236
  text-align: left;
208
- transition-duration: var(--sbb-button-transition-duration);
209
- transition-timing-function: var(--sbb-button-transition-easing-function);
210
- transition-property: color;
211
237
  min-height: var(--sbb-button-min-height);
238
+ outline: none;
239
+ width: var(--_width);
212
240
  border-radius: var(--sbb-button-border-radius);
213
- padding-block: var(--sbb-button-padding-block-min);
214
- padding-inline: var(--sbb-button-padding-inline);
215
- color: var(--sbb-button-color-default-text);
216
- cursor: pointer;
241
+ color: var(--_color);
242
+ cursor: var(--sbb-button-cursor);
217
243
  user-select: none;
218
- outline: none;
244
+ background-color: var(--_background-color);
245
+ transition-duration: var(--sbb-button-transition-duration);
246
+ transition-timing-function: var(--sbb-button-transition-easing-function);
247
+ transition-property: color, padding, background-color;
248
+ padding-block: var(--sbb-button-padding-block-min) calc(var(--sbb-button-padding-block-min) + 2 * var(--sbb-button-translate-y-content-hover, 0rem));
249
+ padding-inline: var(--sbb-button-padding-inline);
250
+ position: relative;
219
251
  }
220
252
  .sbb-action-base::before {
221
- position: absolute;
222
253
  content: "";
223
- inset: var(--sbb-button-inset);
224
- border: var(--sbb-button-border-width) var(--sbb-button-border-style) var(--sbb-button-color-default-border);
254
+ position: absolute;
255
+ inset: var(--_button-inset);
256
+ border: var(--_border);
225
257
  border-radius: var(--sbb-button-border-radius);
226
- background-color: var(--sbb-button-color-default-background);
227
- transition-duration: var(--sbb-button-transition-duration);
228
- transition-timing-function: var(--sbb-button-transition-easing-function);
229
- transition-property: inset, background-color, border-color, box-shadow;
230
- box-shadow: var(--sbb-button-box-shadow);
231
- }
232
- :host(:is([disabled], :disabled, [disabled-interactive])) .sbb-action-base::before {
233
- background-color: var(--sbb-button-color-disabled-background);
234
- border-width: var(--sbb-button-border-disabled-width);
235
- border-color: var(--sbb-button-color-disabled-border);
236
- border-style: var(--sbb-button-border-disabled-style);
237
- }
238
- @media (any-hover: hover) {
239
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) .sbb-action-base::before {
240
- inset: calc(var(--sbb-button-border-width) * -1);
241
- background-color: var(--sbb-button-color-hover-background);
242
- border-color: var(--sbb-button-color-hover-border);
243
- }
244
- }
245
- :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) .sbb-action-base::before {
246
- color: var(--sbb-button-color-active-text);
247
- background-color: var(--sbb-button-color-active-background);
248
- border-color: var(--sbb-button-color-active-border);
249
- }
250
- :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) .sbb-action-base {
251
- width: var(--sbb-button-min-height);
252
- justify-content: center;
253
- }
254
- :host(:is([disabled], :disabled, [disabled-interactive])) .sbb-action-base {
255
- color: var(--sbb-button-color-disabled-text);
256
- cursor: default;
257
258
  pointer-events: none;
258
- }
259
- @media (any-hover: hover) {
260
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) .sbb-action-base {
261
- color: var(--sbb-button-color-hover-text);
262
- }
263
- }
264
- :host([data-focus-visible]) .sbb-action-base::before, :host(:focus-visible:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base::before, :host(:not([data-focus-origin=mouse], [data-focus-origin=touch])) .sbb-action-base:focus-visible::before {
259
+ box-shadow: var(--sbb-button-box-shadow);
260
+ outline: var(--sbb-focus-outline-color) solid var(--_outline-width);
265
261
  outline-offset: var(--sbb-focus-outline-offset);
266
- outline: var(--sbb-focus-outline-color) solid var(--sbb-focus-outline-width);
262
+ transition-duration: var(--sbb-button-transition-duration);
263
+ transition-timing-function: var(--sbb-button-transition-easing-function);
264
+ transition-property: inset, border, box-shadow;
267
265
  }
268
266
 
269
- .sbb-button__label,
270
- ::slotted([slot=icon]),
271
- sbb-icon {
272
- transition: transform var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);
273
- transform: translateY(var(--sbb-button-translate-y-content-hover, 0rem));
267
+ .sbb-action-base {
268
+ text-decoration: none;
269
+ display: flex;
270
+ white-space: nowrap;
274
271
  }
275
272
 
276
273
  .sbb-button__label {
277
274
  overflow: hidden;
278
275
  white-space: nowrap;
279
276
  text-overflow: ellipsis;
280
- display: block;
281
277
  }
282
278
  :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) .sbb-button__label {
283
279
  display: none;
@@ -292,6 +288,8 @@ const primaryButton = css`:host {
292
288
  --sbb-button-color-hover-background: var(--sbb-color-red125);
293
289
  --sbb-button-color-hover-border: var(--sbb-color-red125);
294
290
  --sbb-button-color-hover-text: var(--sbb-color-milk);
291
+ --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-20);
292
+ --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-20);
295
293
  }
296
294
 
297
295
  :host([negative]) {
@@ -323,6 +321,7 @@ const secondaryButton = css`:host {
323
321
  --sbb-button-color-hover-text: var(--sbb-color-iron);
324
322
  --sbb-button-shadow-1-color: var(--sbb-color-platinum-alpha-20);
325
323
  --sbb-button-shadow-2-color: var(--sbb-color-cement-alpha-20);
324
+ --sbb-button-border-overlap-fix: 0rem;
326
325
  }
327
326
 
328
327
  :host([negative]) {
@@ -402,4 +401,4 @@ export {
402
401
  secondaryButton as buttonSecondaryStyle,
403
402
  transparentButton as buttonTransparentStyle
404
403
  };
405
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
404
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvYnV0dG9uL2NvbW1vbi9idXR0b24tY29tbW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5pbXBvcnQgeyBodG1sIH0gZnJvbSAnbGl0L3N0YXRpYy1odG1sLmpzJztcblxuaW1wb3J0IHR5cGUgeyBTYmJBY3Rpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL2NvcmUvYmFzZS1lbGVtZW50cy5qcyc7XG5pbXBvcnQgeyBob3N0QXR0cmlidXRlcywgc2xvdFN0YXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQWJzdHJhY3RDb25zdHJ1Y3RvcixcbiAgU2JiRGlzYWJsZWRNaXhpblR5cGUsXG4gIFNiYk5lZ2F0aXZlTWl4aW5UeXBlLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgeyBTYmJOZWdhdGl2ZU1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiwgdHlwZSBTYmJJY29uTmFtZU1peGluVHlwZSB9IGZyb20gJy4uLy4uL2ljb24uanMnO1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25Db21tb25FbGVtZW50ID0gU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluVHlwZSAmIFNiYkFjdGlvbkJhc2VFbGVtZW50O1xuXG5leHBvcnQgdHlwZSBTYmJCdXR0b25TaXplID0gJ2wnIHwgJ20nIHwgJ3MnO1xuXG5leHBvcnQgZGVjbGFyZSBjbGFzcyBTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlXG4gIGltcGxlbWVudHMgU2JiTmVnYXRpdmVNaXhpblR5cGUsIFBhcnRpYWw8U2JiRGlzYWJsZWRNaXhpblR5cGU+LCBQYXJ0aWFsPFNiYkljb25OYW1lTWl4aW5UeXBlPlxue1xuICBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogU2JiQnV0dG9uU2l6ZTtcbiAgcHVibGljIGFjY2Vzc29yIGRpc2FibGVkOiBib29sZWFuO1xuICBwdWJsaWMgYWNjZXNzb3IgaWNvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIGFjY2Vzc29yIG5lZ2F0aXZlOiBib29sZWFuO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG5leHBvcnQgY29uc3QgU2JiQnV0dG9uQ29tbW9uRWxlbWVudE1peGluID0gPFQgZXh0ZW5kcyBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkFjdGlvbkJhc2VFbGVtZW50Pj4oXG4gIHN1cGVyQ2xhc3M6IFQsXG4pOiBBYnN0cmFjdENvbnN0cnVjdG9yPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+ICYgVCA9PiB7XG4gIEBob3N0QXR0cmlidXRlcyh7XG4gICAgJ2RhdGEtc2JiLWJ1dHRvbic6ICcnLFxuICB9KVxuICBAc2xvdFN0YXRlKClcbiAgYWJzdHJhY3QgY2xhc3MgU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzXG4gICAgZXh0ZW5kcyBTYmJOZWdhdGl2ZU1peGluKFNiYkljb25OYW1lTWl4aW4oc3VwZXJDbGFzcykpXG4gICAgaW1wbGVtZW50cyBQYXJ0aWFsPFNiYkJ1dHRvbkNvbW1vbkVsZW1lbnRNaXhpblR5cGU+XG4gIHtcbiAgICAvKipcbiAgICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBsLCBtIG9yIHMuXG4gICAgICogQGRlZmF1bHQgJ2wnIC8gJ3MnIChsZWFuKVxuICAgICAqL1xuICAgIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6IFNiYkJ1dHRvblNpemUgPSBpc0xlYW4oKSA/ICdzJyA6ICdsJztcblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgJHtzdXBlci5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1idXR0b25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICBgO1xuICAgIH1cbiAgfVxuICByZXR1cm4gU2JiQnV0dG9uQ29tbW9uRWxlbWVudENsYXNzIGFzIHVua25vd24gYXMgQWJzdHJhY3RDb25zdHJ1Y3RvcjxTYmJCdXR0b25Db21tb25FbGVtZW50TWl4aW5UeXBlPiAmXG4gICAgVDtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBNkJhLE1BQUEsOEJBQThCLENBQ3pDLGVBQzREO01BSzdDLCtCQUEyQixNQUFBOztBQUp6QyxRQUFBLG1CQUFBLENBQUEsZUFBZTtBQUFBLE1BQ2QsbUJBQW1CO0FBQUEsSUFBQSxDQUNwQixHQUNBLFVBQUEsQ0FBVzs7OztBQUVGLFFBQUEsY0FBQSxpQkFBaUIsaUJBQWlCLFVBQVUsQ0FBQzs7OztBQUFyRCxJQUFBLG1CQUFRLFlBQThDO0FBQUE7O0FBT3pCLG1EQUFzQyxrQkFBQSxNQUFBLG9CQUFBLE9BQVEsSUFBRyxNQUFNLEdBQUc7Ozs7Ozs7TUFBMUQsSUFBZ0IsT0FBMkM7QUFBQSxlQUFBLG1CQUFBO0FBQUEsTUFBQTtBQUFBLE1BQTNELElBQWdCLEtBQTJDLE9BQUE7QUFBQSwyQkFBQSx3QkFBQTtBQUFBLE1BQUE7QUFBQSxNQUVyRSxpQkFBYztBQUN4QixlQUFBO0FBQUEsVUFDSCxNQUFNLGVBQWdCLENBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUE7QUFBQSxPQUpDOztBQUE1Qix5QkFBQSxDQUFBLFNBQVMsRUFBRSxTQUFTLEtBQU0sQ0FBQSxDQUFDO0FBQWlCLG1CQUFBLElBQUEsTUFBQSxrQkFBQSxFQUFBLE1BQUEsWUFBQSxNQUFBLFFBQUEsUUFBQSxPQUFBLFNBQUEsT0FBQSxRQUFBLEVBQUEsS0FBQSxDQUFBLFFBQUEsVUFBQSxLQUFBLEtBQUEsQ0FBQSxRQUFBLElBQUEsTUFBQSxLQUFBLENBQUEsS0FBQSxVQUFBO0FBQUEsWUFBQSxPQUEyQztBQUFBLFdBQUEsVUFBQSxhQUFBLG9CQUFBLHVCQUFBO0FBUjFGLG1CQWtCQyxNQUFBLG1CQUFBLEVBQUEsT0FBQSxXQUFBLEdBQUEsa0JBQUEsRUFBQSxNQUFBLFNBQUEsTUFBQSxXQUFBLE1BQUEsVUFBQSxVQUFBLEdBQUEsTUFBQSx1QkFBQTs7O0FBbEJjLHdCQUEyQixZQUFBLHVCQUFBO0FBQUEsSUFBQSxNQUN4Qzs7O0FBa0JLLFNBQUE7QUFFVDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=