scb-wc-test 0.1.63 → 0.1.65

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.
package/all.js CHANGED
@@ -46,6 +46,8 @@ import './mvc/components/scb-progress-indicator/scb-progress-indicator.js';
46
46
  import './mvc/components/scb-radio-button/scb-radio-button.js';
47
47
  import './mvc/components/scb-radio-button/scb-radio-group.js';
48
48
  import './mvc/components/scb-search/scb-search.js';
49
+ import './mvc/components/scb-segmented-button/scb-segmented-button.js';
50
+ import './mvc/components/scb-segmented-button/scb-segmented-item.js';
49
51
  import './mvc/components/scb-snackbar/scb-snackbar.js';
50
52
  import './mvc/components/scb-status-pill/scb-status-pill.js';
51
53
  import './mvc/components/scb-switch/scb-switch.js';
@@ -105,6 +107,8 @@ import './scb-progress-indicator/scb-progress-indicator.js';
105
107
  import './scb-radio-button/scb-radio-button.js';
106
108
  import './scb-radio-button/scb-radio-group.js';
107
109
  import './scb-search/scb-search.js';
110
+ import './scb-segmented-button/scb-segmented-button.js';
111
+ import './scb-segmented-button/scb-segmented-item.js';
108
112
  import './scb-snackbar/scb-snackbar.js';
109
113
  import './scb-status-pill/scb-status-pill.js';
110
114
  import './scb-switch/scb-switch.js';
package/index.d.ts CHANGED
@@ -43,6 +43,8 @@ export * from './scb-progress-indicator/scb-progress-indicator';
43
43
  export * from './scb-radio-button/scb-radio-button';
44
44
  export * from './scb-radio-button/scb-radio-group';
45
45
  export * from './scb-search/scb-search';
46
+ export * from './scb-segmented-button/scb-segmented-button';
47
+ export * from './scb-segmented-button/scb-segmented-item';
46
48
  export * from './scb-snackbar/scb-snackbar';
47
49
  export * from './scb-status-pill/scb-status-pill';
48
50
  export * from './scb-switch/scb-switch';
package/index.js CHANGED
@@ -6,13 +6,13 @@ import { SCBBreadcrumbItem as f } from "./scb-breadcrumb/scb-breadcrumb-item.js"
6
6
  import { SCBBreadcrumb as i } from "./scb-breadcrumb/scb-breadcrumb.js";
7
7
  import { ScbButton as n } from "./scb-button/scb-button.js";
8
8
  import { ScbCalendarCard as C } from "./scb-calendar-card/scb-calendar-card.js";
9
- import { ScbCard as I } from "./scb-card/scb-card.js";
9
+ import { ScbCard as l } from "./scb-card/scb-card.js";
10
10
  import { ScbCheckboxGroup as D } from "./scb-checkbox/scb-checkbox-group.js";
11
11
  import { ScbCheckbox as w } from "./scb-checkbox/scb-checkbox.js";
12
12
  import { ScbChip as F } from "./scb-chip/scb-chip.js";
13
- import { ScbDialog as h } from "./scb-dialog/scb-dialog.js";
14
- import { ScbDivider as G } from "./scb-divider/scb-divider.js";
15
- import { ScbDrawerItem as A } from "./scb-drawer/scb-drawer-item.js";
13
+ import { ScbDialog as g } from "./scb-dialog/scb-dialog.js";
14
+ import { ScbDivider as k } from "./scb-divider/scb-divider.js";
15
+ import { ScbDrawerItem as y } from "./scb-drawer/scb-drawer-item.js";
16
16
  import { ScbDrawerSection as L } from "./scb-drawer/scb-drawer-section.js";
17
17
  import { ScbDrawer as P } from "./scb-drawer/scb-drawer.js";
18
18
  import { ScbSubDrawer as N } from "./scb-drawer/scb-sub-drawer.js";
@@ -33,26 +33,28 @@ import { ScbIconButton as fr } from "./scb-icon-button/scb-icon-button.js";
33
33
  import { ScbKeyFigureCard as ir } from "./scb-keyfigure-card/scb-keyfigure-card.js";
34
34
  import { ScbLink as nr } from "./scb-link/scb-link.js";
35
35
  import { ScbListItem as Cr } from "./scb-list/scb-list-item.js";
36
- import { ScbList as Ir } from "./scb-list/scb-list.js";
36
+ import { ScbList as lr } from "./scb-list/scb-list.js";
37
37
  import { ScbMenuItem as Dr } from "./scb-menu/scb-menu-item.js";
38
38
  import { ScbMenu as wr } from "./scb-menu/scb-menu.js";
39
39
  import { ScbSubMenu as Fr } from "./scb-menu/scb-sub-menu.js";
