@sbb-esta/lyne-elements 3.0.1 → 3.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 (274) hide show
  1. package/autocomplete/autocomplete.component.d.ts.map +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  4. package/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +4 -4
  5. package/button/accent-button/accent-button.component.d.ts +2 -1
  6. package/button/accent-button/accent-button.component.d.ts.map +1 -1
  7. package/button/accent-button-link/accent-button-link.component.d.ts +2 -1
  8. package/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  9. package/button/accent-button-static/accent-button-static.component.d.ts +2 -1
  10. package/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  11. package/button/button/button.component.d.ts +2 -1
  12. package/button/button/button.component.d.ts.map +1 -1
  13. package/button/button-link/button-link.component.d.ts +2 -1
  14. package/button/button-link/button-link.component.d.ts.map +1 -1
  15. package/button/button-static/button-static.component.d.ts +2 -1
  16. package/button/button-static/button-static.component.d.ts.map +1 -1
  17. package/button/common/button-common.d.ts +1 -0
  18. package/button/common/button-common.d.ts.map +1 -1
  19. package/button/common/button-common.js +52 -28
  20. package/button/common.js +1 -1
  21. package/button/mini-button/mini-button.component.d.ts +1 -0
  22. package/button/mini-button/mini-button.component.d.ts.map +1 -1
  23. package/button/mini-button/mini-button.component.js +20 -14
  24. package/button/secondary-button/secondary-button.component.d.ts +2 -1
  25. package/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  26. package/button/secondary-button-link/secondary-button-link.component.d.ts +2 -1
  27. package/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  28. package/button/secondary-button-static/secondary-button-static.component.d.ts +2 -1
  29. package/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  30. package/button/transparent-button/transparent-button.component.d.ts +2 -1
  31. package/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  32. package/button/transparent-button-link/transparent-button-link.component.d.ts +2 -1
  33. package/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  34. package/button/transparent-button-static/transparent-button-static.component.d.ts +2 -1
  35. package/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  36. package/button.js +1 -1
  37. package/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  38. package/checkbox/checkbox-group/checkbox-group.component.js +4 -4
  39. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -0
  40. package/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  41. package/core/a11y/live-announcer.d.ts.map +1 -1
  42. package/core/a11y/live-announcer.js +10 -8
  43. package/core/base-elements/link-base-element.d.ts +1 -0
  44. package/core/base-elements/link-base-element.d.ts.map +1 -1
  45. package/core/base-elements/link-base-element.js +18 -17
  46. package/core/config/config.d.ts +5 -0
  47. package/core/config/config.d.ts.map +1 -1
  48. package/core/mixins/selection-panel-mixin.d.ts +23 -0
  49. package/core/mixins/selection-panel-mixin.d.ts.map +1 -0
  50. package/core/mixins/selection-panel-mixin.js +87 -0
  51. package/core/mixins.d.ts +1 -0
  52. package/core/mixins.d.ts.map +1 -1
  53. package/core/mixins.js +12 -10
  54. package/core/styles/_index.scss +1 -0
  55. package/core/styles/core.scss +44 -15
  56. package/core/styles/mixins/popover.scss +14 -0
  57. package/core.css +22 -1
  58. package/custom-elements.json +3603 -913
  59. package/development/autocomplete/autocomplete.component.d.ts.map +1 -1
  60. package/development/autocomplete/autocomplete.component.js +2 -2
  61. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.d.ts.map +1 -1
  62. package/development/autocomplete-grid/autocomplete-grid/autocomplete-grid.component.js +2 -2
  63. package/development/button/accent-button/accent-button.component.d.ts +2 -1
  64. package/development/button/accent-button/accent-button.component.d.ts.map +1 -1
  65. package/development/button/accent-button/accent-button.component.js +1 -1
  66. package/development/button/accent-button-link/accent-button-link.component.d.ts +2 -1
  67. package/development/button/accent-button-link/accent-button-link.component.d.ts.map +1 -1
  68. package/development/button/accent-button-link/accent-button-link.component.js +1 -1
  69. package/development/button/accent-button-static/accent-button-static.component.d.ts +2 -1
  70. package/development/button/accent-button-static/accent-button-static.component.d.ts.map +1 -1
  71. package/development/button/accent-button-static/accent-button-static.component.js +1 -1
  72. package/development/button/button/button.component.d.ts +2 -1
  73. package/development/button/button/button.component.d.ts.map +1 -1
  74. package/development/button/button/button.component.js +1 -1
  75. package/development/button/button-link/button-link.component.d.ts +2 -1
  76. package/development/button/button-link/button-link.component.d.ts.map +1 -1
  77. package/development/button/button-link/button-link.component.js +1 -1
  78. package/development/button/button-static/button-static.component.d.ts +2 -1
  79. package/development/button/button-static/button-static.component.d.ts.map +1 -1
  80. package/development/button/button-static/button-static.component.js +1 -1
  81. package/development/button/common/button-common.d.ts +1 -0
  82. package/development/button/common/button-common.d.ts.map +1 -1
  83. package/development/button/common/button-common.js +42 -5
  84. package/development/button/common.js +1 -1
  85. package/development/button/mini-button/mini-button.component.d.ts +1 -0
  86. package/development/button/mini-button/mini-button.component.d.ts.map +1 -1
  87. package/development/button/mini-button/mini-button.component.js +41 -2
  88. package/development/button/secondary-button/secondary-button.component.d.ts +2 -1
  89. package/development/button/secondary-button/secondary-button.component.d.ts.map +1 -1
  90. package/development/button/secondary-button/secondary-button.component.js +1 -1
  91. package/development/button/secondary-button-link/secondary-button-link.component.d.ts +2 -1
  92. package/development/button/secondary-button-link/secondary-button-link.component.d.ts.map +1 -1
  93. package/development/button/secondary-button-link/secondary-button-link.component.js +1 -1
  94. package/development/button/secondary-button-static/secondary-button-static.component.d.ts +2 -1
  95. package/development/button/secondary-button-static/secondary-button-static.component.d.ts.map +1 -1
  96. package/development/button/secondary-button-static/secondary-button-static.component.js +1 -1
  97. package/development/button/transparent-button/transparent-button.component.d.ts +2 -1
  98. package/development/button/transparent-button/transparent-button.component.d.ts.map +1 -1
  99. package/development/button/transparent-button/transparent-button.component.js +1 -1
  100. package/development/button/transparent-button-link/transparent-button-link.component.d.ts +2 -1
  101. package/development/button/transparent-button-link/transparent-button-link.component.d.ts.map +1 -1
  102. package/development/button/transparent-button-link/transparent-button-link.component.js +1 -1
  103. package/development/button/transparent-button-static/transparent-button-static.component.d.ts +2 -1
  104. package/development/button/transparent-button-static/transparent-button-static.component.d.ts.map +1 -1
  105. package/development/button/transparent-button-static/transparent-button-static.component.js +1 -1
  106. package/development/button.js +1 -1
  107. package/development/checkbox/checkbox-group/checkbox-group.component.d.ts.map +1 -1
  108. package/development/checkbox/checkbox-group/checkbox-group.component.js +2 -2
  109. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts +3 -0
  110. package/development/checkbox/checkbox-panel/checkbox-panel.component.d.ts.map +1 -1
  111. package/development/checkbox/checkbox-panel/checkbox-panel.component.js +1 -1
  112. package/development/core/a11y/live-announcer.d.ts.map +1 -1
  113. package/development/core/a11y/live-announcer.js +10 -6
  114. package/development/core/base-elements/link-base-element.d.ts +1 -0
  115. package/development/core/base-elements/link-base-element.d.ts.map +1 -1
  116. package/development/core/base-elements/link-base-element.js +3 -1
  117. package/development/core/config/config.d.ts +5 -0
  118. package/development/core/config/config.d.ts.map +1 -1
  119. package/development/core/config/config.js +1 -1
  120. package/development/core/mixins/selection-panel-mixin.d.ts +23 -0
  121. package/development/core/mixins/selection-panel-mixin.d.ts.map +1 -0
  122. package/development/core/mixins/selection-panel-mixin.js +120 -0
  123. package/development/core/mixins.d.ts +1 -0
  124. package/development/core/mixins.d.ts.map +1 -1
  125. package/development/core/mixins.js +7 -5
  126. package/development/dialog/dialog/dialog.component.d.ts +4 -2
  127. package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
  128. package/development/dialog/dialog/dialog.component.js +61 -11
  129. package/development/dialog/dialog-actions/dialog-actions.component.d.ts +1 -0
  130. package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  131. package/development/dialog/dialog-actions/dialog-actions.component.js +10 -1
  132. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts +22 -0
  133. package/development/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -0
  134. package/development/dialog/dialog-close-button/dialog-close-button.component.js +53 -0
  135. package/development/dialog/dialog-close-button.d.ts +5 -0
  136. package/development/dialog/dialog-close-button.d.ts.map +1 -0
  137. package/development/dialog/dialog-close-button.js +5 -0
  138. package/development/dialog/dialog-content/dialog-content.component.js +1 -1
  139. package/development/dialog/dialog-title/dialog-title.component.d.ts +1 -0
  140. package/development/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  141. package/development/dialog/dialog-title/dialog-title.component.js +6 -2
  142. package/development/dialog.d.ts +1 -0
  143. package/development/dialog.d.ts.map +1 -1
  144. package/development/dialog.js +3 -1
  145. package/development/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +3 -2
  146. package/development/form-field/form-field/form-field.component.d.ts +23 -1
  147. package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
  148. package/development/form-field/form-field/form-field.component.js +39 -12
  149. package/development/form-field/form-field.js +2 -1
  150. package/development/form-field.js +2 -1
  151. package/development/header/header-environment/header-environment.component.d.ts +23 -0
  152. package/development/header/header-environment/header-environment.component.d.ts.map +1 -0
  153. package/development/header/header-environment/header-environment.component.js +111 -0
  154. package/development/header/header-environment.d.ts +5 -0
  155. package/development/header/header-environment.d.ts.map +1 -0
  156. package/development/header/header-environment.js +5 -0
  157. package/development/menu/menu/menu.component.d.ts +1 -0
  158. package/development/menu/menu/menu.component.d.ts.map +1 -1
  159. package/development/menu/menu/menu.component.js +2 -2
  160. package/development/menu/menu-button/menu-button.component.d.ts +1 -0
  161. package/development/menu/menu-button/menu-button.component.d.ts.map +1 -1
  162. package/development/menu/menu-button/menu-button.component.js +2 -3
  163. package/development/menu/menu-link/menu-link.component.d.ts +1 -0
  164. package/development/menu/menu-link/menu-link.component.d.ts.map +1 -1
  165. package/development/menu/menu-link/menu-link.component.js +5 -1
  166. package/development/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  167. package/development/option/optgroup/optgroup-base-element.js +8 -6
  168. package/development/option/option-hint/option-hint.component.d.ts +18 -0
  169. package/development/option/option-hint/option-hint.component.d.ts.map +1 -0
  170. package/development/option/option-hint/option-hint.component.js +74 -0
  171. package/development/option/option-hint.d.ts +5 -0
  172. package/development/option/option-hint.d.ts.map +1 -0
  173. package/development/option/option-hint.js +5 -0
  174. package/development/option.d.ts +1 -0
  175. package/development/option.d.ts.map +1 -1
  176. package/development/option.js +4 -2
  177. package/development/overlay/overlay-base-element.d.ts +1 -0
  178. package/development/overlay/overlay-base-element.d.ts.map +1 -1
  179. package/development/overlay/overlay-base-element.js +3 -3
  180. package/development/popover/popover/popover.component.d.ts +18 -4
  181. package/development/popover/popover/popover.component.d.ts.map +1 -1
  182. package/development/popover/popover/popover.component.js +35 -30
  183. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -3
  184. package/development/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  185. package/development/radio-button/radio-button-panel/radio-button-panel.component.js +7 -7
  186. package/development/select/select.component.d.ts.map +1 -1
  187. package/development/select/select.component.js +2 -2
  188. package/development/selection-action-panel/selection-action-panel.component.d.ts +22 -0
  189. package/development/selection-action-panel/selection-action-panel.component.d.ts.map +1 -0
  190. package/development/selection-action-panel/selection-action-panel.component.js +105 -0
  191. package/development/selection-action-panel.d.ts +5 -0
  192. package/development/selection-action-panel.d.ts.map +1 -0
  193. package/development/selection-action-panel.js +5 -0
  194. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts +4 -24
  195. package/development/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  196. package/development/selection-expansion-panel/selection-expansion-panel.component.js +26 -106
  197. package/development/{transparent-button-Ddb_s0a0.js → transparent-button-Dun6bh2G.js} +89 -8
  198. package/dialog/dialog/dialog.component.d.ts +4 -2
  199. package/dialog/dialog/dialog.component.d.ts.map +1 -1
  200. package/dialog/dialog/dialog.component.js +63 -56
  201. package/dialog/dialog-actions/dialog-actions.component.d.ts +1 -0
  202. package/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
  203. package/dialog/dialog-actions/dialog-actions.component.js +13 -9
  204. package/dialog/dialog-close-button/dialog-close-button.component.d.ts +22 -0
  205. package/dialog/dialog-close-button/dialog-close-button.component.d.ts.map +1 -0
  206. package/dialog/dialog-close-button/dialog-close-button.component.js +31 -0
  207. package/dialog/dialog-close-button.d.ts +5 -0
  208. package/dialog/dialog-close-button.d.ts.map +1 -0
  209. package/dialog/dialog-close-button.js +4 -0
  210. package/dialog/dialog-content/dialog-content.component.js +6 -6
  211. package/dialog/dialog-title/dialog-title.component.d.ts +1 -0
  212. package/dialog/dialog-title/dialog-title.component.d.ts.map +1 -1
  213. package/dialog/dialog-title/dialog-title.component.js +11 -8
  214. package/dialog.d.ts +1 -0
  215. package/dialog.d.ts.map +1 -1
  216. package/dialog.js +6 -4
  217. package/expansion-panel/expansion-panel-header/expansion-panel-header.component.js +7 -7
  218. package/form-field/form-field/form-field.component.d.ts +23 -1
  219. package/form-field/form-field/form-field.component.d.ts.map +1 -1
  220. package/form-field/form-field/form-field.component.js +52 -41
  221. package/form-field/form-field.js +3 -2
  222. package/form-field.js +5 -4
  223. package/header/header-environment/header-environment.component.d.ts +23 -0
  224. package/header/header-environment/header-environment.component.d.ts.map +1 -0
  225. package/header/header-environment/header-environment.component.js +37 -0
  226. package/header/header-environment.d.ts +5 -0
  227. package/header/header-environment.d.ts.map +1 -0
  228. package/header/header-environment.js +4 -0
  229. package/index.d.ts +8 -0
  230. package/index.js +8 -0
  231. package/menu/menu/menu.component.d.ts +1 -0
  232. package/menu/menu/menu.component.d.ts.map +1 -1
  233. package/menu/menu/menu.component.js +1 -1
  234. package/menu/menu-button/menu-button.component.d.ts +1 -0
  235. package/menu/menu-button/menu-button.component.d.ts.map +1 -1
  236. package/menu/menu-button/menu-button.component.js +8 -8
  237. package/menu/menu-link/menu-link.component.d.ts +1 -0
  238. package/menu/menu-link/menu-link.component.d.ts.map +1 -1
  239. package/menu/menu-link/menu-link.component.js +9 -6
  240. package/option/optgroup/optgroup-base-element.d.ts.map +1 -1
  241. package/option/optgroup/optgroup-base-element.js +19 -17
  242. package/option/option-hint/option-hint.component.d.ts +18 -0
  243. package/option/option-hint/option-hint.component.d.ts.map +1 -0
  244. package/option/option-hint/option-hint.component.js +27 -0
  245. package/option/option-hint.d.ts +5 -0
  246. package/option/option-hint.d.ts.map +1 -0
  247. package/option/option-hint.js +4 -0
  248. package/option.d.ts +1 -0
  249. package/option.d.ts.map +1 -1
  250. package/option.js +5 -3
  251. package/overlay/overlay-base-element.d.ts +1 -0
  252. package/overlay/overlay-base-element.d.ts.map +1 -1
  253. package/overlay/overlay-base-element.js +21 -21
  254. package/package.json +23 -3
  255. package/popover/popover/popover.component.d.ts +18 -4
  256. package/popover/popover/popover.component.d.ts.map +1 -1
  257. package/popover/popover/popover.component.js +104 -95
  258. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts +6 -3
  259. package/radio-button/radio-button-panel/radio-button-panel.component.d.ts.map +1 -1
  260. package/radio-button/radio-button-panel/radio-button-panel.component.js +9 -9
  261. package/select/select.component.d.ts.map +1 -1
  262. package/select/select.component.js +1 -1
  263. package/selection-action-panel/selection-action-panel.component.d.ts +22 -0
  264. package/selection-action-panel/selection-action-panel.component.d.ts.map +1 -0
  265. package/selection-action-panel/selection-action-panel.component.js +34 -0
  266. package/selection-action-panel.d.ts +5 -0
  267. package/selection-action-panel.d.ts.map +1 -0
  268. package/selection-action-panel.js +4 -0
  269. package/selection-expansion-panel/selection-expansion-panel.component.d.ts +4 -24
  270. package/selection-expansion-panel/selection-expansion-panel.component.d.ts.map +1 -1
  271. package/selection-expansion-panel/selection-expansion-panel.component.js +45 -102
  272. package/standard-theme.css +22 -1
  273. package/transparent-button-rf30m88X.js +9 -0
  274. package/transparent-button-BlbvexCb.js +0 -9
