scb-wc 0.1.78 → 0.1.80

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 (180) hide show
  1. package/README.md +41 -22
  2. package/all.js +0 -2
  3. package/index.js +88 -90
  4. package/mvc/components/all.js +0 -2
  5. package/mvc/components/scb-accordion/scb-accordion-item.js +3 -173
  6. package/mvc/components/scb-accordion/scb-accordion.js +4 -33
  7. package/mvc/components/scb-app-bar/scb-app-bar.js +2 -110
  8. package/mvc/components/scb-avatar/scb-avatar.js +2 -94
  9. package/mvc/components/scb-badge/scb-badge.js +2 -72
  10. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +2 -12
  11. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +4 -91
  12. package/mvc/components/scb-button/scb-button.js +47 -309
  13. package/mvc/components/scb-calendar/scb-calendar-event.js +2 -6
  14. package/mvc/components/scb-calendar/scb-calendar.js +6 -120
  15. package/mvc/components/scb-calendar-card/scb-calendar-card.js +21 -350
  16. package/mvc/components/scb-card/scb-card.js +54 -819
  17. package/mvc/components/scb-checkbox/scb-checkbox-group.js +3 -31
  18. package/mvc/components/scb-checkbox/scb-checkbox.js +5 -127
  19. package/mvc/components/scb-chip/scb-chip.js +2 -76
  20. package/mvc/components/scb-collapse/scb-collapse.js +2 -44
  21. package/mvc/components/scb-cookies-consent/scb-cookies-consent.js +7 -73
  22. package/mvc/components/scb-dialog/scb-dialog.js +2 -213
  23. package/mvc/components/scb-divider/scb-divider.js +1 -69
  24. package/mvc/components/scb-drawer/scb-drawer.js +6 -102
  25. package/mvc/components/scb-drop-zone/scb-drop-zone.js +2 -410
  26. package/mvc/components/scb-dropdown/scb-dropdown.js +17 -222
  27. package/mvc/components/scb-fab/scb-fab.js +7 -95
  28. package/mvc/components/scb-fact-card/scb-fact-card-content.js +2 -69
  29. package/mvc/components/scb-fact-card/scb-fact-card.js +2 -214
  30. package/mvc/components/scb-footer/scb-footer-section.js +1 -3
  31. package/mvc/components/scb-footer/scb-footer.js +3 -172
  32. package/mvc/components/scb-gallery-grid/scb-gallery-grid.js +2 -112
  33. package/mvc/components/scb-grid/scb-grid-item.js +1 -32
  34. package/mvc/components/scb-grid/scb-grid.js +1 -99
  35. package/mvc/components/scb-grid/scb-stack.js +1 -33
  36. package/mvc/components/scb-header/scb-header-menu-item.js +1 -5
  37. package/mvc/components/scb-header/scb-header-tab.js +1 -5
  38. package/mvc/components/scb-header/scb-header.js +75 -888
  39. package/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +43 -168
  40. package/mvc/components/scb-icon-button/scb-icon-button.js +59 -171
  41. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +17 -218
  42. package/mvc/components/scb-link/scb-link.js +4 -55
  43. package/mvc/components/scb-list/scb-list-item.js +23 -126
  44. package/mvc/components/scb-list/scb-list.js +5 -26
  45. package/mvc/components/scb-menu/scb-menu-item.js +16 -190
  46. package/mvc/components/scb-menu/scb-menu-section.js +4 -36
  47. package/mvc/components/scb-menu/scb-menu.js +5 -69
  48. package/mvc/components/scb-menu/scb-sub-menu.js +2 -7
  49. package/mvc/components/scb-nav/scb-nav-item.js +1 -28
  50. package/mvc/components/scb-nav/scb-nav.js +5 -98
  51. package/mvc/components/scb-notification-card/scb-notification-card.js +7 -364
  52. package/mvc/components/scb-options-menu/scb-options-menu-item.js +3 -50
  53. package/mvc/components/scb-options-menu/scb-options-menu.js +2 -82
  54. package/mvc/components/scb-options-menu/scb-options-sub-menu.js +2 -31
  55. package/mvc/components/scb-overlay/scb-overlay.js +3 -43
  56. package/mvc/components/scb-pagination/scb-pagination.js +19 -221
  57. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +2 -67
  58. package/mvc/components/scb-progress-stepper/scb-progress-step.js +4 -121
  59. package/mvc/components/scb-progress-stepper/scb-progress-stepper.js +2 -56
  60. package/mvc/components/scb-radio-button/scb-radio-button.js +5 -116
  61. package/mvc/components/scb-radio-button/scb-radio-group.js +2 -32
  62. package/mvc/components/scb-scrollspy/scb-scrollspy.js +2 -61
  63. package/mvc/components/scb-search/scb-search.js +5 -249
  64. package/mvc/components/scb-segmented-button/scb-segmented-button.js +1 -32
  65. package/mvc/components/scb-segmented-button/scb-segmented-item.js +2 -70
  66. package/mvc/components/scb-select/scb-select-option.js +2 -54
  67. package/mvc/components/scb-select/scb-select.js +4 -244
  68. package/mvc/components/scb-skeleton/scb-skeleton.js +2 -35
  69. package/mvc/components/scb-slider/scb-slider.js +5 -9
  70. package/mvc/components/scb-snackbar/scb-snackbar.js +9 -84
  71. package/mvc/components/scb-status-pill/scb-status-pill.js +2 -43
  72. package/mvc/components/scb-stepper/scb-step.js +8 -186
  73. package/mvc/components/scb-stepper/scb-stepper.js +2 -130
  74. package/mvc/components/scb-switch/scb-switch.js +4 -49
  75. package/mvc/components/scb-table/scb-table.js +2 -48
  76. package/mvc/components/scb-table-advanced/scb-table-advanced.js +2 -53
  77. package/mvc/components/scb-tabs/scb-primary-tab.js +2 -7
  78. package/mvc/components/scb-tabs/scb-secondary-tab.js +2 -7
  79. package/mvc/components/scb-tabs/scb-tabs.js +4 -31
  80. package/mvc/components/scb-textfield/scb-textfield.js +142 -388
  81. package/mvc/components/scb-toc/scb-toc-item.js +3 -251
  82. package/mvc/components/scb-toc/scb-toc.js +2 -16
  83. package/mvc/components/scb-tooltip/scb-tooltip.js +8 -155
  84. package/mvc/components/scb-viz/scb-viz.js +4 -619
  85. package/mvc/scb-wc-core.css +1 -1
  86. package/mvc/scb-wc-selfhost.css +1 -1
  87. package/mvc/scb-wc.css +1 -1
  88. package/mvc/vendor/assist-chip.js +3 -3
  89. package/mvc/vendor/chip-set.js +1 -1
  90. package/mvc/vendor/chip.js +2 -2
  91. package/mvc/vendor/elevation.js +2 -2
  92. package/mvc/vendor/filter-chip.js +1 -1
  93. package/mvc/vendor/focusable.js +1 -1
  94. package/mvc/vendor/form-associated.js +1 -1
  95. package/mvc/vendor/icon.js +2 -2
  96. package/mvc/vendor/lazy-focus-ring.js +2 -0
  97. package/mvc/vendor/lazy-ripple.js +2 -0
  98. package/mvc/vendor/md-focus-ring.js +2 -2
  99. package/mvc/vendor/ripple.js +2 -2
  100. package/mvc/vendor/scb-card-variants.internal.js +284 -0
  101. package/mvc/vendor/scb-chevron.js +10 -0
  102. package/mvc/vendor/scb-header-drawer.internal.js +71 -0
  103. package/mvc/vendor/shared-styles.js +1 -1
  104. package/mvc/vendor/tab-styles.js +3 -3
  105. package/mvc/vendor/validator.js +1 -1
  106. package/mvc/vendor/vendor.js +3 -4
  107. package/package.json +2 -2
  108. package/scb-accordion/scb-accordion-item.js +33 -32
  109. package/scb-app-bar/scb-app-bar.js +1 -1
  110. package/scb-button/scb-button.js +287 -259
  111. package/scb-calendar/scb-calendar.js +49 -49
  112. package/scb-calendar-card/scb-calendar-card.js +105 -59
  113. package/scb-card/scb-card-variants.internal.js +230 -0
  114. package/scb-card/scb-card.js +387 -528
  115. package/scb-checkbox/scb-checkbox.js +0 -1
  116. package/scb-chevron/scb-chevron.js +0 -1
  117. package/scb-components/scb-button/scb-button.d.ts +14 -2
  118. package/scb-components/scb-calendar/scb-calendar.d.ts +1 -0
  119. package/scb-components/scb-calendar-card/scb-calendar-card.d.ts +16 -4
  120. package/scb-components/scb-card/scb-card-variants.internal.d.ts +15 -0
  121. package/scb-components/scb-card/scb-card.d.ts +26 -9
  122. package/scb-components/scb-cookies-consent/scb-cookies-consent.d.ts +3 -0
  123. package/scb-components/scb-header/scb-header-drawer.internal.d.ts +31 -0
  124. package/scb-components/scb-header/scb-header.d.ts +1 -2
  125. package/scb-components/scb-horizontal-scroller/scb-horizontal-scroller.d.ts +6 -1
  126. package/scb-components/scb-icon-button/scb-icon-button.d.ts +28 -29
  127. package/scb-components/scb-keyfigure-card/scb-keyfigure-card.d.ts +13 -4
  128. package/scb-components/scb-list/scb-list-item.d.ts +20 -2
  129. package/scb-components/scb-list/scb-list.d.ts +1 -2
  130. package/scb-components/scb-nav/scb-nav.d.ts +2 -0
  131. package/scb-components/scb-segmented-button/scb-segmented-item.d.ts +1 -0
  132. package/scb-components/scb-select/scb-select-option.d.ts +2 -0
  133. package/scb-components/scb-toc/scb-toc-item.d.ts +1 -0
  134. package/scb-components/scb-tooltip/scb-tooltip.d.ts +2 -0
  135. package/scb-cookies-consent/scb-cookies-consent.js +43 -31
  136. package/scb-datepicker/scb-datepicker.js +27 -25
  137. package/scb-dialog/scb-dialog.js +1 -1
  138. package/scb-dropdown/scb-dropdown.js +29 -28
  139. package/scb-header/scb-header-drawer.internal.js +78 -0
  140. package/scb-header/scb-header.js +41 -89
  141. package/scb-horizontal-scroller/scb-horizontal-scroller.js +181 -88
  142. package/scb-icon-button/scb-icon-button.js +293 -205
  143. package/scb-keyfigure-card/scb-keyfigure-card.js +96 -43
  144. package/scb-list/scb-list-item.js +117 -52
  145. package/scb-list/scb-list.js +9 -9
  146. package/scb-nav/scb-nav.js +26 -23
  147. package/scb-notification-card/scb-notification-card.js +0 -2
  148. package/scb-options-menu/scb-options-menu-item.js +20 -20
  149. package/scb-pagination/scb-pagination.js +0 -1
  150. package/scb-progress-stepper/scb-progress-step.js +19 -17
  151. package/scb-radio-button/scb-radio-button.js +0 -1
  152. package/scb-search/scb-search.js +29 -28
  153. package/scb-segmented-button/scb-segmented-item.js +22 -19
  154. package/scb-select/scb-select-option.js +20 -14
  155. package/scb-select/scb-select.js +26 -26
  156. package/scb-stepper/scb-step.js +34 -31
  157. package/scb-textfield/scb-textfield.js +39 -39
  158. package/scb-toc/scb-toc-item.js +26 -26
  159. package/scb-tooltip/scb-tooltip.js +5 -4
  160. package/scb-viz/scb-viz.js +1 -1
  161. package/scb-wc-core.css +1 -1
  162. package/scb-wc-public-entry/index.d.ts +97 -0
  163. package/scb-wc-selfhost.css +1 -1
  164. package/scb-wc.bundle.js +1873 -1476
  165. package/scb-wc.css +1 -1
  166. package/scb-wc.d.ts +194 -198
  167. package/mvc/components/scb-chevron/scb-chevron.js +0 -41
  168. package/mvc/components/scb-datepicker/scb-datepicker.js +0 -296
  169. package/mvc/vendor/element-internals.js +0 -1
  170. package/mvc/vendor/filled-icon-button.js +0 -2
  171. package/mvc/vendor/filled-tonal-icon-button.js +0 -2
  172. package/mvc/vendor/form-label-activation.js +0 -1
  173. package/mvc/vendor/form-submitter.js +0 -1
  174. package/mvc/vendor/icon-button.js +0 -2
  175. package/mvc/vendor/list.js +0 -8
  176. package/mvc/vendor/outlined-icon-button.js +0 -2
  177. package/mvc/vendor/shared-styles2.js +0 -30
  178. package/scb-components/index.d.ts +0 -99
  179. package/scb-components/scb-chevron/scb-chevron.d.ts +0 -11
  180. package/scb-components/scb-datepicker/scb-datepicker.d.ts +0 -39
