scb-wc 0.1.11 → 0.1.13

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 (183) hide show
  1. package/all.js +104 -1
  2. package/mvc/components/all.js +3 -90
  3. package/mvc/components/scb-accordion/scb-accordion-item.js +211 -1
  4. package/mvc/components/scb-accordion/scb-accordion.js +44 -1
  5. package/mvc/components/scb-app-bar/scb-app-bar.js +166 -1
  6. package/mvc/components/scb-avatar/scb-avatar.js +111 -1
  7. package/mvc/components/scb-badge/scb-badge.js +80 -1
  8. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +14 -1
  9. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +96 -1
  10. package/mvc/components/scb-button/scb-button.js +268 -1
  11. package/mvc/components/scb-calendar/scb-calendar-event.js +6 -1
  12. package/mvc/components/scb-calendar/scb-calendar.js +168 -1
  13. package/mvc/components/scb-calendar-card/scb-calendar-card.js +346 -1
  14. package/mvc/components/scb-card/scb-card.js +761 -1
  15. package/mvc/components/scb-checkbox/scb-checkbox-group.js +33 -1
  16. package/mvc/components/scb-checkbox/scb-checkbox.js +140 -1
  17. package/mvc/components/{Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-chevron → scb-chevron}/scb-chevron.js +1 -1
  18. package/mvc/components/scb-chip/scb-chip.js +66 -1
  19. package/mvc/components/scb-collapse/scb-collapse.js +89 -1
  20. package/mvc/components/scb-cookies-consent/scb-cookies-consent.js +78 -1
  21. package/mvc/components/{Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-datepicker → scb-datepicker}/scb-datepicker.js +1 -1
  22. package/mvc/components/scb-dialog/scb-dialog.js +265 -1
  23. package/mvc/components/scb-divider/scb-divider.js +69 -1
  24. package/mvc/components/scb-drawer/scb-drawer.js +128 -1
  25. package/mvc/components/scb-drop-zone/scb-drop-zone.js +555 -1
  26. package/mvc/components/scb-dropdown/scb-dropdown.js +306 -1
  27. package/mvc/components/scb-fab/scb-fab.js +108 -1
  28. package/mvc/components/scb-fact-card/scb-fact-card-content.js +46 -1
  29. package/mvc/components/scb-fact-card/scb-fact-card.js +226 -1
  30. package/mvc/components/scb-footer/scb-footer-section.js +3 -1
  31. package/mvc/components/scb-footer/scb-footer.js +210 -1
  32. package/mvc/components/scb-gallery-grid/scb-gallery-grid.js +131 -1
  33. package/mvc/components/scb-grid/scb-grid-item.js +11 -1
  34. package/mvc/components/scb-grid/scb-grid.js +98 -1
  35. package/mvc/components/scb-grid/scb-stack.js +33 -1
  36. package/mvc/components/scb-header/scb-header-menu-group.js +1 -1
  37. package/mvc/components/scb-header/scb-header-menu-item.js +5 -1
  38. package/mvc/components/scb-header/scb-header-tab.js +5 -1
  39. package/mvc/components/scb-header/scb-header-utility.js +1 -1
  40. package/mvc/components/scb-header/scb-header.js +681 -1
  41. package/mvc/components/scb-horizontal-scroller/scb-horizontal-scroller.js +196 -1
  42. package/mvc/components/scb-icon-button/scb-icon-button.js +171 -1
  43. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +212 -1
  44. package/mvc/components/scb-link/scb-link.js +61 -1
  45. package/mvc/components/scb-list/scb-list-item.js +153 -1
  46. package/mvc/components/scb-list/scb-list.js +26 -1
  47. package/mvc/components/scb-menu/scb-menu-item.js +205 -1
  48. package/mvc/components/scb-menu/scb-menu-section.js +42 -1
  49. package/mvc/components/scb-menu/scb-menu.js +81 -1
  50. package/mvc/components/scb-menu/scb-sub-menu.js +10 -1
  51. package/mvc/components/scb-nav/scb-nav-item.js +28 -1
  52. package/mvc/components/scb-nav/scb-nav.js +104 -1
  53. package/mvc/components/scb-notification-card/scb-notification-card.js +358 -1
  54. package/mvc/components/scb-options-menu/scb-options-menu-item.js +66 -1
  55. package/mvc/components/scb-options-menu/scb-options-menu.js +88 -1
  56. package/mvc/components/scb-options-menu/scb-options-sub-menu.js +34 -1
  57. package/mvc/components/scb-overlay/scb-overlay.js +49 -1
  58. package/mvc/components/scb-pagination/scb-pagination.js +312 -1
  59. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +87 -1
  60. package/mvc/components/scb-progress-stepper/scb-progress-step.js +147 -1
  61. package/mvc/components/scb-progress-stepper/scb-progress-stepper.js +62 -1
  62. package/mvc/components/scb-radio-button/scb-radio-button.js +132 -1
  63. package/mvc/components/scb-radio-button/scb-radio-group.js +43 -1
  64. package/mvc/components/scb-scrollspy/scb-scrollspy.js +79 -1
  65. package/mvc/components/scb-search/scb-search.js +292 -1
  66. package/mvc/components/scb-segmented-button/scb-segmented-button.js +32 -1
  67. package/mvc/components/scb-segmented-button/scb-segmented-item.js +74 -1
  68. package/mvc/components/scb-select/scb-select-option.js +61 -1
  69. package/mvc/components/scb-select/scb-select.js +284 -1
  70. package/mvc/components/scb-skeleton/scb-skeleton.js +38 -1
  71. package/mvc/components/scb-slider/scb-slider.js +27 -1
  72. package/mvc/components/scb-snackbar/scb-snackbar.js +128 -1
  73. package/mvc/components/scb-status-pill/scb-status-pill.js +45 -1
  74. package/mvc/components/scb-stepper/scb-step.js +239 -1
  75. package/mvc/components/scb-stepper/scb-stepper.js +139 -1
  76. package/mvc/components/scb-switch/scb-switch.js +59 -1
  77. package/mvc/components/scb-table/scb-table.js +51 -1
  78. package/mvc/components/scb-table-advanced/scb-table-advanced.js +76 -1
  79. package/mvc/components/scb-tabs/scb-primary-tab.js +6 -1
  80. package/mvc/components/scb-tabs/scb-secondary-tab.js +6 -1
  81. package/mvc/components/scb-tabs/scb-tabs.js +28 -1
  82. package/mvc/components/scb-textfield/scb-textfield.js +595 -1
  83. package/mvc/components/scb-toc/scb-toc-item.js +303 -1
  84. package/mvc/components/scb-toc/scb-toc.js +19 -1
  85. package/mvc/components/scb-tooltip/scb-tooltip.js +196 -1
  86. package/mvc/components/scb-vignette/scb-vignette.js +37 -0
  87. package/mvc/components/scb-viz/scb-viz-actions-runtime.js +2 -1
  88. package/mvc/components/scb-viz/scb-viz-print-runtime.js +98 -1
  89. package/mvc/components/scb-viz/scb-viz-series-differentiation-registry.js +1 -1
  90. package/mvc/components/scb-viz/scb-viz-series-differentiation-runtime.js +1 -1
  91. package/mvc/components/scb-viz/scb-viz-table-runtime.js +1 -1
  92. package/mvc/components/scb-viz/scb-viz.js +1140 -1
  93. package/mvc/scb-logo.svg +20 -20
  94. package/mvc/scb.svg +13 -13
  95. package/package.json +462 -430
  96. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-accordion/scb-accordion-item.js +0 -211
  97. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-accordion/scb-accordion.js +0 -44
  98. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-app-bar/scb-app-bar.js +0 -166
  99. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-avatar/scb-avatar.js +0 -111
  100. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-badge/scb-badge.js +0 -80
  101. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-breadcrumb/scb-breadcrumb-item.js +0 -14
  102. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-breadcrumb/scb-breadcrumb.js +0 -96
  103. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-button/scb-button.js +0 -268
  104. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-calendar/scb-calendar-event.js +0 -6
  105. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-calendar/scb-calendar.js +0 -168
  106. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-calendar-card/scb-calendar-card.js +0 -346
  107. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-card/scb-card.js +0 -761
  108. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-checkbox/scb-checkbox-group.js +0 -33
  109. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-checkbox/scb-checkbox.js +0 -140
  110. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-chip/scb-chip.js +0 -66
  111. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-collapse/scb-collapse.js +0 -89
  112. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-cookies-consent/scb-cookies-consent.js +0 -78
  113. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-dialog/scb-dialog.js +0 -265
  114. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-divider/scb-divider.js +0 -69
  115. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-drawer/scb-drawer.js +0 -128
  116. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-drop-zone/scb-drop-zone.js +0 -555
  117. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-dropdown/scb-dropdown.js +0 -306
  118. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-fab/scb-fab.js +0 -108
  119. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-fact-card/scb-fact-card-content.js +0 -46
  120. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-fact-card/scb-fact-card.js +0 -226
  121. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-footer/scb-footer-section.js +0 -3
  122. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-footer/scb-footer.js +0 -210
  123. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-gallery-grid/scb-gallery-grid.js +0 -131
  124. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-grid/scb-grid-item.js +0 -11
  125. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-grid/scb-grid.js +0 -98
  126. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-grid/scb-stack.js +0 -33
  127. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-header/scb-header-menu-group.js +0 -1
  128. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-header/scb-header-menu-item.js +0 -5
  129. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-header/scb-header-tab.js +0 -5
  130. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-header/scb-header-utility.js +0 -1
  131. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-header/scb-header.js +0 -681
  132. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-horizontal-scroller/scb-horizontal-scroller.js +0 -196
  133. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-icon-button/scb-icon-button.js +0 -171
  134. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-keyfigure-card/scb-keyfigure-card.js +0 -212
  135. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-link/scb-link.js +0 -61
  136. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-list/scb-list-item.js +0 -153
  137. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-list/scb-list.js +0 -26
  138. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-menu/scb-menu-item.js +0 -205
  139. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-menu/scb-menu-section.js +0 -42
  140. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-menu/scb-menu.js +0 -81
  141. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-menu/scb-sub-menu.js +0 -10
  142. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-nav/scb-nav-item.js +0 -28
  143. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-nav/scb-nav.js +0 -104
  144. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-notification-card/scb-notification-card.js +0 -358
  145. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-options-menu/scb-options-menu-item.js +0 -66
  146. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-options-menu/scb-options-menu.js +0 -88
  147. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-options-menu/scb-options-sub-menu.js +0 -34
  148. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-overlay/scb-overlay.js +0 -49
  149. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-pagination/scb-pagination.js +0 -312
  150. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-progress-indicator/scb-progress-indicator.js +0 -87
  151. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-progress-stepper/scb-progress-step.js +0 -147
  152. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-progress-stepper/scb-progress-stepper.js +0 -62
  153. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-radio-button/scb-radio-button.js +0 -132
  154. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-radio-button/scb-radio-group.js +0 -43
  155. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-scrollspy/scb-scrollspy.js +0 -79
  156. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-search/scb-search.js +0 -292
  157. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-segmented-button/scb-segmented-button.js +0 -32
  158. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-segmented-button/scb-segmented-item.js +0 -74
  159. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-select/scb-select-option.js +0 -61
  160. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-select/scb-select.js +0 -284
  161. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-skeleton/scb-skeleton.js +0 -38
  162. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-slider/scb-slider.js +0 -27
  163. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-snackbar/scb-snackbar.js +0 -128
  164. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-status-pill/scb-status-pill.js +0 -45
  165. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-stepper/scb-step.js +0 -239
  166. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-stepper/scb-stepper.js +0 -139
  167. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-switch/scb-switch.js +0 -59
  168. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-table/scb-table.js +0 -51
  169. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-table-advanced/scb-table-advanced.js +0 -76
  170. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-tabs/scb-primary-tab.js +0 -6
  171. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-tabs/scb-secondary-tab.js +0 -6
  172. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-tabs/scb-tabs.js +0 -28
  173. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-textfield/scb-textfield.js +0 -595
  174. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-toc/scb-toc-item.js +0 -303
  175. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-toc/scb-toc.js +0 -19
  176. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-tooltip/scb-tooltip.js +0 -196
  177. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-vignette/scb-vignette.js +0 -37
  178. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz-actions-runtime.js +0 -2
  179. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz-print-runtime.js +0 -98
  180. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz-series-differentiation-registry.js +0 -1
  181. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz-series-differentiation-runtime.js +0 -1
  182. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz-table-runtime.js +0 -1
  183. package/mvc/components/Users/peter/Documents/SCB.Material-latest-dev/src/scb-components/scb-viz/scb-viz.js +0 -1140