40
- import { ScbNotification as hr } from "./scb-notification/scb-notification.js";
41
- import { ScbNotificationCard as Gr } from "./scb-notification-card/scb-notification-card.js";
42
- import { ScbProgressIndicator as Ar } from "./scb-progress-indicator/scb-progress-indicator.js";
40
+ import { ScbNotification as gr } from "./scb-notification/scb-notification.js";
41
+ import { ScbNotificationCard as kr } from "./scb-notification-card/scb-notification-card.js";
42
+ import { ScbProgressIndicator as yr } from "./scb-progress-indicator/scb-progress-indicator.js";
43
43
  import { ScbRadioButton as Lr } from "./scb-radio-button/scb-radio-button.js";
44
44
  import { ScbRadioGroup as Pr } from "./scb-radio-button/scb-radio-group.js";
45
45
  import { ScbSearch as Nr } from "./scb-search/scb-search.js";
46
- import { ScbSnackbar as zr } from "./scb-snackbar/scb-snackbar.js";
47
- import { ScbStatusPill as Ur } from "./scb-status-pill/scb-status-pill.js";
48
- import { ScbSwitch as qr } from "./scb-switch/scb-switch.js";
49
- import { ScbPrimaryTab as Jr } from "./scb-tabs/scb-primary-tab.js";
50
- import { ScbSecondaryTab as Qr } from "./scb-tabs/scb-secondary-tab.js";
51
- import { ScbTabs as Wr } from "./scb-tabs/scb-tabs.js";
52
- import { ScbTextField2 as Yr } from "./scb-textfield/scb-textfield.js";
53
- import { ScbTocItem as _r } from "./scb-toc/scb-toc-item.js";
54
- import { ScbToc as ro } from "./scb-toc/scb-toc.js";
55
- import { ScbTooltip as eo } from "./scb-tooltip/scb-tooltip.js";
46
+ import { ScbSegmentedButton as zr } from "./scb-segmented-button/scb-segmented-button.js";
47
+ import { ScbSegmentedItem as Ur } from "./scb-segmented-button/scb-segmented-item.js";
48
+ import { ScbSnackbar as qr } from "./scb-snackbar/scb-snackbar.js";
49
+ import { ScbStatusPill as Jr } from "./scb-status-pill/scb-status-pill.js";
50
+ import { ScbSwitch as Qr } from "./scb-switch/scb-switch.js";
51
+ import { ScbPrimaryTab as Wr } from "./scb-tabs/scb-primary-tab.js";
52
+ import { ScbSecondaryTab as Yr } from "./scb-tabs/scb-secondary-tab.js";
53
+ import { ScbTabs as _r } from "./scb-tabs/scb-tabs.js";
54
+ import { ScbTextField2 as ro } from "./scb-textfield/scb-textfield.js";
55
+ import { ScbTocItem as eo } from "./scb-toc/scb-toc-item.js";
56
+ import { ScbToc as co } from "./scb-toc/scb-toc.js";
57
+ import { ScbTooltip as So } from "./scb-tooltip/scb-tooltip.js";
56
58
  export {
57
59
  i as SCBBreadcrumb,
58
60
  f as SCBBreadcrumbItem,
@@ -62,14 +64,14 @@ export {
62
64
  p as ScbAvatar,
63
65
  n as ScbButton,
64
66
  C as ScbCalendarCard,
65
- I as ScbCard,
67
+ l as ScbCard,
66
68
  w as ScbCheckbox,
67
69
  D as ScbCheckboxGroup,
68
70
  F as ScbChip,
69
- h as ScbDialog,
70
- G as ScbDivider,
71
+ g as ScbDialog,
72
+ k as ScbDivider,
71
73
  P as ScbDrawer,
72
- A as ScbDrawerItem,
74
+ y as ScbDrawerItem,
73
75
  L as ScbDrawerSection,
74
76
  U as ScbFactCard,
75
77
  z as ScbFactCardContent,
@@ -86,27 +88,29 @@ export {
86
88
  fr as ScbIconButton,
87
89
  ir as ScbKeyFigureCard,
88
90
  nr as ScbLink,
89
- Ir as ScbList,
91
+ lr as ScbList,
90
92
  Cr as ScbListItem,
91
93
  wr as ScbMenu,
92
94
  Dr as ScbMenuItem,
93
- hr as ScbNotification,
94
- Gr as ScbNotificationCard,
95
- Jr as ScbPrimaryTab,
96
- Ar as ScbProgressIndicator,
95
+ gr as ScbNotification,
96
+ kr as ScbNotificationCard,
97
+ Wr as ScbPrimaryTab,
98
+ yr as ScbProgressIndicator,
97
99
  Lr as ScbRadioButton,
98
100
  Pr as ScbRadioGroup,
99
101
  Nr as ScbSearch,
100
- Qr as ScbSecondaryTab,
101
- zr as ScbSnackbar,
102
+ Yr as ScbSecondaryTab,
103
+ zr as ScbSegmentedButton,
104
+ Ur as ScbSegmentedItem,
105
+ qr as ScbSnackbar,
102
106
  Y as ScbStack,
103
- Ur as ScbStatusPill,
107
+ Jr as ScbStatusPill,
104
108
  N as ScbSubDrawer,
105
109
  Fr as ScbSubMenu,
106
- qr as ScbSwitch,
107
- Wr as ScbTabs,
108
- Yr as ScbTextField2,
109
- ro as ScbToc,
110
- _r as ScbTocItem,
111
- eo as ScbTooltip
110
+ Qr as ScbSwitch,
111
+ _r as ScbTabs,
112
+ ro as ScbTextField2,
113
+ co as ScbToc,
114
+ eo as ScbTocItem,
115
+ So as ScbTooltip
112
116
  };
@@ -43,6 +43,8 @@ import './scb-progress-indicator/scb-progress-indicator.js';
43
43
  import './scb-radio-button/scb-radio-button.js';
44
44
  import './scb-radio-button/scb-radio-group.js';
45
45
  import './scb-search/scb-search.js';
46
+ import './scb-segmented-button/scb-segmented-button.js';
47
+ import './scb-segmented-button/scb-segmented-item.js';
46
48
  import './scb-snackbar/scb-snackbar.js';
47
49
  import './scb-status-pill/scb-status-pill.js';
48
50
  import './scb-switch/scb-switch.js';
@@ -1,53 +1,43 @@
1
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 g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E as p,x as l,t as b}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var r=customElements.define.bind(customElements);customElements.define=function(n,a,s){try{customElements.get(n)||r(n,a,s)}catch(c){var d=String(c||"");if(d.indexOf("already been used")===-1&&d.indexOf("NotSupportedError")===-1)throw c}}}}catch{}})();var h=Object.defineProperty,m=Object.getOwnPropertyDescriptor,i=(e,r,n,a)=>{for(var s=a>1?void 0:a?m(r,n):r,d=e.length-1,c;d>=0;d--)(c=e[d])&&(s=(a?c(r,n,s):c(s))||s);return a&&s&&h(r,n,s),s};let t=class extends u{constructor(){super(...arguments),this.expanded=!1,this.label="",this.content="",this.overline="",this.supportingText="",this.leading=!1,this.leadingVariant="",this.leadingIcon="",this.imgHrefImage="",this.avatarLabel="",this.avatarAlt="",this.avatarVariant="icon",this.avatarSrc="",this.density=0,this._unique=t._uid(),this.toggleAccordion=()=>{const e=this.closest("scb-accordion");e?.hasAttribute("detached")||e.querySelectorAll("scb-accordion-item").forEach(n=>{n!==this&&(n.expanded=!1,n._applyInert())}),this.expanded=!this.expanded,this._applyInert()}}static _uid(){return globalThis.crypto?.randomUUID?.()??`${t._uidPrefix}-${++t._uidSeq}`}async firstUpdated(){t._mdIconLoaded||(await g(()=>import("../../vendor/vendor-material.js").then(e=>e.i),__vite__mapDeps([0,1]),import.meta.url),t._mdIconLoaded=!0),t._mdRippleLoaded||(await g(()=>import("../../vendor/vendor-material.js").then(e=>e.r),__vite__mapDeps([0,1]),import.meta.url),t._mdRippleLoaded=!0),this._applyInert()}disconnectedCallback(){super.disconnectedCallback()}_onKeyDown(e){const r=this.closest("scb-accordion"),a=Array.from(r?.querySelectorAll("scb-accordion-item")||[]).map(c=>c.renderRoot.querySelector(".scb-accordion-top")).filter(c=>!!c),s=e.currentTarget,d=a.indexOf(s);switch(e.key){case"Enter":case" ":e.preventDefault(),this.toggleAccordion();break;case"ArrowDown":e.preventDefault(),d<a.length-1&&a[d+1].focus();break;case"ArrowUp":e.preventDefault(),d>0&&a[d-1].focus();break;case"Home":e.preventDefault(),a.length&&a[0].focus();break;case"End":e.preventDefault(),a.length&&a[a.length-1].focus();break}}_renderLeading(){if(!this.leading)return p;switch(this.leadingVariant){case"icon":return l`<md-icon>${this.leadingIcon}</md-icon>`;case"avatar":return l`
3
- <scb-avatar
4
- label=${this.avatarLabel}
5
- alt=${this.avatarAlt}
6
- src=${this.avatarVariant==="image"?this.avatarSrc:""}
7
- size="medium"
8
- shape="circular"
9
- variant=${this.avatarVariant}
10
- ></scb-avatar>
11
- `;case"image":return this.imgHrefImage?l`<img part="leading-image" class="img" src="${this.imgHrefImage}" alt="" />`:p;default:return p}}_applyInert(){const e=this.renderRoot.querySelector(".scb-accordion-bottom");e&&(this.expanded?(e.removeAttribute("inert"),e.setAttribute("aria-hidden","false")):(e.setAttribute("inert",""),e.setAttribute("aria-hidden","true")))}_emitExpandedChanged(){this.dispatchEvent(new CustomEvent("expanded-changed",{detail:{expanded:this.expanded,label:this.label},bubbles:!0,composed:!0}))}updated(e){e.has("expanded")&&(this._applyInert(),e.get("expanded")!==void 0&&this._emitExpandedChanged())}render(){const e=`bottom-${this._unique}`,r=`header-${this._unique}`;return l`
12
- <div part="scb-accordion-item" class="scb-accordion-item">
13
- <div
14
- id=${r}
2
+ import{_ as g}from"../../vendor/preload-helper.js";import{a as u,n as s,i as m,E as p,x as l,t as v}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var i=customElements.define.bind(customElements);customElements.define=function(o,r,n){try{customElements.get(o)||i(o,r,n)}catch(d){var c=String(d||"");if(c.indexOf("already been used")===-1&&c.indexOf("NotSupportedError")===-1)throw d}}}}catch{}})();var h=Object.defineProperty,b=Object.getOwnPropertyDescriptor,a=(t,i,o,r)=>{for(var n=r>1?void 0:r?b(i,o):i,c=t.length-1,d;c>=0;c--)(d=t[c])&&(n=(r?d(i,o,n):d(n))||n);return r&&n&&h(i,o,n),n};let e=class extends m{constructor(){super(...arguments),this.open=!1,this.title="",this.content="",this.overline="",this.supportingText="",this.leading=!1,this.leadingVariant="",this.leadingIcon="",this.imgHrefImage="",this.avatarLabel="",this.avatarAlt="",this.avatarVariant="icon",this.avatarSrc="",this.density=0,this._unique=e._uid(),this._onToggle=t=>{const i=t.currentTarget;this.open=!!i.open;const o=this.closest("scb-accordion");this.open&&o&&!o.hasAttribute("detached")&&o.querySelectorAll("scb-accordion-item").forEach(n=>{n!==this&&n.setOpen(!1)}),this._applyInertByOpen(),this.dispatchEvent(new CustomEvent("open-changed",{detail:{open:this.open,title:this.title},bubbles:!0,composed:!0}))}}static _uid(){return globalThis.crypto?.randomUUID?.()??`${e._uidPrefix}-${++e._uidSeq}`}async firstUpdated(){e._mdIconLoaded||(await g(()=>import("../../vendor/vendor-material.js").then(t=>t.i),__vite__mapDeps([0,1]),import.meta.url),e._mdIconLoaded=!0),e._mdRippleLoaded||(await g(()=>import("../../vendor/vendor-material.js").then(t=>t.r),__vite__mapDeps([0,1]),import.meta.url),e._mdRippleLoaded=!0),this._applyInertByOpen()}_applyInertByOpen(){const t=this.renderRoot.querySelector(".scb-accordion-bottom"),i=this.renderRoot.querySelector("details");!t||!i||(i.open?(t.removeAttribute("inert"),t.setAttribute("aria-hidden","false")):(t.setAttribute("inert",""),t.setAttribute("aria-hidden","true")))}_onKeyDown(t){const i=this.closest("scb-accordion"),r=Array.from(i?.querySelectorAll("scb-accordion-item")||[]).map(d=>d.renderRoot.querySelector("details")?.querySelector(".scb-accordion-top")||null).filter(d=>!!d),n=t.currentTarget,c=r.indexOf(n);switch(t.key){case"ArrowDown":t.preventDefault(),c<r.length-1&&r[c+1].focus();break;case"ArrowUp":t.preventDefault(),c>0&&r[c-1].focus();break;case"Home":t.preventDefault(),r.length&&r[0].focus();break;case"End":t.preventDefault(),r.length&&r[r.length-1].focus();break}}setOpen(t){this.open=!!t;const i=this.renderRoot.querySelector("details");i&&(i.open=this.open),this._applyInertByOpen()}updated(t){if(t.has("open")){const i=this.renderRoot.querySelector("details");i&&i.open!==this.open&&(i.open=this.open),this._applyInertByOpen()}}render(){const t=`bottom-${this._unique}`,i=`header-${this._unique}`,o=this.leading?this.leadingVariant==="image"&&this.imgHrefImage?l`<img part="leading-image" class="img" src="${this.imgHrefImage}" alt="" />`:this.leadingVariant==="avatar"?l`
3
+ <scb-avatar
4
+ label=${this.avatarLabel}
5
+ alt=${this.avatarAlt}
6
+ src=${this.avatarVariant==="image"?this.avatarSrc:""}
7
+ size="medium"
8
+ shape="circular"
9
+ variant=${this.avatarVariant}
10
+ ></scb-avatar>
11
+ `:this.leadingVariant==="icon"?l`<md-icon>${this.leadingIcon}</md-icon>`:p:p;return l`
12
+ <details class="scb-accordion-item" ?open=${this.open} @toggle=${this._onToggle}>
13
+ <summary
14
+ id=${i}
15
15
  class="scb-accordion-top"
16
- tabindex="0"
17
- role="button"
18
- aria-expanded=${this.expanded}
19
- aria-controls=${e}
20
- @click=${this.toggleAccordion}
16
+ aria-controls=${t}
21
17
  @keydown=${this._onKeyDown}
22
18
  >
23
19
  <md-ripple></md-ripple>
24
20
 
25
- ${this.leading?l`<div class="leading">${this._renderLeading()}</div>`:p}
21
+ ${this.leading?l`<div class="leading">${o}</div>`:p}
26
22
 
27
23
  <div class="texts">
28
24
  ${this.overline?l`<div class="overline">${this.overline}</div>`:p}
29
- <div class="label">${this.label}</div>
25
+ <div class="title">${this.title}</div>
30
26
  ${this.supportingText?l`<div class="supporting-text">${this.supportingText}</div>`:p}
31
27
  </div>
32
28
 
33
- <md-icon class="chevron">${this.expanded?"keyboard_arrow_up":"keyboard_arrow_down"}</md-icon>
34
- </div>
29
+ <md-icon class="chevron">keyboard_arrow_down</md-icon>
30
+ </summary>
35
31
 
36
- <div
37
- id=${e}
38
- class="scb-accordion-bottom ${this.expanded?"expanded":""}"
39
- role="region"
40
- aria-labelledby=${r}
41
- aria-hidden=${this.expanded?"false":"true"}
42
- >
32
+ <div id=${t} class="scb-accordion-bottom" role="region" aria-labelledby=${i}>
43
33
  <div class="bottom-inner">
44
34
  <slot>${this.content}</slot>
45
35
  </div>
46
36
  </div>
47
- </div>
37
+ </details>
48
38
 
49
- <md-focus-ring for=${r} inward></md-focus-ring>
50
- `}};t._uidPrefix=`uid-${Math.random().toString(36).slice(2)}`;t._uidSeq=0;t._mdIconLoaded=!1;t._mdRippleLoaded=!1;t.styles=[v`
39
+ <md-focus-ring for=${i} inward></md-focus-ring>
40
+ `}};e._uidPrefix=`uid-${Math.random().toString(36).slice(2)}`;e._uidSeq=0;e._mdIconLoaded=!1;e._mdRippleLoaded=!1;e.styles=[u`
51
41
  :host {
52
42
  display: block;
53
43
  position: relative;
@@ -68,28 +58,29 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
68
58
  .scb-accordion-item {
69
59
  border-bottom: var(--stroke-border, 1px) solid var(--md-sys-color-outline-variant);
70
60
  margin-bottom: calc(var(--stroke-border, 1px) * -1);
71
- display: flex;
72
- flex-direction: column;
73
61
  color: var(--md-sys-color-on-surface);
74
62
  font-family: var(--brand-font);
75
63
  }
76
64
 
65
+ /* Header */
77
66
  .scb-accordion-top {
67
+ list-style: none;
78
68
  display: flex;
79
69
  flex-direction: row;
80
70
  align-items: center;
81
71
  cursor: pointer;
82
72
  padding-block: var(--spacing-7, 24px);
83
73
  padding-inline: var(--spacing-5, 16px);
84
- outline: none;
85
74
  border-radius: var(--radius-none, 0px);
86
75
  gap: var(--spacing-5, 16px);
87
76
  color: var(--md-sys-color-on-surface);
88
77
  position: relative;
89
- overflow: visible;
78
+ overflow: hidden;
90
79
  -webkit-tap-highlight-color: transparent;
80
+ outline: none;
91
81
  }
92
- .scb-accordion-top:hover { border-radius: var(--scb-accordion-hover-radius); }
82
+ .scb-accordion-top::-webkit-details-marker { display: none; }
83
+ summary::marker { content: ''; }
93
84
 
94
85
  :host([density="-2"]) .scb-accordion-top,
95
86
  :host-context([data-density="-2"]) .scb-accordion-top {
@@ -100,6 +91,7 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
100
91
  padding-block: var(--spacing-4, 12px);
101
92
  }
102
93
 
94
+ /* Panelinnehåll + animationer (grid 0fr -> 1fr) */
103
95
  .scb-accordion-bottom {
104
96
  display: grid;
105
97
  grid-template-rows: 0fr;
@@ -112,7 +104,7 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
112
104
  padding-block: var(--scb-accordion-panel-padding-closed);
113
105
  padding-inline: var(--spacing-5, 16px);
114
106
  }
115
- .scb-accordion-bottom.expanded {
107
+ details[open] .scb-accordion-bottom {
116
108
  grid-template-rows: 1fr;
117
109
  opacity: 1;
118
110
  padding-top: var(--spacing-2, 4px);
@@ -122,7 +114,7 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
122
114
  }
123
115
  .bottom-inner { overflow: hidden; }
124
116
 
125
- .label {
117
+ .title {
126
118
  font-family: var(--brand-font);
127
119
  font-size: var(--md-sys-typescale-title-large-size);
128
120
  line-height: var(--md-sys-typescale-title-large-line-height);
@@ -156,7 +148,14 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
156
148
  }
157
149
 
158
150
  .texts { display: grid; gap: var(--spacing-1, 2px); }
159
- .chevron { margin-left: auto; padding-top: var(--scb-accordion-chevron-nudge-y, 3px); font-size: var(--icon-size-small, 24px); }
151
+
152
+ .chevron {
153
+ margin-left: auto;
154
+ padding-top: var(--scb-accordion-chevron-nudge-y, 3px);
155
+ font-size: var(--icon-size-small, 24px);
156
+ transition: transform var(--scb-accordion-transition-duration) var(--scb-accordion-transition-easing);
157
+ }
158
+ details[open] .chevron { transform: rotate(180deg); }
160
159
 
161
160
  md-ripple {
162
161
  border-radius: inherit;
@@ -165,5 +164,7 @@ import{_ as g}from"../../vendor/preload-helper.js";import{a as v,n as o,i as u,E
165
164
  pointer-events: none;
166
165
  overflow: hidden;
167
166
  }
168
- @media (prefers-reduced-motion: reduce) { md-ripple { display: none; } }
169
- `];i([o({type:Boolean})],t.prototype,"expanded",2);i([o({type:String,reflect:!0})],t.prototype,"label",2);i([o({type:String})],t.prototype,"content",2);i([o({type:String,attribute:"overline"})],t.prototype,"overline",2);i([o({type:String,attribute:"supporting-text"})],t.prototype,"supportingText",2);i([o({type:Boolean})],t.prototype,"leading",2);i([o({type:String,attribute:"leading-variant",reflect:!0})],t.prototype,"leadingVariant",2);i([o({type:String,attribute:"leading-icon"})],t.prototype,"leadingIcon",2);i([o({type:String,attribute:"img-href-image",reflect:!0})],t.prototype,"imgHrefImage",2);i([o({type:String,attribute:"avatar-label"})],t.prototype,"avatarLabel",2);i([o({type:String,attribute:"avatar-alt"})],t.prototype,"avatarAlt",2);i([o({type:String,attribute:"avatar-variant"})],t.prototype,"avatarVariant",2);i([o({type:String,attribute:"avatar-src"})],t.prototype,"avatarSrc",2);i([o({type:Number,reflect:!0})],t.prototype,"density",2);t=i([b("scb-accordion-item")],t);
167
+ @media (prefers-reduced-motion: reduce) {
168
+ md-ripple { display: none; }
169
+ }
170
+ `];a([s({type:Boolean,reflect:!0})],e.prototype,"open",2);a([s({type:String,reflect:!0})],e.prototype,"title",2);a([s({type:String})],e.prototype,"content",2);a([s({type:String,attribute:"overline"})],e.prototype,"overline",2);a([s({type:String,attribute:"supporting-text"})],e.prototype,"supportingText",2);a([s({type:Boolean})],e.prototype,"leading",2);a([s({type:String,attribute:"leading-variant",reflect:!0})],e.prototype,"leadingVariant",2);a([s({type:String,attribute:"leading-icon"})],e.prototype,"leadingIcon",2);a([s({type:String,attribute:"img-href-image",reflect:!0})],e.prototype,"imgHrefImage",2);a([s({type:String,attribute:"avatar-label"})],e.prototype,"avatarLabel",2);a([s({type:String,attribute:"avatar-alt"})],e.prototype,"avatarAlt",2);a([s({type:String,attribute:"avatar-variant"})],e.prototype,"avatarVariant",2);a([s({type:String,attribute:"avatar-src"})],e.prototype,"avatarSrc",2);a([s({type:Number,reflect:!0})],e.prototype,"density",2);e=a([v("scb-accordion-item")],e);
@@ -0,0 +1,21 @@
1
+ import{a as u,n,i as c,x as f,t as h}from"../../vendor/vendor.js";import"./scb-segmented-item.js";import"../../vendor/vendor-material.js";(function(){try{var i=typeof globalThis<"u"?globalThis:window;if(!i.__scb_ce_guard_installed__){i.__scb_ce_guard_installed__=!0;var r=customElements.define.bind(customElements);customElements.define=function(t,e,s){try{customElements.get(t)||r(t,e,s)}catch(a){var l=String(a||"");if(l.indexOf("already been used")===-1&&l.indexOf("NotSupportedError")===-1)throw a}}}}catch{}})();var m=Object.defineProperty,b=Object.getOwnPropertyDescriptor,d=(i,r,t,e)=>{for(var s=e>1?void 0:e?b(r,t):r,l=i.length-1,a;l>=0;l--)(a=i[l])&&(s=(e?a(r,t,s):a(s))||s);return e&&s&&m(r,t,s),s};let o=class extends c{constructor(){super(...arguments),this.variant="single-select",this.value="",this.values=[],this.disabled=!1}onSlotClick(i){let r=i.target;if(!r||!r.closest)return;const t=r.closest("scb-segmented-item");if(!t||this.disabled||t.hasAttribute("disabled"))return;const e=t.getAttribute("value")||"";e&&(this.variant==="multi-select"?(this.values.indexOf(e)===-1?this.values=[...this.values,e]:this.values=this.values.filter(l=>l!==e),this.dispatchEvent(new CustomEvent("change",{detail:{values:this.values},bubbles:!0,composed:!0})),this.updateSegments()):e!==this.value&&(this.value=e,this.dispatchEvent(new CustomEvent("change",{detail:{value:e},bubbles:!0,composed:!0})),this.updateSegments()))}updateSegments(){const i=this.shadowRoot?.querySelector("slot");if(!i)return;i.assignedElements().forEach(t=>{if(t.tagName==="SCB-SEGMENTED-ITEM"){const e=t.getAttribute("value")||"";if(e){let s=!1;this.variant==="multi-select"?s=!!this.values&&this.values.includes(e):s=e===this.value,t.setAttribute("aria-pressed",s?"true":"false")}this.disabled&&t.setAttribute("disabled","true")}})}firstUpdated(){this.updateSegments();const i=this.shadowRoot?.querySelector("slot");i&&i.addEventListener("click",r=>this.onSlotClick(r))}updated(){this.updateSegments()}render(){return f`<slot></slot>`}};o.styles=u`
2
+ :host {
3
+ display: flex;
4
+ }
5
+ /* Border radius only on first and last button */
6
+ ::slotted(scb-segmented-item:first-child .segmented-item),
7
+ ::slotted([role="button"]:first-child .segmented-item) {
8
+ border-top-left-radius: var(--md-sys-shape-corner-full);
9
+ border-bottom-left-radius: var(--md-sys-shape-corner-full);
10
+ }
11
+ ::slotted(scb-segmented-item:last-child .segmented-item),
12
+ ::slotted([role="button"]:last-child .segmented-item) {
13
+ border-top-right-radius: var(--md-sys-shape-corner-full);
14
+ border-bottom-right-radius: var(--md-sys-shape-corner-full);
15
+ }
16
+ /* First button gets left border */
17
+ ::slotted(scb-segmented-item:first-child .segmented-item),
18
+ ::slotted([role="button"]:first-child .segmented-item) {
19
+ border-left: 1px solid var(--md-sys-color-outline);
20
+ }
21
+ `;d([n({type:String,reflect:!0})],o.prototype,"variant",2);d([n({type:String,reflect:!0})],o.prototype,"value",2);d([n({type:Array})],o.prototype,"values",2);d([n({type:Boolean,reflect:!0})],o.prototype,"disabled",2);o=d([h("scb-segmented-button")],o);
@@ -0,0 +1,72 @@
1
+ import{a as p,n as l,i as u,x as c,t as m}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";(function(){try{var i=typeof globalThis<"u"?globalThis:window;if(!i.__scb_ce_guard_installed__){i.__scb_ce_guard_installed__=!0;var s=customElements.define.bind(customElements);customElements.define=function(e,o,t){try{customElements.get(e)||s(e,o,t)}catch(n){var a=String(n||"");if(a.indexOf("already been used")===-1&&a.indexOf("NotSupportedError")===-1)throw n}}}}catch{}})();var f=Object.defineProperty,h=Object.getOwnPropertyDescriptor,d=(i,s,e,o)=>{for(var t=o>1?void 0:o?h(s,e):s,a=i.length-1,n;a>=0;a--)(n=i[a])&&(t=(o?n(s,e,t):n(t))||t);return o&&t&&f(s,e,t),t};let r=class extends u{constructor(){super(...arguments),this.label="",this.value="",this.selected=!1,this.icon="",this.disabled=!1}render(){const s=this.parentElement?.hasAttribute?.("disabled"),e=this.disabled||s;return c`
2
+ <div class="segmented-item" aria-disabled="${e?"true":"false"}">
3
+ <md-ripple ?disabled="${e}"></md-ripple>
4
+ ${this.icon?c`<md-icon>${this.icon}</md-icon>`:""}
5
+ <span>${this.label}</span>
6
+ <md-focus-ring inward></md-focus-ring>
7
+ </div>
8
+ `}firstUpdated(){this.setAttribute("tabindex",this.disabled?"-1":"0"),this.setAttribute("role","button")}};r.styles=p`
9
+ .segmented-item {
10
+ display: flex;
11
+ gap: var(--spacing-3);
12
+ border: 1px solid var(--md-sys-color-outline);
13
+ border-left: none;
14
+ background-color: var(--md-sys-color-surface);
15
+ padding: var(--spacing-3) var(--spacing-8);
16
+ font: inherit;
17
+ cursor: pointer;
18
+ position: relative;
19
+ font-size: var(--md-sys-typescale-label-medium-size);
20
+ line-height: var(--md-sys-typescale-label-medium-line-height);
21
+ font-weight: var(--md-sys-typescale-label-medium-weight);
22
+ letter-spacing: var(--md-sys-typescale-label-medium-tracking);
23
+ color: var(--md-sys-color-on-surface);
24
+ opacity: 1;
25
+ pointer-events: auto;
26
+ transition: opacity 0.2s;
27
+
28
+ }
29
+ md-icon {
30
+ font-size: 20px;
31
+ width: 18px;
32
+ height: 18px;
33
+ }
34
+ :host([disabled]) .segmented-item,
35
+ .segmented-item[aria-disabled="true"] {
36
+ opacity: 0.5;
37
+ cursor: not-allowed;
38
+ pointer-events: none;
39
+ filter: grayscale(0.5);
40
+ }
41
+ :host([aria-pressed="true"]) .segmented-item {
42
+ background-color: var(--md-sys-color-secondary-container);
43
+ color: var(--md-sys-color-primary);
44
+ }
45
+ :host(:focus){
46
+ outline: none;
47
+ }
48
+ md-focus-ring {
49
+ position: absolute;
50
+ inset: 0;
51
+ pointer-events: none;
52
+ display: none;
53
+ border-radius: inherit;
54
+ }
55
+ :host(:focus) md-focus-ring,
56
+ md-focus-ring[data-show="true"] {
57
+ display: block;
58
+ }
59
+ :host([disabled]):host(:focus) md-focus-ring,
60
+ :host([disabled]) md-focus-ring[data-show="true"] {
61
+ display: none;
62
+ }
63
+ :host(:first-child) .segmented-item{
64
+ border: 1px solid var(--md-sys-color-outline);
65
+ border-top-left-radius: var(--md-sys-shape-corner-full);
66
+ border-bottom-left-radius: var(--md-sys-shape-corner-full);
67
+ }
68
+ :host(:last-child) .segmented-item {
69
+ border-top-right-radius: var(--md-sys-shape-corner-full);
70
+ border-bottom-right-radius: var(--md-sys-shape-corner-full);
71
+ }
72
+ `;d([l({type:String,reflect:!0})],r.prototype,"label",2);d([l({type:String,reflect:!0})],r.prototype,"value",2);d([l({type:Boolean,reflect:!0})],r.prototype,"selected",2);d([l({type:String,reflect:!0})],r.prototype,"icon",2);d([l({type:Boolean,reflect:!0})],r.prototype,"disabled",2);r=d([m("scb-segmented-item")],r);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scb-wc-test",
3
- "version": "0.1.63",
3
+ "version": "0.1.65",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -238,6 +238,14 @@
238
238
  "import": "./scb-search/scb-search.js",
239
239
  "require": "./scb-search/scb-search.js"
240
240
  },
241
+ "./scb-segmented-button": {
242
+ "import": "./scb-segmented-button/scb-segmented-button.js",
243
+ "require": "./scb-segmented-button/scb-segmented-button.js"
244
+ },
245
+ "./scb-segmented-button/scb-segmented-item": {
246
+ "import": "./scb-segmented-button/scb-segmented-item.js",
247
+ "require": "./scb-segmented-button/scb-segmented-item.js"
248
+ },
241
249
  "./scb-snackbar": {
242
250
  "import": "./scb-snackbar/scb-snackbar.js",
243
251
  "require": "./scb-snackbar/scb-snackbar.js"
@@ -280,5 +288,5 @@
280
288
  },
281
289
  "./mvc/*": "./mvc/*"
282
290
  },
283
- "buildHash": "E492862AA916AE07F7AF99579CC78F959F68B95FACD6E0585D36D72D53A91B61"
291
+ "buildHash": "B810390FB9229867E7E92F1C6EEBB44AA185F78A0196EA925D0BABAF1A8DFF33"
284
292
  }
@@ -1,7 +1,7 @@
1
1
  import { TemplateResult, LitElement } from 'lit';
2
2
  export declare class ScbAccordionItem extends LitElement {
3
- expanded: boolean;
4
- label: string;
3
+ open: boolean;
4
+ title: string;
5
5
  content: string;
6
6
  overline: string;
7
7
  supportingText: string;
@@ -18,16 +18,14 @@ export declare class ScbAccordionItem extends LitElement {
18
18
  private static _uidSeq;
19
19
  private static _uid;
20
20
  private _unique;
21
- static _mdIconLoaded: boolean;
22
- static _mdRippleLoaded: boolean;
21
+ private static _mdIconLoaded;
22
+ private static _mdRippleLoaded;
23
23
  protected firstUpdated(): Promise<void>;
24
- disconnectedCallback(): void;
25
24
  static styles: import('lit').CSSResult[];
26
- private toggleAccordion;
25
+ private _applyInertByOpen;
26
+ private _onToggle;
27
27
  private _onKeyDown;
28
- private _renderLeading;
29
- private _applyInert;
30
- private _emitExpandedChanged;
28
+ setOpen(on: boolean): void;
31
29
  protected updated(changed: Map<string, unknown>): void;
32
30
  protected render(): TemplateResult;
33
31
  }