@@ -1,5 +1,6 @@
1
1
  import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
2
- declare const SbbSelectionExpansionPanelElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbHydrationMixinType> & typeof LitElement;
2
+ import { SbbStateChange } from '../core/interfaces.js';
3
+ declare const SbbSelectionExpansionPanelElement_base: import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbSelectionPanelMixinType & import('../core/mixins.js').SbbElementInternalsMixinType> & import('../core/mixins.js').AbstractConstructor<import('../core/mixins.js').SbbHydrationMixinType> & typeof LitElement;
3
4
  /**
4
5
  * It displays an expandable panel connected to a `sbb-checkbox` or to a `sbb-radio-button`.
5
6
  *
@@ -14,45 +15,24 @@ export declare class SbbSelectionExpansionPanelElement extends SbbSelectionExpan
14
15
  readonly beforeclose: "beforeclose";
15
16
  readonly close: "close";
16
17
  };
17
- /** The background color of the panel. */
18
- accessor color: 'white' | 'milk';
19
18
  /** Whether the content section is always visible. */
20
19
  accessor forceOpen: boolean;
21
- /** Whether the unselected panel has a border. */
22
- accessor borderless: boolean;
23
20
  /** The state of the selection panel. */
24
21
  private set _state(value);
25
22
  private get _state();