@@ -1,265 +0,0 @@
1
- import"../../../../../../../../vendor/vendor-material.js";import{_ as g,b as f,g as b,h as s,v as d,y as r}from"../../../../../../../../vendor/vendor.js";import"../../../../../../../../vendor/vendor-lit.js";import{t as n}from"../../../../../../../../vendor/decorate.js";import"../scb-button/scb-button.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-textfield/scb-textfield.js";import"../scb-checkbox/scb-checkbox.js";import"../scb-radio-button/scb-radio-button.js";import"../scb-switch/scb-switch.js";import"../scb-chip/scb-chip.js";(function(){try{var p=typeof globalThis<"u"?globalThis:window;if(!p.__scb_ce_guard_installed__){p.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(t,i,a){try{customElements.get(t)||e(t,i,a)}catch(c){var l=String(c||"");if(l.indexOf("already been used")===-1&&l.indexOf("NotSupportedError")===-1)throw c}}}}catch{}})();var h,o=(h=class extends g{constructor(...e){super(...e),this.open=!1,this.inSb=!1,this.scrimClose=!0,this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.variant="basic",this.label="",this.icon="",this.supportingText="",this.okButton="OK",this.cancelButton="Avbryt",this.deleteButton="Delete",this.confirmButton="Ta bort",this.denyButton="Avbryt",this.resetButton="Återställ",this.submitButton="Spara",this.formId="",this.formAction="",this.formMethod="",this.__lastTriggerEl=null,this.__onDocumentClick=t=>{this.__getActionFromEvent(t)==="toggle"&&(this.__setOpen(!this.open),t.stopPropagation())},this.__onDocumentKeydown=t=>{this.open&&t.key==="Escape"&&(this.__fire("esc"),this.__setOpen(!1))},this.__onScrimClick=()=>{this.scrimClose&&(this.__fire("scrim"),this.__setOpen(!1))},this.__onOk=()=>{this.__fire("ok"),this.__setOpen(!1)},this.__onCancel=()=>{this.__fire("cancel"),this.__setOpen(!1)},this.__onConfirm=()=>{this.__fire("confirm"),this.__setOpen(!1)},this.__onDeny=()=>{this.__fire("deny"),this.__setOpen(!1)},this.__onReset=()=>{const t=this.shadowRoot?.querySelector("form");t instanceof HTMLFormElement&&(this.__clearGeneratedFormValues(t),t.reset()),(this.shadowRoot?.querySelector("slot")?.assignedElements({flatten:!0})??[]).forEach(i=>{const a=i.tagName;a==="SCB-TEXTFIELD"&&(i.value=""),a==="SCB-CHECKBOX"&&(i.checked=!1),a==="SCB-RADIO-BUTTON"&&(i.checked=!1),a==="SCB-SWITCH"&&(i.selected=!1),a==="SCB-CHIP"&&(i.selected=!1)}),this.__fire("reset")},this.__onSubmit=()=>{const t=this.shadowRoot?.querySelector("form");if(t instanceof HTMLFormElement){if(this.__syncSlottedFormValues(t),!this.__validateFormAndSlottedFields(t))return;t.requestSubmit()}this.__fire("submit"),this.__setOpen(!1)},this.__onKeydownTrap=t=>{if(!this.open||t.key!=="Tab")return;const i=Array.from(this.shadowRoot.querySelectorAll('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])')).filter(c=>!c.hasAttribute("disabled"));if(!i.length)return;const a=i[0],l=i[i.length-1];t.shiftKey&&document.activeElement===a?(l.focus(),t.preventDefault()):!t.shiftKey&&document.activeElement===l&&(a.focus(),t.preventDefault())}}__getActionFromEvent(e){if(!this.id)return null;for(const t of e.composedPath())if(t instanceof Element){if(t.getAttribute("data-dialog-toggle")===this.id)return this.__lastTriggerEl=t,"toggle";if(t.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=t,"toggle"}return null}connectedCallback(){super.connectedCallback(),this.__applyZIndex(),this.__applyMaxSize(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0),this.addEventListener("keydown",this.__onKeydownTrap)}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),this.removeEventListener("keydown",this.__onKeydownTrap),super.disconnectedCallback()}__applyZIndex(){const e=typeof this.zIndex=="number"&&Number.isFinite(this.zIndex)?this.zIndex:void 0;if(e===void 0){this.style.removeProperty("--z-dialog-scrim"),this.style.removeProperty("--z-dialog");return}this.style.setProperty("--z-dialog-scrim",String(e)),this.style.setProperty("--z-dialog",String(e+1))}__applyMaxSize(){const e=(this.maxW??"").trim(),t=(this.maxH??"").trim();e?(this.style.setProperty("--scb-dialog-max-w",e),this.style.setProperty("--scb-dialog-width",`min(${e}, 90vw)`)):(this.style.removeProperty("--scb-dialog-max-w"),this.style.removeProperty("--scb-dialog-width")),t?this.style.setProperty("--scb-dialog-max-h",t):this.style.removeProperty("--scb-dialog-max-h")}updated(e){if(e.has("zIndex")&&this.__applyZIndex(),(e.has("maxW")||e.has("maxH"))&&this.__applyMaxSize(),e.has("open")){const t=e.get("open");this.__updateTriggersExpanded(),this.open&&!t?this.updateComplete.then(()=>{const i=this.shadowRoot?.querySelector('button,[href],input,select,textarea,[tabindex]:not([tabindex="-1"])');i?i.focus():this.shadowRoot?.querySelector(".container")?.focus()}):!this.open&&t&&this.__lastTriggerEl?.focus?.(),this.__toggleScrollLock(this.open)}(e.has("spacing")||e.has("spacingTop")||e.has("spacingBottom")||e.has("spacingLeft")||e.has("spacingRight"))&&this.__applySpacing()}__updateTriggersExpanded(){this.id&&document.querySelectorAll(`[aria-controls="${this.id}"], [data-dialog-toggle="${this.id}"]`).forEach(e=>{e.hasAttribute("aria-controls")&&e.setAttribute("aria-expanded",String(this.open))})}__toggleScrollLock(e){if(this.inSb)return;const t=document.documentElement,i=document.body;if(e){const a=window.innerWidth-t.clientWidth;t.style.overflow="hidden",i.style.paddingRight=a>0?`${a}px`:"";return}t.style.overflow="",i.style.paddingRight=""}mapSpacingToken(e){if(!e)return;const t=String(e).trim();if(t)return/^\d+$/.test(t)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(t,10)))})`:t}__applySpacing(){const e=this.mapSpacingToken(this.spacing),t=this.mapSpacingToken(this.spacingTop)??e,i=this.mapSpacingToken(this.spacingBottom)??e,a=this.mapSpacingToken(this.spacingLeft),l=this.mapSpacingToken(this.spacingRight);t?this.style.setProperty("--scb-dialog-spacing-block-start",t):this.style.removeProperty("--scb-dialog-spacing-block-start"),i?this.style.setProperty("--scb-dialog-spacing-block-end",i):this.style.removeProperty("--scb-dialog-spacing-block-end"),a?this.style.setProperty("--scb-dialog-spacing-inline-start",a):this.style.removeProperty("--scb-dialog-spacing-inline-start"),l?this.style.setProperty("--scb-dialog-spacing-inline-end",l):this.style.removeProperty("--scb-dialog-spacing-inline-end")}__setOpen(e){this.open=e,this.__fire(e?"open":"close")}__fire(e,t){this.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!0,composed:!0}))}__getSlottedElements(){const e=this.shadowRoot?.querySelector("slot");if(!(e instanceof HTMLSlotElement))return[];const t=e.assignedElements({flatten:!0}),i=[];for(const a of t)i.push(a,...Array.from(a.querySelectorAll("*")));return i}__appendHiddenFormValue(e,t,i){const a=document.createElement("input");a.type="hidden",a.name=t,a.value=i,a.setAttribute("data-scb-dialog-generated","true"),e.append(a)}__clearGeneratedFormValues(e){e.querySelectorAll('input[data-scb-dialog-generated="true"]').forEach(t=>t.remove())}__syncSlottedFormValues(e){this.__clearGeneratedFormValues(e),this.__getSlottedElements().forEach(t=>{if(!(t instanceof HTMLElement))return;const i=(t.getAttribute("name")??"").trim();if(i&&!(t.disabled===!0||t.hasAttribute("disabled"))){if(t instanceof HTMLInputElement){if(t.form===e)return;const a=(t.type||"").toLowerCase();if(a==="checkbox"||a==="radio"){t.checked&&this.__appendHiddenFormValue(e,i,t.value||"on");return}this.__appendHiddenFormValue(e,i,t.value??"");return}if(t instanceof HTMLTextAreaElement){if(t.form===e)return;this.__appendHiddenFormValue(e,i,t.value??"");return}if(t instanceof HTMLSelectElement){if(t.form===e)return;if(t.multiple){Array.from(t.selectedOptions).forEach(a=>{this.__appendHiddenFormValue(e,i,a.value)});return}this.__appendHiddenFormValue(e,i,t.value??"");return}switch(t.tagName){case"SCB-TEXTFIELD":this.__appendHiddenFormValue(e,i,String(t.value??""));return;case"SCB-CHECKBOX":t.checked&&this.__appendHiddenFormValue(e,i,String(t.value??t.getAttribute("value")??"on"));return;case"SCB-RADIO-BUTTON":t.checked&&this.__appendHiddenFormValue(e,i,String(t.value??t.getAttribute("value")??"on"));return;case"SCB-SWITCH":(t.selected||t.checked)&&this.__appendHiddenFormValue(e,i,String(t.value??t.getAttribute("value")??"on"));return;case"SCB-CHIP":t.selected&&this.__appendHiddenFormValue(e,i,String(t.value??t.getAttribute("value")??"on"));return;default:"value"in t&&this.__appendHiddenFormValue(e,i,String(t.value??""))}}})}__validateFormAndSlottedFields(e){const t=c=>c.disabled===!0||c.hasAttribute("disabled");let i=e.reportValidity(),a=null;const l=new Set;return this.__getSlottedElements().forEach(c=>{if(!(c instanceof HTMLElement)||l.has(c)||t(c))return;l.add(c);const u=c;if(c.tagName==="SCB-TEXTFIELD"&&u.error===!0){a||(a=c),i=!1;return}if(typeof u.reportValidity=="function"){const m=!!u.reportValidity();!m&&!a&&(a=c),i=i&&m}}),!i&&a&&a.focus(),i}__slotIsEmpty(){const e=this.shadowRoot?.querySelector("slot");return e?e.assignedElements({flatten:!0}).length===0:!0}renderHeader(e){const t=this.variant==="form"||this.variant==="floating"||this.variant==="iframe";return r`
2
- <div class="header">
3
- <div class="title">
4
- ${this.icon?r`<md-icon class="dialog-icon">${this.icon}</md-icon>`:d}
5
- <div class="label" id=${e}>${this.label}</div>
6
- </div>
7
- ${t?r`<scb-icon-button class="close" icon="close" @click=${this.__onCancel}></scb-icon-button>`:d}
8
- </div>
9
- `}renderContentDefault(e){return r`
10
- <div class="content" id=${e}>
11
- ${this.__slotIsEmpty()&&this.supportingText?r`${this.supportingText}`:r`<slot></slot>`}
12
- </div>
13
- `}renderContentIframe(e){return r`
14
- <div class="content" id=${e}>
15
- <div class="content-surface">
16
- ${this.__slotIsEmpty()&&this.supportingText?r`${this.supportingText}`:r`<slot></slot>`}
17
- </div>
18
- </div>
19
- `}renderActions(){switch(this.variant){case"alert":return r`<div class="actions">
20
- <scb-button variant="text" label=${this.okButton} @click=${this.__onOk}></scb-button>
21
- </div>`;case"confirm":return r`<div class="actions">
22
- <scb-button variant="text" label=${this.confirmButton} @click=${this.__onConfirm}></scb-button>
23
- <scb-button variant="text" label=${this.denyButton} @click=${this.__onDeny}></scb-button>
24
- </div>`;case"choose":return r`<div class="actions">
25
- <scb-button variant="text" label=${this.cancelButton} @click=${this.__onCancel}></scb-button>
26
- <scb-button variant="text" label=${this.okButton} @click=${this.__onOk}></scb-button>
27
- </div>`;case"form":return r`<div class="actions">
28
- <scb-button class="start" variant="text" label=${this.resetButton} @click=${this.__onReset}></scb-button>
29
- <scb-button variant="text" label=${this.cancelButton} @click=${this.__onCancel}></scb-button>
30
- <scb-button variant="text" type="submit" label=${this.submitButton} @click=${this.__onSubmit}></scb-button>
31
- </div>`;case"floating":case"iframe":return d;default:return r`<div class="actions">
32
- <scb-button variant="text" label=${this.cancelButton} @click=${this.__onCancel}></scb-button>
33
- <scb-button variant="text" label=${this.okButton} @click=${this.__onOk}></scb-button>
34
- </div>`}}renderBody(e,t){return this.variant==="form"?r`
35
- ${this.renderHeader(e)}
36
- <div class="content" id=${t}>
37
- <form id=${this.formId} action=${this.formAction} method=${this.formMethod||d}>
38
- <slot></slot>
39
- </form>
40
- </div>
41
- ${this.renderActions()}
42
- `:this.variant==="iframe"?r`${this.renderHeader(e)} ${this.renderContentIframe(t)} ${this.renderActions()}`:r`${this.renderHeader(e)} ${this.renderContentDefault(t)} ${this.renderActions()}`}render(){const e="dlg-title",t="dlg-desc";return r`
43
- <div class="scrim" @click=${this.__onScrimClick} aria-hidden="true"></div>
44
- <div
45
- class="container"
46
- tabindex="-1"
47
- role="dialog"
48
- aria-modal="true"
49
- aria-labelledby=${e}
50
- aria-describedby=${t}
51
- >
52
- ${this.renderBody(e,t)}
53
- </div>
54
- `}},h.styles=f`
55
- :host {
56
- display:block;
57
- position:relative;
58
- font-family: var(--brand, Inter);
59
-
60
- margin-block-start: var(--scb-dialog-spacing-block-start, 0);
61
- margin-block-end: var(--scb-dialog-spacing-block-end, 0);
62
- margin-inline-start: var(--scb-dialog-spacing-inline-start, 0);
63
- margin-inline-end: var(--scb-dialog-spacing-inline-end, 0);
64
- }
65
-
66
- .scrim {
67
- position: var(--scb-dialog-scrim-position, fixed);
68
- inset: 0;
69
- /* var från tokens, tonas med opacity via color-mix */
70
- background: color-mix(in srgb, var(--md-sys-color-scrim) 32%, transparent);
71
- z-index: var(--z-dialog-scrim, 1000);
72
- opacity: 1;
73
- transition: opacity var(--motion-duration-short, 0.25s);
74
- transition-timing-function: var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1));
75
- height: var(--scb-dialog-scrim-height, auto);
76
- }
77
-
78
- .container {
79
- outline: none;
80
- position: var(--scb-dialog-container-position, fixed);
81
- inset: 50% auto auto 50%;
82
- transform: translate(-50%, -50%) scale(1);
83
-
84
- background: var(--md-sys-color-surface);
85
- color: var(--md-sys-color-on-surface);
86
-
87
- /* radius mappad till spacing-token som fallback */
88
- border-radius: var(--scb-dialog-radius, var(--spacing-5, 16px));
89
-
90
- /* skugga mappad till shadow-token + spacing-tokens */
91
- box-shadow:
92
- 0 var(--spacing-1, 2px)
93
- var(--spacing-5, 16px)
94
- color-mix(in srgb, var(--md-sys-color-shadow) 20%, transparent);
95
-
96
- /* width/height via CSS custom props med px-fallback */
97
- min-width: var(--scb-dialog-min-w, 340px);
98
- width: var(--scb-dialog-width, auto);
99
- max-width: var(--scb-dialog-max-w, 90vw);
100
- max-height: var(--scb-dialog-max-h, 90vh);
101
-
102
-
103
-
104
- display:flex; flex-direction:column;
105
-
106
- /* padding mappad till spacing-token */
107
- padding: var(--scb-dialog-padding, var(--spacing-7, 24px));
108
-
109
- z-index: var(--z-dialog, 1001);
110
- opacity: 1;
111
- transition:
112
- opacity var(--motion-duration-medium, 0.3s),
113
- transform var(--motion-duration-medium, 0.3s);
114
- transition-timing-function: var(--motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1));
115
- }
116
-
117
- :host(:not([open])) .scrim,
118
- :host(:not([open])) .container { opacity:0; pointer-events:none; }
119
-
120
- :host([open]) .scrim {
121
- animation:
122
- var(--motion-keyframe-fade-in, scb-kf-fade-in)
123
- var(--motion-duration-short, 0.25s)
124
- var(--motion-easing-standard, cubic-bezier(0.2, 0, 0, 1))
125
- both;
126
- }
127
-
128
- :host([open]) .container {
129
- animation:
130
- var(--motion-keyframe-fade-in, scb-kf-fade-in)
131
- var(--motion-duration-medium, 0.3s)
132
- var(--motion-easing-emphasized-decelerate, cubic-bezier(0.05, 0.7, 0.1, 1))
133
- both;
134
- }
135
-
136
- /* Header: ikon över rubrik */
137
- .header {
138
- display:flex;
139
- align-items:flex-start;
140
- gap: var(--spacing-4, 12px);
141
- margin-bottom: var(--spacing-5, 16px);
142
- }
143
- .header .title {
144
- display:flex;
145
- flex-direction:column; /* ikon ovanför label */
146
- gap: var(--spacing-3, 8px);
147
- }
148
- .header .label {
149
- /* typografi mappad till md-sys-typescale tokens */
150
- font-weight: var(--md-sys-typescale-headline-small-weight, 700);
151
- font-size: var(--md-sys-typescale-headline-small-size, 1.5rem);
152
- line-height: var(--md-sys-typescale-headline-small-line-height, 2rem);
153
- }
154
- .header .close { margin-left:auto; }
155
-
156
- .dialog-icon {
157
- inline-size: var(--scb-dialog-icon-size, var(--spacing-7, 24px));
158
- block-size: var(--scb-dialog-icon-size, var(--spacing-7, 24px));
159
- }
160
-
161
- .content {
162
- flex: 1 1 auto;
163
- overflow:auto;
164
- margin-bottom: var(--spacing-5, 16px);
165
- color: var(--md-sys-color-on-surface-variant);
166
- }
167
-
168
- .content-surface {
169
- border-radius: calc(var(--scb-dialog-radius, var(--spacing-5, 16px)) - var(--spacing-2, 4px));
170
- overflow: hidden;
171
- background: var(--md-sys-color-surface-container-lowest, var(--md-sys-color-surface));
172
- }
173
-
174
- :host([variant="iframe"]) .container {
175
- --scb-dialog-min-w: var(--scb-dialog-min-w-iframe, var(--scb-dialog-min-w-floating, 360px));
176
- --scb-dialog-padding: var(--scb-dialog-padding-iframe, var(--spacing-3, 8px) var(--spacing-3, 8px) var(--spacing-3, 8px));
177
- }
178
-
179
- :host([variant="iframe"]) .header {
180
- display: grid;
181
- grid-template-columns: minmax(0, 1fr) auto;
182
- align-items: start;
183
- gap: var(--spacing-2, 4px);
184
- margin-bottom: var(--spacing-3, 8px);
185
- padding-block: var(--scb-dialog-header-padding-block-iframe, var(--spacing-3, 8px));
186
- padding-inline-start: var(--scb-dialog-header-padding-inline-start-iframe, var(--spacing-3, 8px));
187
- padding-inline-end: var(--scb-dialog-header-padding-inline-end-iframe, var(--spacing-3, 8px));
188
- }
189
-
190
- :host([variant="iframe"]) .header .title {
191
- min-width: 0;
192
- }
193
-
194
- :host([variant="iframe"]) .header .label {
195
- padding-inline-start: var(--scb-dialog-header-label-padding-inline-start-iframe, 0);
196
- }
197
-
198
- :host([variant="iframe"]) .header .close {
199
- margin-left: 0;
200
- align-self: start;
201
- justify-self: end;
202
- margin-top: var(--spacing-negative-2, -4px);
203
- margin-right: var(--spacing-negative-4, -12px);
204
- }
205
-
206
- :host([variant="iframe"]) .content {
207
- margin-bottom: 0;
208
- color: inherit;
209
- }
210
-
211
- :host([variant="iframe"]) .content-surface {
212
- block-size: 100%;
213
- }
214
-
215
- :host([variant="iframe"]) ::slotted(iframe) {
216
- display: block;
217
- inline-size: 100%;
218
- block-size: var(--scb-dialog-iframe-height, min(70vh, 720px));
219
- border: 0;
220
- background: var(--md-sys-color-surface-container-lowest, var(--md-sys-color-surface));
221
- }
222
-
223
- .actions {
224
- display:flex;
225
- align-items:center;
226
- gap: var(--spacing-3, 8px);
227
- justify-content:flex-end;
228
- }
229
- .actions .start { margin-right:auto; }
230
-
231
- /* Min-bredder per variant (override-ningsbara via CSS custom props) */
232
- :host([variant="choose"]) .container { --scb-dialog-min-w: var(--scb-dialog-min-w-choose, 280px); }
233
- :host([variant="alert"]) .container { --scb-dialog-min-w: var(--scb-dialog-min-w-alert, 320px); }
234
- :host([variant="confirm"]) .container { --scb-dialog-min-w: var(--scb-dialog-min-w-confirm, 360px); }
235
-
236
- /* Form-layout: enkel kolumn-grid med gap */
237
- :host([variant="form"]) form{
238
- display:grid;
239
- grid-template-columns: 1fr;
240
- gap: var(--scb-form-gap, var(--spacing-6, 20px)); /* <— token + fallback */
241
- }
242
-
243
- :host([variant="form"]) .content {
244
- overflow: visible;
245
- }
246
-
247
- :host([variant="floating"]) .container { --scb-dialog-min-w: var(--scb-dialog-min-w-floating, 360px); }
248
-
249
- /* Choose: gör slottade radios vertikala med spacing */
250
- :host([variant="choose"]) ::slotted(scb-radio-button) {
251
- display:block;
252
- margin-block: var(--scb-choice-gap, 6px);
253
- }
254
- /* Keyframes för motion-tokens (behövs för att animationer ska fungera i shadow DOM) */
255
- @keyframes scb-kf-fade-in {
256
- from { opacity: 0; }
257
- to { opacity: 1; }
258
- }
259
-
260
- @keyframes scb-kf-fade-out {
261
- from { opacity: 1; }
262
- to { opacity: 0; }
263
- }
264
-
265
- `,h);n([s({type:Boolean,reflect:!0})],o.prototype,"open",void 0);n([s({type:String,attribute:"max-w",reflect:!0})],o.prototype,"maxW",void 0);n([s({type:String,attribute:"max-h",reflect:!0})],o.prototype,"maxH",void 0);n([s({type:Number,attribute:"z-index",reflect:!0})],o.prototype,"zIndex",void 0);n([s({type:Boolean,attribute:!1})],o.prototype,"inSb",void 0);n([s({type:Boolean,attribute:"scrim-close"})],o.prototype,"scrimClose",void 0);n([s({type:String,reflect:!0})],o.prototype,"spacing",void 0);n([s({type:String,attribute:"spacing-top",reflect:!0})],o.prototype,"spacingTop",void 0);n([s({type:String,attribute:"spacing-bottom",reflect:!0})],o.prototype,"spacingBottom",void 0);n([s({type:String,attribute:"spacing-left",reflect:!0})],o.prototype,"spacingLeft",void 0);n([s({type:String,attribute:"spacing-right",reflect:!0})],o.prototype,"spacingRight",void 0);n([s({type:String})],o.prototype,"variant",void 0);n([s({type:String})],o.prototype,"label",void 0);n([s({type:String})],o.prototype,"icon",void 0);n([s({type:String,attribute:"supporting-text"})],o.prototype,"supportingText",void 0);n([s({type:String,attribute:"ok-button"})],o.prototype,"okButton",void 0);n([s({type:String,attribute:"cancel-button"})],o.prototype,"cancelButton",void 0);n([s({type:String,attribute:"delete-button"})],o.prototype,"deleteButton",void 0);n([s({type:String,attribute:"confirm-button"})],o.prototype,"confirmButton",void 0);n([s({type:String,attribute:"deny-button"})],o.prototype,"denyButton",void 0);n([s({type:String,attribute:"reset-button"})],o.prototype,"resetButton",void 0);n([s({type:String,attribute:"submit-button"})],o.prototype,"submitButton",void 0);n([s({type:String,attribute:"form-id"})],o.prototype,"formId",void 0);n([s({type:String,attribute:"form-action"})],o.prototype,"formAction",void 0);n([s({type:String,attribute:"form-method"})],o.prototype,"formMethod",void 0);o=n([b("scb-dialog")],o);export{o as ScbDialog};
@@ -1,69 +0,0 @@
1
- import{_ as g,b,g as u,h as a,y}from"../../../../../../../../vendor/vendor.js";import"../../../../../../../../vendor/vendor-lit.js";import{t as r}from"../../../../../../../../vendor/decorate.js";import{n as f,t as l}from"../../../../../../../../vendor/assertClassBrand.js";(function(){try{var n=typeof globalThis<"u"?globalThis:window;if(!n.__scb_ce_guard_installed__){n.__scb_ce_guard_installed__=!0;var i=customElements.define.bind(customElements);customElements.define=function(e,p,h){try{customElements.get(e)||i(e,p,h)}catch(d){var c=String(d||"");if(c.indexOf("already been used")===-1&&c.indexOf("NotSupportedError")===-1)throw d}}}}catch{}})();var o,s,t=(o=new WeakSet,s=class extends g{constructor(...i){super(...i),f(this,o),this.variant="thin",this.direction="horizontal",this.inset="none",this.overlay=!1,this.anchor="end",this.spacing=void 0}firstUpdated(){l(o,this,v).call(this)}updated(i){i.has("spacing")&&l(o,this,v).call(this)}mapSpacingToken(i){if(!i)return;const e=String(i).trim();if(e)return/^\d+$/.test(e)?`var(--spacing-${Math.max(0,Math.min(14,parseInt(e,10)))})`:e}render(){return y``}},s.styles=b`
2
- :host {
3
- --scb-divider-color: var(--md-sys-color-outline-variant);
4
- --scb-divider-thickness: 1px;
5
- --scb-divider-gap: var(--scb-grid-column-gap, var(--spacing-6, 24px));
6
- --scb-divider-spacing-orth: 0;
7
-
8
- display: block;
9
- box-sizing: border-box;
10
- pointer-events: none;
11
- }
12
-
13
- :host([variant='bold']) {
14
- --scb-divider-color: var(--md-sys-color-outline);
15
- }
16
-
17
- /* Horisontell avdelare: drar ut sig på inline-led, spacing på block-led (ovan/under). */
18
- :host(:not([direction='vertical'])) {
19
- inline-size: 100%;
20
- block-size: var(--scb-divider-thickness);
21
- background: var(--scb-divider-color);
22
- margin-block: var(--scb-divider-spacing-orth, 0);
23
- }
24
-
25
- :host([inset='both']:not([direction='vertical'])) {
26
- margin-inline: var(--spacing-8, 32px);
27
- }
28
- :host([inset='start']:not([direction='vertical'])) {
29
- margin-inline-start: var(--spacing-8, 32px);
30
- }
31
- :host([inset='end']:not([direction='vertical'])) {
32
- margin-inline-end: var(--spacing-8, 32px);
33
- }
34
-
35
- /* Vertikal avdelare: drar ut sig på block-led, spacing på inline-led (vänster/höger). */
36
- :host([direction='vertical']:not([overlay])) {
37
- inline-size: var(--scb-divider-thickness);
38
- block-size: 100%;
39
- background: var(--scb-divider-color);
40
- align-self: stretch;
41
- justify-self: center;
42
- margin-inline: var(--scb-divider-spacing-orth, 0);
43
- }
44
-
45
- :host([direction='vertical'][inset='both']:not([overlay])) {
46
- margin-block: var(--spacing-8, 32px);
47
- }
48
- :host([direction='vertical'][inset='start']:not([overlay])) {
49
- margin-block-start: var(--spacing-8, 32px);
50
- }
51
- :host([direction='vertical'][inset='end']:not([overlay])) {
52
- margin-block-end: var(--spacing-8, 32px);
53
- }
54
-
55
- /* Overlay-variant för vertikal avdelare, spacing ignoreras (absolut positionerad). */
56
- :host([overlay][direction='vertical']) {
57
- position: absolute;
58
- top: 0;
59
- bottom: 0;
60
- inline-size: var(--scb-divider-thickness);
61
- background: var(--scb-divider-color);
62
- }
63
- :host([overlay][direction='vertical'][anchor='end']) {
64
- right: calc(var(--scb-divider-gap) / -2);
65
- }
66
- :host([overlay][direction='vertical'][anchor='start']) {
67
- left: calc(var(--scb-divider-gap) / -2);
68
- }
69
- `,s);function v(){const n=this.mapSpacingToken(this.spacing);n?this.style.setProperty("--scb-divider-spacing-orth",n):this.style.removeProperty("--scb-divider-spacing-orth")}r([a({type:String,reflect:!0})],t.prototype,"variant",void 0);r([a({type:String,reflect:!0})],t.prototype,"direction",void 0);r([a({type:String,reflect:!0})],t.prototype,"inset",void 0);r([a({type:Boolean,reflect:!0})],t.prototype,"overlay",void 0);r([a({type:String,reflect:!0})],t.prototype,"anchor",void 0);r([a({type:String,reflect:!0})],t.prototype,"spacing",void 0);t=r([u("scb-divider")],t);export{t as ScbDivider};
@@ -1,128 +0,0 @@
1
- import{_ as f,b as h,g as p,h as d,v as _,y as v}from"../../../../../../../../vendor/vendor.js";import"../../../../../../../../vendor/vendor-lit.js";import{t as l}from"../../../../../../../../vendor/decorate.js";import"../scb-divider/scb-divider.js";(function(){try{var u=typeof globalThis<"u"?globalThis:window;if(!u.__scb_ce_guard_installed__){u.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(r,o,a){try{customElements.get(r)||e(r,o,a)}catch(n){var c=String(n||"");if(c.indexOf("already been used")===-1&&c.indexOf("NotSupportedError")===-1)throw n}}}}catch{}})();var i,t,s=(i=class extends f{constructor(...e){super(...e),this.floating=!0,this.left=!0,this.right=!1,this.open=!1,this.overlay=!1,this.lockScroll=!1,this.closeOnOverlay=!0,this.modal=!1,this.__effectiveSide="left",this.__lastTriggerEl=null,this.__lastTriggerWasAriaControls=!1,this.__onDocumentClick=r=>{const o=this.__getActionFromEvent(r);if(o){o==="open"&&this.__setOpen(!0),o==="close"&&this.__setOpen(!1),o==="toggle"&&this.__setOpen(!this.open),r.stopPropagation();return}this.floating&&this.open&&!this.overlay&&(r.composedPath().includes(this)||this.__setOpen(!1))},this.__onDocumentKeydown=r=>{if(this.open){if(r.key==="Escape"){this.__setOpen(!1);return}if(this.overlay&&r.key==="Tab"){const o=this.__getFocusable();if(o.length===0)return;const a=o[0],c=o[o.length-1],n=document.activeElement;r.shiftKey?(n===a||!n||!this.contains(n))&&(r.preventDefault(),c.focus()):(n===c||!n||!this.contains(n))&&(r.preventDefault(),a.focus())}}}}static __ensureOverlayStyles(){if(typeof document>"u"||document.getElementById("scb-drawer-overlay-styles"))return;const e=document.createElement("style");e.id="scb-drawer-overlay-styles",e.textContent=`
2
- .scb-drawer-global-overlay {
3
- position: fixed;
4
- inset: 0;
5
- background: var(--scb-drawer-overlay-color, rgba(0,0,0,0.32));
6
- opacity: 0;
7
- pointer-events: none;
8
- transition: opacity 200ms ease;
9
- z-index: var(--scb-drawer-overlay-z, 999);
10
- }
11
- .scb-drawer-global-overlay.is-visible {
12
- opacity: 1;
13
- pointer-events: auto;
14
- }
15
- @media (prefers-reduced-motion: reduce) {
16
- .scb-drawer-global-overlay { transition: none; }
17
- }
18
- `,document.head.appendChild(e)}static __ensureOverlay(){if(typeof document>"u"||t.__overlayEl)return;t.__ensureOverlayStyles();const e=document.createElement("div");e.className="scb-drawer-global-overlay",e.addEventListener("pointerdown",()=>{const r=t.__overlayStack[t.__overlayStack.length-1];r&&r.closeOnOverlay&&r.__setOpen(!1)},{passive:!0}),document.body.appendChild(e),t.__overlayEl=e}static __showOverlay(e){t.__ensureOverlay(),t.__overlayEl&&(t.__overlayStack.includes(e)||t.__overlayStack.push(e),t.__overlayEl.classList.add("is-visible"))}static __hideOverlay(e){const r=t.__overlayStack.indexOf(e);r>=0&&t.__overlayStack.splice(r,1),t.__overlayStack.length===0&&t.__overlayEl&&t.__overlayEl.classList.remove("is-visible")}static __lockScrollEnable(){if(!(typeof document>"u")){if(t.__lockedCount===0){t.__prevDocOverflow=document.documentElement.style.overflow||"",t.__prevBodyOverflow=document.body.style.overflow||"",t.__prevDocPaddingRight=document.documentElement.style.paddingRight||"",t.__prevBodyPaddingRight=document.body.style.paddingRight||"";const e=Math.max(0,window.innerWidth-document.documentElement.clientWidth);if(e>0){const r=Number.parseFloat(getComputedStyle(document.documentElement).paddingRight||"0"),o=Number.parseFloat(getComputedStyle(document.body).paddingRight||"0");document.documentElement.style.paddingRight=`${r+e}px`,document.body.style.paddingRight=`${o+e}px`}document.documentElement.style.overflow="hidden",document.body.style.overflow="hidden"}t.__lockedCount++}}static __lockScrollDisable(){typeof document>"u"||(t.__lockedCount=Math.max(0,t.__lockedCount-1),t.__lockedCount===0&&(document.documentElement.style.overflow=t.__prevDocOverflow??"",document.body.style.overflow=t.__prevBodyOverflow??"",document.documentElement.style.paddingRight=t.__prevDocPaddingRight??"",document.body.style.paddingRight=t.__prevBodyPaddingRight??""))}render(){const e=this.modal&&this.overlay&&this.floating;return v`
19
- <div
20
- class="root"
21
- role=${e?"dialog":_}
22
- aria-modal=${e?"true":_}
23
- >
24
- <div class="panel"><slot></slot></div>
25
- </div>
26
- `}connectedCallback(){super.connectedCallback(),this.__syncEffectiveSide(new Map),document.addEventListener("click",this.__onDocumentClick,!1)}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),this.overlay&&(t.__hideOverlay(this),this.lockScroll&&t.__lockScrollDisable()),super.disconnectedCallback()}__getActionFromEvent(e){if(!this.id)return null;const r=e.composedPath();for(const o of r)if(o instanceof Element){if(o.getAttribute("data-drawer-open")===this.id)return this.__lastTriggerEl=o,this.__lastTriggerWasAriaControls=!1,"open";if(o.getAttribute("data-drawer-close")===this.id)return this.__lastTriggerEl=o,this.__lastTriggerWasAriaControls=!1,"close";if(o.getAttribute("data-drawer-toggle")===this.id)return this.__lastTriggerEl=o,this.__lastTriggerWasAriaControls=!1,"toggle";if(o.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=o,this.__lastTriggerWasAriaControls=!0,"toggle"}return null}__getFocusable(){const e='button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])',r=new Set,o=a=>{a.querySelectorAll(e).forEach(c=>r.add(c))};return o(this),o(this.renderRoot),Array.from(r).filter(a=>!a.hasAttribute("disabled")&&a.tabIndex>=0)}__setOpen(e){this.open=e}__syncLastTriggerExpanded(e){this.__lastTriggerEl&&this.__lastTriggerWasAriaControls&&this.__lastTriggerEl.getAttribute("aria-controls")===this.id&&this.__lastTriggerEl.setAttribute("aria-expanded",String(e))}__syncEffectiveSide(e){const r=this.left&&this.right;let o;r?e.has("left")&&this.left&&!e.has("right")?o="left":o="right":this.right?o="right":o="left",this.__effectiveSide!==o&&(this.__effectiveSide=o),this.getAttribute("data-side")!==o&&this.setAttribute("data-side",o)}willUpdate(e){this.__syncEffectiveSide(e)}updated(e){if(e.has("open")){const r=!!e.get("open");this.__applyOpenSideEffects(r,this.open)}}__applyOpenSideEffects(e,r){r&&!e?(this.__syncLastTriggerExpanded(!0),this.floating&&this.overlay&&(t.__showOverlay(this),this.lockScroll&&t.__lockScrollEnable()),document.addEventListener("keydown",this.__onDocumentKeydown,!0),this.updateComplete.then(()=>{this.__getFocusable()[0]?.focus?.()}),this.dispatchEvent(new CustomEvent("scb-drawer-opened",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("scbdraweropened",{bubbles:!0,composed:!0}))):!r&&e&&(this.__syncLastTriggerExpanded(!1),this.floating&&this.overlay&&(t.__hideOverlay(this),this.lockScroll&&t.__lockScrollDisable()),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),this.__lastTriggerEl?.focus?.(),this.dispatchEvent(new CustomEvent("scb-drawer-closed",{bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("scbdrawerclosed",{bubbles:!0,composed:!0})))}},t=i,i.__overlayEl=null,i.__overlayStack=[],i.__lockedCount=0,i.__prevDocOverflow=null,i.__prevBodyOverflow=null,i.__prevDocPaddingRight=null,i.__prevBodyPaddingRight=null,i.styles=h`
27
- :host {
28
- display: block;
29
- color: var(--md-sys-color-on-surface);
30
- padding: var(--scb-drawer-padding, var(--spacing-4, 12px));
31
- background: var(
32
- --scb-drawer-background,
33
- var(--md-sys-color-surface-container)
34
- );
35
- font-family: var(--brand-font);
36
- }
37
-
38
- :host([floating]) {
39
- position: fixed;
40
- top: 0;
41
- height: 100vh;
42
- height: 100dvh;
43
- width: clamp(
44
- var(--scb-drawer-min-width, 280px),
45
- var(--scb-drawer-fluid-width, 70vw),
46
- var(--scb-drawer-max-width, 360px)
47
- );
48
- --scb-drawer-background: var(--md-sys-color-surface-container-lowest);
49
- box-shadow: var(
50
- --scb-drawer-elevation,
51
- 2px 0 12px rgba(0, 0, 0, 0.15)
52
- );
53
- border-radius: var(--scb-drawer-surface-radius, 0);
54
- z-index: var(--scb-drawer-z, 1000);
55
- transition:
56
- transform 0.3s ease,
57
- opacity 0.3s ease,
58
- visibility 0.3s;
59
- opacity: 0;
60
- visibility: hidden;
61
- pointer-events: none;
62
- will-change: transform;
63
- font-family: var(--brand-font);
64
- overflow: hidden;
65
- }
66
- @media (prefers-reduced-motion: reduce) {
67
- :host([floating]) {
68
- transition: none;
69
- }
70
- }
71
-
72
- :host([floating][data-side="left"]) {
73
- left: 0;
74
- transform: translateX(-100%);
75
- }
76
- :host([floating][data-side="left"][open]) {
77
- transform: translateX(0);
78
- opacity: 1;
79
- visibility: visible;
80
- pointer-events: auto;
81
- }
82
-
83
- :host([floating][data-side="right"]) {
84
- right: 0;
85
- transform: translateX(100%);
86
- box-shadow: var(
87
- --scb-drawer-elevation,
88
- -2px 0 12px rgba(0, 0, 0, 0.15)
89
- );
90
- }
91
- :host([floating][data-side="right"][open]) {
92
- transform: translateX(0);
93
- opacity: 1;
94
- visibility: visible;
95
- pointer-events: auto;
96
- }
97
-
98
- ::slotted(scb-menu) {
99
- background: var(--md-sys-color-surface-container-lowest);
100
- --scb-menu-background: var(--md-sys-color-surface-container-lowest);
101
- }
102
-
103
- .root {
104
- height: 100%;
105
- display: flex;
106
- flex-direction: column;
107
- min-height: 0;
108
- }
109
-
110
- .panel {
111
- contain: layout paint style;
112
- flex: 1 1 auto;
113
- min-height: 0;
114
- overflow: auto;
115
- scrollbar-gutter: stable;
116
- -webkit-overflow-scrolling: touch;
117
- }
118
- :host([floating]:not([open])) .panel {
119
- content-visibility: auto;
120
- contain-intrinsic-size: 0 600px;
121
- }
122
-
123
- @supports not (scrollbar-gutter: stable) {
124
- .panel {
125
- overflow-y: scroll;
126
- }
127
- }
128
- `,i);l([d({type:Boolean,reflect:!0})],s.prototype,"floating",void 0);l([d({type:Boolean,reflect:!0})],s.prototype,"left",void 0);l([d({type:Boolean,reflect:!0})],s.prototype,"right",void 0);l([d({type:Boolean,reflect:!0})],s.prototype,"open",void 0);l([d({type:Boolean,reflect:!0})],s.prototype,"overlay",void 0);l([d({type:Boolean,reflect:!0,attribute:"lock-scroll"})],s.prototype,"lockScroll",void 0);l([d({type:Boolean,reflect:!0,attribute:"close-on-overlay"})],s.prototype,"closeOnOverlay",void 0);l([d({type:Boolean,reflect:!0})],s.prototype,"modal",void 0);s=t=l([p("scb-drawer")],s);export{s as ScbDrawer};