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
@@ -6,7 +6,7 @@ var c, l = 0;
6
6
  (() => {
7
7
  if (typeof window > "u" || typeof document > "u" || !("customElements" in window) || document.head.querySelector("style[data-scb-header-pre-upgrade]")) return;
8
8
  let e = document.createElement("style");
9
- e.setAttribute("data-scb-header-pre-upgrade", ""), e.textContent = "\n scb-header:not(:defined),\n scb-header[data-upgrading] {\n display: block;\n margin-block-start: var(--scb-header-spacing-block-start, 0);\n margin-block-end: var(--scb-header-spacing-block-end, 0);\n background: var(--scb-header-background, transparent);\n color: var(--md-sys-color-on-surface, #1b1b1f);\n\n --scb-header-pre-logo-w: var(--icon-size-extra-extra-large, 48px);\n --scb-header-pre-logo-h: var(\n --scb-header-pre-logo-img-h,\n calc(var(--scb-header-pre-logo-w) * 1.125)\n );\n\n --scb-header-pre-top-row: calc(\n (var(--spacing-5, 16px) * 2) +\n max(\n calc(var(--scb-header-pre-logo-h) + var(--spacing-2, 4px)),\n var(--scb-header-pre-control-size, 48px)\n )\n );\n --scb-header-pre-divider: var(--stroke-border, 1px);\n --scb-header-pre-tabs-row: var(--spacing-10, 40px);\n --scb-header-pre-block-size: calc(\n var(--scb-header-pre-top-row) + var(--scb-header-pre-divider)\n );\n\n min-block-size: var(--scb-header-pre-block-size);\n visibility: hidden;\n }\n\n scb-header:not(:defined) > *,\n scb-header[data-upgrading] > * {\n display: none;\n }\n\n @media (min-width: 840px) {\n scb-header:not(:defined)[data-pre-has-tabs],\n scb-header:not(:defined)[reserve-tabs],\n scb-header:not(:defined)[layout-pending],\n scb-header[data-upgrading][data-pre-has-tabs],\n scb-header[data-upgrading][reserve-tabs],\n scb-header[data-upgrading][layout-pending] {\n --scb-header-pre-block-size: calc(\n var(--scb-header-pre-top-row) +\n var(--scb-header-pre-tabs-row) +\n var(--scb-header-pre-divider)\n );\n }\n }\n ", document.head.appendChild(e);
9
+ e.setAttribute("data-scb-header-pre-upgrade", ""), e.textContent = "\n scb-header:not(:defined),\n scb-header[data-upgrading] {\n display: block;\n margin-block-start: var(--scb-header-spacing-block-start, 0);\n margin-block-end: var(--scb-header-spacing-block-end, 0);\n background: var(--scb-header-background, transparent);\n color: var(--md-sys-color-on-surface, #1b1b1f);\n\n --scb-header-pre-logo-w: var(--icon-size-extra-extra-large, 48px);\n --scb-header-pre-logo-h: var(\n --scb-header-pre-logo-img-h,\n calc(var(--scb-header-pre-logo-w) * 1.125)\n );\n\n --scb-header-pre-top-row: calc(\n (var(--spacing-5, 16px) * 2) +\n max(\n calc(var(--scb-header-pre-logo-h) + var(--spacing-2, 4px)),\n var(--scb-header-pre-control-size, 48px)\n )\n );\n --scb-header-pre-divider: var(--stroke-border, 1px);\n --scb-header-pre-tabs-row: var(--spacing-10, 40px);\n --scb-header-pre-block-size: calc(\n var(--scb-header-pre-top-row) + var(--scb-header-pre-divider) +\n var(--spacing-2, 4px)\n );\n\n min-block-size: var(--scb-header-pre-block-size);\n visibility: hidden;\n }\n\n scb-header:not(:defined) > *,\n scb-header[data-upgrading] > * {\n display: none;\n }\n\n @media (min-width: 840px) {\n scb-header:not(:defined)[data-pre-has-tabs],\n scb-header:not(:defined)[reserve-tabs],\n scb-header:not(:defined)[layout-pending],\n scb-header[data-upgrading][data-pre-has-tabs],\n scb-header[data-upgrading][reserve-tabs],\n scb-header[data-upgrading][layout-pending] {\n --scb-header-pre-block-size: calc(\n var(--scb-header-pre-top-row) +\n var(--scb-header-pre-tabs-row) +\n var(--scb-header-pre-divider) +\n var(--spacing-2, 4px)\n );\n }\n }\n ", document.head.appendChild(e);
10
10
  let t = (e) => {
11
11
  let t = String(e ?? "").trim();
12
12
  if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
@@ -1130,6 +1130,7 @@ var u = {
1130
1130
  .header-symbol {
1131
1131
  display: inline-block;
1132
1132
  inline-size: 1em;
1133
+ block-size: 1em;
1133
1134
  overflow: hidden;
1134
1135
  font-family: 'Material Symbols Outlined';
1135
1136
  font-size: var(--icon-size-medium, 24px);
@@ -1144,6 +1145,10 @@ var u = {
1144
1145
  -webkit-font-smoothing: antialiased;
1145
1146
  -moz-osx-font-smoothing: grayscale;
1146
1147
  }
1148
+ .header-symbol.scb-svg-icon {
1149
+ fill: currentColor;
1150
+ font: inherit;
1151
+ }
1147
1152
 
1148
1153
  .header-search-icon.header-symbol {
1149
1154
  display: inline-flex;
@@ -1401,13 +1406,18 @@ var u = {
1401
1406
  e && (e.open = !0);
1402
1407
  }
1403
1408
  _ensureFocusRingReady() {
1404
- customElements.get("md-focus-ring") || (this._focusRingImportPromise ??= import("@material/web/focus/md-focus-ring.js").then(() => void 0), this._focusRingImportPromise);
1409
+ customElements.get("md-focus-ring") || (this._focusRingImportPromise ??= import("../shared/lazy-focus-ring.js"), this._focusRingImportPromise.then(({ ensureFocusRingReady: e }) => {
1410
+ e();
1411
+ }));
1405
1412
  }
1406
1413
  async _ensureDrawerReady() {
1407
1414
  this._drawerReady || (this._drawerImportPromise ??= Promise.all([
1408
1415
  import("../scb-drawer/scb-drawer.js"),
1409
1416
  import("../scb-menu/scb-menu.js"),
1410
1417
  import("../scb-search/scb-search.js"),
1418
+ import("./scb-header-drawer.internal.js").then((e) => {
1419
+ this._drawerRenderer = e;
1420
+ }),
1411
1421
  this._ensureDrawerSlotComponentsReady()
1412
1422
  ]).then(() => void 0), await this._drawerImportPromise, this._drawerReady = !0, this._syncDrawerCloseNodes());
1413
1423
  }
@@ -1473,29 +1483,6 @@ var u = {
1473
1483
  this.renderRoot.querySelector(`.tab-link[data-index="${e}"]`)?.focus?.();
1474
1484
  }
1475
1485
  }
1476
- _renderMenuNodes(e) {
1477
- return !e || e.length === 0 ? r`` : r`${e.map((e) => this._renderMenuNode(e))}`;
1478
- }
1479
- _renderMenuNode(e) {
1480
- let t = Array.isArray(e.children) && e.children.length > 0, n = (e.href ?? "").trim(), a = (e.icon ?? "").trim(), o = t ? r`
1481
- <scb-sub-menu label=${e.label}>
1482
- ${e.children.map((e) => this._renderMenuNode(e))}
1483
- </scb-sub-menu>
1484
- ` : i;
1485
- return a && n ? r`
1486
- <scb-menu-item label=${e.label} ?selected=${!1} leading-icon=${a} item-href=${n}>
1487
- ${o}
1488
- </scb-menu-item>
1489
- ` : a ? r`
1490
- <scb-menu-item label=${e.label} ?selected=${!1} leading-icon=${a}>
1491
- ${o}
1492
- </scb-menu-item>
1493
- ` : n ? r`
1494
- <scb-menu-item label=${e.label} ?selected=${!1} item-href=${n}>
1495
- ${o}
1496
- </scb-menu-item>
1497
- ` : r`<scb-menu-item label=${e.label} ?selected=${!1}>${o}</scb-menu-item>`;
1498
- }
1499
1486
  _syncFlags(e, t) {
1500
1487
  this.toggleAttribute("data-no-utility", e), this.toggleAttribute("data-no-search", t);
1501
1488
  }
@@ -1612,7 +1599,7 @@ var u = {
1612
1599
  render() {
1613
1600
  let e = this._getNavItems(), t = this._slotUtils.length ? this._slotUtils : this.utilityItems, n = this._slotMenu.length ? this._slotMenu : this.menuData ?? [], a = this.logoText || this.logotypeText, o = this.logoAlt || a || "Gå till startsidan", s = this.querySelector("[slot=\"drawer-menu\"]") !== null, c = this.querySelector("[slot=\"drawer-close\"]") !== null;
1614
1601
  this._syncFlags(t.length === 0, !this.showSearch);
1615
- let l = this.searchHeight && this.searchHeight.trim() ? `--scb-search-height:${this.searchHeight.trim()}` : "", u = e.length > 0 || this.reserveTabs || this.layoutPending, d = (this.reserveTabs || this.layoutPending) && (this.layoutPending || e.length === 0), f = this.showDrawer && (!this.deferDrawer || this._drawerReady), p = typeof window < "u" && window.innerWidth >= this.BP_MD, m = this.showDrawer && (p ? this.alwaysShowMenuButton || this._collapsed : !0), h = m && !p, g = m && p, _ = (this.searchButtonLabel ?? "").trim() || "Sök", v = this.showSearch && !this._mobileSearchOpen;
1602
+ let l = this.searchHeight && this.searchHeight.trim() ? `--scb-search-height:${this.searchHeight.trim()}` : "", u = e.length > 0 || this.reserveTabs || this.layoutPending, d = (this.reserveTabs || this.layoutPending) && (this.layoutPending || e.length === 0), f = this._drawerRenderer, p = this.showDrawer && this._drawerReady && f, m = typeof window < "u" && window.innerWidth >= this.BP_MD, h = this.showDrawer && (m ? this.alwaysShowMenuButton || this._collapsed : !0), g = h && !m, _ = h && m, v = (this.searchButtonLabel ?? "").trim() || "Sök", y = this.showSearch && !this._mobileSearchOpen;
1616
1603
  return r`
1617
1604
  <slot
1618
1605
  id="data-slot"
@@ -1658,27 +1645,27 @@ var u = {
1658
1645
 
1659
1646
  ${this.showSearch ? r`
1660
1647
  <div class="search" style=${l}>
1661
- ${this._renderSearchForm(_, l)}
1648
+ ${this._renderSearchForm(v, l)}
1662
1649
  </div>
1663
1650
  ` : i}
1664
- ${v ? r`
1651
+ ${y ? r`
1665
1652
  <button
1666
1653
  type="button"
1667
1654
  class="mobile-search-trigger header-icon-button"
1668
- aria-label=${_}
1669
- title=${_}
1655
+ aria-label=${v}
1656
+ title=${v}
1670
1657
  @click=${this._onMobileSearchToggle}
1671
1658
  >
1672
1659
  <span class="header-symbol" aria-hidden="true">search</span>
1673
1660
  <md-focus-ring aria-hidden="true"></md-focus-ring>
1674
1661
  </button>
1675
1662
  ` : i}
1676
- ${h ? this._renderMenuButton("", !0) : i}
1663
+ ${g ? this._renderMenuButton("", !0) : i}
1677
1664
  </div>
1678
1665
 
1679
1666
  ${this.showSearch && this._mobileSearchOpen ? r`
1680
1667
  <div class="mobile-search-panel" style=${l}>
1681
- ${this._renderSearchForm(_, l, !1, !0)}
1668
+ ${this._renderSearchForm(v, l, !1, !0)}
1682
1669
  <button
1683
1670
  type="button"
1684
1671
  class="mobile-search-close header-icon-button"
@@ -1696,7 +1683,7 @@ var u = {
1696
1683
  </div>
1697
1684
 
1698
1685
  <div class="header-grid-item">
1699
- <div class=${u || g ? "tabs-row" : "tabs-row tabs-row--empty"}>
1686
+ <div class=${u || _ ? "tabs-row" : "tabs-row tabs-row--empty"}>
1700
1687
  ${u ? d ? r`
1701
1688
  <div class="tabs-inset">
1702
1689
  <div class="tabs-nav tabs-nav--skeleton" aria-hidden="true">
@@ -1746,68 +1733,33 @@ var u = {
1746
1733
  </div>
1747
1734
  ` : i : i}
1748
1735
 
1749
- ${g ? this._renderMenuButton("menu-trigger--tabs-right") : i}
1736
+ ${_ ? this._renderMenuButton("menu-trigger--tabs-right") : i}
1750
1737
  </div>
1751
1738
  </div>
1752
1739
  </div>
1753
1740
  <div class="divider" role="presentation"></div>
1754
1741
  </div>
1755
1742
 
1756
- ${f ? r`
1757
- <scb-drawer
1758
- id=${this._drawerId}
1759
- floating
1760
- right
1761
- ?overlay=${this.drawerOverlay}
1762
- ?lock-scroll=${this.drawerOverlay}
1763
- ?modal=${this.drawerOverlay}
1764
- style="--scb-drawer-padding: 0px;"
1765
- @scb-drawer-opened=${this._onDrawerOpened}
1766
- @scb-drawer-closed=${this._onDrawerClosed}
1767
- @scb-menu-select=${this._onMenuSelect}
1768
- >
1769
- ${c ? r`
1770
- <div class="drawer-close">
1771
- <slot
1772
- name="drawer-close"
1773
- @slotchange=${this._ensureDrawerSlotComponentsReady}
1774
- ></slot>
1775
- </div>
1776
- ` : i}
1777
-
1778
- <slot name="drawer-menu" @slotchange=${this._ensureDrawerSlotComponentsReady}></slot>
1779
-
1780
- ${s ? i : r`
1781
- <scb-menu
1782
- .label=${this.menuLabel ?? ""}
1783
- .subLabel=${this.menuSubLabel ?? ""}
1784
- >
1785
- <scb-search
1786
- .size=${this.size}
1787
- .supportingText=${this.menuSearchPlaceholder ?? ""}
1788
- ></scb-search>
1789
-
1790
- ${this.menuSectionLabel ? r`
1791
- <scb-menu-section
1792
- .label=${this.menuSectionLabel}
1793
- ></scb-menu-section>
1794
- ` : i}
1795
-
1796
- ${this._renderMenuNodes(n)}
1797
-
1798
- ${this.includeUtilityInMenu && (t?.length ?? 0) > 0 ? r`
1799
- <scb-menu-section label=''></scb-menu-section>
1800
- ${t.map((e) => r`
1801
- <scb-menu-item
1802
- label=${e.label}
1803
- item-href=${e.href}
1804
- ></scb-menu-item>
1805
- `)}
1806
- ` : i}
1807
- </scb-menu>
1808
- `}
1809
- </scb-drawer>
1810
- ` : i}
1743
+ ${p ? f.renderHeaderDrawer({
1744
+ drawerId: this._drawerId,
1745
+ drawerOverlay: this.drawerOverlay,
1746
+ size: this.size,
1747
+ menuLabel: this.menuLabel,
1748
+ menuSubLabel: this.menuSubLabel,
1749
+ menuSearchPlaceholder: this.menuSearchPlaceholder,
1750
+ menuSectionLabel: this.menuSectionLabel,
1751
+ includeUtilityInMenu: this.includeUtilityInMenu,
1752
+ menu: n,
1753
+ utils: t,
1754
+ hasDrawerCloseSlot: c,
1755
+ hasDrawerMenuSlot: s,
1756
+ onDrawerOpened: this._onDrawerOpened,
1757
+ onDrawerClosed: this._onDrawerClosed,
1758
+ onMenuSelect: this._onMenuSelect,
1759
+ onDrawerSlotChange: () => {
1760
+ this._ensureDrawerSlotComponentsReady();
1761
+ }
1762
+ }) : i}
1811
1763
  `;
1812
1764
  }
1813
1765
  _renderTabSkeletons() {
@@ -1,22 +1,32 @@
1
1
  import { __decorate as e } from "../_virtual/_@oxc-project_runtime@0.126.0/helpers/decorate.js";
2
- import "../scb-button/scb-button.js";
3
- import "../scb-icon-button/scb-icon-button.js";
4
- import { LitElement as t, css as n, html as r } from "lit";
5
- import { customElement as i, property as a, state as o } from "lit/decorators.js";
6
- import "@material/web/focus/md-focus-ring.js";
2
+ import { renderScbIcon as t } from "../shared/scb-icon-svg.js";
3
+ import { LitElement as n, css as r, html as i } from "lit";
4
+ import { customElement as a, property as o, state as s } from "lit/decorators.js";
7
5
  //#region src/scb-components/scb-horizontal-scroller/scb-horizontal-scroller.ts
8
- var s = class extends t {
6
+ var c;
7
+ function l() {
8
+ return c ??= import("../shared/lazy-focus-ring.js"), c;
9
+ }
10
+ var u = class extends n {
9
11
  constructor(...e) {
10
- super(...e), this.variant = "standard", this.width = "100%", this.showScrollbar = !1, this.rightScrollButtonLabel = "Scrolla höger", this.leftScrollButtonLabel = "Scrolla vänster", this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this.contentFlex = !1, this.internalGap = "", this._canScrollLeft = !1, this._canScrollRight = !1, this.updateScrollButtons = () => {
12
+ super(...e), this.variant = "standard", this.width = "100%", this.showScrollbar = !1, this.rightScrollButtonLabel = "Scrolla höger", this.leftScrollButtonLabel = "Scrolla vänster", this.spacing = void 0, this.spacingTop = void 0, this.spacingBottom = void 0, this.spacingLeft = void 0, this.spacingRight = void 0, this.contentFlex = !1, this.internalGap = "", this._canScrollLeft = !1, this._canScrollRight = !1, this.__scrollLeft = () => {
13
+ this.doScrollBy(-this.getScrollStep());
14
+ }, this.__scrollRight = () => {
15
+ this.doScrollBy(this.getScrollStep());
16
+ }, this.updateScrollButtons = () => {
11
17
  let e = this.scrollerEl || this.shadowRoot?.querySelector(".scb-horizontal-scroller");
12
18
  if (!e) {
13
- this._canScrollLeft &&= !1, this._canScrollRight &&= !1, this.removeAttribute("data-scroll-left"), this.removeAttribute("data-scroll-right");
19
+ this._canScrollLeft = !1, this._canScrollRight = !1, this.toggleAttribute("data-scroll-left", !1), this.toggleAttribute("data-scroll-right", !1);
14
20
  return;
15
21
  }
16
22
  let t = e.scrollLeft > 0, n = e.scrollLeft + e.clientWidth < e.scrollWidth - 1;
17
- this._canScrollLeft !== t && (this._canScrollLeft = t), this._canScrollRight !== n && (this._canScrollRight = n), t ? this.setAttribute("data-scroll-left", "") : this.removeAttribute("data-scroll-left"), n ? this.setAttribute("data-scroll-right", "") : this.removeAttribute("data-scroll-right");
18
- }, this.lastScrollLeft = 0, this.isScrolling = !1, this.scrollEndTimeout = null, this.scrollerEl = null, this.slotEl = null, this.sizeObserver = null, this.resizeRaf = null, this.handleScroll = () => {
19
- let e = this.shadowRoot?.querySelector(".scb-horizontal-scroller");
23
+ this._canScrollLeft = t, this._canScrollRight = n, this.toggleAttribute("data-scroll-left", t), this.toggleAttribute("data-scroll-right", n);
24
+ }, this.lastScrollLeft = 0, this.isScrolling = !1, this.scrollEndTimeout = null, this.scrollerEl = null, this.slotEl = null, this.sizeObserver = null, this.resizeRaf = null, this.__onFocusIn = () => {
25
+ l().then(({ ensureFocusRingReady: e }) => e());
26
+ }, this.__onLazyFocusRingKeydown = (e) => {
27
+ !(e instanceof KeyboardEvent) || e.key !== "Tab" || l().then(({ ensureFocusRingOnTab: t }) => t(e));
28
+ }, this.handleScroll = () => {
29
+ let e = this.scrollerEl;
20
30
  e && (this.updateScrollButtons(), this.dispatchCustomEventWithAlias("scb-scroll", { scrollLeft: e.scrollLeft }), this.isScrolling || (this.isScrolling = !0, this.dispatchCustomEventWithAlias("scb-scroll-start", { scrollLeft: e.scrollLeft })), clearTimeout(this.scrollEndTimeout), this.scrollEndTimeout = setTimeout(() => {
21
31
  this.isScrolling = !1, this.dispatchCustomEventWithAlias("scb-scroll-end", { scrollLeft: e.scrollLeft });
22
32
  }, 120), e.scrollLeft > this.lastScrollLeft ? this.dispatchCustomEventWithAlias("scb-scroll-right", { scrollLeft: e.scrollLeft }) : e.scrollLeft < this.lastScrollLeft && this.dispatchCustomEventWithAlias("scb-scroll-left", { scrollLeft: e.scrollLeft }), this.lastScrollLeft = e.scrollLeft);
@@ -28,7 +38,7 @@ var s = class extends t {
28
38
  };
29
39
  }
30
40
  static {
31
- this.styles = n`
41
+ this.styles = r`
32
42
  :host {
33
43
  display: flex;
34
44
  position: relative;
@@ -102,6 +112,98 @@ var s = class extends t {
102
112
  position: absolute;
103
113
  z-index: 3;
104
114
  }
115
+ .scroll-control,
116
+ .scroll-text-button {
117
+ display: inline-flex;
118
+ align-items: center;
119
+ justify-content: center;
120
+ box-sizing: border-box;
121
+ border: 0;
122
+ font-family: var(--brand-font, var(--brand, "Inter"), sans-serif);
123
+ font-weight: var(--weight-semibold, 600);
124
+ cursor: pointer;
125
+ appearance: none;
126
+ -webkit-appearance: none;
127
+ -webkit-tap-highlight-color: transparent;
128
+ touch-action: manipulation;
129
+ }
130
+ .scroll-control {
131
+ inline-size: var(--scb-icon-button-container-size, 40px);
132
+ block-size: var(--scb-icon-button-container-size, 40px);
133
+ padding: 0;
134
+ overflow: hidden;
135
+ border-radius: var(--radius-full, 1000px);
136
+ background: var(--md-filled-tonal-icon-button-container-color, var(--md-sys-color-secondary-container, var(--p-90, #d6f1ff)));
137
+ color: var(--md-filled-tonal-icon-button-icon-color, var(--md-sys-color-on-secondary-container, var(--p-30, #1e00be)));
138
+ }
139
+ .scroll-text-button {
140
+ position: relative;
141
+ min-block-size: calc(
142
+ var(--md-sys-typescale-label-small-line-height, 20px) +
143
+ calc(var(--spacing-4, 12px) - var(--spacing-1, 2px)) +
144
+ calc(var(--spacing-4, 12px) - var(--spacing-1, 2px))
145
+ );
146
+ gap: var(--spacing-3, 8px);
147
+ padding-block: calc(var(--spacing-4, 12px) - var(--spacing-1, 2px));
148
+ padding-inline: var(--spacing-5, 16px);
149
+ border-radius: var(--radius-full, 1000px);
150
+ background: transparent;
151
+ color: var(--md-text-button-label-text-color, var(--md-sys-color-primary, var(--p-40, #1f44ff)));
152
+ font-size: var(--md-sys-typescale-label-small-size, 16px);
153
+ line-height: var(--md-sys-typescale-label-small-line-height, 20px);
154
+ letter-spacing: var(--md-sys-typescale-label-small-tracking, 0);
155
+ }
156
+ .scroll-control::before,
157
+ .scroll-text-button::before {
158
+ content: '';
159
+ position: absolute;
160
+ inset: 0;
161
+ border-radius: inherit;
162
+ background: currentColor;
163
+ opacity: 0;
164
+ pointer-events: none;
165
+ transition: opacity var(--motion-duration-short, 150ms) var(--motion-easing-standard, ease);
166
+ }
167
+ .scroll-control:hover::before,
168
+ .scroll-text-button:hover::before {
169
+ opacity: var(--md-sys-state-hover-state-layer-opacity, 0.08);
170
+ }
171
+ .scroll-control:active::before,
172
+ .scroll-text-button:active::before {
173
+ opacity: var(--md-sys-state-pressed-state-layer-opacity, 0.12);
174
+ }
175
+ .scroll-control:focus,
176
+ .scroll-text-button:focus {
177
+ outline: none;
178
+ }
179
+ .scroll-control:focus-visible,
180
+ .scroll-text-button:focus-visible {
181
+ outline: var(--stroke-border-m, 2px) solid var(--md-focus-ring-color, var(--md-sys-color-primary, var(--p-40, #1f44ff)));
182
+ outline-offset: var(--spacing-1, 2px);
183
+ }
184
+ .scroll-control-icon {
185
+ position: relative;
186
+ display: inline-block;
187
+ inline-size: var(--icon-size-medium, 24px);
188
+ block-size: var(--icon-size-medium, 24px);
189
+ overflow: hidden;
190
+ font-family: 'Material Symbols Outlined';
191
+ font-size: var(--icon-size-medium, 24px);
192
+ line-height: 1;
193
+ text-align: center;
194
+ white-space: nowrap;
195
+ text-transform: none;
196
+ word-wrap: normal;
197
+ direction: ltr;
198
+ font-feature-settings: 'liga' 1;
199
+ font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
200
+ -webkit-font-smoothing: antialiased;
201
+ -moz-osx-font-smoothing: grayscale;
202
+ }
203
+ .scroll-control-icon.scb-svg-icon {
204
+ fill: currentColor;
205
+ font: inherit;
206
+ }
105
207
  .scroll-shadow-left,
106
208
  .scroll-shadow-right {
107
209
  position: absolute;
@@ -172,17 +274,16 @@ var s = class extends t {
172
274
  return e ? Math.max(Math.round(e.clientWidth * .8), 120) : 200;
173
275
  }
174
276
  doScrollBy(e) {
175
- let t = this.shadowRoot?.querySelector(".scb-horizontal-scroller");
176
- t && t.scrollBy({
277
+ this.scrollerEl?.scrollBy({
177
278
  left: e,
178
279
  behavior: "smooth"
179
280
  });
180
281
  }
181
282
  connectedCallback() {
182
- super.connectedCallback(), this.style.setProperty("--scb-horizontal-scroller-width", this.width);
283
+ super.connectedCallback(), this.addEventListener("focusin", this.__onFocusIn), this.addEventListener("keydown", this.__onLazyFocusRingKeydown), this.style.setProperty("--scb-horizontal-scroller-width", this.width);
183
284
  }
184
285
  disconnectedCallback() {
185
- super.disconnectedCallback(), this.scrollerEl && (this.scrollerEl.removeEventListener("scroll", this.handleScroll), this.scrollerEl.removeEventListener("wheel", this.handleWheel)), this.sizeObserver &&= (this.sizeObserver.disconnect(), null), this.resizeRaf !== null && (cancelAnimationFrame(this.resizeRaf), this.resizeRaf = null), this.scrollEndTimeout &&= (clearTimeout(this.scrollEndTimeout), null), this.scrollerEl = null, this.slotEl = null;
286
+ this.removeEventListener("focusin", this.__onFocusIn), this.removeEventListener("keydown", this.__onLazyFocusRingKeydown), this.renderRoot.removeEventListener("focusin", this.__onFocusIn), this.renderRoot.removeEventListener("keydown", this.__onLazyFocusRingKeydown), super.disconnectedCallback(), this.scrollerEl && (this.scrollerEl.removeEventListener("scroll", this.handleScroll), this.scrollerEl.removeEventListener("wheel", this.handleWheel)), this.sizeObserver &&= (this.sizeObserver.disconnect(), null), this.resizeRaf !== null && (cancelAnimationFrame(this.resizeRaf), this.resizeRaf = null), this.scrollEndTimeout &&= (clearTimeout(this.scrollEndTimeout), null), this.scrollerEl = null, this.slotEl = null;
186
287
  }
187
288
  dispatchCustomEvent(e, t = {}) {
188
289
  this.dispatchEvent(new CustomEvent(e, {
@@ -198,156 +299,148 @@ var s = class extends t {
198
299
  }
199
300
  }
200
301
  firstUpdated() {
201
- this.scrollerEl = this.shadowRoot?.querySelector(".scb-horizontal-scroller"), this.slotEl = this.shadowRoot?.querySelector("slot");
202
- let e = this.shadowRoot?.querySelector(".scroll-shadow-left"), t = this.shadowRoot?.querySelector(".scroll-shadow-right");
203
- this.scrollerEl && (this.scrollerEl.addEventListener("scroll", this.handleScroll), this.scrollerEl.addEventListener("wheel", this.handleWheel, { passive: !1 }));
204
- let n = () => {
205
- if (this.slotEl && e && t) {
206
- let n = this.slotEl.getBoundingClientRect();
207
- e.style.height = `${n.height}px`, t.style.height = `${n.height}px`;
208
- }
209
- }, r = () => {
210
- n(), this.updateScrollButtons();
211
- }, i = () => {
302
+ this.renderRoot.addEventListener("focusin", this.__onFocusIn), this.renderRoot.addEventListener("keydown", this.__onLazyFocusRingKeydown), this.scrollerEl = this.shadowRoot?.querySelector(".scb-horizontal-scroller"), this.slotEl = this.shadowRoot?.querySelector("slot"), this.scrollerEl && (this.scrollerEl.addEventListener("scroll", this.handleScroll), this.scrollerEl.addEventListener("wheel", this.handleWheel, { passive: !1 }));
303
+ let e = () => {
212
304
  this.resizeRaf === null && (this.resizeRaf = requestAnimationFrame(() => {
213
- this.resizeRaf = null, r();
305
+ this.resizeRaf = null, this.updateScrollButtons();
214
306
  }));
215
307
  };
216
308
  requestAnimationFrame(() => {
217
- r();
309
+ this.updateScrollButtons();
218
310
  }), this.slotEl && this.slotEl.addEventListener("slotchange", () => {
219
- i();
311
+ e();
220
312
  }), this.sizeObserver = new ResizeObserver(() => {
221
- i();
222
- }), this.scrollerEl && this.sizeObserver.observe(this.scrollerEl), this.slotEl && this.sizeObserver.observe(this.slotEl), this.#e(), this.#t();
313
+ e();
314
+ }), this.scrollerEl && this.sizeObserver.observe(this.scrollerEl), this.slotEl && this.sizeObserver.observe(this.slotEl), this.__applySpacing(), this.__applyInternalGap();
223
315
  }
224
316
  updated(e) {
225
- e.has("width") && this.style.setProperty("--scb-horizontal-scroller-width", this.width), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.#e(), (e.has("internalGap") || e.has("contentFlex")) && this.#t();
317
+ e.has("width") && this.style.setProperty("--scb-horizontal-scroller-width", this.width), (e.has("spacing") || e.has("spacingTop") || e.has("spacingBottom") || e.has("spacingLeft") || e.has("spacingRight")) && this.__applySpacing(), (e.has("internalGap") || e.has("contentFlex")) && this.__applyInternalGap();
226
318
  }
227
319
  mapSpacingToken(e) {
228
320
  if (!e) return;
229
321
  let t = String(e).trim();
230
322
  if (t) return /^\d+$/.test(t) ? `var(--spacing-${Math.max(0, Math.min(14, parseInt(t, 10)))})` : t;
231
323
  }
232
- #e() {
324
+ __applySpacing() {
233
325
  let e = this.mapSpacingToken(this.spacing), t = this.mapSpacingToken(this.spacingTop), n = this.mapSpacingToken(this.spacingBottom), r = this.mapSpacingToken(this.spacingLeft), i = this.mapSpacingToken(this.spacingRight), a = t ?? e, o = n ?? e;
234
326
  a ? this.style.setProperty("--scb-horizontal-scroller-spacing-block-start", a) : this.style.removeProperty("--scb-horizontal-scroller-spacing-block-start"), o ? this.style.setProperty("--scb-horizontal-scroller-spacing-block-end", o) : this.style.removeProperty("--scb-horizontal-scroller-spacing-block-end"), r ? this.style.setProperty("--scb-horizontal-scroller-spacing-inline-start", r) : this.style.removeProperty("--scb-horizontal-scroller-spacing-inline-start"), i ? this.style.setProperty("--scb-horizontal-scroller-spacing-inline-end", i) : this.style.removeProperty("--scb-horizontal-scroller-spacing-inline-end");
235
327
  }
236
- #t() {
328
+ __applyInternalGap() {
237
329
  let e = this.mapSpacingToken(this.internalGap);
238
330
  this.contentFlex && e ? this.style.setProperty("--scb-horizontal-scroller-internal-gap", e) : this.style.removeProperty("--scb-horizontal-scroller-internal-gap");
239
331
  }
240
332
  render() {
241
- let e = this.variant, t = this._canScrollLeft || this._canScrollRight;
333
+ let e = this.variant, n = this._canScrollLeft || this._canScrollRight;
242
334
  switch (e) {
243
- case "inline": return r`
244
- <div class="scb-horizontal-scroller ${t ? "canScroll" : ""}" tabindex="0">
245
- ${this.variant == "inline" ? "" : r`<div class="scroll-shadow-left"></div>`}
335
+ case "inline": return i`
336
+ <div class="scb-horizontal-scroller ${n ? "canScroll" : ""}" tabindex="0">
246
337
  <slot></slot>
247
338
  <md-focus-ring inward></md-focus-ring>
248
- ${this.variant == "inline" ? "" : r`<div class="scroll-shadow-right"></div>`}
249
339
  </div>
250
- ${t ? r`
340
+ ${n ? i`
251
341
  <div class="scroll-buttons">
252
- ${this._canScrollLeft ? r`
253
- <scb-button
254
- class="scroll-button-left"
255
- variant="text"
256
- label="${this.leftScrollButtonLabel}"
342
+ ${this._canScrollLeft ? i`
343
+ <button
344
+ class="scroll-text-button scroll-button-left"
345
+ type="button"
257
346
  aria-label="Scrolla vänster"
258
- icon="chevron_left"
259
- @click="${() => this.doScrollBy(-this.getScrollStep())}"
260
- ></scb-button>
347
+ @click=${this.__scrollLeft}
348
+ >
349
+ ${t("chevron_left", "scroll-control-icon")}
350
+ <span>${this.leftScrollButtonLabel}</span>
351
+ </button>
261
352
  ` : ""}
262
353
 
263
- ${this._canScrollRight ? r`
264
- <scb-button
265
- class="scroll-button-right"
266
- variant="text"
267
- label="${this.rightScrollButtonLabel}"
354
+ ${this._canScrollRight ? i`
355
+ <button
356
+ class="scroll-text-button scroll-button-right"
357
+ type="button"
268
358
  aria-label="Scrolla höger"
269
- icon="chevron_right"
270
- trailing-icon
271
- @click="${() => this.doScrollBy(this.getScrollStep())}"
272
- ></scb-button>
359
+ @click=${this.__scrollRight}
360
+ >
361
+ <span>${this.rightScrollButtonLabel}</span>
362
+ ${t("chevron_right", "scroll-control-icon")}
363
+ </button>
273
364
  ` : ""}
274
365
  </div>
275
366
  ` : ""}
276
367
  `;
277
- default: return r`
278
- ${this._canScrollLeft ? r`
279
- <scb-icon-button
280
- class="scroll-button-left"
281
- icon="chevron_left"
368
+ default: return i`
369
+ ${this._canScrollLeft ? i`
370
+ <button
371
+ class="scroll-control scroll-button-left"
372
+ type="button"
282
373
  aria-label="Scrolla vänster"
283
- variant="filled-tonal"
284
- @click="${() => this.doScrollBy(-this.getScrollStep())}"
285
- ></scb-icon-button>
374
+ @click=${this.__scrollLeft}
375
+ >
376
+ ${t("chevron_left", "scroll-control-icon")}
377
+ </button>
286
378
  ` : ""}
287
379
  <div class="scroll-shadow-left"></div>
288
- <div class="scb-horizontal-scroller ${t ? "canScroll" : ""}">
380
+ <div class="scb-horizontal-scroller ${n ? "canScroll" : ""}">
289
381
  <slot></slot>
290
382
  <md-focus-ring inward></md-focus-ring>
291
383
  </div>
292
384
  <div class="scroll-shadow-right"></div>
293
- ${this._canScrollRight ? r`
294
- <scb-icon-button
295
- class="scroll-button-right"
296
- icon="chevron_right"
385
+ ${this._canScrollRight ? i`
386
+ <button
387
+ class="scroll-control scroll-button-right"
388
+ type="button"
297
389
  aria-label="Scrolla höger"
298
- variant="filled-tonal"
299
- @click="${() => this.doScrollBy(this.getScrollStep())}"
300
- ></scb-icon-button>
390
+ @click=${this.__scrollRight}
391
+ >
392
+ ${t("chevron_right", "scroll-control-icon")}
393
+ </button>
301
394
  ` : ""}
302
395
  `;
303
396
  }
304
397
  }
305
398
  };
306
- e([a({
399
+ e([o({
307
400
  type: String,
308
401
  reflect: !0
309
- })], s.prototype, "variant", void 0), e([a({
402
+ })], u.prototype, "variant", void 0), e([o({
310
403
  type: String,
311
404
  reflect: !0
312
- })], s.prototype, "width", void 0), e([a({
405
+ })], u.prototype, "width", void 0), e([o({
313
406
  type: Boolean,
314
407
  reflect: !0,
315
408
  attribute: "show-scrollbar"
316
- })], s.prototype, "showScrollbar", void 0), e([a({
409
+ })], u.prototype, "showScrollbar", void 0), e([o({
317
410
  type: String,
318
411
  reflect: !0,
319
412
  attribute: "right-scroll-button-label"
320
- })], s.prototype, "rightScrollButtonLabel", void 0), e([a({
413
+ })], u.prototype, "rightScrollButtonLabel", void 0), e([o({
321
414
  type: String,
322
415
  reflect: !0,
323
416
  attribute: "left-scroll-button-label"
324
- })], s.prototype, "leftScrollButtonLabel", void 0), e([a({
417
+ })], u.prototype, "leftScrollButtonLabel", void 0), e([o({
325
418
  type: String,
326
419
  reflect: !0
327
- })], s.prototype, "spacing", void 0), e([a({
420
+ })], u.prototype, "spacing", void 0), e([o({
328
421
  type: String,
329
422
  reflect: !0,
330
423
  attribute: "spacing-top"
331
- })], s.prototype, "spacingTop", void 0), e([a({
424
+ })], u.prototype, "spacingTop", void 0), e([o({
332
425
  type: String,
333
426
  reflect: !0,
334
427
  attribute: "spacing-bottom"
335
- })], s.prototype, "spacingBottom", void 0), e([a({
428
+ })], u.prototype, "spacingBottom", void 0), e([o({
336
429
  type: String,
337
430
  reflect: !0,
338
431
  attribute: "spacing-left"
339
- })], s.prototype, "spacingLeft", void 0), e([a({
432
+ })], u.prototype, "spacingLeft", void 0), e([o({
340
433
  type: String,
341
434
  reflect: !0,
342
435
  attribute: "spacing-right"
343
- })], s.prototype, "spacingRight", void 0), e([a({
436
+ })], u.prototype, "spacingRight", void 0), e([o({
344
437
  type: Boolean,
345
438
  reflect: !0,
346
439
  attribute: "content-flex"
347
- })], s.prototype, "contentFlex", void 0), e([a({
440
+ })], u.prototype, "contentFlex", void 0), e([o({
348
441
  type: String,
349
442
  reflect: !0,
350
443
  attribute: "internal-gap"
351
- })], s.prototype, "internalGap", void 0), e([o()], s.prototype, "_canScrollLeft", void 0), e([o()], s.prototype, "_canScrollRight", void 0), s = e([i("scb-horizontal-scroller")], s);
444
+ })], u.prototype, "internalGap", void 0), e([s()], u.prototype, "_canScrollLeft", void 0), e([s()], u.prototype, "_canScrollRight", void 0), u = e([a("scb-horizontal-scroller")], u);
352
445
  //#endregion
353
- export { s as ScbHorizontalScroller };
446
+ export { u as ScbHorizontalScroller };