26
- /** Whether the selection panel is checked. */
27
- private set _checked(value);
28
- private get _checked();
29
- /** Whether the selection panel is disabled. */
30
- private set _disabled(value);
31
23
  private _language;
32
- private _sizeAttributeObserver;
33
24
  /** Whether it has an expandable content */
34
25
  private get _hasContent();
35
- private get _group();
36
- constructor();
37
26
  connectedCallback(): void;
38
- disconnectedCallback(): void;
39
27
  protected willUpdate(changedProperties: PropertyValues<this>): void;
28
+ protected initFromInput(event: Event): void;
29
+ protected onInputStateChange(event: CustomEvent<SbbStateChange>): void;
40
30
  private _updateState;
41
31
  private _open;
42
32
  private _close;
43
33
  private _isZeroAnimationDuration;
44
34
  private _handleClosing;
45
35
  private _handleOpening;
46
- private _initFromInput;
47
- /**
48
- * Set the data-size in two cases:
49
- * - if there's no group, so the size change comes directly from a change on the inner panel;
50
- * - if there's a wrapper group and its size changes, syncing it with the panel size.
51
- *
52
- * On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
53
- */
54
- private _onSizeAttributesChange;
55
- private _onInputStateChange;
56
36
  private _onAnimationEnd;
57
37
  private _updateExpandedLabel;
58
38
  protected render(): TemplateResult;
@@ -1 +1 @@
1
- {"version":3,"file":"selection-expansion-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/selection-expansion-panel/selection-expansion-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAcb,OAAO,eAAe,CAAC;;AAEvB;;;;;GAKG;AACH,qBAGM,iCAAkC,SAAQ,sCAA6B;IAE3E,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;;MAKlB;IAEX,yCAAyC;IACzC,SAA6C,KAAK,EAAE,OAAO,GAAG,MAAM,CAAW;IAE/E,qDAAqD;IACrD,SAEgB,SAAS,EAAE,OAAO,CAAS;IAE3C,iDAAiD;IACjD,SAEgB,UAAU,EAAE,OAAO,CAAS;IAE5C,wCAAwC;IAExC,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,8CAA8C;IAC9C,OAAO,KAAK,QAAQ,QAEnB;IACD,OAAO,KAAK,QAAQ,GAEnB;IAED,+CAA+C;IAC/C,OAAO,KAAK,SAAS,QAEpB;IAED,OAAO,CAAC,SAAS,CAAmC;IACpD,OAAO,CAAC,sBAAsB,CAIrB;IAET,2CAA2C;IAC3C,OAAO,KAAK,WAAW,GAGtB;IAED,OAAO,KAAK,MAAM,GAIjB;;IAOe,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;cAKzB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAWtB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAY/B,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;YAQT,oBAAoB;cAoBf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,+BAA+B,EAAE,iCAAiC,CAAC;KACpE;CACF"}
1
+ {"version":3,"file":"selection-expansion-panel.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/selection-expansion-panel/selection-expansion-panel.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EACV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAQb,OAAO,KAAK,EAAwB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMlF,OAAO,eAAe,CAAC;;AAEvB;;;;;GAKG;AACH,qBAGM,iCAAkC,SAAQ,sCAE/C;IAEC,OAAuB,MAAM,EAAE,cAAc,CAAS;IACtD,gBAAuB,MAAM;;;;;MAKlB;IAEX,qDAAqD;IACrD,SAEgB,SAAS,EAAE,OAAO,CAAS;IAE3C,wCAAwC;IAExC,OAAO,KAAK,MAAM,QAEjB;IACD,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,SAAS,CAAmC;IAEpD,2CAA2C;IAC3C,OAAO,KAAK,WAAW,GAGtB;IAEe,iBAAiB,IAAI,IAAI;cAMtB,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAQzD,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;cAKjC,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,IAAI;IAK/E,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,KAAK;IAgBb,OAAO,CAAC,MAAM;IAgBd,OAAO,CAAC,wBAAwB;IAIhC,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;YAQT,oBAAoB;cAoBf,MAAM,IAAI,cAAc;CAmB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,+BAA+B,EAAE,iCAAiC,CAAC;KACpE;CACF"}
@@ -5,14 +5,14 @@ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot
5
5
  var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
6
6
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
7
7
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
8
- import { __esDecorate, __runInitializers } from "tslib";
9
- import { css, LitElement, isServer, html } from "lit";
8
+ import { __runInitializers, __esDecorate } from "tslib";
9
+ import { css, LitElement, html } from "lit";
10
10
  import { customElement, property, state } from "lit/decorators.js";
11
11
  import { SbbLanguageController } from "../core/controllers.js";
12
12
  import { slotState, forceType } from "../core/decorators.js";
13
13
  import { isZeroAnimationDuration } from "../core/dom.js";
14
14
  import { i18nExpanded, i18nCollapsed } from "../core/i18n.js";
15
- import { SbbHydrationMixin } from "../core/mixins.js";
15
+ import { SbbSelectionPanelMixin, SbbHydrationMixin } from "../core/mixins.js";
16
16
  import "../divider.js";
17
17
  const style = css`*,
18
18
  ::before,
@@ -23,8 +23,8 @@ const style = css`*,
23
23
  :host {
24
24
  --sbb-selection-expansion-panel-background: var(--sbb-color-white);
25
25
  --sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);
