scb-wc-test 0.1.1

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 (178) hide show
  1. package/README.md +130 -0
  2. package/all.js +54 -0
  3. package/dummy.png +0 -0
  4. package/index.d.ts +54 -0
  5. package/index.js +108 -0
  6. package/mvc/components/all.js +53 -0
  7. package/mvc/components/scb-accordion/scb-accordion-item.js +194 -0
  8. package/mvc/components/scb-accordion/scb-accordion.js +5 -0
  9. package/mvc/components/scb-app-bar/scb-app-bar.js +144 -0
  10. package/mvc/components/scb-avatar/scb-avatar.js +99 -0
  11. package/mvc/components/scb-breadcrumb/scb-breadcrumb-item.js +17 -0
  12. package/mvc/components/scb-breadcrumb/scb-breadcrumb.js +52 -0
  13. package/mvc/components/scb-button/scb-button.js +121 -0
  14. package/mvc/components/scb-calendar-card/scb-calendar-card.js +140 -0
  15. package/mvc/components/scb-card/scb-card.js +256 -0
  16. package/mvc/components/scb-checkbox/scb-checkbox-group.js +33 -0
  17. package/mvc/components/scb-checkbox/scb-checkbox.js +99 -0
  18. package/mvc/components/scb-chips/scb-chip.js +46 -0
  19. package/mvc/components/scb-dialog/scb-dialog.js +158 -0
  20. package/mvc/components/scb-divider/scb-divider.js +53 -0
  21. package/mvc/components/scb-drawer/scb-drawer-item.js +114 -0
  22. package/mvc/components/scb-drawer/scb-drawer-section.js +19 -0
  23. package/mvc/components/scb-drawer/scb-drawer.js +79 -0
  24. package/mvc/components/scb-drawer/scb-sub-drawer.js +10 -0
  25. package/mvc/components/scb-fact-card/scb-fact-card-content.js +44 -0
  26. package/mvc/components/scb-fact-card/scb-fact-card.js +66 -0
  27. package/mvc/components/scb-footer/scb-footer-section.js +3 -0
  28. package/mvc/components/scb-footer/scb-footer.js +205 -0
  29. package/mvc/components/scb-grid/scb-grid-item.js +9 -0
  30. package/mvc/components/scb-grid/scb-grid.js +81 -0
  31. package/mvc/components/scb-grid/scb-stack.js +16 -0
  32. package/mvc/components/scb-header/scb-header-drawer-group.js +1 -0
  33. package/mvc/components/scb-header/scb-header-drawer-item.js +1 -0
  34. package/mvc/components/scb-header/scb-header-tab.js +1 -0
  35. package/mvc/components/scb-header/scb-header-utility.js +1 -0
  36. package/mvc/components/scb-header/scb-header.js +240 -0
  37. package/mvc/components/scb-icon-button/scb-icon-button.js +95 -0
  38. package/mvc/components/scb-keyfigure-card/scb-keyfigure-card.js +69 -0
  39. package/mvc/components/scb-link/scb-link.js +31 -0
  40. package/mvc/components/scb-list/scb-list-item.js +38 -0
  41. package/mvc/components/scb-list/scb-list.js +10 -0
  42. package/mvc/components/scb-menu/scb-menu-item.js +44 -0
  43. package/mvc/components/scb-menu/scb-menu.js +17 -0
  44. package/mvc/components/scb-menu/scb-sub-menu.js +29 -0
  45. package/mvc/components/scb-notification/scb-notification.js +120 -0
  46. package/mvc/components/scb-progress-indicator/scb-progress-indicator.js +84 -0
  47. package/mvc/components/scb-radio-button/scb-radio-button.js +95 -0
  48. package/mvc/components/scb-radio-button/scb-radio-group.js +28 -0
  49. package/mvc/components/scb-search/scb-search.js +211 -0
  50. package/mvc/components/scb-snackbar/scb-snackbar.js +83 -0
  51. package/mvc/components/scb-status-pill/scb-status-pill.js +31 -0
  52. package/mvc/components/scb-switch/scb-switch.js +54 -0
  53. package/mvc/components/scb-tabs/scb-primary-tab.js +7 -0
  54. package/mvc/components/scb-tabs/scb-secondary-tab.js +7 -0
  55. package/mvc/components/scb-tabs/scb-tabs.js +23 -0
  56. package/mvc/components/scb-textfield/scb-textfield.js +135 -0
  57. package/mvc/components/scb-toc/scb-toc-item.js +84 -0
  58. package/mvc/components/scb-toc/scb-toc.js +6 -0
  59. package/mvc/components/scb-tooltip/scb-tooltip.js +216 -0
  60. package/mvc/scb-logo.svg +21 -0
  61. package/mvc/scb-wc-test.css +1 -0
  62. package/mvc/scb.svg +14 -0
  63. package/mvc/vendor/preload-helper.js +1 -0
  64. package/mvc/vendor/vendor-lit.js +1 -0
  65. package/mvc/vendor/vendor-material.js +764 -0
  66. package/mvc/vendor/vendor.js +68 -0
  67. package/package.json +248 -0
  68. package/scb-accordion/scb-accordion-item.d.ts +37 -0
  69. package/scb-accordion/scb-accordion-item.js +343 -0
  70. package/scb-accordion/scb-accordion.d.ts +6 -0
  71. package/scb-accordion/scb-accordion.js +33 -0
  72. package/scb-app-bar/scb-app-bar.d.ts +10 -0
  73. package/scb-app-bar/scb-app-bar.js +192 -0
  74. package/scb-avatar/scb-avatar.d.ts +30 -0
  75. package/scb-avatar/scb-avatar.js +169 -0
  76. package/scb-breadcrumb/scb-breadcrumb-item.d.ts +9 -0
  77. package/scb-breadcrumb/scb-breadcrumb-item.js +54 -0
  78. package/scb-breadcrumb/scb-breadcrumb.d.ts +16 -0
  79. package/scb-breadcrumb/scb-breadcrumb.js +105 -0
  80. package/scb-button/scb-button.d.ts +26 -0
  81. package/scb-button/scb-button.js +247 -0
  82. package/scb-calendar-card/scb-calendar-card.d.ts +20 -0
  83. package/scb-calendar-card/scb-calendar-card.js +191 -0
  84. package/scb-card/scb-card.d.ts +24 -0
  85. package/scb-card/scb-card.js +345 -0
  86. package/scb-checkbox/scb-checkbox-group.d.ts +17 -0
  87. package/scb-checkbox/scb-checkbox-group.js +80 -0
  88. package/scb-checkbox/scb-checkbox.d.ts +20 -0
  89. package/scb-checkbox/scb-checkbox.js +157 -0
  90. package/scb-chips/scb-chip.d.ts +24 -0
  91. package/scb-chips/scb-chip.js +150 -0
  92. package/scb-dialog/scb-dialog.d.ts +58 -0
  93. package/scb-dialog/scb-dialog.js +390 -0
  94. package/scb-divider/scb-divider.d.ts +9 -0
  95. package/scb-divider/scb-divider.js +85 -0
  96. package/scb-drawer/scb-drawer-item.d.ts +61 -0
  97. package/scb-drawer/scb-drawer-item.js +220 -0
  98. package/scb-drawer/scb-drawer-section.d.ts +7 -0
  99. package/scb-drawer/scb-drawer-section.js +44 -0
  100. package/scb-drawer/scb-drawer.d.ts +97 -0
  101. package/scb-drawer/scb-drawer.js +258 -0
  102. package/scb-drawer/scb-sub-drawer.d.ts +10 -0
  103. package/scb-drawer/scb-sub-drawer.js +43 -0
  104. package/scb-fact-card/scb-fact-card-content.d.ts +10 -0
  105. package/scb-fact-card/scb-fact-card-content.js +83 -0
  106. package/scb-fact-card/scb-fact-card.d.ts +15 -0
  107. package/scb-fact-card/scb-fact-card.js +110 -0
  108. package/scb-footer/scb-footer-section.d.ts +21 -0
  109. package/scb-footer/scb-footer-section.js +28 -0
  110. package/scb-footer/scb-footer.d.ts +27 -0
  111. package/scb-footer/scb-footer.js +326 -0
  112. package/scb-grid/scb-grid-item.d.ts +28 -0
  113. package/scb-grid/scb-grid-item.js +66 -0
  114. package/scb-grid/scb-grid.d.ts +33 -0
  115. package/scb-grid/scb-grid.js +152 -0
  116. package/scb-grid/scb-stack.d.ts +29 -0
  117. package/scb-grid/scb-stack.js +82 -0
  118. package/scb-header/scb-header-drawer-group.d.ts +13 -0
  119. package/scb-header/scb-header-drawer-group.js +28 -0
  120. package/scb-header/scb-header-drawer-item.d.ts +14 -0
  121. package/scb-header/scb-header-drawer-item.js +31 -0
  122. package/scb-header/scb-header-tab.d.ts +13 -0
  123. package/scb-header/scb-header-tab.js +28 -0
  124. package/scb-header/scb-header-utility.d.ts +14 -0
  125. package/scb-header/scb-header-utility.js +31 -0
  126. package/scb-header/scb-header.d.ts +105 -0
  127. package/scb-header/scb-header.js +618 -0
  128. package/scb-icon-button/scb-icon-button.d.ts +31 -0
  129. package/scb-icon-button/scb-icon-button.js +208 -0
  130. package/scb-keyfigure-card/scb-keyfigure-card.d.ts +13 -0
  131. package/scb-keyfigure-card/scb-keyfigure-card.js +119 -0
  132. package/scb-link/scb-link.d.ts +17 -0
  133. package/scb-link/scb-link.js +74 -0
  134. package/scb-list/scb-list-item.d.ts +32 -0
  135. package/scb-list/scb-list-item.js +144 -0
  136. package/scb-list/scb-list.d.ts +8 -0
  137. package/scb-list/scb-list.js +39 -0
  138. package/scb-logo.svg +21 -0
  139. package/scb-menu/scb-menu-item.d.ts +22 -0
  140. package/scb-menu/scb-menu-item.js +107 -0
  141. package/scb-menu/scb-menu.d.ts +21 -0
  142. package/scb-menu/scb-menu.js +98 -0
  143. package/scb-menu/scb-sub-menu.d.ts +12 -0
  144. package/scb-menu/scb-sub-menu.js +69 -0
  145. package/scb-notification/scb-notification.d.ts +16 -0
  146. package/scb-notification/scb-notification.js +187 -0
  147. package/scb-progress-indicator/scb-progress-indicator.d.ts +11 -0
  148. package/scb-progress-indicator/scb-progress-indicator.js +122 -0
  149. package/scb-radio-button/scb-radio-button.d.ts +19 -0
  150. package/scb-radio-button/scb-radio-button.js +176 -0
  151. package/scb-radio-button/scb-radio-group.d.ts +20 -0
  152. package/scb-radio-button/scb-radio-group.js +81 -0
  153. package/scb-search/scb-search.d.ts +45 -0
  154. package/scb-search/scb-search.js +410 -0
  155. package/scb-snackbar/scb-snackbar.d.ts +17 -0
  156. package/scb-snackbar/scb-snackbar.js +140 -0
  157. package/scb-status-pill/scb-status-pill.d.ts +9 -0
  158. package/scb-status-pill/scb-status-pill.js +62 -0
  159. package/scb-switch/scb-switch.d.ts +21 -0
  160. package/scb-switch/scb-switch.js +111 -0
  161. package/scb-tabs/scb-primary-tab.d.ts +17 -0
  162. package/scb-tabs/scb-primary-tab.js +93 -0
  163. package/scb-tabs/scb-secondary-tab.d.ts +17 -0
  164. package/scb-tabs/scb-secondary-tab.js +97 -0
  165. package/scb-tabs/scb-tabs.d.ts +10 -0
  166. package/scb-tabs/scb-tabs.js +66 -0
  167. package/scb-textfield/scb-textfield.d.ts +41 -0
  168. package/scb-textfield/scb-textfield.js +258 -0
  169. package/scb-toc/scb-toc-item.d.ts +21 -0
  170. package/scb-toc/scb-toc-item.js +196 -0
  171. package/scb-toc/scb-toc.d.ts +6 -0
  172. package/scb-toc/scb-toc.js +27 -0
  173. package/scb-tooltip/scb-tooltip.d.ts +32 -0
  174. package/scb-tooltip/scb-tooltip.js +329 -0
  175. package/scb-wc-test.bundle.js +5429 -0
  176. package/scb-wc-test.css +1 -0
  177. package/scb-wc-test.d.ts +106 -0
  178. package/scb.svg +14 -0