@@ -1,46 +1,65 @@
1
1
  import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
2
  import { LitElement as t, css as n, html as r, nothing as i } from "lit";
3
3
  import { customElement as a, property as o } from "lit/decorators.js";
4
- import "@material/web/icon/icon.js";
5
- import "@material/web/button/filled-button.js";
6
- import "@material/web/button/outlined-button.js";
7
- import "@material/web/button/filled-tonal-button.js";
8
- import "@material/web/button/text-button.js";
9
4
  //#region src/scb-components/scb-button/scb-button.ts
10
- var s = class extends t {
5
+ var s, c;
6
+ function l() {
7
+ return s ??= import("../shared/lazy-focus-ring.js"), s;
8
+ }
9
+ function u() {
10
+ return c ??= import("../shared/lazy-ripple.js"), c;
11
+ }
12
+ var d = class extends t {
11
13
  constructor(...e) {
12
- super(...e), this.variant = "filled", this.size = "medium", this.type = "button", this.label = "Button", this.trailingIcon = !1, this.icon = "", this.iconFilled = !1, this.disabled = !1, this.fullWidth = !1, this.href = "", this.target = "", this.rel = "", this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this.__hasDefaultSlotContent = !1;
13
- }
14
- __getMdHost() {
15
- return this.renderRoot.querySelector("md-filled-button, md-outlined-button, md-filled-tonal-button, md-text-button");
14
+ super(...e), this.variant = "filled", this.size = "medium", this.type = "button", this.label = "Button", this.trailingIcon = !1, this.icon = "", this.iconFilled = !1, this.disabled = !1, this.fullWidth = !1, this.href = "", this.target = "", this.rel = "", this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this.__hasDefaultSlotContent = !1, this.__nativeFocusRingReady = !1, this.__nativeRippleReady = !1, this.__nativeRipplePendingClick = !1, this.__ensureNativeFocusRing = () => {
15
+ this.__nativeFocusRingReady || l().then(({ ensureFocusRingReady: e }) => (e(), customElements.whenDefined("md-focus-ring"))).then(() => {
16
+ this.__nativeFocusRingReady = !0, this.toggleAttribute("data-native-focus-ring-ready", !0), this.requestUpdate(), this.updateComplete.then(() => this.__syncNativeFocusRingControl());
17
+ });
18
+ }, this.__onNativeFocusIn = (e) => {
19
+ let t = e.composedPath()[0];
20
+ t instanceof HTMLElement && t.matches(":focus-visible") && this.__ensureNativeFocusRing();
21
+ }, this.__ensureNativeRipple = (e) => {
22
+ this.__nativeRippleReady || this.disabled || (e && (this.__nativeRipplePendingPointerEvent = e), u().then(({ ensureRippleReady: e }) => e()).then(() => {
23
+ this.disabled || (this.__nativeRippleReady = !0, this.requestUpdate(), this.updateComplete.then(() => {
24
+ this.__syncNativeFocusRingControl(), this.__replayNativeRippleState();
25
+ }));
26
+ }));
27
+ }, this.__onNativePointerWarmup = (e) => {
28
+ this.__ensureNativeRipple(e);
29
+ }, this.__onNativeClick = (e) => {
30
+ if (this.disabled) {
31
+ e.preventDefault(), e.stopPropagation();
32
+ return;
33
+ }
34
+ (!this.__nativeRippleReady || this.__nativeRipplePendingPointerEvent) && (this.__nativeRipplePendingClick = !0, this.__ensureNativeRipple());
35
+ };
16
36
  }
17
- __getInnerNativeButton(e) {
18
- return e?.shadowRoot?.querySelector("button") ?? null;
37
+ __getNativeControl() {
38
+ return this.renderRoot.querySelector(".native-button");
19
39
  }
20
40
  __handleDefaultSlotChange(e) {
21
41
  let t = e.target.assignedNodes({ flatten: !0 }).some((e) => e.nodeType === Node.TEXT_NODE ? !!e.textContent?.trim() : e.nodeType === Node.ELEMENT_NODE);
22
42
  this.__hasDefaultSlotContent !== t && (this.__hasDefaultSlotContent = t, this.requestUpdate()), this.updateComplete.then(() => this.__syncAriaToInner());
23
43
  }
24
44
  __syncAriaToInner() {
25
- let e = this.__getMdHost(), t = this.__getInnerNativeButton(e);
26
- if (!e || !t) return;
27
- let n = (this.getAttribute("aria-label") || "").trim(), r = (e.getAttribute("aria-label") || "").trim(), i = this.label.trim() === "" && !this.__hasDefaultSlotContent ? (this.icon || "").trim() : "", a = n || r || i;
28
- a ? t.setAttribute("aria-label", a) : t.removeAttribute("aria-label");
29
- let o = this.getAttribute("aria-controls");
30
- o === null ? t.removeAttribute("aria-controls") : t.setAttribute("aria-controls", o);
31
- let s = this.getAttribute("aria-expanded");
32
- s === null ? t.removeAttribute("aria-expanded") : t.setAttribute("aria-expanded", s), e.removeAttribute("aria-label"), e.removeAttribute("aria-controls"), e.removeAttribute("aria-expanded"), this.removeAttribute("aria-expanded"), this.__ariaObserver?.disconnect(), this.__ariaObserver = new MutationObserver((e) => {
33
- let t = this.__getMdHost(), n = this.__getInnerNativeButton(t);
34
- if (!(!t || !n)) {
35
- for (let r of e) {
36
- if (r.type !== "attributes" || !r.attributeName) continue;
37
- let e = r.attributeName, i = this.getAttribute(e);
38
- if (e === "aria-label") {
39
- let e = (t.getAttribute("aria-label") || "").trim(), r = (i || e || (this.label.trim() === "" && !this.__hasDefaultSlotContent ? (this.icon || "").trim() : "")).trim();
40
- r ? n.setAttribute("aria-label", r) : n.removeAttribute("aria-label"), t.removeAttribute("aria-label");
41
- } else (e === "aria-controls" || e === "aria-expanded") && (i === null ? n.removeAttribute(e) : n.setAttribute(e, i), e === "aria-expanded" && this.removeAttribute("aria-expanded"));
42
- }
43
- t.removeAttribute("aria-label"), t.removeAttribute("aria-controls"), t.removeAttribute("aria-expanded");
45
+ let e = this.__getNativeControl();
46
+ e && this.__syncAriaToControl(e);
47
+ }
48
+ __syncAriaToControl(e) {
49
+ let t = (this.getAttribute("aria-label") || "").trim(), n = this.label.trim() === "" && !this.__hasDefaultSlotContent ? (this.icon || "").trim() : "", r = t || n;
50
+ r ? e.setAttribute("aria-label", r) : e.removeAttribute("aria-label");
51
+ let i = this.getAttribute("aria-controls");
52
+ i === null ? e.removeAttribute("aria-controls") : e.setAttribute("aria-controls", i);
53
+ let a = this.getAttribute("aria-expanded");
54
+ a === null ? e.removeAttribute("aria-expanded") : e.setAttribute("aria-expanded", a), this.removeAttribute("aria-expanded"), this.__ariaObserver?.disconnect(), this.__ariaObserver = new MutationObserver((e) => {
55
+ let t = this.__getNativeControl();
56
+ if (t) for (let n of e) {
57
+ if (n.type !== "attributes" || !n.attributeName) continue;
58
+ let e = n.attributeName, r = this.getAttribute(e);
59
+ if (e === "aria-label") {
60
+ let e = (r || (this.label.trim() === "" && !this.__hasDefaultSlotContent ? (this.icon || "").trim() : "")).trim();
61
+ e ? t.setAttribute("aria-label", e) : t.removeAttribute("aria-label");
62
+ } else (e === "aria-controls" || e === "aria-expanded") && (r === null ? t.removeAttribute(e) : t.setAttribute(e, r), e === "aria-expanded" && this.removeAttribute("aria-expanded"));
44
63
  }
45
64
  }), this.__ariaObserver.observe(this, {
46
65
  attributes: !0,
@@ -51,20 +70,35 @@ var s = class extends t {
51
70
  ]
52
71
  });
53
72
  }
73
+ connectedCallback() {
74
+ super.connectedCallback();
75
+ }
54
76
  firstUpdated() {
55
77
  (this.type === "submit" || this.type === "reset") && this.addEventListener("click", () => {
56
78
  if (!this.disabled) {
57
79
  let e = this.closest("form");
58
80
  e && (this.type === "submit" && e.requestSubmit(), this.type === "reset" && e.reset());
59
81
  }
60
- }), this.__syncAriaToInner(), this.#e();
82
+ }), this.#e();
61
83
  }
62
84
  updated(e) {
63
- (e.has("variant") || e.has("label") || e.has("icon")) && this.__syncAriaToInner(), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.#e();
85
+ (e.has("variant") || e.has("label") || e.has("icon") || e.has("href")) && this.updateComplete.then(() => this.__syncAriaToInner()), (this.__nativeFocusRingReady || this.__nativeRippleReady) && this.updateComplete.then(() => this.__syncNativeFocusRingControl()), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.#e();
64
86
  }
65
87
  disconnectedCallback() {
66
88
  this.__ariaObserver?.disconnect(), super.disconnectedCallback();
67
89
  }
90
+ __syncNativeFocusRingControl() {
91
+ let e = this.renderRoot.querySelector("md-focus-ring"), t = this.__getNativeControl();
92
+ e && t && (e.control = t, e.visible = t.matches(":focus-visible"));
93
+ let n = this.renderRoot.querySelector("md-ripple");
94
+ n && t && (n.control = t);
95
+ }
96
+ async __replayNativeRippleState() {
97
+ let e = this.renderRoot.querySelector("md-ripple"), t = this.__getNativeControl(), n = this.__nativeRipplePendingPointerEvent, r = this.__nativeRipplePendingClick;
98
+ this.__nativeRipplePendingPointerEvent = void 0, this.__nativeRipplePendingClick = !1;
99
+ let { syncRippleToControl: i } = await u();
100
+ await i(e, t, n, r);
101
+ }
68
102
  mapSpacingToken(e) {
69
103
  if (!e) return;
70
104
  let t = String(e).trim();
@@ -96,68 +130,6 @@ var s = class extends t {
96
130
  --scb-button-icon-edge-space: var(--spacing-5);
97
131
  --scb-button-icon-gap: var(--spacing-3);
98
132
  --scb-button-icon-size: var(--icon-size-small, 20px);
99
-
100
- /* Label, mappar till md-sys-typescale-label-small */
101
- --md-filled-button-label-text-font: var(--md-sys-typescale-label-small-font);
102
- --md-filled-button-label-text-size: var(--md-sys-typescale-label-small-size);
103
- --md-filled-button-label-text-line-height: var(--md-sys-typescale-label-small-line-height);
104
- --md-filled-button-label-text-tracking: var(--md-sys-typescale-label-small-tracking);
105
- --md-filled-button-label-text-weight: var(--md-sys-typescale-label-small-weight);
106
-
107
- --md-outlined-button-label-text-font: var(--md-sys-typescale-label-small-font);
108
- --md-outlined-button-label-text-size: var(--md-sys-typescale-label-small-size);
109
- --md-outlined-button-label-text-line-height: var(--md-sys-typescale-label-small-line-height);
110
- --md-outlined-button-label-text-tracking: var(--md-sys-typescale-label-small-tracking);
111
- --md-outlined-button-label-text-weight: var(--md-sys-typescale-label-small-weight);
112
-
113
- --md-filled-tonal-button-label-text-font: var(--md-sys-typescale-label-small-font);
114
- --md-filled-tonal-button-label-text-size: var(--md-sys-typescale-label-small-size);
115
- --md-filled-tonal-button-label-text-line-height: var(--md-sys-typescale-label-small-line-height);
116
- --md-filled-tonal-button-label-text-tracking: var(--md-sys-typescale-label-small-tracking);
117
- --md-filled-tonal-button-label-text-weight: var(--md-sys-typescale-label-small-weight);
118
-
119
- --md-text-button-label-text-font: var(--md-sys-typescale-label-small-font);
120
- --md-text-button-label-text-size: var(--md-sys-typescale-label-small-size);
121
- --md-text-button-label-text-line-height: var(--md-sys-typescale-label-small-line-height);
122
- --md-text-button-label-text-tracking: var(--md-sys-typescale-label-small-tracking);
123
- --md-text-button-label-text-weight: var(--md-sys-typescale-label-small-weight);
124
-
125
- /* Grundpadding (utan ikon) */
126
- --md-filled-button-leading-space: var(--scb-button-padding-inline);
127
- --md-filled-button-trailing-space: var(--scb-button-padding-inline);
128
- --md-outlined-button-leading-space: var(--scb-button-padding-inline);
129
- --md-outlined-button-trailing-space: var(--scb-button-padding-inline);
130
- --md-filled-tonal-button-leading-space: var(--scb-button-padding-inline);
131
- --md-filled-tonal-button-trailing-space: var(--scb-button-padding-inline);
132
- --md-text-button-leading-space: var(--scb-button-padding-inline);
133
- --md-text-button-trailing-space: var(--scb-button-padding-inline);
134
-
135
- /* Med ikon: avstånd till ytterkanter + mellan ikon och label */
136
- --md-filled-button-with-leading-icon-leading-space: var(--scb-button-icon-edge-space);
137
- --md-filled-button-with-leading-icon-trailing-space: var(--scb-button-padding-inline);
138
- --md-filled-button-with-trailing-icon-leading-space: var(--scb-button-padding-inline);
139
- --md-filled-button-with-trailing-icon-trailing-space: var(--scb-button-icon-edge-space);
140
-
141
- --md-outlined-button-with-leading-icon-leading-space: var(--scb-button-icon-edge-space);
142
- --md-outlined-button-with-leading-icon-trailing-space: var(--scb-button-padding-inline);
143
- --md-outlined-button-with-trailing-icon-leading-space: var(--scb-button-padding-inline);
144
- --md-outlined-button-with-trailing-icon-trailing-space: var(--scb-button-icon-edge-space);
145
-
146
- --md-filled-tonal-button-with-leading-icon-leading-space: var(--scb-button-icon-edge-space);
147
- --md-filled-tonal-button-with-leading-icon-trailing-space: var(--scb-button-padding-inline);
148
- --md-filled-tonal-button-with-trailing-icon-leading-space: var(--scb-button-padding-inline);
149
- --md-filled-tonal-button-with-trailing-icon-trailing-space: var(--scb-button-icon-edge-space);
150
-
151
- --md-text-button-with-leading-icon-leading-space: var(--scb-button-icon-edge-space);
152
- --md-text-button-with-leading-icon-trailing-space: var(--scb-button-padding-inline);
153
- --md-text-button-with-trailing-icon-leading-space: var(--scb-button-padding-inline);
154
- --md-text-button-with-trailing-icon-trailing-space: var(--scb-button-icon-edge-space);
155
-
156
- /* Ikonstorlek */
157
- --md-filled-button-icon-size: var(--scb-button-icon-size);
158
- --md-outlined-button-icon-size: var(--scb-button-icon-size);
159
- --md-filled-tonal-button-icon-size: var(--scb-button-icon-size);
160
- --md-text-button-icon-size: var(--scb-button-icon-size);
161
133
  }
162
134
 
163
135
  :host([size='small']) {
@@ -176,233 +148,289 @@ var s = class extends t {
176
148
  --scb-button-icon-edge-space: var(--spacing-7);
177
149
  --scb-button-icon-gap: var(--spacing-3);
178
150
  --scb-button-icon-size: var(--icon-size-medium, 24px);
151
+ }
179
152
 
180
- /* Label, mappar till md-sys-typescale-label-medium */
181
- --md-filled-button-label-text-font: var(--md-sys-typescale-label-medium-font);
182
- --md-filled-button-label-text-size: var(--md-sys-typescale-label-medium-size);
183
- --md-filled-button-label-text-line-height: var(--md-sys-typescale-label-medium-line-height);
184
- --md-filled-button-label-text-tracking: var(--md-sys-typescale-label-medium-tracking);
185
- --md-filled-button-label-text-weight: var(--md-sys-typescale-label-medium-weight);
153
+ :host([icon-filled]) {
154
+ --scb-button-font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
155
+ }
186
156
 
187
- --md-outlined-button-label-text-font: var(--md-sys-typescale-label-medium-font);
188
- --md-outlined-button-label-text-size: var(--md-sys-typescale-label-medium-size);
189
- --md-outlined-button-label-text-line-height: var(--md-sys-typescale-label-medium-line-height);
190
- --md-outlined-button-label-text-tracking: var(--md-sys-typescale-label-medium-tracking);
191
- --md-outlined-button-label-text-weight: var(--md-sys-typescale-label-medium-weight);
157
+ .native-button-wrap {
158
+ position: relative;
159
+ display: inline-flex;
160
+ border-radius: var(--md-sys-shape-corner-full, 999px);
161
+ }
192
162
 
193
- --md-filled-tonal-button-label-text-font: var(--md-sys-typescale-label-medium-font);
194
- --md-filled-tonal-button-label-text-size: var(--md-sys-typescale-label-medium-size);
195
- --md-filled-tonal-button-label-text-line-height: var(--md-sys-typescale-label-medium-line-height);
196
- --md-filled-tonal-button-label-text-tracking: var(--md-sys-typescale-label-medium-tracking);
197
- --md-filled-tonal-button-label-text-weight: var(--md-sys-typescale-label-medium-weight);
163
+ .native-button {
164
+ position: relative;
165
+ z-index: 0;
166
+ box-sizing: border-box;
167
+ display: inline-flex;
168
+ align-items: center;
169
+ justify-content: center;
170
+ gap: var(--scb-button-icon-gap);
171
+ min-block-size: var(--scb-button-block-size, var(--scb-button-container-height));
172
+ block-size: var(--scb-button-block-size, var(--scb-button-container-height));
173
+ min-inline-size: 64px;
174
+ inline-size: auto;
175
+ padding-block: var(--scb-button-padding-block);
176
+ padding-inline: var(--scb-button-padding-inline);
177
+ overflow: hidden;
178
+ border: 0;
179
+ border-radius: inherit;
180
+ background: transparent;
181
+ color: var(--md-sys-color-primary);
182
+ font-family: var(--md-sys-typescale-label-small-font);
183
+ font-size: var(--md-sys-typescale-label-small-size);
184
+ font-weight: var(--md-sys-typescale-label-small-weight);
185
+ line-height: var(--md-sys-typescale-label-small-line-height);
186
+ letter-spacing: normal;
187
+ text-align: center;
188
+ text-decoration: none;
189
+ white-space: nowrap;
190
+ cursor: pointer;
191
+ appearance: none;
192
+ -webkit-appearance: none;
193
+ touch-action: manipulation;
194
+ }
198
195
 
199
- --md-text-button-label-text-font: var(--md-sys-typescale-label-medium-font);
200
- --md-text-button-label-text-size: var(--md-sys-typescale-label-medium-size);
201
- --md-text-button-label-text-line-height: var(--md-sys-typescale-label-medium-line-height);
202
- --md-text-button-label-text-tracking: var(--md-sys-typescale-label-medium-tracking);
203
- --md-text-button-label-text-weight: var(--md-sys-typescale-label-medium-weight);
196
+ .native-button::before {
197
+ content: '';
198
+ position: absolute;
199
+ inset: 0;
200
+ z-index: -1;
201
+ background: currentColor;
202
+ opacity: 0;
203
+ pointer-events: none;
204
+ transition: opacity var(--motion-duration-short, 150ms) var(--motion-easing-standard, ease);
204
205
  }
205
206
 
206
- :host([icon-filled]) {
207
- --scb-button-font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
207
+ .native-button:hover::before {
208
+ opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);
208
209
  }
209
210
 
210
- md-icon {
211
- --md-icon-font-variation-settings: var(--scb-button-font-variation-settings) !important;
212
- font-variation-settings: var(--scb-button-font-variation-settings) !important;
211
+ .native-button:active::before {
212
+ opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);
213
213
  }
214
214
 
215
- :host([full-width]) {
216
- display: flex;
217
- inline-size: 100%;
215
+ .native-button:focus {
216
+ outline: none;
218
217
  }
219
218
 
220
- /* Låt inre md-knappar fylla hostens höjd */
221
- md-filled-button,
222
- md-outlined-button,
223
- md-filled-tonal-button,
224
- md-text-button {
225
- block-size: var(--scb-button-block-size, auto);
226
- gap: var(--scb-button-icon-gap);
227
- --md-filled-button-container-height: var(--scb-button-block-size, var(--scb-button-container-height));
228
- --md-outlined-button-container-height: var(--scb-button-block-size, var(--scb-button-container-height));
229
- --md-filled-tonal-button-container-height: var(--scb-button-block-size, var(--scb-button-container-height));
230
- --md-text-button-container-height: var(--scb-button-block-size, var(--scb-button-container-height));
219
+ :host(:not([data-native-focus-ring-ready])) .native-button:focus-visible {
220
+ outline: var(--stroke-border-m, 2px) solid var(--md-sys-color-primary);
221
+ outline-offset: var(--spacing-1, 2px);
231
222
  }
232
223
 
233
- :host([full-width]) md-filled-button,
234
- :host([full-width]) md-outlined-button,
235
- :host([full-width]) md-filled-tonal-button,
236
- :host([full-width]) md-text-button {
237
- inline-size: 100%;
238
- flex: 1 1 auto;
224
+ .native-button[aria-disabled='true'],
225
+ .native-button:disabled {
226
+ color: rgb(15 8 101 / 38%);
227
+ cursor: default;
228
+ opacity: 1;
229
+ pointer-events: none;
230
+ }
231
+
232
+ :host([variant='filled']) .native-button,
233
+ :host(:not([variant])) .native-button {
234
+ border-color: transparent;
235
+ background: var(--md-sys-color-primary);
236
+ color: var(--md-sys-color-on-primary);
237
+ }
238
+
239
+ :host([variant='outlined']) .native-button {
240
+ background: transparent;
241
+ color: var(--md-sys-color-primary);
242
+ box-shadow: inset 0 0 0 var(--stroke-border, 1px) var(--md-sys-color-outline);
243
+ }
244
+
245
+ :host([variant='outlined']) .native-button[aria-disabled='true'],
246
+ :host([variant='outlined']) .native-button:disabled {
247
+ color: rgb(15 8 101 / 38%);
248
+ box-shadow: inset 0 0 0 var(--stroke-border, 1px) rgb(15 8 101 / 12%);
249
+ }
250
+
251
+ :host([variant='filled-tonal']) .native-button {
252
+ border-color: transparent;
253
+ background: var(--md-sys-color-secondary-container);
254
+ color: var(--md-sys-color-on-secondary-container);
255
+ }
256
+
257
+ :host([variant='filled']) .native-button[aria-disabled='true'],
258
+ :host([variant='filled']) .native-button:disabled,
259
+ :host(:not([variant])) .native-button[aria-disabled='true'],
260
+ :host(:not([variant])) .native-button:disabled,
261
+ :host([variant='filled-tonal']) .native-button[aria-disabled='true'],
262
+ :host([variant='filled-tonal']) .native-button:disabled {
263
+ background: rgb(15 8 101 / 12%);
264
+ color: rgb(15 8 101 / 38%);
265
+ }
266
+
267
+ :host([variant='text']) .native-button {
268
+ min-inline-size: 0;
269
+ background: transparent;
270
+ color: var(--md-sys-color-primary);
271
+ }
272
+
273
+ :host([variant='text']) .native-button[aria-disabled='true'],
274
+ :host([variant='text']) .native-button:disabled {
275
+ color: rgb(15 8 101 / 38%);
239
276
  }
240
277
 
241
- /* Errorvarianter */
242
- /*
243
- md-filled-button[variant='error'],
244
- md-outlined-button[variant='error'],
245
- md-filled-tonal-button[variant='error'],
246
- md-text-button[variant='error'] {
247
- --md-sys-color-primary: var(--md-sys-color-error);
248
- --md-sys-color-on-primary: var(--md-sys-color-on-error);
278
+ :host([size='large']) .native-button {
279
+ font-family: var(--md-sys-typescale-label-medium-font);
280
+ font-size: var(--md-sys-typescale-label-medium-size);
281
+ font-weight: var(--md-sys-typescale-label-medium-weight);
282
+ line-height: var(--md-sys-typescale-label-medium-line-height);
283
+ letter-spacing: normal;
249
284
  }
250
- */
251
285
 
252
- /* Outlined – röd outline vid error + tjockare vid hover */
253
- /*
254
- md-outlined-button[variant='error'] {
255
- --_outline-color: var(--md-sys-color-error);
256
- --md-outlined-button-pressed-outline-color: var(--md-sys-color-error);
286
+ .native-icon {
287
+ flex: 0 0 auto;
288
+ display: inline-block;
289
+ inline-size: var(--scb-button-icon-size);
290
+ block-size: var(--scb-button-icon-size);
291
+ overflow: hidden;
292
+ font-family: 'Material Symbols Outlined';
293
+ font-size: var(--scb-button-icon-size);
294
+ line-height: 1;
295
+ text-align: center;
296
+ white-space: nowrap;
297
+ text-transform: none;
298
+ word-wrap: normal;
299
+ direction: ltr;
300
+ font-feature-settings: 'liga' 1;
301
+ font-variation-settings: var(--scb-button-font-variation-settings);
302
+ -webkit-font-smoothing: antialiased;
303
+ -moz-osx-font-smoothing: grayscale;
257
304
  }
258
- */
259
- /* md-outlined-button[variant='error']:hover, */
260
- md-outlined-button:hover {
261
- --md-outlined-button-outline-width: var(--spacing-1, 1px);
305
+ .native-icon.scb-svg-icon {
306
+ fill: currentColor;
307
+ font: inherit;
262
308
  }
263
309
 
264
- /* Filled-tonal – error-färger */
265
- /*
266
- md-filled-tonal-button[variant='error'] {
267
- --md-filled-tonal-button-container-color: var(--md-sys-color-error-container);
268
- --md-filled-tonal-button-label-text-color: var(--md-sys-color-on-error-container);
269
- --md-filled-tonal-button-hover-label-text-color: var(--md-sys-color-on-error-container);
270
- --md-filled-tonal-button-pressed-label-text-color: var(--md-sys-color-on-error-container);
271
- --md-filled-tonal-button-focus-label-text-color: var(--md-sys-color-on-error-container);
272
- --md-filled-tonal-button-icon-color: var(--md-sys-color-on-error-container);
273
- --md-filled-tonal-button-hover-icon-color: var(--md-sys-color-on-error-container);
274
- --md-filled-tonal-button-pressed-icon-color: var(--md-sys-color-on-error-container);
275
- --md-filled-tonal-button-focus-icon-color: var(--md-sys-color-on-error-container);
276
- --md-filled-tonal-button-hover-state-layer-color: var(--md-sys-color-on-error-container);
277
- --md-filled-tonal-button-pressed-state-layer-color: var(--md-sys-color-on-error-container);
310
+ .native-button-wrap md-ripple {
311
+ position: absolute;
312
+ inset: 0;
313
+ border-radius: inherit;
314
+ pointer-events: none;
278
315
  }
279
- @media (prefers-color-scheme: dark) {
280
- md-filled-tonal-button[variant='error'] {
281
- --md-filled-tonal-button-container-color: var(--md-sys-color-on-error);
282
- }
316
+
317
+ .native-button-wrap md-focus-ring {
318
+ pointer-events: none;
319
+ }
320
+
321
+ :host([full-width]) {
322
+ display: flex;
323
+ inline-size: 100%;
324
+ }
325
+
326
+ :host([full-width]) .native-button-wrap,
327
+ :host([full-width]) .native-button {
328
+ inline-size: 100%;
329
+ flex: 1 1 auto;
283
330
  }
284
- */
285
331
  `;
286
332
  }
287
333
  render() {
288
- let e = !!this.icon?.trim(), t = e ? r`<md-icon slot="icon" part="icon" ?filled=${this.iconFilled} aria-hidden="true">${this.icon}</md-icon>` : i, n = i, a = this.label.trim() === "" && !this.__hasDefaultSlotContent ? this.icon : void 0, o = r`
334
+ let e = !!this.icon?.trim(), t = e ? r`<span class="native-icon" part="icon" aria-hidden="true">${this.icon}</span>` : i, n = this.label.trim() === "" && !this.__hasDefaultSlotContent ? this.icon : void 0, a = r`
289
335
  <slot
290
336
  @slotchange=${this.__handleDefaultSlotChange}
291
337
  style=${this.__hasDefaultSlotContent ? i : "display: none"}
292
338
  ></slot>
293
339
  ${this.__hasDefaultSlotContent ? i : this.label}
294
340
  `;
295
- switch (this.variant) {
296
- case "filled": return r`
297
- <md-filled-button
298
- type=${this.type}
299
- variant=${n}
300
- ?trailing-icon=${this.trailingIcon}
301
- ?disabled=${this.disabled}
302
- aria-label=${a}
303
- href=${this.href || i}
304
- target=${this.target || i}
305
- rel=${this.rel || i}
306
- >
307
- ${e && !this.trailingIcon ? t : i}
308
- ${o}
309
- ${e && this.trailingIcon ? t : i}
310
- </md-filled-button>
311
- `;
312
- case "outlined": return r`
313
- <md-outlined-button
314
- type=${this.type}
315
- variant=${n}
316
- ?trailing-icon=${this.trailingIcon}
317
- ?disabled=${this.disabled}
318
- aria-label=${a}
319
- href=${this.href || i}
320
- target=${this.target || i}
321
- rel=${this.rel || i}
322
- >
323
- ${e && !this.trailingIcon ? t : i}
324
- ${o}
325
- ${e && this.trailingIcon ? t : i}
326
- </md-outlined-button>
327
- `;
328
- case "filled-tonal": return r`
329
- <md-filled-tonal-button
330
- type=${this.type}
331
- variant=${n}
332
- ?trailing-icon=${this.trailingIcon}
333
- ?disabled=${this.disabled}
334
- aria-label=${a}
335
- href=${this.href || i}
336
- target=${this.target || i}
337
- rel=${this.rel || i}
338
- >
339
- ${e && !this.trailingIcon ? t : i}
340
- ${o}
341
- ${e && this.trailingIcon ? t : i}
342
- </md-filled-tonal-button>
343
- `;
344
- case "text": return r`
345
- <md-text-button
346
- type=${this.type}
347
- variant=${n}
348
- ?trailing-icon=${this.trailingIcon}
349
- ?disabled=${this.disabled}
350
- aria-label=${a}
351
- href=${this.href || i}
352
- target=${this.target || i}
353
- rel=${this.rel || i}
354
- >
355
- ${e && !this.trailingIcon ? t : i}
356
- ${o}
357
- ${e && this.trailingIcon ? t : i}
358
- </md-text-button>
359
- `;
360
- default: return r``;
361
- }
341
+ if (![
342
+ "filled",
343
+ "outlined",
344
+ "filled-tonal",
345
+ "text"
346
+ ].includes(this.variant)) return r``;
347
+ let o = r`
348
+ ${e && !this.trailingIcon ? t : i}
349
+ ${a}
350
+ ${e && this.trailingIcon ? t : i}
351
+ `;
352
+ return r`
353
+ <span class="native-button-wrap">
354
+ ${this.href ? r`
355
+ <a
356
+ class="native-button"
357
+ part="button"
358
+ href=${this.disabled ? i : this.href}
359
+ target=${this.target || i}
360
+ rel=${this.rel || i}
361
+ aria-label=${n}
362
+ aria-disabled=${this.disabled ? "true" : i}
363
+ tabindex=${this.disabled ? "-1" : i}
364
+ @click=${this.__onNativeClick}
365
+ @focusin=${this.__onNativeFocusIn}
366
+ @pointerenter=${this.__onNativePointerWarmup}
367
+ @pointerdown=${this.__onNativePointerWarmup}
368
+ >
369
+ ${o}
370
+ </a>
371
+ ` : r`
372
+ <button
373
+ class="native-button"
374
+ part="button"
375
+ type=${this.type}
376
+ ?disabled=${this.disabled}
377
+ aria-label=${n}
378
+ @click=${this.__onNativeClick}
379
+ @focusin=${this.__onNativeFocusIn}
380
+ @pointerenter=${this.__onNativePointerWarmup}
381
+ @pointerdown=${this.__onNativePointerWarmup}
382
+ >
383
+ ${o}
384
+ </button>
385
+ `}
386
+ ${this.__nativeRippleReady ? r`<md-ripple aria-hidden="true"></md-ripple>` : i}
387
+ ${this.__nativeFocusRingReady ? r`<md-focus-ring aria-hidden="true"></md-focus-ring>` : i}
388
+ </span>
389
+ `;
362
390
  }
363
391
  };
364
392
  e([o({
365
393
  type: String,
366
394
  reflect: !0
367
- })], s.prototype, "variant", void 0), e([o({
395
+ })], d.prototype, "variant", void 0), e([o({
368
396
  type: String,
369
397
  reflect: !0
370
- })], s.prototype, "size", void 0), e([o({
398
+ })], d.prototype, "size", void 0), e([o({
371
399
  type: String,
372
400
  reflect: !0
373
- })], s.prototype, "type", void 0), e([o({ type: String })], s.prototype, "label", void 0), e([o({
401
+ })], d.prototype, "type", void 0), e([o({ type: String })], d.prototype, "label", void 0), e([o({
374
402
  type: Boolean,
375
403
  attribute: "trailing-icon"
376
- })], s.prototype, "trailingIcon", void 0), e([o({ type: String })], s.prototype, "icon", void 0), e([o({
404
+ })], d.prototype, "trailingIcon", void 0), e([o({ type: String })], d.prototype, "icon", void 0), e([o({
377
405
  type: Boolean,
378
406
  attribute: "icon-filled",
379
407
  reflect: !0
380
- })], s.prototype, "iconFilled", void 0), e([o({
408
+ })], d.prototype, "iconFilled", void 0), e([o({
381
409
  type: Boolean,
382
410
  reflect: !0
383
- })], s.prototype, "disabled", void 0), e([o({
411
+ })], d.prototype, "disabled", void 0), e([o({
384
412
  type: Boolean,
385
413
  attribute: "full-width",
386
414
  reflect: !0
387
- })], s.prototype, "fullWidth", void 0), e([o({ type: String })], s.prototype, "href", void 0), e([o({ type: String })], s.prototype, "target", void 0), e([o({ type: String })], s.prototype, "rel", void 0), e([o({
415
+ })], d.prototype, "fullWidth", void 0), e([o({ type: String })], d.prototype, "href", void 0), e([o({ type: String })], d.prototype, "target", void 0), e([o({ type: String })], d.prototype, "rel", void 0), e([o({
388
416
  type: String,
389
417
  reflect: !0
390
- })], s.prototype, "spacing", void 0), e([o({
418
+ })], d.prototype, "spacing", void 0), e([o({
391
419
  type: String,
392
420
  attribute: "spacing-top",
393
421
  reflect: !0
394
- })], s.prototype, "spacingTop", void 0), e([o({
422
+ })], d.prototype, "spacingTop", void 0), e([o({
395
423
  type: String,
396
424
  attribute: "spacing-bottom",
397
425
  reflect: !0
398
- })], s.prototype, "spacingBottom", void 0), e([o({
426
+ })], d.prototype, "spacingBottom", void 0), e([o({
399
427
  type: String,
400
428
  attribute: "spacing-left",
401
429
  reflect: !0
402
- })], s.prototype, "spacingLeft", void 0), e([o({
430
+ })], d.prototype, "spacingLeft", void 0), e([o({
403
431
  type: String,
404
432
  attribute: "spacing-right",
405
433
  reflect: !0
406
- })], s.prototype, "spacingRight", void 0), s = e([a("scb-button")], s);
434
+ })], d.prototype, "spacingRight", void 0), d = e([a("scb-button")], d);
407
435
  //#endregion
408
- export { s as ScbButton };
436
+ export { d as ScbButton };