26
- --sbb-selection-expansion-panel-inner-background: transparent;
27
- --sbb-selection-expansion-panel-inner-border-width: 0px;
26
+ --sbb-selection-panel-inner-background: transparent;
27
+ --sbb-selection-panel-inner-border-width: 0px;
28
28
  --sbb-selection-expansion-panel-animation-duration: var(
29
29
  --sbb-disable-animation-duration,
30
30
  var(--sbb-animation-duration-4x)
@@ -45,16 +45,16 @@ const style = css`*,
45
45
  --sbb-selection-expansion-panel-background: var(--sbb-color-milk);
46
46
  }
47
47
 
48
- :host([data-checked]:not([data-disabled])) {
48
+ :host(:where(:state(checked), [state--checked]):not(:where(:state(disabled), [state--disabled]))) {
49
49
  --sbb-selection-expansion-panel-border-color: var(--sbb-color-charcoal);
50
50
  --sbb-selection-expansion-panel-border-width: var(--sbb-border-width-2x);
51
51
  }
52
52
 
53
- :host([data-slot-names~=content][data-disabled]) {
53
+ :host([data-slot-names~=content]:where(:state(disabled), [state--disabled])) {
54
54
  --sbb-selection-expansion-panel-border-color: var(--sbb-color-cloud);
55
55
  }
56
56
 
57
- :host([borderless]:not([data-checked])) {
57
+ :host([borderless]:not(:where(:state(checked), [state--checked]))) {
58
58
  --sbb-selection-expansion-panel-border-color: transparent;
59
59
  }
60
60
 
@@ -150,42 +150,23 @@ sbb-divider {
150
150
  }
151
151
  }`;
152
152
  let SbbSelectionExpansionPanelElement = (() => {
153
- var _color_accessor_storage, _forceOpen_accessor_storage, _borderless_accessor_storage, _a;
153
+ var _forceOpen_accessor_storage, _a;
154
154
  let _classDecorators = [customElement("sbb-selection-expansion-panel"), slotState()];
155
155
  let _classDescriptor;
156
156
  let _classExtraInitializers = [];
157
157
  let _classThis;
158
- let _classSuper = SbbHydrationMixin(LitElement);
158
+ let _classSuper = SbbSelectionPanelMixin(SbbHydrationMixin(LitElement));
159
159
  let _instanceExtraInitializers = [];
160
- let _color_decorators;
161
- let _color_initializers = [];
162
- let _color_extraInitializers = [];
163
160
  let _forceOpen_decorators;
164
161
  let _forceOpen_initializers = [];
165
162
  let _forceOpen_extraInitializers = [];
166
- let _borderless_decorators;
167
- let _borderless_initializers = [];
168
- let _borderless_extraInitializers = [];
169
163
  let _set__state_decorators;
170
164
  _a = class extends _classSuper {
171
165
  constructor() {
172
- super();
173
- __privateAdd(this, _color_accessor_storage);
166
+ super(...arguments);
174
167
  __privateAdd(this, _forceOpen_accessor_storage);
175
- __privateAdd(this, _borderless_accessor_storage);
176
- __privateSet(this, _color_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _color_initializers, "white")));
177
- __privateSet(this, _forceOpen_accessor_storage, (__runInitializers(this, _color_extraInitializers), __runInitializers(this, _forceOpen_initializers, false)));
178
- __privateSet(this, _borderless_accessor_storage, (__runInitializers(this, _forceOpen_extraInitializers), __runInitializers(this, _borderless_initializers, false)));
179
- this._language = (__runInitializers(this, _borderless_extraInitializers), new SbbLanguageController(this));
180
- this._sizeAttributeObserver = !isServer ? new MutationObserver((mutationsList) => this._onSizeAttributesChange(mutationsList)) : null;
181
- this.addEventListener?.("panelconnected", (e) => this._initFromInput(e));
182
- }
183
- /** The background color of the panel. */
184
- get color() {
185
- return __privateGet(this, _color_accessor_storage);
186
- }
187
- set color(value) {
188
- __privateSet(this, _color_accessor_storage, value);
168
+ __privateSet(this, _forceOpen_accessor_storage, (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _forceOpen_initializers, false)));
169
+ this._language = (__runInitializers(this, _forceOpen_extraInitializers), new SbbLanguageController(this));
189
170
  }
190
171
  /** Whether the content section is always visible. */
191
172
  get forceOpen() {
@@ -194,13 +175,6 @@ let SbbSelectionExpansionPanelElement = (() => {
194
175
  set forceOpen(value) {
195
176
  __privateSet(this, _forceOpen_accessor_storage, value);
196
177
  }
197
- /** Whether the unselected panel has a border. */
198
- get borderless() {
199
- return __privateGet(this, _borderless_accessor_storage);
200
- }
201
- set borderless(value) {
202
- __privateSet(this, _borderless_accessor_storage, value);
203
- }
204
178
  /** The state of the selection panel. */
205
179
  set _state(state2) {
206
180
  this.setAttribute("data-state", state2);
@@ -208,48 +182,38 @@ let SbbSelectionExpansionPanelElement = (() => {
208
182
  get _state() {
209
183
  return this.getAttribute("data-state");
210
184
  }
211
- /** Whether the selection panel is checked. */
212
- set _checked(checked) {
213
- this.toggleAttribute("data-checked", checked);
214
- }
215
- get _checked() {
216
- return this.hasAttribute("data-checked");
217
- }
218
- /** Whether the selection panel is disabled. */
219
- set _disabled(disabled) {
220
- this.toggleAttribute("data-disabled", disabled);
221
- }
222
185
  /** Whether it has an expandable content */
223
186
  get _hasContent() {
224
187
  return this.querySelectorAll?.('[slot="content"]').length > 0;
225
188
  }
226
- get _group() {
227
- return this.closest("sbb-radio-button-group, sbb-checkbox-group");
228
- }
229
189
  connectedCallback() {
230
190
  super.connectedCallback();
231
191
  this._state ||= "closed";
232
192
  }
233
- disconnectedCallback() {
234
- super.disconnectedCallback();
235
- this._sizeAttributeObserver?.disconnect();
236
- }
237
193
  willUpdate(changedProperties) {
238
194
  super.willUpdate(changedProperties);
239
195
  if (changedProperties.has("forceOpen")) {
240
196
  this._updateState();
241
197
  }
242
198
  }
199
+ initFromInput(event) {
200
+ super.initFromInput(event);
201
+ this._updateState();
202
+ }
203
+ onInputStateChange(event) {
204
+ super.onInputStateChange(event);
205
+ this._updateState();
206
+ }
243
207
  _updateState() {
244
208
  if (!this._hasContent) {
245
209
  return;
246
210
  }
247
- if (this.forceOpen || this._checked) {
211
+ if (this.forceOpen || this.checked) {
248
212
  this._open();
249
213
  } else {
250
214
  this._close();
251
215
  }
252
- this._updateExpandedLabel(this.forceOpen || this._checked);
216
+ this._updateExpandedLabel(this.forceOpen || this.checked);
253
217
  }
254
218
  _open() {
255
219
  if (this._state !== "closed" && this._state !== "closing") {
@@ -282,42 +246,6 @@ let SbbSelectionExpansionPanelElement = (() => {
282
246
  this._state = "opened";
283
247
  this.dispatchEvent(new Event("open"));
284
248
  }
285
- _initFromInput(event) {
286
- const input = event.target;
287
- this._checked = input.checked;
288
- this._disabled = input.disabled;
289
- this._sizeAttributeObserver?.disconnect();
290
- this._sizeAttributeObserver?.observe(input, { attributeFilter: ["size"] });
291
- this._updateState();
292
- }
293
- /**
294
- * Set the data-size in two cases:
295
- * - if there's no group, so the size change comes directly from a change on the inner panel;
296
- * - if there's a wrapper group and its size changes, syncing it with the panel size.
297
- *
298
- * On the other hand, if there's a wrapper group and the size changes on the inner panel, the data-size doesn't change.
299
- */
300
- _onSizeAttributesChange(mutationsList) {
301
- for (const mutation of mutationsList) {
302
- if (mutation.attributeName === "size") {
303
- const group = this._group;
304
- const size = mutation.target.getAttribute("size");
305
- if (!group || group.size === size) {
306
- this.setAttribute("data-size", size);
307
- }
308
- }
309
- }
310
- }
311
- _onInputStateChange(event) {
312
- if (event.detail.type === "disabled") {
313
- this._disabled = event.detail.disabled;
314
- return;
315
- } else if (event.detail.type !== "checked") {
316
- return;
317
- }
318
- this._checked = event.detail.checked;
319
- this._updateState();
320
- }
321
249
  _onAnimationEnd(event) {
322
250
  if (event.animationName === "open-opacity" && this._state === "opening") {
323
251
  this._handleOpening();
@@ -340,7 +268,7 @@ let SbbSelectionExpansionPanelElement = (() => {
340
268
  render() {
341
269
  return html`
342
270
  <div class="sbb-selection-expansion-panel">
343
- <div class="sbb-selection-expansion-panel__input" @statechange=${this._onInputStateChange}>
271
+ <div class="sbb-selection-expansion-panel__input" @statechange=${this.onInputStateChange}>
344
272
  <slot></slot>
345
273
  </div>
346
274
  <div
@@ -356,21 +284,13 @@ let SbbSelectionExpansionPanelElement = (() => {
356
284
  </div>
357
285
  `;
358
286
  }
359
- }, _color_accessor_storage = new WeakMap(), _forceOpen_accessor_storage = new WeakMap(), _borderless_accessor_storage = new WeakMap(), _classThis = _a, (() => {
287
+ }, _forceOpen_accessor_storage = new WeakMap(), _classThis = _a, (() => {
360
288
  const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
361
- _color_decorators = [property({ reflect: true })];
362
289
  _forceOpen_decorators = [forceType(), property({ attribute: "force-open", type: Boolean })];
363
- _borderless_decorators = [forceType(), property({ reflect: true, type: Boolean })];
364
290
  _set__state_decorators = [state()];
365
- __esDecorate(_a, null, _color_decorators, { kind: "accessor", name: "color", static: false, private: false, access: { has: (obj) => "color" in obj, get: (obj) => obj.color, set: (obj, value) => {
366
- obj.color = value;
367
- } }, metadata: _metadata }, _color_initializers, _color_extraInitializers);
368
291
  __esDecorate(_a, null, _forceOpen_decorators, { kind: "accessor", name: "forceOpen", static: false, private: false, access: { has: (obj) => "forceOpen" in obj, get: (obj) => obj.forceOpen, set: (obj, value) => {
369
292
  obj.forceOpen = value;
370
293
  } }, metadata: _metadata }, _forceOpen_initializers, _forceOpen_extraInitializers);
371
- __esDecorate(_a, null, _borderless_decorators, { kind: "accessor", name: "borderless", static: false, private: false, access: { has: (obj) => "borderless" in obj, get: (obj) => obj.borderless, set: (obj, value) => {
372
- obj.borderless = value;
373
- } }, metadata: _metadata }, _borderless_initializers, _borderless_extraInitializers);
374
294
  __esDecorate(_a, null, _set__state_decorators, { kind: "setter", name: "_state", static: false, private: false, access: { has: (obj) => "_state" in obj, set: (obj, value) => {
375
295
  obj._state = value;
376
296
  } }, metadata: _metadata }, null, _instanceExtraInitializers);
@@ -388,4 +308,4 @@ let SbbSelectionExpansionPanelElement = (() => {
388
308
  export {
389
309
  SbbSelectionExpansionPanelElement
390
310
  };
391
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIGlzU2VydmVyLFxuICBMaXRFbGVtZW50LFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHksIHN0YXRlIH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkNoZWNrYm94R3JvdXBFbGVtZW50LCBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB9IGZyb20gJy4uL2NoZWNrYm94LmpzJztcbmltcG9ydCB7IFNiYkxhbmd1YWdlQ29udHJvbGxlciB9IGZyb20gJy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlLCBzbG90U3RhdGUgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24gfSBmcm9tICcuLi9jb3JlL2RvbS5qcyc7XG5pbXBvcnQgeyBpMThuQ29sbGFwc2VkLCBpMThuRXhwYW5kZWQgfSBmcm9tICcuLi9jb3JlL2kxOG4uanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcGVuZWRDbG9zZWRTdGF0ZSwgU2JiU3RhdGVDaGFuZ2UgfSBmcm9tICcuLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiSHlkcmF0aW9uTWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50LCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL3JhZGlvLWJ1dHRvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9kaXZpZGVyLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHBhbmVsIGNvbm5lY3RlZCB0byBhIGBzYmItY2hlY2tib3hgIG9yIHRvIGEgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItY2hlY2tib3hgIG9yIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsYC5cbiAqIEBzbG90IGNvbnRlbnQgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBwYW5lbCAob3B0aW9uYWwpLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbCcpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpIHtcbiAgLy8gVE9ETzogZml4IGluaGVyaXRpbmcgZnJvbSBTYmJPcGVuQ2xvc2VCYXNlRWxlbWVudCByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL29wZW4td2MvY3VzdG9tLWVsZW1lbnRzLW1hbmlmZXN0L2lzc3Vlcy8yNTNcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gc3R5bGU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGJlZm9yZW9wZW46ICdiZWZvcmVvcGVuJyxcbiAgICBvcGVuOiAnb3BlbicsXG4gICAgYmVmb3JlY2xvc2U6ICdiZWZvcmVjbG9zZScsXG4gICAgY2xvc2U6ICdjbG9zZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIHRoZSBwYW5lbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3IgY29sb3I6ICd3aGl0ZScgfCAnbWlsaycgPSAnd2hpdGUnO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFdoZXRoZXIgdGhlIHVuc2VsZWN0ZWQgcGFuZWwgaGFzIGEgYm9yZGVyLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYm9yZGVybGVzczogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBUaGUgc3RhdGUgb2YgdGhlIHNlbGVjdGlvbiBwYW5lbC4gKi9cbiAgQHN0YXRlKClcbiAgcHJpdmF0ZSBzZXQgX3N0YXRlKHN0YXRlOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSkge1xuICAgIHRoaXMuc2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJywgc3RhdGUpO1xuICB9XG4gIHByaXZhdGUgZ2V0IF9zdGF0ZSgpOiBTYmJPcGVuZWRDbG9zZWRTdGF0ZSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXN0YXRlJykgYXMgU2JiT3BlbmVkQ2xvc2VkU3RhdGU7XG4gIH1cblxuICAvKiogV2hldGhlciB0aGUgc2VsZWN0aW9uIHBhbmVsIGlzIGNoZWNrZWQuICovXG4gIHByaXZhdGUgc2V0IF9jaGVja2VkKGNoZWNrZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGF0YS1jaGVja2VkJywgY2hlY2tlZCk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX2NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzQXR0cmlidXRlKCdkYXRhLWNoZWNrZWQnKTtcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gcGFuZWwgaXMgZGlzYWJsZWQuICovXG4gIHByaXZhdGUgc2V0IF9kaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWRpc2FibGVkJywgZGlzYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcml2YXRlIF9zaXplQXR0cmlidXRlT2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKChtdXRhdGlvbnNMaXN0OiBNdXRhdGlvblJlY29yZFtdKSA9PlxuICAgICAgICB0aGlzLl9vblNpemVBdHRyaWJ1dGVzQ2hhbmdlKG11dGF0aW9uc0xpc3QpLFxuICAgICAgKVxuICAgIDogbnVsbDtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZ3JvdXAoKTogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQgfCBTYmJDaGVja2JveEdyb3VwRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNsb3Nlc3QoJ3NiYi1yYWRpby1idXR0b24tZ3JvdXAsIHNiYi1jaGVja2JveC1ncm91cCcpIGFzXG4gICAgICB8IFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50XG4gICAgICB8IFNiYkNoZWNrYm94R3JvdXBFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ3BhbmVsY29ubmVjdGVkJywgKGUpID0+IHRoaXMuX2luaXRGcm9tSW5wdXQoZSkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICB0aGlzLl9zdGF0ZSB8fD0gJ2Nsb3NlZCc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9oYXNDb250ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZm9yY2VPcGVuIHx8IHRoaXMuX2NoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLl9jaGVja2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgX29wZW4oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnY2xvc2VkJyAmJiB0aGlzLl9zdGF0ZSAhPT0gJ2Nsb3NpbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnb3BlbmluZyc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gc3RhcnRzIHRoZSBvcGVuaW5nIHRyYW5zaXRpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3Jlb3BlbicsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgb3BlbmVkYCBzdGF0ZS5cbiAgICBpZiAoIXRoaXMuaGFzVXBkYXRlZCB8fCB0aGlzLl9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVPcGVuaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3N0YXRlICE9PSAnb3BlbmVkJyAmJiB0aGlzLl9zdGF0ZSAhPT0gJ29wZW5pbmcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2luZyc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gYmVnaW5zIHRoZSBjbG9zaW5nIHRyYW5zaXRpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnYmVmb3JlY2xvc2UnLCB7IGNhbmNlbGFibGU6IHRydWUgfSkpO1xuXG4gICAgLy8gSWYgdGhlIGFuaW1hdGlvbiBkdXJhdGlvbiBpcyB6ZXJvLCB0aGUgYW5pbWF0aW9uZW5kIGV2ZW50IGlzIG5vdCBhbHdheXMgZmlyZWQgcmVsaWFibHkuXG4gICAgLy8gSW4gdGhpcyBjYXNlIHdlIGRpcmVjdGx5IHNldCB0aGUgYGNsb3NlZGAgc3RhdGUuXG4gICAgaWYgKHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZUNsb3NpbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1plcm9BbmltYXRpb25EdXJhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNaZXJvQW5pbWF0aW9uRHVyYXRpb24odGhpcywgJy0tc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwtYW5pbWF0aW9uLWR1cmF0aW9uJyk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVDbG9zaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ2Nsb3NlZCc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgY2xvc2VkLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2Nsb3NlJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlT3BlbmluZygpOiB2b2lkIHtcbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuZWQnO1xuICAgIC8qKiBFbWl0cyB3aGVuZXZlciB0aGUgY29udGVudCBzZWN0aW9uIGlzIG9wZW5lZC4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdvcGVuJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdEZyb21JbnB1dChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGVja2JveFBhbmVsRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGlucHV0LmNoZWNrZWQ7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBpbnB1dC5kaXNhYmxlZDtcbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgICAvLyBUaGUgc2l6ZSBvZiB0aGUgaW5uZXIgcGFuZWwgY2FuIGNoYW5nZSBkdWUgZGlyZWN0IGNoYW5nZSBvbiB0aGUgcGFuZWwgb3IgZHVlIHRvIGNoYW5nZSBvZiB0aGUgaW5wdXQtZ3JvdXAgc2l6ZS5cbiAgICB0aGlzLl9zaXplQXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUoaW5wdXQsIHsgYXR0cmlidXRlRmlsdGVyOiBbJ3NpemUnXSB9KTtcbiAgICB0aGlzLl91cGRhdGVTdGF0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZGF0YS1zaXplIGluIHR3byBjYXNlczpcbiAgICogLSBpZiB0aGVyZSdzIG5vIGdyb3VwLCBzbyB0aGUgc2l6ZSBjaGFuZ2UgY29tZXMgZGlyZWN0bHkgZnJvbSBhIGNoYW5nZSBvbiB0aGUgaW5uZXIgcGFuZWw7XG4gICAqIC0gaWYgdGhlcmUncyBhIHdyYXBwZXIgZ3JvdXAgYW5kIGl0cyBzaXplIGNoYW5nZXMsIHN5bmNpbmcgaXQgd2l0aCB0aGUgcGFuZWwgc2l6ZS5cbiAgICpcbiAgICogT24gdGhlIG90aGVyIGhhbmQsIGlmIHRoZXJlJ3MgYSB3cmFwcGVyIGdyb3VwIGFuZCB0aGUgc2l6ZSBjaGFuZ2VzIG9uIHRoZSBpbm5lciBwYW5lbCwgdGhlIGRhdGEtc2l6ZSBkb2Vzbid0IGNoYW5nZS5cbiAgICovXG4gIHByaXZhdGUgX29uU2l6ZUF0dHJpYnV0ZXNDaGFuZ2UobXV0YXRpb25zTGlzdDogTXV0YXRpb25SZWNvcmRbXSk6IHZvaWQge1xuICAgIGZvciAoY29uc3QgbXV0YXRpb24gb2YgbXV0YXRpb25zTGlzdCkge1xuICAgICAgaWYgKG11dGF0aW9uLmF0dHJpYnV0ZU5hbWUgPT09ICdzaXplJykge1xuICAgICAgICBjb25zdCBncm91cCA9IHRoaXMuX2dyb3VwO1xuICAgICAgICBjb25zdCBzaXplID0gKG11dGF0aW9uLnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0QXR0cmlidXRlKCdzaXplJykhO1xuICAgICAgICBpZiAoIWdyb3VwIHx8IGdyb3VwLnNpemUgPT09IHNpemUpIHtcbiAgICAgICAgICB0aGlzLnNldEF0dHJpYnV0ZSgnZGF0YS1zaXplJywgc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIGlmIChldmVudC5kZXRhaWwudHlwZSA9PT0gJ2Rpc2FibGVkJykge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSBldmVudC5kZXRhaWwuZGlzYWJsZWQ7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIGlmIChldmVudC5kZXRhaWwudHlwZSAhPT0gJ2NoZWNrZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fY2hlY2tlZCA9IGV2ZW50LmRldGFpbC5jaGVja2VkO1xuICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlRXhwYW5kZWRMYWJlbChvcGVuOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcblxuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50PihcbiAgICAgICdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnLFxuICAgICk7XG4gICAgaWYgKCFwYW5lbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRlbnQpIHtcbiAgICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9IG9wZW5cbiAgICAgID8gJywgJyArIGkxOG5FeHBhbmRlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgOiAnLCAnICsgaTE4bkNvbGxhcHNlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9faW5wdXRcIiBAc3RhdGVjaGFuZ2U9JHt0aGlzLl9vbklucHV0U3RhdGVDaGFuZ2V9PlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50LS13cmFwcGVyXCJcbiAgICAgICAgICA/aW5lcnQ9JHt0aGlzLl9zdGF0ZSAhPT0gJ29wZW5lZCd9XG4gICAgICAgICAgQGFuaW1hdGlvbmVuZD0ke3RoaXMuX29uQW5pbWF0aW9uRW5kfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsX19jb250ZW50XCI+XG4gICAgICAgICAgICA8c2JiLWRpdmlkZXI+PC9zYmItZGl2aWRlcj5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJjb250ZW50XCI+PC9zbG90PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJzogU2JiU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50O1xuICB9XG59XG4iXSwibmFtZXMiOlsic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQ00scUNBQWlDLE1BQUE7O0FBRnRDLE1BQUEsbUJBQUEsQ0FBQSxjQUFjLCtCQUErQixHQUM3QyxXQUFXOzs7O29CQUNvQyxrQkFBa0IsVUFBVTs7Ozs7Ozs7Ozs7O0FBQXBDLEVBQUEsbUJBQVEsWUFBNkI7QUFBQSxJQWdFM0UsY0FBQTtBQUNF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
311
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIExpdEVsZW1lbnQsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBjdXN0b21FbGVtZW50LCBwcm9wZXJ0eSwgc3RhdGUgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB0eXBlIHsgU2JiQ2hlY2tib3hQYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9jaGVja2JveC5qcyc7XG5pbXBvcnQgeyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIgfSBmcm9tICcuLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IGZvcmNlVHlwZSwgc2xvdFN0YXRlIH0gZnJvbSAnLi4vY29yZS9kZWNvcmF0b3JzLmpzJztcbmltcG9ydCB7IGlzWmVyb0FuaW1hdGlvbkR1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9kb20uanMnO1xuaW1wb3J0IHsgaTE4bkNvbGxhcHNlZCwgaTE4bkV4cGFuZGVkIH0gZnJvbSAnLi4vY29yZS9pMThuLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiT3BlbmVkQ2xvc2VkU3RhdGUsIFNiYlN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29yZS9pbnRlcmZhY2VzLmpzJztcbmltcG9ydCB7IFNiYkh5ZHJhdGlvbk1peGluLCBTYmJTZWxlY3Rpb25QYW5lbE1peGluIH0gZnJvbSAnLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB9IGZyb20gJy4uL3JhZGlvLWJ1dHRvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3NlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwuc2Nzcz9saXQmaW5saW5lJztcblxuaW1wb3J0ICcuLi9kaXZpZGVyLmpzJztcblxuLyoqXG4gKiBJdCBkaXNwbGF5cyBhbiBleHBhbmRhYmxlIHBhbmVsIGNvbm5lY3RlZCB0byBhIGBzYmItY2hlY2tib3hgIG9yIHRvIGEgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItY2hlY2tib3hgIG9yIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsYC5cbiAqIEBzbG90IGNvbnRlbnQgLSBVc2UgdGhpcyBzbG90IHRvIHByb3ZpZGUgY3VzdG9tIGNvbnRlbnQgZm9yIHRoZSBwYW5lbCAob3B0aW9uYWwpLlxuICovXG5leHBvcnRcbkBjdXN0b21FbGVtZW50KCdzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbCcpXG5Ac2xvdFN0YXRlKClcbmNsYXNzIFNiYlNlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCBleHRlbmRzIFNiYlNlbGVjdGlvblBhbmVsTWl4aW4oXG4gIFNiYkh5ZHJhdGlvbk1peGluKExpdEVsZW1lbnQpLFxuKSB7XG4gIC8vIFRPRE86IGZpeCBpbmhlcml0aW5nIGZyb20gU2JiT3BlbkNsb3NlQmFzZUVsZW1lbnQgcmVxdWlyZXM6IGh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuLXdjL2N1c3RvbS1lbGVtZW50cy1tYW5pZmVzdC9pc3N1ZXMvMjUzXG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBiZWZvcmVvcGVuOiAnYmVmb3Jlb3BlbicsXG4gICAgb3BlbjogJ29wZW4nLFxuICAgIGJlZm9yZWNsb3NlOiAnYmVmb3JlY2xvc2UnLFxuICAgIGNsb3NlOiAnY2xvc2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKiBXaGV0aGVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgYWx3YXlzIHZpc2libGUuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdmb3JjZS1vcGVuJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgZm9yY2VPcGVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgc2VsZWN0aW9uIHBhbmVsLiAqL1xuICBAc3RhdGUoKVxuICBwcml2YXRlIHNldCBfc3RhdGUoc3RhdGU6IFNiYk9wZW5lZENsb3NlZFN0YXRlKSB7XG4gICAgdGhpcy5zZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnLCBzdGF0ZSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXQgX3N0YXRlKCk6IFNiYk9wZW5lZENsb3NlZFN0YXRlIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtc3RhdGUnKSBhcyBTYmJPcGVuZWRDbG9zZWRTdGF0ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcblxuICAvKiogV2hldGhlciBpdCBoYXMgYW4gZXhwYW5kYWJsZSBjb250ZW50ICovXG4gIHByaXZhdGUgZ2V0IF9oYXNDb250ZW50KCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIE5hbWVkU2xvdHMgYmVjYXVzZSBpdCdzIHRvbyBzbG93IHRvIGluaXRpYWxpemVcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ1tzbG90PVwiY29udGVudFwiXScpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcblxuICAgIHRoaXMuX3N0YXRlIHx8PSAnY2xvc2VkJztcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9yY2VPcGVuJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRGcm9tSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEZyb21JbnB1dChldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBvbklucHV0U3RhdGVDaGFuZ2UoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlN0YXRlQ2hhbmdlPik6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5wdXRTdGF0ZUNoYW5nZShldmVudCk7XG4gICAgdGhpcy5fdXBkYXRlU3RhdGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faGFzQ29udGVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMuX29wZW4oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICB9XG4gICAgdGhpcy5fdXBkYXRlRXhwYW5kZWRMYWJlbCh0aGlzLmZvcmNlT3BlbiB8fCB0aGlzLmNoZWNrZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdjbG9zZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnY2xvc2luZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdvcGVuaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBzdGFydHMgdGhlIG9wZW5pbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVvcGVuJywgeyBjYW5jZWxhYmxlOiB0cnVlIH0pKTtcblxuICAgIC8vIElmIHRoZSBhbmltYXRpb24gZHVyYXRpb24gaXMgemVybywgdGhlIGFuaW1hdGlvbmVuZCBldmVudCBpcyBub3QgYWx3YXlzIGZpcmVkIHJlbGlhYmx5LlxuICAgIC8vIEluIHRoaXMgY2FzZSB3ZSBkaXJlY3RseSBzZXQgdGhlIGBvcGVuZWRgIHN0YXRlLlxuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8IHRoaXMuX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCkpIHtcbiAgICAgIHRoaXMuX2hhbmRsZU9wZW5pbmcoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3RhdGUgIT09ICdvcGVuZWQnICYmIHRoaXMuX3N0YXRlICE9PSAnb3BlbmluZycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9zdGF0ZSA9ICdjbG9zaW5nJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBiZWdpbnMgdGhlIGNsb3NpbmcgdHJhbnNpdGlvbi4gKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdiZWZvcmVjbG9zZScsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG5cbiAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIGR1cmF0aW9uIGlzIHplcm8sIHRoZSBhbmltYXRpb25lbmQgZXZlbnQgaXMgbm90IGFsd2F5cyBmaXJlZCByZWxpYWJseS5cbiAgICAvLyBJbiB0aGlzIGNhc2Ugd2UgZGlyZWN0bHkgc2V0IHRoZSBgY2xvc2VkYCBzdGF0ZS5cbiAgICBpZiAodGhpcy5faXNaZXJvQW5pbWF0aW9uRHVyYXRpb24oKSkge1xuICAgICAgdGhpcy5faGFuZGxlQ2xvc2luZygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzWmVyb0FuaW1hdGlvbkR1cmF0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1plcm9BbmltYXRpb25EdXJhdGlvbih0aGlzLCAnLS1zYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbC1hbmltYXRpb24tZHVyYXRpb24nKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZUNsb3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSAnY2xvc2VkJztcbiAgICAvKiogRW1pdHMgd2hlbmV2ZXIgdGhlIGNvbnRlbnQgc2VjdGlvbiBpcyBjbG9zZWQuICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnY2xvc2UnKSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVPcGVuaW5nKCk6IHZvaWQge1xuICAgIHRoaXMuX3N0YXRlID0gJ29wZW5lZCc7XG4gICAgLyoqIEVtaXRzIHdoZW5ldmVyIHRoZSBjb250ZW50IHNlY3Rpb24gaXMgb3BlbmVkLiAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ29wZW4nKSk7XG4gIH1cblxuICBwcml2YXRlIF9vbkFuaW1hdGlvbkVuZChldmVudDogQW5pbWF0aW9uRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ29wZW4tb3BhY2l0eScgJiYgdGhpcy5fc3RhdGUgPT09ICdvcGVuaW5nJykge1xuICAgICAgdGhpcy5faGFuZGxlT3BlbmluZygpO1xuICAgIH0gZWxzZSBpZiAoZXZlbnQuYW5pbWF0aW9uTmFtZSA9PT0gJ2Nsb3NlJyAmJiB0aGlzLl9zdGF0ZSA9PT0gJ2Nsb3NpbmcnKSB7XG4gICAgICB0aGlzLl9oYW5kbGVDbG9zaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdXBkYXRlRXhwYW5kZWRMYWJlbChvcGVuOiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5oeWRyYXRpb25Db21wbGV0ZTtcblxuICAgIGNvbnN0IHBhbmVsRWxlbWVudCA9IHRoaXMucXVlcnlTZWxlY3RvcjxTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCB8IFNiYkNoZWNrYm94UGFuZWxFbGVtZW50PihcbiAgICAgICdzYmItcmFkaW8tYnV0dG9uLXBhbmVsLCBzYmItY2hlY2tib3gtcGFuZWwnLFxuICAgICk7XG4gICAgaWYgKCFwYW5lbEVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2hhc0NvbnRlbnQpIHtcbiAgICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHBhbmVsRWxlbWVudC5leHBhbnNpb25TdGF0ZSA9IG9wZW5cbiAgICAgID8gJywgJyArIGkxOG5FeHBhbmRlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XVxuICAgICAgOiAnLCAnICsgaTE4bkNvbGxhcHNlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLWV4cGFuc2lvbi1wYW5lbF9faW5wdXRcIiBAc3RhdGVjaGFuZ2U9JHt0aGlzLm9uSW5wdXRTdGF0ZUNoYW5nZX0+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnQtLXdyYXBwZXJcIlxuICAgICAgICAgID9pbmVydD0ke3RoaXMuX3N0YXRlICE9PSAnb3BlbmVkJ31cbiAgICAgICAgICBAYW5pbWF0aW9uZW5kPSR7dGhpcy5fb25BbmltYXRpb25FbmR9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWxfX2NvbnRlbnRcIj5cbiAgICAgICAgICAgIDxzYmItZGl2aWRlcj48L3NiYi1kaXZpZGVyPlxuICAgICAgICAgICAgPHNsb3QgbmFtZT1cImNvbnRlbnRcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnOiBTYmJTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJzdGF0ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQStCTSxxQ0FBaUMsTUFBQTs7QUFGdEMsTUFBQSxtQkFBQSxDQUFBLGNBQWMsK0JBQStCLEdBQzdDLFdBQVc7Ozs7QUFDb0MsTUFBQSxjQUFBLHVCQUM5QyxrQkFBa0IsVUFBVSxDQUFDOzs7Ozs7QUFEUyxFQUFBLG1CQUFRLFlBRS9DO0FBQUE7O0FBYUM7QUFBZ0IseUJBQUEsOEJBZlosa0JBQUEs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
@@ -37,7 +37,10 @@ const buttonCommon = css`*,
37
37
  var(--sbb-shadow-elevation-level-3-shadow-1-offset-x) var(--sbb-button-shadow-1-offset-y)
38
38
  var(--sbb-button-shadow-1-blur) var(--sbb-shadow-elevation-level-3-shadow-1-spread)
39
39
  var(--sbb-button-shadow-1-color);
40
+ --sbb-button-loading-border-width: var(--sbb-border-width-3x);
41
+ --sbb-button-loading-delay: 300ms;
40
42
  --_width: unset;
43
+ --_min-height-modifier: 0rem;
41
44
  --_border-color: var(--sbb-button-color-default-border);
42
45
  --_background-color: var(--sbb-button-color-default-background);
43
46
  --_color: var(--sbb-button-color-default-text);
@@ -59,6 +62,7 @@ const buttonCommon = css`*,
59
62
  --sbb-button-color-active-background: Canvas !important;
60
63
  --sbb-button-color-disabled-background: Canvas !important;
61
64
  --sbb-button-color-disabled-text: GrayText !important;
65
+ --sbb-button-color-loading-border: Highlight !important;
62
66
  --sbb-button-color-default-text: CanvasText !important;
63
67
  --sbb-button-color-hover-text: CanvasText !important;
64
68
  --sbb-button-color-active-text: CanvasText !important;
@@ -110,11 +114,11 @@ const buttonCommon = css`*,
110
114
 
111
115
  :host(:where([data-slot-names~=icon], [icon-name]):not([data-slot-names~=unnamed])) {
112
116
  --sbb-button-padding-inline: 0;
113
- --_width: var(--sbb-button-min-height);
117
+ --_width: calc(var(--sbb-button-min-height) + var(--_min-height-modifier));
114
118
  }
115
119
 
116
120
  @media (any-hover: hover) {
117
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) {
121
+ :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active], [loading]):hover) {
118
122
  --sbb-button-translate-y-content-hover: -0.0625rem;
119
123
  --sbb-button-shadow-1-offset-y: calc(
120
124
  0.5 * var(--sbb-shadow-elevation-level-3-shadow-1-offset-y)
@@ -129,7 +133,7 @@ const buttonCommon = css`*,
129
133
  }
130
134
  }
131
135
  @media (forced-colors: active) {
132
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active]):hover) {
136
+ :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active], [loading]):hover) {
133
137
  --sbb-button-color-hover-border: Highlight !important;
134
138
  }
135
139
  }
@@ -143,12 +147,21 @@ const buttonCommon = css`*,
143
147
  var(--_border-color);
144
148
  }
145
149
 
146
- :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active])) {
150
+ :host(:not([disabled], :disabled, [disabled-interactive]):is(:active, [data-active], [loading])) {
147
151
  --_color: var(--sbb-button-color-active-text);
148
152
  --_background-color: var(--sbb-button-color-active-background);
149
153
  --_border-color: var(--sbb-button-color-active-border);
150
154
  }
151
155
 
156
+ :host([loading]:not([disabled], :disabled, [disabled-interactive])) {
157
+ --_min-height-modifier: calc(-2 * var(--sbb-button-loading-border-width));
158
+ --sbb-button-focus-outline-offset-override: calc(
159
+ var(--sbb-focus-outline-offset) + var(--sbb-button-loading-border-width)
160
+ );
161
+ --_border: none;
162
+ --_transform-style: preserve-3d;
163
+ }
164
+
152
165
  .sbb-action-base {
153
166
  --sbb-text-font-size: var(--sbb-font-size-text-xs);
154
167
  font-family: var(--sbb-typo-font-family);
@@ -164,7 +177,7 @@ const buttonCommon = css`*,
164
177
  text-align: left;
165
178
  white-space: nowrap;
166
179
  text-decoration: none;
167
- min-height: var(--sbb-button-min-height);
180
+ min-height: calc(var(--sbb-button-min-height) + var(--_min-height-modifier));
168
181
  outline: none;
169
182
  width: var(--_width);
170
183
  border-radius: var(--sbb-button-border-radius);
@@ -175,6 +188,7 @@ const buttonCommon = css`*,
175
188
  transition-duration: var(--sbb-button-transition-duration);
176
189
  transition-timing-function: var(--sbb-button-transition-easing-function);
177
190
  transition-property: color, background-color;
191
+ transform-style: var(--_transform-style, flat);
178
192
  padding-block: var(--sbb-button-padding-block-min);
179
193
  padding-inline: var(--sbb-button-padding-inline);
180
194
  position: relative;
@@ -191,9 +205,15 @@ const buttonCommon = css`*,
191
205
  transition-timing-function: var(--sbb-button-transition-easing-function);
192
206
  transition-property: inset, border, box-shadow;
193
207
  }
208
+ :host([loading]:not([disabled], :disabled, [disabled-interactive])) .sbb-action-base {
209
+ margin: var(--sbb-button-loading-border-width);
210
+ padding-inline: calc(var(--sbb-button-padding-inline) - var(--sbb-button-loading-border-width));
211
+ transition-property: none;
212
+ }
194
213
  :host([data-focus-visible]) .sbb-action-base::before, :host(:focus-visible) .sbb-action-base::before, .sbb-action-base:focus-visible::before {
195
214
  outline-offset: var(--sbb-focus-outline-offset);
196
215
  outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
216
+ outline-offset: var(--sbb-button-focus-outline-offset-override, var(--sbb-focus-outline-offset));
197
217
  }
198
218
 
199
219
  .sbb-button__label {
@@ -210,6 +230,51 @@ const buttonCommon = css`*,
210
230
  sbb-icon {
211
231
  transition: translate var(--sbb-button-transition-duration) var(--sbb-button-transition-easing-function);
212
232
  translate: 0 var(--sbb-button-translate-y-content-hover, 0);
233
+ }
234
+
235
+ .sbb-button-loading-border {
236
+ position: absolute;
237
+ inset: calc(-1 * var(--sbb-button-loading-border-width));
238
+ clip-path: border-box;
239
+ border-radius: var(--sbb-button-border-radius);
240
+ background: var(--_background-color);
241
+ transform: translateZ(-1px);
242
+ z-index: -1;
243
+ container-type: inline-size;
244
+ contain: paint;
245
+ animation: background-fade-in var(--sbb-disable-animation-duration, var(--sbb-animation-duration-6x)) var(--sbb-disable-animation-duration, var(--sbb-button-loading-delay)) linear;
246
+ animation-fill-mode: forwards;
247
+ }
248
+ .sbb-button-loading-border::before {
249
+ content: "";
250
+ display: block;
251
+ width: 64cqmin;
252
+ max-height: var(--sbb-button-min-height);
253
+ aspect-ratio: 2/1;
254
+ position: absolute;
255
+ background: radial-gradient(100% 100% at right, var(--sbb-button-color-active-text), transparent 50%);
256
+ offset-path: border-box;
257
+ offset-anchor: 100% 50%;
258
+ opacity: 0;
259
+ animation: snake-fade-in var(--sbb-disable-animation-duration, calc(var(--sbb-animation-duration-12x) * 2)) var(--sbb-disable-animation-duration, calc(var(--sbb-button-loading-delay) + var(--sbb-animation-duration-5x))) var(--sbb-animation-easing), snake-position var(--sbb-disable-animation-duration, calc(max(tan(atan2(var(--sbb-button-width), 1px)) / 136, 0.5) * 3s)) infinite linear;
260
+ animation-fill-mode: forwards;
261
+ transform-style: preserve-3d;
262
+ }
263
+
264
+ @keyframes snake-position {
265
+ to {
266
+ offset-distance: 100%;
267
+ }
268
+ }
269
+ @keyframes snake-fade-in {
270
+ to {
271
+ opacity: 1;
272
+ }
273
+ }
274
+ @keyframes background-fade-in {
275
+ to {
276
+ background: var(--sbb-button-color-loading-border);
277
+ }
213
278
  }`;
214
279
  const primaryButton = css`:host {
215
280
  --sbb-button-color-active-background: var(--sbb-color-red150);
@@ -221,6 +286,11 @@ const primaryButton = css`:host {
221
286
  --sbb-button-color-hover-background: var(--sbb-color-red125);
222
287
  --sbb-button-color-hover-border: var(--sbb-color-red125);
223
288
  --sbb-button-color-hover-text: var(--sbb-color-milk);
289
+ --sbb-button-color-loading-border: color-mix(
290
+ in srgb,
291
+ var(--sbb-button-color-active-background) 50%,
292
+ var(--sbb-color-white)
293
+ );
224
294
  --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-20);
225
295
  --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-20);
226
296
  }
@@ -235,11 +305,16 @@ const primaryButton = css`:host {
235
305
  --sbb-button-color-hover-background: var(--sbb-color-red125);
236
306
  --sbb-button-color-hover-border: var(--sbb-color-red125);
237
307
  --sbb-button-color-hover-text: var(--sbb-color-milk);
308
+ --sbb-button-color-loading-border: color-mix(
309
+ in srgb,
310
+ var(--sbb-button-color-active-background) 70%,
311
+ var(--sbb-color-white)
312
+ );
238
313
  --sbb-button-shadow-1-color: var(--sbb-color-red-alpha-60);
239
314
  --sbb-button-shadow-2-color: var(--sbb-color-red125-alpha-60);
240
315
  }
241
316
 
242
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active])) {
317
+ :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active], [loading])) {
243
318
  --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);
244
319
  }`;
245
320
  const secondaryButton = css`:host {
@@ -252,6 +327,7 @@ const secondaryButton = css`:host {
252
327
  --sbb-button-color-hover-background: var(--sbb-color-white);
253
328
  --sbb-button-color-hover-border: var(--sbb-color-cloud);
254
329
  --sbb-button-color-hover-text: var(--sbb-color-iron);
330
+ --sbb-button-color-loading-border: var(--sbb-color-cloud);
255
331
  --sbb-button-shadow-1-color: var(--sbb-color-platinum-alpha-20);
256
332
  --sbb-button-shadow-2-color: var(--sbb-color-cement-alpha-20);
257
333
  --sbb-button-border-overlap-fix: 0rem;
@@ -267,6 +343,7 @@ const secondaryButton = css`:host {
267
343
  --sbb-button-color-hover-background: var(--sbb-color-midnight);
268
344
  --sbb-button-color-hover-border: var(--sbb-color-iron);
269
345
  --sbb-button-color-hover-text: var(--sbb-color-cloud);
346
+ --sbb-button-color-loading-border: var(--sbb-color-iron);
270
347
  --sbb-button-shadow-1-color: var(--sbb-color-black-alpha-30);
271
348
  --sbb-button-shadow-2-color: var(--sbb-color-black-alpha-30);
272
349
  }
@@ -284,6 +361,7 @@ const accentButton = css`:host {
284
361
  --sbb-button-color-hover-background: var(--sbb-color-charcoal);
285
362
  --sbb-button-color-hover-border: var(--sbb-color-charcoal);
286
363
  --sbb-button-color-hover-text: var(--sbb-color-milk);
364
+ --sbb-button-color-loading-border: var(--sbb-color-iron);
287
365
  --sbb-button-shadow-1-color: var(--sbb-color-platinum-alpha-20);
288
366
  --sbb-button-shadow-2-color: var(--sbb-color-cement-alpha-20);
289
367
  }
@@ -298,11 +376,12 @@ const accentButton = css`:host {
298
376
  --sbb-button-color-hover-background: var(--sbb-color-milk);
299
377
  --sbb-button-color-hover-border: var(--sbb-color-milk);
300
378
  --sbb-button-color-hover-text: var(--sbb-color-iron);
379
+ --sbb-button-color-loading-border: var(--sbb-color-silver);
301
380
  --sbb-button-shadow-1-color: var(--sbb-color-black-alpha-30);
302
381
  --sbb-button-shadow-2-color: var(--sbb-color-black-alpha-30);
303
382
  }
304
383
 
305
- :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active])) {
384
+ :host(:not([disabled], :disabled, [disabled-interactive], :active, [data-active], [loading])) {
306
385
  --sbb-button-box-shadow: var(--sbb-button-box-shadow-definition);
307
386
  }`;
308
387
  const transparentButton = css`:host {
@@ -315,6 +394,7 @@ const transparentButton = css`:host {
315
394
  --sbb-button-color-hover-background: var(--sbb-color-milk);
316
395
  --sbb-button-color-hover-border: var(--sbb-color-milk);
317
396
  --sbb-button-color-hover-text: var(--sbb-color-midnight);
397
+ --sbb-button-color-loading-border: var(--sbb-color-silver);
318
398
  }
319
399
 
320
400
  :host([negative]) {
@@ -327,6 +407,7 @@ const transparentButton = css`:host {
327
407
  --sbb-button-color-hover-background: var(--sbb-color-charcoal);
328
408
  --sbb-button-color-hover-border: var(--sbb-color-charcoal);
329
409
  --sbb-button-color-hover-text: var(--sbb-color-white);
410
+ --sbb-button-color-loading-border: var(--sbb-color-granite);
330
411
  }`;
331
412
  export {
332
413
  accentButton as a,
@@ -335,4 +416,4 @@ export {
335
416
  secondaryButton as s,
336
417
  transparentButton as t
337
418
  };
338
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwYXJlbnQtYnV0dG9uLURkYl9zMGEwLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
419
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNwYXJlbnQtYnV0dG9uLUR1bjZiaDJHLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyJ9
@@ -20,6 +20,7 @@ export declare class SbbDialogElement extends SbbOverlayBaseElement {
20
20
  private _dialogElement?;
21
21
  private _isPointerDownEventOnDialog;
22
22
  protected closeAttribute: string;
23
+ protected closeTag: string;
23
24
  constructor();
24
25
  connectedCallback(): void;
25
26
  protected isZeroAnimationDuration(): boolean;
@@ -27,12 +28,13 @@ export declare class SbbDialogElement extends SbbOverlayBaseElement {
27
28
  protected handleOpening(): void;
28
29
  protected firstUpdated(changedProperties: PropertyValues<this>): void;
29
30
  protected willUpdate(changedProperties: PropertyValues<this>): void;
30
- private _syncNegative;
31
+ private _syncTitleNegative;
31
32
  /** Check if the pointerdown event target is triggered on the dialog. */
32
33
  private _pointerDownListener;
33
34
  /** Close dialog on backdrop click. */
34
35
  private _closeOnBackdropClick;
35
- private _onContentResize;
36
+ private _updateOverflowState;
37
+ private _detectScrolledState;
36
38
  protected render(): TemplateResult;
37
39
  }
38
40
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/dialog/dialog/dialog.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAItE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;;GAQG;AACH,qBAEM,gBAAiB,SAAQ,qBAAqB;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,6BAA6B;IAC7B,SAA4D,cAAc,EAAE,OAAO,GAAG,MAAM,CAClF;IAEV,wBAAwB;IACxB,SAAoE,QAAQ,EACxE,QAAQ,GACR,aAAa,CAAY;IAM7B,OAAO,CAAC,4BAA4B,CAIjC;IAEH,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAc;IACrC,OAAO,CAAC,2BAA2B,CAAkB;IACrD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;;IAStC,iBAAiB,IAAI,IAAI;IAKzC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,aAAa,IAAI,IAAI;IA2B/B,SAAS,CAAC,aAAa,IAAI,IAAI;cAmBZ,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,aAAa;IAQrB,wEAAwE;IACxE,OAAO,CAAC,oBAAoB,CAO1B;IAEF,sCAAsC;IACtC,OAAO,CAAC,qBAAqB,CAS3B;IAEF,OAAO,CAAC,gBAAgB;cASL,MAAM,IAAI,cAAc;CAyB5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
1
+ {"version":3,"file":"dialog.component.d.ts","sourceRoot":"","sources":["../../../../src/elements/dialog/dialog/dialog.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAM1E,OAAO,EAAe,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAItE,OAAO,6BAA6B,CAAC;AAIrC;;;;;;;;GAQG;AACH,qBAEM,gBAAiB,SAAQ,qBAAqB;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAS;IAEtD,6BAA6B;IAC7B,SAA4D,cAAc,EAAE,OAAO,GAAG,MAAM,CAClF;IAEV,wBAAwB;IACxB,SAAoE,QAAQ,EACxE,QAAQ,GACR,aAAa,CAAY;IAM7B,OAAO,CAAC,4BAA4B,CAIjC;IAEH,OAAO,CAAC,qBAAqB,CAAC,CAAc;IAC5C,OAAO,CAAC,cAAc,CAAC,CAAc;IACrC,OAAO,CAAC,2BAA2B,CAAkB;IACrD,SAAS,CAAC,cAAc,EAAE,MAAM,CAAsB;IACtD,UAAmB,QAAQ,EAAE,MAAM,CAA6B;;IAShD,iBAAiB,IAAI,IAAI;IAKzC,SAAS,CAAC,uBAAuB,IAAI,OAAO;IAI5C,SAAS,CAAC,aAAa,IAAI,IAAI;IA2B/B,SAAS,CAAC,aAAa,IAAI,IAAI;cAmBZ,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAQ5E,OAAO,CAAC,kBAAkB;IAa1B,wEAAwE;IACxE,OAAO,CAAC,oBAAoB,CAO1B;IAEF,sCAAsC;IACtC,OAAO,CAAC,qBAAqB,CAS3B;IAEF,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;cAKT,MAAM,IAAI,cAAc;CA6B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}