@@ -0,0 +1,38 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../../vendor/vendor-material.js","../../vendor/vendor.js","../scb-checkbox/scb-checkbox.js","../scb-switch/scb-switch.js","../../vendor/preload-helper.js"])))=>i.map(i=>d[i]);
2
+ import{_ as g}from"../../vendor/preload-helper.js";import{n as s,t as I,i as V,b as $,x as c,E as h}from"../../vendor/vendor.js";var L=Object.defineProperty,E=Object.getOwnPropertyDescriptor,S=t=>{throw TypeError(t)},r=(t,i,e,n)=>{for(var l=n>1?void 0:n?E(i,e):i,o=t.length-1,b;o>=0;o--)(b=t[o])&&(l=(n?b(i,e,l):b(l))||l);return n&&l&&L(i,e,l),l},x=(t,i,e)=>i.has(t)||S("Cannot "+e),d=(t,i,e)=>(x(t,i,"read from private field"),i.get(t)),p=(t,i,e)=>i.has(t)?S("Cannot add the same private member more than once"):i instanceof WeakSet?i.add(t):i.set(t,e),v=(t,i,e,n)=>(x(t,i,"write to private field"),i.set(t,e),e),k=(t,i,e)=>(x(t,i,"access private method"),e),m,y,u,_,f,w;let a=class extends V{constructor(){super(...arguments),p(this,f),this.type="text",this.href="",this.itemHref="",this.target="",this.disabled=!1,this.label="",this.supportingText="",this.overline="",this.leading=!1,this.leadingIcon="",this.imgHrefAvatar="https://www.scb.se/img/scb-logo.svg",this.imgHrefImage="https://www.scb.se/img/scb-logo.svg",this.leadingVariant="image",this.trailing=!1,this.trailingIcon="",this.trailingVariant="icon",p(this,m,!1),p(this,y,!1),p(this,u,!1),p(this,_,!1)}static get styles(){return $`
3
+ :host { border-bottom: 1px solid var(--md-sys-color-outline-variant); }
4
+ .scb-list-item { display: flex; }
5
+ .leading-content { margin-right: 16px; align-self: center; }
6
+ .trailing-content { margin-left: auto; align-self: center; }
7
+ .trailing-content scb-checkbox { margin-right: 11px; }
8
+ .label { line-height: 27px; }
9
+ .overline { font-size: 14px; color: var(--md-sys-color-on-surface-variant); line-height: 21px; }
10
+ .supporting-text { font-size: 16px; color: var(--md-sys-color-on-surface-variant); line-height: 24px; }
11
+
12
+ .leading-content:has(.avatar) {
13
+ width: 40px; height: 40px;
14
+ background: var(--md-sys-color-primary-container);
15
+ border-radius: 50%;
16
+ align-content: center; justify-items: center;
17
+ }
18
+ .avatar { width: 24px; height: 24px; position: relative; display: flex; }
19
+ .img { width: 56px; height: 56px; }
20
+ `}async firstUpdated(){await k(this,f,w).call(this)}updated(t){super.updated(t),(t.has("leading")||t.has("leadingVariant")||t.has("trailing")||t.has("trailingVariant")||t.has("type")||t.has("target"))&&k(this,f,w).call(this)}onListClick(){if(this.type==="link"&&(this.href||this.itemHref))return;const t=this.shadowRoot?.querySelector("scb-checkbox"),i=this.shadowRoot?.querySelector("scb-switch");t&&(t.checked=!t.checked),i&&(i.selected=!i.selected)}render(){const t=this.leadingVariant==="icon"?c`<div class="leading-content"><md-icon>${this.leadingIcon}</md-icon></div>`:this.leadingVariant==="avatar"?c`<div class="leading-content"><img class="avatar" src="${this.imgHrefAvatar}" /></div>`:this.leadingVariant==="image"?c`<div class="leading-content"><img class="img" src="${this.imgHrefImage}" /></div>`:h,i=this.href||this.itemHref||"",e=this.target==="_blank"?"open_in_new":"chevron_right";let n=h;if(this.trailing)if(this.trailingVariant==="icon"){const o=this.trailingIcon||(this.type==="link"?e:"");n=o?c`<div class="trailing-content"><md-icon>${o}</md-icon></div>`:h}else this.trailingVariant==="checkbox"?n=c`<div class="trailing-content"><scb-checkbox @click=${o=>o.stopPropagation()}></scb-checkbox></div>`:this.trailingVariant==="switch"&&(n=c`<div class="trailing-content"><scb-switch @click=${o=>o.stopPropagation()}></scb-switch></div>`);else this.type==="link"&&(n=c`<div class="trailing-content"><md-icon>${e}</md-icon></div>`);const l=this.type==="link"&&this.target==="_blank"?"noopener noreferrer":h;return c`
21
+ <md-list-item
22
+ type=${this.type}
23
+ href=${this.type==="link"&&i?i:h}
24
+ target=${this.type==="link"&&this.target?this.target:h}
25
+ rel=${l}
26
+ ?disabled=${this.disabled}
27
+ >
28
+ <div class="scb-list-item" @click=${this.onListClick}>
29
+ ${this.leading?t:h}
30
+ <div>
31
+ <div class="overline">${this.overline}</div>
32
+ <div class="label">${this.label}</div>
33
+ <div class="supporting-text">${this.supportingText}</div>
34
+ </div>
35
+ ${n}
36
+ </div>
37
+ </md-list-item>
38
+ `}};m=new WeakMap;y=new WeakMap;u=new WeakMap;_=new WeakMap;f=new WeakSet;w=async function(){d(this,m)||(await g(()=>import("../../vendor/vendor-material.js").then(e=>e.l),__vite__mapDeps([0,1]),import.meta.url),v(this,m,!0));const t=this.type==="link"&&(!this.trailing||this.trailingVariant==="icon");(this.leading&&this.leadingVariant==="icon"||this.trailing&&this.trailingVariant==="icon"||t)&&!d(this,y)&&(await g(()=>import("../../vendor/vendor-material.js").then(e=>e.i),__vite__mapDeps([0,1]),import.meta.url),v(this,y,!0)),this.trailing&&this.trailingVariant==="checkbox"&&!d(this,u)&&(await g(()=>import("../scb-checkbox/scb-checkbox.js"),__vite__mapDeps([2,1,0]),import.meta.url),v(this,u,!0)),this.trailing&&this.trailingVariant==="switch"&&!d(this,_)&&(await g(()=>import("../scb-switch/scb-switch.js"),__vite__mapDeps([3,4,1]),import.meta.url),v(this,_,!0))};r([s({type:String,reflect:!0,attribute:"type"})],a.prototype,"type",2);r([s({type:String})],a.prototype,"href",2);r([s({type:String,attribute:"item-href"})],a.prototype,"itemHref",2);r([s({type:String,attribute:"target"})],a.prototype,"target",2);r([s({type:Boolean,attribute:"disabled"})],a.prototype,"disabled",2);r([s({type:String,reflect:!0})],a.prototype,"label",2);r([s({type:String,attribute:"supporting-text"})],a.prototype,"supportingText",2);r([s({type:String,attribute:"overline"})],a.prototype,"overline",2);r([s({type:Boolean})],a.prototype,"leading",2);r([s({type:String,attribute:"leading-icon"})],a.prototype,"leadingIcon",2);r([s({type:String,reflect:!0,attribute:"img-href-avatar"})],a.prototype,"imgHrefAvatar",2);r([s({type:String,reflect:!0,attribute:"img-href-image"})],a.prototype,"imgHrefImage",2);r([s({type:String,reflect:!0,attribute:"leading-variant"})],a.prototype,"leadingVariant",2);r([s({type:Boolean})],a.prototype,"trailing",2);r([s({type:String,attribute:"trailing-icon"})],a.prototype,"trailingIcon",2);r([s({type:String,reflect:!0,attribute:"trailing-variant"})],a.prototype,"trailingVariant",2);a=r([I("scb-list-item")],a);
@@ -0,0 +1,10 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../../vendor/vendor-material.js","../../vendor/vendor.js"])))=>i.map(i=>d[i]);
2
+ import{_ as n}from"../../vendor/preload-helper.js";import{b as v,i as c,x as f,t as h}from"../../vendor/vendor.js";import"./scb-list-item.js";var m=Object.getOwnPropertyDescriptor,l=t=>{throw TypeError(t)},u=(t,r,e,i)=>{for(var s=i>1?void 0:i?m(r,e):r,o=t.length-1,_;o>=0;o--)(_=t[o])&&(s=_(s)||s);return s},p=(t,r,e)=>r.has(t)||l("Cannot "+e),y=(t,r,e)=>(p(t,r,"read from private field"),r.get(t)),w=(t,r,e)=>r.has(t)?l("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(t):r.set(t,e),g=(t,r,e,i)=>(p(t,r,"write to private field"),r.set(t,e),e),a;let d=class extends c{constructor(){super(...arguments),w(this,a,!1)}async firstUpdated(){y(this,a)||(await n(()=>import("../../vendor/vendor-material.js").then(t=>t.e),__vite__mapDeps([0,1]),import.meta.url),g(this,a,!0))}render(){return f`
3
+ <md-list role="list">
4
+ <slot></slot>
5
+ </md-list>
6
+ `}};a=new WeakMap;d.styles=[v`
7
+ ::slotted(scb-list-item:first-of-type) {
8
+ border-top: 1px solid var(--md-sys-color-outline-variant);
9
+ }
10
+ `];d=u([h("scb-list")],d);
@@ -0,0 +1,44 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../../vendor/vendor-material.js","../../vendor/vendor.js"])))=>i.map(i=>d[i]);
2
+ import{_ as h}from"../../vendor/preload-helper.js";import{b as c,n as r,i as m,x as i,t as u}from"../../vendor/vendor.js";import"../scb-divider/scb-divider.js";var f=Object.defineProperty,g=Object.getOwnPropertyDescriptor,n=(e,s,l,a)=>{for(var o=a>1?void 0:a?g(s,l):s,p=e.length-1,d;p>=0;p--)(d=e[p])&&(o=(a?d(s,l,o):d(o))||o);return a&&o&&f(s,l,o),o};let t=class extends m{constructor(){super(...arguments),this.label="",this.hasSubMenu=!1,this.openLeft=!1,this.divider=!1,this.leadingIcon="",this.trailingIcon="",this.itemHref="",this.handleClick=e=>{this.itemHref?this._navigateToHref(e):this._toggleSubMenu()},this._onKeyDown=e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),this.handleClick(e))}}async firstUpdated(){t.__iconLoaded||(await h(()=>import("../../vendor/vendor-material.js").then(e=>e.i),__vite__mapDeps([0,1]),import.meta.url),t.__iconLoaded=!0),t.__rippleLoaded||(await h(()=>import("../../vendor/vendor-material.js").then(e=>e.r),__vite__mapDeps([0,1]),import.meta.url),t.__rippleLoaded=!0)}updated(){const e=this.nextElementSibling;this.hasSubMenu=!!(e&&e.tagName==="SCB-SUB-MENU"),this.openLeft=!!(this.hasSubMenu&&e&&e.hasAttribute("open-left"))}render(){return i`
3
+ ${this.divider?i`<scb-divider></scb-divider>`:""}
4
+ <li @click=${this.handleClick} @keydown=${this._onKeyDown} role="menuitem" tabindex="0">
5
+ ${this.itemHref?i`<a href="${this.itemHref}" tabindex="-1">
6
+ ${this.leadingIcon?i`<md-icon>${this.leadingIcon}</md-icon>`:""}
7
+ <div>${this.label}</div>
8
+ ${this.trailingIcon?i`<md-icon>${this.trailingIcon}</md-icon>`:""}
9
+ <md-ripple></md-ripple>
10
+ </a>`:i`
11
+ ${this.leadingIcon?i`<md-icon>${this.leadingIcon}</md-icon>`:""}
12
+ <div>${this.label}</div>
13
+ ${this.trailingIcon?i`<md-icon>${this.trailingIcon}</md-icon>`:""}
14
+ <md-ripple></md-ripple>
15
+ `}
16
+ </li>
17
+ `}_navigateToHref(e){this.itemHref&&(window.location.href=this.itemHref),e.stopPropagation()}_toggleSubMenu(){const e=this.nextElementSibling;e&&e.tagName==="SCB-SUB-MENU"&&(e.hasAttribute("open")?e.dispatchEvent(new CustomEvent("hide-submenu",{bubbles:!0,composed:!0})):e.dispatchEvent(new CustomEvent("show-submenu",{bubbles:!0,composed:!0})))}};t.__iconLoaded=!1;t.__rippleLoaded=!1;t.styles=c`
18
+ :host { display: block; }
19
+ :host li{
20
+ position: relative;
21
+ list-style: none;
22
+ padding: 8px 16px;
23
+ cursor: pointer;
24
+ min-height: 56px;
25
+ font-size: 18px;
26
+ display: flex;
27
+ gap: 12px;
28
+ align-items: center;
29
+ max-width: 300px;
30
+ min-width: 112px;
31
+ }
32
+ :host li a {
33
+ display: flex;
34
+ gap: 12px;
35
+ align-items: center;
36
+ color: var(--md-sys-color-on-surface);
37
+ text-decoration: none;
38
+ }
39
+ li:hover md-ripple {
40
+ --md-ripple-hover-color: transparent;
41
+ --md-ripple-hover-opacity: 0;
42
+ }
43
+ li:hover { background: var(--md-sys-color-secondary-container, #D6F1FF); }
44
+ `;n([r({type:String})],t.prototype,"label",2);n([r({type:Boolean})],t.prototype,"hasSubMenu",2);n([r({type:Boolean})],t.prototype,"openLeft",2);n([r({type:Boolean})],t.prototype,"divider",2);n([r({type:String,attribute:"leading-icon"})],t.prototype,"leadingIcon",2);n([r({type:String,attribute:"trailing-icon"})],t.prototype,"trailingIcon",2);n([r({type:String,attribute:"item-href"})],t.prototype,"itemHref",2);t=n([u("scb-menu-item")],t);
@@ -0,0 +1,17 @@
1
+ import{b as c,n as d,i as u,x as p,t as _}from"../../vendor/vendor.js";import"./scb-menu-item.js";import"./scb-sub-menu.js";import"../../vendor/preload-helper.js";import"../scb-divider/scb-divider.js";var h=Object.defineProperty,f=Object.getOwnPropertyDescriptor,l=(e,t,n,i)=>{for(var s=i>1?void 0:i?f(t,n):t,r=e.length-1,a;r>=0;r--)(a=e[r])&&(s=(i?a(t,n,s):a(s))||s);return i&&s&&h(t,n,s),s};let o=class extends u{constructor(){super(...arguments),this.open=!1,this.__lastTriggerEl=null,this.__onDocumentClick=e=>{const t=this.__getActionFromEvent(e);if(t){t==="open"&&this.__setOpen(!0),t==="close"&&this.__setOpen(!1),t==="toggle"&&this.__setOpen(!this.open),e.stopPropagation();return}},this.__onDocumentKeydown=e=>{if(this.open&&e.key==="Escape"){this.__setOpen(!1);return}}}render(){return p`
2
+ <div style="display:${this.open?"block":"none"};">
3
+ <slot></slot>
4
+ </div>
5
+ `}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.__onDocumentClick,!1),document.addEventListener("keydown",this.__onDocumentKeydown,!0)}disconnectedCallback(){document.removeEventListener("click",this.__onDocumentClick,!1),document.removeEventListener("keydown",this.__onDocumentKeydown,!0),super.disconnectedCallback()}__setOpen(e){this.open=e}__getActionFromEvent(e){if(!this.id)return null;const t=e.composedPath();for(const n of t)if(n instanceof Element){if(n.getAttribute("data-menu-open")===this.id)return this.__lastTriggerEl=n,"open";if(n.getAttribute("data-menu-close")===this.id)return this.__lastTriggerEl=n,"close";if(n.getAttribute("data-menu-toggle")===this.id)return this.__lastTriggerEl=n,"toggle";if(n.getAttribute("aria-controls")===this.id)return this.__lastTriggerEl=n,"toggle"}return null}updated(e){e.has("open")&&this.__applyOpenSideEffects()}__applyOpenSideEffects(){this.__updateTriggersExpanded()}__updateTriggersExpanded(){if(!this.id)return;document.querySelectorAll(`[aria-controls="${this.id}"], [data-menu-open="${this.id}"], [data-menu-close="${this.id}"], [data-menu-toggle="${this.id}"]`).forEach(t=>{t.hasAttribute("aria-controls")&&t.setAttribute("aria-expanded",String(this.open))})}};o.styles=c`
6
+ :host {
7
+ position: absolute;
8
+ display: block;
9
+ color: var(--md-sys-color-on-surface);
10
+ border-radius: var(--Radius-Extra-small, 4px);
11
+ background: var(--md-sys-color-surface, #FFF);
12
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.20), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 4px 5px 0 rgba(0, 0, 0, 0.14);
13
+ }
14
+ :host div {
15
+ background: var(--md-sys-color-surface, #FFF);
16
+ }
17
+ `;l([d({type:Boolean,reflect:!0})],o.prototype,"open",2);o=l([_("scb-menu")],o);
@@ -0,0 +1,29 @@
1
+ import{b as l,n as u,i as h,x as b,t as d}from"../../vendor/vendor.js";var c=Object.defineProperty,m=Object.getOwnPropertyDescriptor,a=(t,e,i,n)=>{for(var s=n>1?void 0:n?m(e,i):e,r=t.length-1,p;r>=0;r--)(p=t[r])&&(s=(n?p(e,i,s):p(s))||s);return n&&s&&c(e,i,s),s};let o=class extends h{constructor(){super(...arguments),this.open=!1,this._show=()=>{this.setAttribute("open",""),this.open=!0},this._hide=t=>{this.removeAttribute("open"),this.open=!1,t&&t.stopPropagation()}}connectedCallback(){super.connectedCallback(),this.addEventListener("show-submenu",this._show),this.addEventListener("hide-submenu",this._hide)}disconnectedCallback(){this.removeEventListener("show-submenu",this._show),this.removeEventListener("hide-submenu",this._hide),super.disconnectedCallback()}firstUpdated(){let t=0,e=this.parentElement;for(;e;)e.tagName==="SCB-SUB-MENU"&&t++,e=e.parentElement;t%2===1?this.setAttribute("open-left",""):this.removeAttribute("open-left")}render(){return b`
2
+ <div class="submenu${this.open?" open":""}">
3
+ <slot></slot>
4
+ </div>
5
+ `}};o.styles=l`
6
+ :host {
7
+ display: block;
8
+ position: relative;
9
+
10
+ }
11
+ .submenu {
12
+ display: none;
13
+ position: absolute;
14
+ left: 100%;
15
+ top: -44px;
16
+ z-index: 100;
17
+ border-radius: var(--Radius-Extra-small, 4px);
18
+ background: var(--md-sys-color-surface, #FFF);
19
+ box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.20), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 4px 5px 0 rgba(0, 0, 0, 0.14);
20
+ }
21
+ :host([open-left]) .submenu {
22
+ left: auto;
23
+ right: 100%;
24
+ }
25
+ :host([open]) .submenu,
26
+ .submenu.open {
27
+ display: block;
28
+ }
29
+ `;a([u({type:Boolean,reflect:!0})],o.prototype,"open",2);o=a([d("scb-sub-menu")],o);
@@ -0,0 +1,120 @@
1
+ import{b as h,n as i,i as f,x as n,t as d}from"../../vendor/vendor.js";import"../scb-icon-button/scb-icon-button.js";import"../../vendor/vendor-material.js";import"../../vendor/preload-helper.js";var x=Object.defineProperty,u=Object.getOwnPropertyDescriptor,o=(r,s,a,c)=>{for(var e=c>1?void 0:c?u(s,a):s,l=r.length-1,p;l>=0;l--)(p=r[l])&&(e=(c?p(s,a,e):p(e))||e);return c&&e&&x(s,a,e),e};let t=class extends f{constructor(){super(...arguments),this.open=!1,this.label="",this.type="success",this.linkText="",this.linkhref="#",this.showIcon=!1,this.showCloseButton=!1,this._closeNotification=()=>{this.open=!1;const r=new CustomEvent("close",{detail:{open:this.open}});this.dispatchEvent(r)}}_iconForType(){switch(this.type){case"success":return"check_circle";case"error":return"error";case"warning":return"warning";case"info":return"info";default:return"info"}}render(){return n`
2
+ <div class="notification" type=${this.type} role="alert" aria-live="assertive" aria-atomic="true" style="display: ${this.open?"flex":"none"};">
3
+ ${this.showIcon||this.showCloseButton?n`<div class="notification-header">
4
+ ${this.showIcon?n`<md-icon>${this._iconForType()}</md-icon>`:""}
5
+ ${this.showCloseButton?n`<scb-icon-button icon="close" @click=${this._closeNotification}></scb-icon-button>`:""}
6
+ </div>`:""}
7
+ <div class="notification-content">
8
+ ${this.label?n`<div class="notification-label">${this.label}</div>`:""}
9
+ <slot></slot>
10
+ ${this.linkText?n`
11
+ <div class="notification-footer">
12
+ <a class="footer-link" href="${this.linkhref}">${this.linkText}</a>
13
+ </div>
14
+ `:""}
15
+ <div>
16
+ </div>
17
+ `}};t.styles=[h`
18
+ :host {
19
+ display: block;
20
+ position: relative;
21
+ container-type: inline-size;
22
+ container-name: notification-container;
23
+ }
24
+
25
+ .notification {
26
+ border-radius: 12px;
27
+ padding: 16px;
28
+ display: flex;
29
+ gap: 12px;
30
+ flex-direction: column;
31
+
32
+ }
33
+ @container notification-container (min-width: 400px) {
34
+ .notification {
35
+ flex-direction: row;
36
+ }
37
+ .notification-label {
38
+ margin-right: 40px;
39
+ }
40
+ }
41
+ .notification-label {
42
+ font-weight: 600;
43
+ font-size: 20px;
44
+ line-height: 28px; /* 140% */
45
+ letter-spacing: -0.4px;
46
+ }
47
+ .notification[type="success"] {
48
+ background: var(--md-sys-color-success-container);
49
+ color: var(--md-sys-color-on-success-container);
50
+
51
+ a{
52
+ text-decoration: underline;
53
+ text-decoration-thickness: 1px;
54
+ text-underline-offset: .1578em;
55
+ color: var(--md-sys-color-on-success-container);
56
+ &:hover {text-decoration-thickness: 2px;}
57
+ }
58
+ }
59
+ .notification[type="error"] {
60
+ background: var(--md-sys-color-error-container);
61
+ color: var(--md-sys-color-on-error-container);
62
+ a{
63
+ text-decoration: underline;
64
+ text-decoration-thickness: 1px;
65
+ text-underline-offset: .1578em;
66
+ color: var(--md-sys-color-on-error-container);
67
+ &:hover {text-decoration-thickness: 2px;}
68
+ }
69
+ }
70
+ .notification[type="warning"] {
71
+ background: var(--md-sys-color-warning-container);
72
+ color: var(--md-sys-color-on-warning-container);
73
+ a{
74
+ text-decoration: underline;
75
+ text-decoration-thickness: 1px;
76
+ text-underline-offset: .1578em;
77
+ color: var(--md-sys-color-on-warning-container);
78
+ &:hover {text-decoration-thickness: 2px;}
79
+ }
80
+ }
81
+ .notification[type="info"] {
82
+ background: var(--md-sys-color-info-container);
83
+ color: var(--md-sys-color-on-info-container);
84
+ a{
85
+ text-decoration: underline;
86
+ text-decoration-thickness: 1px;
87
+ text-underline-offset: .1578em;
88
+ color: var(--md-sys-color-on-info-container);
89
+ &:hover {text-decoration-thickness: 2px;}
90
+ }
91
+ }
92
+ .notification-header scb-icon-button {
93
+ position: absolute;
94
+ right: 8px;
95
+ top: 8px;
96
+ }
97
+ .notification-content{
98
+ display: flex;
99
+ flex-direction: column;
100
+ gap: 4px;
101
+ }
102
+ slot{
103
+ font-size: 18px;
104
+ line-height: 26px;
105
+ }
106
+ .notification-footer {
107
+ font-size: 18px;
108
+ margin-top: 4px;
109
+ line-height: 26px; /* 133% */
110
+ }
111
+
112
+ :host([open]) .notification {
113
+ opacity: 1;
114
+ }
115
+
116
+ :host(:not([open])) .notification {
117
+ opacity: 0;
118
+ pointer-events: none;
119
+ }
120
+ `];o([i({type:Boolean,reflect:!0})],t.prototype,"open",2);o([i({type:String})],t.prototype,"label",2);o([i({type:String})],t.prototype,"type",2);o([i({type:String,attribute:"link-text"})],t.prototype,"linkText",2);o([i({type:String,attribute:"link-href"})],t.prototype,"linkhref",2);o([i({type:Boolean,attribute:"show-icon"})],t.prototype,"showIcon",2);o([i({type:Boolean,attribute:"show-close-button"})],t.prototype,"showCloseButton",2);t=o([d("scb-notification")],t);
@@ -0,0 +1,84 @@
1
+ import{b as d,n as s,i as f,x as i,t as h}from"../../vendor/vendor.js";var g=Object.defineProperty,u=Object.getOwnPropertyDescriptor,t=(p,a,c,o)=>{for(var e=o>1?void 0:o?u(a,c):a,l=p.length-1,n;l>=0;l--)(n=p[l])&&(e=(o?n(a,c,e):n(e))||e);return o&&e&&g(a,c,e),e};let r=class extends f{constructor(){super(...arguments),this.label="",this.type="circular",this.color="#1f44ff",this.progress=25,this.isStatic=!0}render(){return console.log("scb-progress-indicator isStatic:",this.isStatic),i`
2
+ <div class="scb-progress-indicator">
3
+ ${this.type==="circular"?i`
4
+ <div class="circular">
5
+ <svg class="circular-spin" viewBox="0 0 40 40">
6
+ <circle class="circular-bg" cx="20" cy="20" r="16" fill="none" stroke-width="4" />
7
+ <circle
8
+ class="circular-fg"
9
+ cx="20" cy="20" r="16" fill="none" stroke-width="4"
10
+ stroke="${this.color}"
11
+ stroke-dasharray="${2*Math.PI*16}"
12
+ stroke-dashoffset="${(1-this.progress/100)*2*Math.PI*16}"
13
+ />
14
+ </svg>
15
+ </div>
16
+ `:i`
17
+ <div class="linear">
18
+ ${this.isStatic?i`<div class="linear-static" style="width: ${this.progress}%; background: ${this.color};"></div>`:i`<div class="linear-loader" style="background: ${this.color};"></div>`}
19
+ </div>
20
+ `}
21
+ </div>
22
+ `}};r.styles=[d`
23
+ :host {
24
+ display: block;
25
+ font-family: var(--brand-font, sans-serif);
26
+ color: var(--md-sys-color-on-surface, #222);
27
+ }
28
+ .circular {
29
+ display: flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+ width: 46px;
33
+ height: 46px;
34
+ position: relative;
35
+ }
36
+ .circular-spin {
37
+ animation: spin 1s linear infinite;
38
+ width: 46px;
39
+ height: 46px;
40
+ position: relative;
41
+ z-index: 1;
42
+ }
43
+ @keyframes spin {
44
+ 0% { transform: rotate(0deg); }
45
+ 100% { transform: rotate(360deg); }
46
+ }
47
+ .circular-bg {
48
+ stroke: #eee;
49
+ }
50
+ .circular-fg {
51
+ transition: stroke-dashoffset 0.3s ease;
52
+ }
53
+ .circular-bg {
54
+ stroke: #eee;
55
+ }
56
+ .circular-fg {
57
+ transition: stroke-dashoffset 0.3s ease;
58
+ }
59
+ .linear {
60
+ width: 100%;
61
+ height: 6px;
62
+ background: #eee;
63
+ border-radius: 3px;
64
+ overflow: hidden;
65
+ position: relative;
66
+ }
67
+ .linear-loader {
68
+ height: 100%;
69
+ width: 40%;
70
+ background: var(--p-40, #1f44ff);
71
+ border-radius: 3px;
72
+ animation: linear-progress 1.2s cubic-bezier(.4,0,.2,1) infinite;
73
+ }
74
+ .linear-static {
75
+ height: 100%;
76
+ border-radius: 3px;
77
+ transition: width 0.3s ease;
78
+ }
79
+ @keyframes linear-progress {
80
+ 0% { margin-left: -40%; width: 40%; }
81
+ 50% { margin-left: 30%; width: 60%; }
82
+ 100% { margin-left: 100%; width: 40%; }
83
+ }
84
+ `];t([s({type:String})],r.prototype,"label",2);t([s({type:String,reflect:!0})],r.prototype,"type",2);t([s({type:String,reflect:!0})],r.prototype,"color",2);t([s({type:Number,reflect:!0})],r.prototype,"progress",2);t([s({type:Boolean,reflect:!0})],r.prototype,"isStatic",2);r=t([h("scb-progress-indicator")],r);
@@ -0,0 +1,95 @@
1
+ import{i as c,x as p,b as h,n as s,t as u}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";var b=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(e,i,n,o)=>{for(var a=o>1?void 0:o?g(i,n):i,d=e.length-1,l;d>=0;d--)(l=e[d])&&(a=(o?l(i,n,a):l(a))||a);return o&&a&&b(i,n,a),a};let t=class extends c{constructor(){super(...arguments),this.disabled=!1,this.checked=!1,this.name="",this.value="",this.label="",this.supportingText="",this._radioId="",this._onMdRadioChange=e=>{if(this.disabled)return;const i=e.target;i&&i.checked&&(this.checked=!0,this.dispatchEvent(new CustomEvent("scb-radio-change",{detail:{name:this.name,source:this},bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:{checked:this.checked,value:this.value},bubbles:!0,composed:!0})))},this._onRadioChange=e=>{e.detail.name===this.name&&e.detail.source!==this&&(this.checked=!1)}}connectedCallback(){super.connectedCallback(),this._radioId=this.id||`scb-radio-${Math.random().toString(36).substr(2,9)}`,document.addEventListener("scb-radio-change",this._onRadioChange)}disconnectedCallback(){super.disconnectedCallback(),document.removeEventListener("scb-radio-change",this._onRadioChange)}firstUpdated(){const e=this.shadowRoot?.querySelector("md-radio");e&&e.addEventListener("input",()=>{this.dispatchEvent(new Event("input",{bubbles:!0,composed:!0}))})}updated(e){super.updated(e),e.has("disabled")&&this.toggleAttribute("aria-disabled",this.disabled)}render(){const e=this.supportingText?`${this._radioId}-supporting-text`:void 0;return p`
2
+ <label class="wrap">
3
+ <div class="radio-wrap">
4
+ <md-radio
5
+ id="${this._radioId}"
6
+ ?disabled=${this.disabled}
7
+ ?checked=${this.checked}
8
+ name="${this.name}"
9
+ value="${this.value}"
10
+ aria-describedby=${e}
11
+ @change=${this._onMdRadioChange}
12
+ ></md-radio>
13
+ </div>
14
+ ${this.label?p`<span class="lbl">${this.label}</span>`:""}
15
+ </label>
16
+ ${this.supportingText?p`<div
17
+ id="${this._radioId}-supporting-text"
18
+ class="supporting-text"
19
+ >
20
+ ${this.supportingText}
21
+ </div>`:""}
22
+ <slot></slot>
23
+ `}};t.styles=h`
24
+ /* layout med inline-grid */
25
+ :host {
26
+ display: inline-grid;
27
+ grid-template-columns: auto;
28
+ grid-template-rows: auto auto;
29
+ row-gap: 4px;
30
+ font-family: var(--brand-font, 'Inter', sans-serif);
31
+ }
32
+
33
+ /* Wrapper för md-radio + label */
34
+ .wrap {
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: 12px;
38
+ cursor: pointer;
39
+ /* låt ripple/state-layer synas */
40
+ overflow: visible;
41
+ }
42
+ :host([disabled]) .wrap {
43
+ cursor: default;
44
+ }
45
+
46
+ /* Hit-yta runt md-radio (styr via variabel) */
47
+ .radio-wrap {
48
+ height: var(--scb-radio-target, 48px);
49
+ width: var(--scb-radio-target, 48px);
50
+ align-items: center;
51
+ display: flex;
52
+ justify-content: center;
53
+ overflow: visible;
54
+ }
55
+
56
+ /* Nollställ md-radio marginal */
57
+ md-radio {
58
+ margin: 0;
59
+ }
60
+
61
+ /* Label-styling */
62
+ .lbl {
63
+ color: var(--md-sys-color-on-surface);
64
+ line-height: 1.2;
65
+ margin-top: 2px;
66
+ }
67
+ :host([disabled]) .lbl {
68
+ color: var(--n-60);
69
+ }
70
+
71
+ /* Supporting text styling */
72
+ .supporting-text {
73
+ color: var(--md-sys-color-on-surface-variant);
74
+ line-height: 1.2;
75
+ /* 12px gap + wrapperbredd (inte ikonstorlek) så texten linjerar med labeln */
76
+ margin-left: calc(12px + var(--scb-radio-target, 48px));
77
+ }
78
+ :host([disabled]) .supporting-text {
79
+ color: var(--n-60);
80
+ }
81
+
82
+ :host([orientation="horizontal"]) {
83
+ margin-inline-end: var(--scb-radio-gap, 24px); /* tweakable */
84
+ }
85
+
86
+ /* Anpassning för mörkt läge */
87
+ @media (prefers-color-scheme: dark) {
88
+ .lbl {
89
+ color: var(--md-sys-color-on-surface);
90
+ }
91
+ .supporting-text {
92
+ color: var(--md-sys-color-on-surface-variant);
93
+ }
94
+ }
95
+ `;r([s({type:Boolean,reflect:!0})],t.prototype,"disabled",2);r([s({type:Boolean,reflect:!0})],t.prototype,"checked",2);r([s({type:String,reflect:!0})],t.prototype,"name",2);r([s({type:String,reflect:!0})],t.prototype,"value",2);r([s({type:String})],t.prototype,"label",2);r([s({type:String,attribute:"supporting-text"})],t.prototype,"supportingText",2);t=r([u("scb-radio-button")],t);export{t as ScbRadioButton};
@@ -0,0 +1,28 @@
1
+ import{b as g,n,i as u,x as f,t as b}from"../../vendor/vendor.js";var v=Object.defineProperty,y=Object.getOwnPropertyDescriptor,h=t=>{throw TypeError(t)},s=(t,a,e,l)=>{for(var i=l>1?void 0:l?y(a,e):a,p=t.length-1,d;p>=0;p--)(d=t[p])&&(i=(l?d(a,e,i):d(i))||i);return l&&i&&v(a,e,i),i},m=(t,a,e)=>a.has(t)||h("Cannot "+e),c=(t,a,e)=>(m(t,a,"read from private field"),e?e.call(t):a.get(t)),_=(t,a,e)=>a.has(t)?h("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(t):a.set(t,e),o;let r=class extends u{constructor(){super(...arguments),this.name="",this.orientation="vertical",this.disabled=!1,this.ariaLabel=null,this.spacing="item",_(this,o,()=>{const t=this.shadowRoot?.querySelector("slot");if(!t)return;const a=t.assignedElements({flatten:!0}).filter(e=>e.tagName.toLowerCase()==="scb-radio-button");for(const e of a)this.name&&e.setAttribute("name",this.name),this.disabled?e.setAttribute("disabled",""):e.removeAttribute("disabled"),this.orientation==="horizontal"?e.setAttribute("orientation","horizontal"):e.removeAttribute("orientation"),this.spacing==="group"?e.style.setProperty("--scb-radio-gap","0"):e.style.removeProperty("--scb-radio-gap")})}render(){const t=this.orientation==="horizontal"?"row":"column";return f`
2
+ <div
3
+ class="g"
4
+ role="radiogroup"
5
+ aria-disabled=${String(this.disabled)}
6
+ aria-label=${this.ariaLabel??""}
7
+ style=${`--_dir:${t}`}
8
+ >
9
+ <slot @slotchange=${c(this,o)}></slot>
10
+ </div>
11
+ `}firstUpdated(){c(this,o).call(this)}updated(t){(t.has("name")||t.has("disabled")||t.has("orientation"))&&c(this,o).call(this)}};o=new WeakMap;r.styles=g`
12
+ :host { display: block; }
13
+
14
+ .g {
15
+ display: flex;
16
+ flex-direction: var(--_dir, column);
17
+ gap: 0; /* default: inget extra gap */
18
+ align-items: flex-start;
19
+ }
20
+
21
+ /* Om gruppen ska äga spacing: använder gap och nollar radios egen syskonmarginal */
22
+ :host([spacing="group"]) .g {
23
+ gap: var(--scb-radio-gap, 12px);
24
+ }
25
+ :host([spacing="group"]) ::slotted(scb-radio-button) {
26
+ --scb-radio-gap: 0;
27
+ }
28
+ `;s([n({type:String})],r.prototype,"name",2);s([n({type:String,reflect:!0})],r.prototype,"orientation",2);s([n({type:Boolean,reflect:!0})],r.prototype,"disabled",2);s([n({type:String,attribute:"aria-label"})],r.prototype,"ariaLabel",2);s([n({type:String,reflect:!0})],r.prototype,"spacing",2);r=s([b("scb-radio-group")],r);