scb-wc-test 0.1.349 → 0.1.351

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
@@ -31,6 +31,7 @@ import './mvc/components/scb-fact-card/scb-fact-card-content.js';
31
31
  import './mvc/components/scb-fact-card/scb-fact-card.js';
32
32
  import './mvc/components/scb-footer/scb-footer-section.js';
33
33
  import './mvc/components/scb-footer/scb-footer.js';
34
+ import './mvc/components/scb-gallery-grid/scb-gallery-grid.js';
34
35
  import './mvc/components/scb-grid/scb-grid-item.js';
35
36
  import './mvc/components/scb-grid/scb-grid.js';
36
37
  import './mvc/components/scb-grid/scb-stack.js';
@@ -55,6 +56,7 @@ import './mvc/components/scb-notification-card/scb-notification-card.js';
55
56
  import './mvc/components/scb-options-menu/scb-options-menu-item.js';
56
57
  import './mvc/components/scb-options-menu/scb-options-menu.js';
57
58
  import './mvc/components/scb-options-menu/scb-options-sub-menu.js';
59
+ import './mvc/components/scb-overlay/scb-overlay.js';
58
60
  import './mvc/components/scb-pagination/scb-pagination.js';
59
61
  import './mvc/components/scb-progress-indicator/scb-progress-indicator.js';
60
62
  import './mvc/components/scb-progress-stepper/scb-progress-step.js';
@@ -123,6 +125,7 @@ import './scb-fact-card/scb-fact-card-content.js';
123
125
  import './scb-fact-card/scb-fact-card.js';
124
126
  import './scb-footer/scb-footer-section.js';
125
127
  import './scb-footer/scb-footer.js';
128
+ import './scb-gallery-grid/scb-gallery-grid.js';
126
129
  import './scb-grid/scb-grid-item.js';
127
130
  import './scb-grid/scb-grid.js';
128
131
  import './scb-grid/scb-stack.js';
@@ -147,6 +150,7 @@ import './scb-notification-card/scb-notification-card.js';
147
150
  import './scb-options-menu/scb-options-menu-item.js';
148
151
  import './scb-options-menu/scb-options-menu.js';
149
152
  import './scb-options-menu/scb-options-sub-menu.js';
153
+ import './scb-overlay/scb-overlay.js';
150
154
  import './scb-pagination/scb-pagination.js';
151
155
  import './scb-progress-indicator/scb-progress-indicator.js';
152
156
  import './scb-progress-stepper/scb-progress-step.js';
package/index.d.ts CHANGED
@@ -27,6 +27,7 @@ export * from './scb-fact-card/scb-fact-card-content';
27
27
  export * from './scb-fact-card/scb-fact-card';
28
28
  export * from './scb-footer/scb-footer-section';
29
29
  export * from './scb-footer/scb-footer';
30
+ export * from './scb-gallery-grid/scb-gallery-grid';
30
31
  export * from './scb-grid/scb-grid-item';
31
32
  export * from './scb-grid/scb-grid';
32
33
  export * from './scb-grid/scb-stack';
@@ -51,6 +52,7 @@ export * from './scb-notification-card/scb-notification-card';
51
52
  export * from './scb-options-menu/scb-options-menu-item';
52
53
  export * from './scb-options-menu/scb-options-menu';
53
54
  export * from './scb-options-menu/scb-options-sub-menu';
55
+ export * from './scb-overlay/scb-overlay';
54
56
  export * from './scb-pagination/scb-pagination';
55
57
  export * from './scb-progress-indicator/scb-progress-indicator';
56
58
  export * from './scb-progress-stepper/scb-progress-step';
package/index.js CHANGED
@@ -27,6 +27,7 @@ import "./scb-fact-card/scb-fact-card-content.js";
27
27
  import "./scb-fact-card/scb-fact-card.js";
28
28
  import "./scb-footer/scb-footer-section.js";
29
29
  import "./scb-footer/scb-footer.js";
30
+ import "./scb-gallery-grid/scb-gallery-grid.js";
30
31
  import "./scb-grid/scb-grid-item.js";
31
32
  import "./scb-grid/scb-grid.js";
32
33
  import "./scb-grid/scb-stack.js";
@@ -51,6 +52,7 @@ import "./scb-notification-card/scb-notification-card.js";
51
52
  import "./scb-options-menu/scb-options-menu-item.js";
52
53
  import "./scb-options-menu/scb-options-menu.js";
53
54
  import "./scb-options-menu/scb-options-sub-menu.js";
55
+ import "./scb-overlay/scb-overlay.js";
54
56
  import "./scb-pagination/scb-pagination.js";
55
57
  import "./scb-progress-indicator/scb-progress-indicator.js";
56
58
  import "./scb-progress-stepper/scb-progress-step.js";
@@ -27,6 +27,7 @@ import './scb-fact-card/scb-fact-card.js';
27
27
  import './scb-fact-card/scb-fact-card-content.js';
28
28
  import './scb-footer/scb-footer.js';
29
29
  import './scb-footer/scb-footer-section.js';
30
+ import './scb-gallery-grid/scb-gallery-grid.js';
30
31
  import './scb-grid/scb-grid.js';
31
32
  import './scb-grid/scb-grid-item.js';
32
33
  import './scb-grid/scb-stack.js';
@@ -51,6 +52,7 @@ import './scb-notification-card/scb-notification-card.js';
51
52
  import './scb-options-menu/scb-options-menu.js';
52
53
  import './scb-options-menu/scb-options-menu-item.js';
53
54
  import './scb-options-menu/scb-options-sub-menu.js';
55
+ import './scb-overlay/scb-overlay.js';
54
56
  import './scb-pagination/scb-pagination.js';
55
57
  import './scb-progress-indicator/scb-progress-indicator.js';
56
58
  import './scb-progress-stepper/scb-progress-step.js';
@@ -1,11 +1,11 @@
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 T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x as r,E as g,t as D}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";import"../scb-list/scb-list.js";import"../scb-button/scb-button.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-link/scb-link.js";import"../scb-avatar/scb-avatar.js";import"../scb-tooltip/scb-tooltip.js";import"../scb-list/scb-list-item.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(n,c,o){try{customElements.get(n)||e(n,c,o)}catch(p){var d=String(p||"");if(d.indexOf("already been used")===-1&&d.indexOf("NotSupportedError")===-1)throw p}}}}catch{}})();var B=Object.defineProperty,N=Object.getOwnPropertyDescriptor,P=t=>{throw TypeError(t)},s=(t,e,n,c)=>{for(var o=c>1?void 0:c?N(e,n):e,d=t.length-1,p;d>=0;d--)(p=t[d])&&(o=(c?p(e,n,o):p(o))||o);return c&&o&&B(e,n,o),o},R=(t,e,n)=>e.has(t)||P("Cannot "+n),W=(t,e,n)=>e.has(t)?P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),x=(t,e,n)=>(R(t,e,"access private method"),n),f,_,$;const l={fromAttribute:t=>t??"",toAttribute:t=>typeof t!="string"||t.trim()===""?null:t};let i=class extends H{constructor(){super(...arguments),W(this,f),this.__managedSocialAttributes=new Set(["social-comments-text","social-comments","social-comments-href","social-likes-text","social-likes","social-likes-hover-content","social-has-liked","social-likes-interactive","social-author","social-author-text","social-author-href"]),this.__isSyncingManagedSocialAttributes=!1,this.type="standard",this.variant="standard",this.direction="dynamic",this.size="large",this.mediaType="",this.mediaHref="",this.mediaAlt="",this.mediaSrcset="",this.mediaSizes="",this.mediaLoading="auto",this.mediaDecoding="async",this.mediaFetchPriority="auto",this.mediaFit="cover",this.mediaPosition="center",this.mediaWidth="",this.mediaHeight="",this.mediaAspect="",this.mediaPlaceholder=!1,this.cardHref="",this.href="",this.title="",this.subtitle="",this.supportingText="",this.commentsText="",this.commentsDisabled=!1,this.commentsHref="",this.likesText="",this.likesDisabled=!1,this.likesHoverContent="",this.hasLiked=!1,this.likesInteractive=!0,this.author=!1,this.authorText="",this.authorHref="",this.replyEnabled=!1,this.editEnabled=!1,this.deleteEnabled=!1,this.sizing="stretch",this.width="",this.maxWidth="",this.height="",this.maxHeight="",this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.innerPadding=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.__onImgLoad=t=>{const e=t.currentTarget.closest(".media");e&&e.classList.add("is-loaded")},this.__onKeyDown=t=>{const e=this.__effectiveHref();(t.key==="Enter"||t.key===" ")&&e&&(t.preventDefault(),this.__navigate(e,t))},this.__handleHrefNavigation=t=>{const e=this.__effectiveHref();e&&(t.target.closest("a")||this.__navigate(e,t))}}attributeChangedCallback(t,e,n){this.__isSyncingManagedSocialAttributes&&this.__managedSocialAttributes.has(t)||super.attributeChangedCallback(t,e,n)}get likeButton(){return this.type!=="social"?null:this.renderRoot.querySelector(".likes scb-icon-button")}__calcAspectWH(t){const e=(t||"").trim();if(!e)return{w:640,h:360};const n=e.includes("/")?e.split("/"):e.includes(":")?e.split(":"):e.includes("x")?e.split("x"):null;if(n&&n.length===2){const o=Number(n[0]),d=Number(n[1]);if(o>0&&d>0)return{w:o,h:d}}const c=Number(e);return isFinite(c)&&c>0?{w:1e3,h:Math.round(1e3/c)}:{w:640,h:360}}__noWrapText(t){return(t??"").replace(/ /g," ").replace(/-/g,"‑")}__dispatchLikeEvent(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e})),this.dispatchEvent(new CustomEvent(t.replace("-",""),{bubbles:!0,composed:!0,detail:e}))}__dispatchSocialActionEvent(t,e){this.dispatchEvent(new CustomEvent(`social-${t}`,{bubbles:!0,composed:!0,detail:{action:t,originalEvent:e}}))}__dispatchCardNavigate(t,e){const n={href:t,originalEvent:e},c=new CustomEvent("card-navigate",{bubbles:!0,composed:!0,cancelable:!0,detail:n});if(this.dispatchEvent(c),c.defaultPrevented)return!1;const o=new CustomEvent("cardnavigate",{bubbles:!0,composed:!0,cancelable:!0,detail:n});return this.dispatchEvent(o),!o.defaultPrevented}__effectiveHref(){return this.cardHref||this.href}__navigate(t,e){t&&this.__dispatchCardNavigate(t,e)&&window.open(t,"_self")}__mediaTemplate(){if((this.mediaType||"").toLowerCase()==="avatar")return r`
2
+ import{_ as T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x as r,E as g,t as D}from"../../vendor/vendor.js";import"../../vendor/vendor-material.js";import"../scb-list/scb-list.js";import"../scb-button/scb-button.js";import"../scb-icon-button/scb-icon-button.js";import"../scb-link/scb-link.js";import"../scb-avatar/scb-avatar.js";import"../scb-tooltip/scb-tooltip.js";import"../scb-list/scb-list-item.js";(function(){try{var t=typeof globalThis<"u"?globalThis:window;if(!t.__scb_ce_guard_installed__){t.__scb_ce_guard_installed__=!0;var e=customElements.define.bind(customElements);customElements.define=function(n,c,o){try{customElements.get(n)||e(n,c,o)}catch(p){var d=String(p||"");if(d.indexOf("already been used")===-1&&d.indexOf("NotSupportedError")===-1)throw p}}}}catch{}})();var B=Object.defineProperty,N=Object.getOwnPropertyDescriptor,P=t=>{throw TypeError(t)},s=(t,e,n,c)=>{for(var o=c>1?void 0:c?N(e,n):e,d=t.length-1,p;d>=0;d--)(p=t[d])&&(o=(c?p(e,n,o):p(o))||o);return c&&o&&B(e,n,o),o},R=(t,e,n)=>e.has(t)||P("Cannot "+n),W=(t,e,n)=>e.has(t)?P("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),x=(t,e,n)=>(R(t,e,"access private method"),n),f,_,$;const l={fromAttribute:t=>t??"",toAttribute:t=>typeof t!="string"||t.trim()===""?null:t};let i=class extends H{constructor(){super(...arguments),W(this,f),this.__managedSocialAttributes=new Set(["social-comments-text","social-comments","social-comments-href","social-likes-text","social-likes","social-likes-hover-content","social-has-liked","social-likes-interactive","social-author","social-author-text","social-author-href"]),this.__isSyncingManagedSocialAttributes=!1,this.type="standard",this.variant="standard",this.direction="dynamic",this.size="large",this.mediaType="",this.mediaHref="",this.mediaAlt="",this.mediaSrcset="",this.mediaSizes="",this.mediaLoading="auto",this.mediaDecoding="async",this.mediaFetchPriority="auto",this.mediaFit="cover",this.mediaPosition="center",this.mediaWidth="",this.mediaHeight="",this.mediaAspect="",this.mediaPlaceholder=!1,this.cardHref="",this.href="",this.title="",this.subtitle="",this.supportingText="",this.commentsText="",this.commentsDisabled=!1,this.commentsHref="",this.likesText="",this.likesDisabled=!1,this.likesHoverContent="",this.hasLiked=!1,this.likesInteractive=!0,this.author=!1,this.authorText="",this.authorHref="",this.replyEnabled=!1,this.editEnabled=!1,this.deleteEnabled=!1,this.sizing="stretch",this.width="",this.maxWidth="",this.height="",this.maxHeight="",this.spacing=void 0,this.spacingTop=void 0,this.spacingBottom=void 0,this.spacingLeft=void 0,this.spacingRight=void 0,this.innerPadding=void 0,this.paddingTop=void 0,this.paddingBottom=void 0,this.paddingLeft=void 0,this.paddingRight=void 0,this.__onImgLoad=t=>{const e=t.currentTarget.closest(".media");e&&e.classList.add("is-loaded")},this.__onKeyDown=t=>{const e=this.__effectiveHref();(t.key==="Enter"||t.key===" ")&&e&&(t.preventDefault(),this.__navigate(e,t))},this.__handleHrefNavigation=t=>{const e=this.__effectiveHref();e&&(t.target.closest("a")||this.__navigate(e,t))}}attributeChangedCallback(t,e,n){this.__isSyncingManagedSocialAttributes&&this.__managedSocialAttributes.has(t)||super.attributeChangedCallback(t,e,n)}get likeButton(){return this.type!=="social"?null:this.renderRoot.querySelector(".likes scb-icon-button")}__calcAspectWH(t){const e=(t||"").trim();if(!e)return{w:600,h:400};const n=e.includes("/")?e.split("/"):e.includes(":")?e.split(":"):e.includes("x")?e.split("x"):null;if(n&&n.length===2){const o=Number(n[0]),d=Number(n[1]);if(o>0&&d>0)return{w:o,h:d}}const c=Number(e);return isFinite(c)&&c>0?{w:1e3,h:Math.round(1e3/c)}:{w:600,h:400}}__noWrapText(t){return(t??"").replace(/ /g," ").replace(/-/g,"‑")}__dispatchLikeEvent(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e})),this.dispatchEvent(new CustomEvent(t.replace("-",""),{bubbles:!0,composed:!0,detail:e}))}__dispatchSocialActionEvent(t,e){this.dispatchEvent(new CustomEvent(`social-${t}`,{bubbles:!0,composed:!0,detail:{action:t,originalEvent:e}}))}__dispatchCardNavigate(t,e){const n={href:t,originalEvent:e},c=new CustomEvent("card-navigate",{bubbles:!0,composed:!0,cancelable:!0,detail:n});if(this.dispatchEvent(c),c.defaultPrevented)return!1;const o=new CustomEvent("cardnavigate",{bubbles:!0,composed:!0,cancelable:!0,detail:n});return this.dispatchEvent(o),!o.defaultPrevented}__effectiveHref(){return this.cardHref||this.href}__navigate(t,e){t&&this.__dispatchCardNavigate(t,e)&&window.open(t,"_self")}__mediaTemplate(){if((this.mediaType||"").toLowerCase()==="avatar")return r`
3
3
  <div class="media">
4
4
  <slot name="media">
5
5
  <scb-avatar variant="icon" label="${this.title}" icon-name="person"></scb-avatar>
6
6
  </slot>
7
7
  </div>
8
- `;if(this.mediaHref||this.mediaSrcset){let e=Number(this.mediaWidth)||0,n=Number(this.mediaHeight)||0;const c=(this.mediaAspect||"").trim();if(!e||!n){const p=this.__calcAspectWH(c||"16/9");e||(e=p.w),n||(n=p.h)}const o=`aspect-ratio:${c||`${e}/${n}`};`,d=this.mediaPlaceholder?"has-ph":"";return r`
8
+ `;if(this.mediaHref||this.mediaSrcset){let e=Number(this.mediaWidth)||0,n=Number(this.mediaHeight)||0;const c=(this.mediaAspect||"").trim();if(!e||!n){const p=this.__calcAspectWH(c||"3/2");e||(e=p.w),n||(n=p.h)}const o=`aspect-ratio:${c||`${e}/${n}`};`,d=this.mediaPlaceholder?"has-ph":"";return r`
9
9
  <div class="media ${d}" style="${o}">
10
10
  <slot name="media-sources"></slot>
11
11
  <img
@@ -224,7 +224,7 @@ import{_ as T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x
224
224
  padding: var(--scb-card-focus-ring-gap, 4px);
225
225
  --scb-card-horizontal-media-max: 176px;
226
226
  --scb-card-horizontal-media-min: 96px;
227
- --scb-card-horizontal-media-aspect: 16 / 9;
227
+ --scb-card-horizontal-media-aspect: 3 / 2;
228
228
 
229
229
  margin-block-start: var(--scb-card-spacing-block-start, 0);
230
230
  margin-block-end: var(--scb-card-spacing-block-end, 0);
@@ -572,6 +572,7 @@ import{_ as T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x
572
572
  }
573
573
  .header md-icon {
574
574
  flex: 0 0 auto;
575
+ align-self: start;
575
576
  }
576
577
 
577
578
  .sub-label {
@@ -628,7 +629,7 @@ import{_ as T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x
628
629
  .scb-card.horizontal .media img {
629
630
  margin: 0;
630
631
  object-fit: var(--scb-card-media-fit, cover);
631
- aspect-ratio: var(--scb-card-horizontal-media-aspect, 16 / 9);
632
+ aspect-ratio: var(--scb-card-horizontal-media-aspect, 3 / 2);
632
633
  inline-size: 100%;
633
634
  block-size: auto;
634
635
  }
@@ -667,7 +668,7 @@ import{_ as T}from"../../vendor/preload-helper.js";import{a as F,n as a,i as H,x
667
668
  .scb-card.dynamic-direction .media img {
668
669
  margin: 0;
669
670
  object-fit: var(--scb-card-media-fit, cover);
670
- aspect-ratio: var(--scb-card-horizontal-media-aspect, 16 / 9);
671
+ aspect-ratio: var(--scb-card-horizontal-media-aspect, 3 / 2);
671
672
  inline-size: 100%;
672
673
  block-size: auto;
673
674
  }
@@ -0,0 +1,131 @@
1
+ import{a as S,n as E,r as k,i as T,x,t as A}from"../../vendor/vendor.js";import"../scb-horizontal-scroller/scb-horizontal-scroller.js";import"../scb-overlay/scb-overlay.js";import"../scb-icon-button/scb-icon-button.js";import"../../vendor/preload-helper.js";import"../../vendor/vendor-material.js";import"../scb-button/scb-button.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(a,r,l){try{customElements.get(a)||t(a,r,l)}catch(h){var n=String(h||"");if(n.indexOf("already been used")===-1&&n.indexOf("NotSupportedError")===-1)throw h}}}}catch{}})();var W=Object.defineProperty,$=Object.getOwnPropertyDescriptor,I=e=>{throw TypeError(e)},v=(e,t,a,r)=>{for(var l=r>1?void 0:r?$(t,a):t,n=e.length-1,h;n>=0;n--)(h=e[n])&&(l=(r?h(t,a,l):h(l))||l);return r&&l&&W(t,a,l),l},w=(e,t,a)=>t.has(e)||I("Cannot "+a),s=(e,t,a)=>(w(e,t,"read from private field"),t.get(e)),o=(e,t,a)=>t.has(e)?I("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,a),M=(e,t,a,r)=>(w(e,t,"write to private field"),t.set(e,a),a),c=(e,t,a)=>(w(e,t,"access private method"),a),y,u,_,m,b,f,i,C,z,p,O,L,g;let d=class extends T{constructor(){super(...arguments),o(this,i),this.variant="default",this.enableClickCarousel=!0,this.overlayOpen=!1,this.overlayIndex=0,this.overlayImages=[],o(this,y,[]),o(this,u,e=>{e.key==="Escape"&&this.overlayOpen&&s(this,g).call(this)}),o(this,_,()=>{c(this,i,p).call(this)}),o(this,m,e=>{if(!this.enableClickCarousel)return;const t=e.currentTarget;t instanceof HTMLElement&&t.setAttribute("data-scb-gallery-hover","")}),o(this,b,e=>{if(!this.enableClickCarousel)return;const t=e.currentTarget;t instanceof HTMLElement&&t.removeAttribute("data-scb-gallery-hover")}),o(this,f,e=>{if(!this.enableClickCarousel)return;const t=e.currentTarget;if(!(t instanceof HTMLElement))return;const a=t.getAttribute("data-scb-gallery-slide-index");if(a==null)return;const r=Number(a);Number.isFinite(r)&&c(this,i,L).call(this,r)}),o(this,g,()=>{this.overlayOpen=!1})}connectedCallback(){super.connectedCallback(),window.addEventListener("keydown",s(this,u))}disconnectedCallback(){window.removeEventListener("keydown",s(this,u)),c(this,i,C).call(this),super.disconnectedCallback()}firstUpdated(){c(this,i,p).call(this)}updated(e){e.has("enableClickCarousel")&&(this.enableClickCarousel||s(this,g).call(this),c(this,i,p).call(this))}render(){return x`
2
+ <div class="gallery">
3
+ <slot @slotchange=${s(this,_)}></slot>
4
+ </div>
5
+ ${this.overlayOpen&&this.enableClickCarousel?x`
6
+ <scb-overlay open aria-label="Bildkarusell" @scb-overlay-dismiss=${s(this,g)}>
7
+ <div class="overlay-dialog">
8
+ <scb-horizontal-scroller show-scrollbar class="overlay-carousel" variant="standard" width="100%" content-flex internal-gap="0">
9
+ ${c(this,i,O).call(this).map((e,t)=>x`
10
+ <div
11
+ class="overlay-slide ${t===0?"is-active":""}"
12
+ data-overlay-slide-index="${t}"
13
+ >
14
+ <img src="${e.src}" alt="${e.alt}" />
15
+ </div>
16
+ `)}
17
+ </scb-horizontal-scroller>
18
+ </div>
19
+ </scb-overlay>
20
+ `:""}
21
+ `}};y=new WeakMap;u=new WeakMap;_=new WeakMap;m=new WeakMap;b=new WeakMap;f=new WeakMap;i=new WeakSet;C=function(){s(this,y).forEach(e=>{e.removeEventListener("pointerenter",s(this,m)),e.removeEventListener("pointerleave",s(this,b)),e.removeEventListener("click",s(this,f)),e.removeAttribute("data-scb-gallery-hover"),e.removeAttribute("data-scb-gallery-clickable"),e.removeAttribute("data-scb-gallery-slide-index")}),M(this,y,[])};z=function(e){if(e instanceof HTMLImageElement){const t=e.currentSrc||e.src;return t?{src:t,alt:e.alt||"Galleri-bild"}:null}return null};p=function(){c(this,i,C).call(this);const e=this.renderRoot.querySelector("slot");if(!(e instanceof HTMLSlotElement)){this.overlayImages=[];return}const t=e.assignedElements({flatten:!0}).filter(r=>r instanceof HTMLElement);M(this,y,t);const a=[];t.forEach(r=>{if(!this.enableClickCarousel)return;const l=c(this,i,z).call(this,r);if(!l)return;r.addEventListener("pointerenter",s(this,m)),r.addEventListener("pointerleave",s(this,b));const n=a.length;a.push(l),r.setAttribute("data-scb-gallery-clickable",""),r.setAttribute("data-scb-gallery-slide-index",String(n)),r.addEventListener("click",s(this,f))}),this.overlayImages=a};O=function(){if(this.overlayImages.length===0)return[];const e=Math.max(0,Math.min(this.overlayIndex,this.overlayImages.length-1));return[...this.overlayImages.slice(e),...this.overlayImages.slice(0,e)]};L=function(e){if(!this.enableClickCarousel||this.overlayImages.length===0)return;const t=Math.max(0,Math.min(e,this.overlayImages.length-1));this.overlayIndex=t,this.overlayOpen=!0};g=new WeakMap;d.styles=S`
22
+ :host {
23
+ display: block;
24
+ --scb-gallery-grid-gap: var(--spacing-4, 12px);
25
+ --scb-gallery-grid-item-min: 180px;
26
+ --scb-gallery-grid-item-height: 220px;
27
+ --scb-gallery-grid-masonry-columns: 3;
28
+ --scb-gallery-overlay-max-width: 980px;
29
+ --scb-gallery-overlay-slide-height: min(68vh, 620px);
30
+ }
31
+
32
+ .gallery {
33
+ display: grid;
34
+ grid-template-columns: repeat(auto-fill, minmax(var(--scb-gallery-grid-item-min), 1fr));
35
+ gap: var(--scb-gallery-grid-gap);
36
+ align-items: start;
37
+ }
38
+
39
+ .gallery > slot {
40
+ display: contents;
41
+ }
42
+
43
+ .gallery ::slotted(*) {
44
+ box-sizing: border-box;
45
+ inline-size: 100%;
46
+ min-inline-size: 0;
47
+ block-size: var(--scb-gallery-grid-item-height);
48
+ overflow: hidden;
49
+ transition:
50
+ transform 160ms ease,
51
+ box-shadow 160ms ease;
52
+ will-change: transform;
53
+ }
54
+
55
+ .gallery ::slotted([data-scb-gallery-hover]) {
56
+ transform: translateY(-6px);
57
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
58
+ }
59
+
60
+ .gallery ::slotted([data-scb-gallery-clickable]) {
61
+ cursor: pointer;
62
+ }
63
+
64
+ .gallery ::slotted(img),
65
+ .gallery ::slotted(picture),
66
+ .gallery ::slotted(video) {
67
+ inline-size: 100%;
68
+ block-size: 100%;
69
+ object-fit: cover;
70
+ display: block;
71
+ border-radius: var(--md-sys-shape-corner-medium, 12px);
72
+ }
73
+
74
+ :host([variant='masonry']) .gallery {
75
+ display: block;
76
+ column-count: var(--scb-gallery-grid-masonry-columns);
77
+ column-gap: var(--scb-gallery-grid-gap);
78
+ }
79
+
80
+ :host([variant='masonry']) .gallery ::slotted(*) {
81
+ break-inside: avoid;
82
+ -webkit-column-break-inside: avoid;
83
+ margin-block-end: var(--scb-gallery-grid-gap);
84
+ block-size: auto;
85
+ }
86
+
87
+ :host([variant='masonry']) .gallery ::slotted(img),
88
+ :host([variant='masonry']) .gallery ::slotted(picture),
89
+ :host([variant='masonry']) .gallery ::slotted(video) {
90
+ block-size: auto;
91
+ }
92
+
93
+ @media (max-width: 960px) {
94
+ :host([variant='masonry']) .gallery {
95
+ column-count: 2;
96
+ }
97
+ }
98
+
99
+ @media (max-width: 640px) {
100
+ :host([variant='masonry']) .gallery {
101
+ column-count: 1;
102
+ }
103
+ }
104
+
105
+ .overlay-dialog {
106
+ position: relative;
107
+ inline-size: min(var(--scb-gallery-overlay-max-width), 100%);
108
+ max-block-size: 100%;
109
+ border-radius: var(--md-sys-shape-corner-extra-large, 28px);
110
+ background: var(--md-sys-color-surface-container-low, #1f1f1f);
111
+ padding: var(--spacing-4, 12px);
112
+ overflow: hidden;
113
+ }
114
+
115
+ .overlay-slide {
116
+ inline-size: 100%;
117
+ flex: 0 0 100%;
118
+ block-size: var(--scb-gallery-overlay-slide-height);
119
+ border-radius: var(--md-sys-shape-corner-large, 16px);
120
+ overflow: hidden;
121
+ box-shadow: inset 0 0 0 2px transparent;
122
+ transition: box-shadow 160ms ease;
123
+ }
124
+
125
+ .overlay-slide img {
126
+ inline-size: 100%;
127
+ block-size: 100%;
128
+ object-fit: contain;
129
+ display: block;
130
+ }
131
+ `;v([E({type:String,reflect:!0})],d.prototype,"variant",2);v([E({type:Boolean,reflect:!0,attribute:"enable-carousel"})],d.prototype,"enableClickCarousel",2);v([k()],d.prototype,"overlayOpen",2);v([k()],d.prototype,"overlayIndex",2);v([k()],d.prototype,"overlayImages",2);d=v([A("scb-gallery-grid")],d);
@@ -0,0 +1,42 @@
1
+ import{a as x,n as _,i as w,E as f,x as k,t as E}from"../../vendor/vendor.js";(function(){try{var e=typeof globalThis<"u"?globalThis:window;if(!e.__scb_ce_guard_installed__){e.__scb_ce_guard_installed__=!0;var t=customElements.define.bind(customElements);customElements.define=function(s,n,i){try{customElements.get(s)||t(s,n,i)}catch(r){var a=String(r||"");if(a.indexOf("already been used")===-1&&a.indexOf("NotSupportedError")===-1)throw r}}}}catch{}})();var C=Object.defineProperty,z=Object.getOwnPropertyDescriptor,y=e=>{throw TypeError(e)},b=(e,t,s,n)=>{for(var i=n>1?void 0:n?z(t,s):t,a=e.length-1,r;a>=0;a--)(r=e[a])&&(i=(n?r(t,s,i):r(i))||i);return n&&i&&C(t,s,i),i},m=(e,t,s)=>t.has(e)||y("Cannot "+s),d=(e,t,s)=>(m(e,t,"read from private field"),s?s.call(e):t.get(e)),p=(e,t,s)=>t.has(e)?y("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),v=(e,t,s)=>(m(e,t,"access private method"),s),o,u,g,h,c;let l=class extends w{constructor(){super(...arguments),p(this,o),this.open=!1,this.ariaLabel="",p(this,h,e=>{v(this,o,g).call(this,e)||v(this,o,u).call(this)}),p(this,c,e=>{this.open&&e.key==="Escape"&&v(this,o,u).call(this)})}render(){return this.open?k`
2
+ <div class="scrim" @click=${d(this,h)}>
3
+ <div class="content" role="dialog" aria-modal="true" aria-label="${this.ariaLabel||f}">
4
+ <slot></slot>
5
+ </div>
6
+ </div>
7
+ `:f}connectedCallback(){super.connectedCallback(),window.addEventListener("keydown",d(this,c))}disconnectedCallback(){window.removeEventListener("keydown",d(this,c)),super.disconnectedCallback()}};o=new WeakSet;u=function(){this.open&&(this.open=!1,this.dispatchEvent(new CustomEvent("scb-overlay-dismiss",{bubbles:!0,composed:!0})))};g=function(e){const t=this.renderRoot.querySelector("slot");if(!(t instanceof HTMLSlotElement))return!1;const s=e.composedPath();return t.assignedNodes({flatten:!0}).some(i=>s.includes(i))};h=new WeakMap;c=new WeakMap;l.styles=x`
8
+ :host {
9
+ position: fixed;
10
+ inset: 0;
11
+ z-index: var(--scb-overlay-z-index, 1000);
12
+ display: none;
13
+ box-sizing: border-box;
14
+ }
15
+
16
+ :host([open]) {
17
+ display: block;
18
+ }
19
+
20
+ .scrim {
21
+ display: grid;
22
+ place-items: center;
23
+ inline-size: 100%;
24
+ block-size: 100%;
25
+ padding: var(--scb-overlay-padding, var(--spacing-6, 24px));
26
+ background: var(--scb-overlay-backdrop, color-mix(in srgb, var(--md-sys-color-scrim) 32%, transparent));
27
+ box-sizing: border-box;
28
+ }
29
+
30
+ .content {
31
+ position: relative;
32
+ max-inline-size: 100%;
33
+ max-block-size: 100%;
34
+ box-sizing: border-box;
35
+ }
36
+
37
+ .content ::slotted(*) {
38
+ margin: auto;
39
+ max-inline-size: 100%;
40
+ max-block-size: 100%;
41
+ }
42
+ `;b([_({type:Boolean,reflect:!0})],l.prototype,"open",2);b([_({type:String,attribute:"aria-label"})],l.prototype,"ariaLabel",2);l=b([E("scb-overlay")],l);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scb-wc-test",
3
- "version": "0.1.349",
3
+ "version": "0.1.351",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -180,6 +180,10 @@
180
180
  "import": "./scb-footer/scb-footer-section.js",
181
181
  "require": "./scb-footer/scb-footer-section.js"
182
182
  },
183
+ "./scb-gallery-grid": {
184
+ "import": "./scb-gallery-grid/scb-gallery-grid.js",
185
+ "require": "./scb-gallery-grid/scb-gallery-grid.js"
186
+ },
183
187
  "./scb-grid": {
184
188
  "import": "./scb-grid/scb-grid.js",
185
189
  "require": "./scb-grid/scb-grid.js"
@@ -276,6 +280,10 @@
276
280
  "import": "./scb-options-menu/scb-options-sub-menu.js",
277
281
  "require": "./scb-options-menu/scb-options-sub-menu.js"
278
282
  },
283
+ "./scb-overlay": {
284
+ "import": "./scb-overlay/scb-overlay.js",
285
+ "require": "./scb-overlay/scb-overlay.js"
286
+ },
279
287
  "./scb-pagination": {
280
288
  "import": "./scb-pagination/scb-pagination.js",
281
289
  "require": "./scb-pagination/scb-pagination.js"
@@ -414,5 +422,5 @@
414
422
  },
415
423
  "./mvc/*": "./mvc/*"
416
424
  },
417
- "buildHash": "8ACAE0EACE17B5D625FC0363C8E877B27149AFEA5AF1F2FB99D400E6D8D40C09"
425
+ "buildHash": "2CA2B0AC9C2FF74C81A20BF63BC2927E22EF16936F4CB2CC36E6ADECED370630"
418
426
  }
@@ -55,14 +55,14 @@ let i = class extends E {
55
55
  /* Beräkna fallback-mått från media-aspect. Används endast om width/height saknas. */
56
56
  __calcAspectWH(t) {
57
57
  const e = (t || "").trim();
58
- if (!e) return { w: 640, h: 360 };
58
+ if (!e) return { w: 600, h: 400 };
59
59
  const n = e.includes("/") ? e.split("/") : e.includes(":") ? e.split(":") : e.includes("x") ? e.split("x") : null;
60
60
  if (n && n.length === 2) {
61
61
  const o = Number(n[0]), p = Number(n[1]);
62
62
  if (o > 0 && p > 0) return { w: o, h: p };
63
63
  }
64
64
  const c = Number(e);
65
- return isFinite(c) && c > 0 ? { w: 1e3, h: Math.round(1e3 / c) } : { w: 640, h: 360 };
65
+ return isFinite(c) && c > 0 ? { w: 1e3, h: Math.round(1e3 / c) } : { w: 600, h: 400 };
66
66
  }
67
67
  __noWrapText(t) {
68
68
  return (t ?? "").replace(/ /g, " ").replace(/-/g, "‑");
@@ -114,7 +114,7 @@ let i = class extends E {
114
114
  let e = Number(this.mediaWidth) || 0, n = Number(this.mediaHeight) || 0;
115
115
  const c = (this.mediaAspect || "").trim();
116
116
  if (!e || !n) {
117
- const h = this.__calcAspectWH(c || "16/9");
117
+ const h = this.__calcAspectWH(c || "3/2");
118
118
  e || (e = h.w), n || (n = h.h);
119
119
  }
120
120
  const o = `aspect-ratio:${c || `${e}/${n}`};`, p = this.mediaPlaceholder ? "has-ph" : "";
@@ -435,7 +435,7 @@ i.styles = H`
435
435
  padding: var(--scb-card-focus-ring-gap, 4px);
436
436
  --scb-card-horizontal-media-max: 176px;
437
437
  --scb-card-horizontal-media-min: 96px;
438
- --scb-card-horizontal-media-aspect: 16 / 9;
438
+ --scb-card-horizontal-media-aspect: 3 / 2;
439
439
 
440
440
  margin-block-start: var(--scb-card-spacing-block-start, 0);
441
441
  margin-block-end: var(--scb-card-spacing-block-end, 0);
@@ -783,6 +783,7 @@ i.styles = H`
783
783
  }
784
784
  .header md-icon {
785
785
  flex: 0 0 auto;
786
+ align-self: start;
786
787
  }
787
788
 
788
789
  .sub-label {
@@ -839,7 +840,7 @@ i.styles = H`
839
840
  .scb-card.horizontal .media img {
840
841
  margin: 0;
841
842
  object-fit: var(--scb-card-media-fit, cover);
842
- aspect-ratio: var(--scb-card-horizontal-media-aspect, 16 / 9);
843
+ aspect-ratio: var(--scb-card-horizontal-media-aspect, 3 / 2);
843
844
  inline-size: 100%;
844
845
  block-size: auto;
845
846
  }
@@ -878,7 +879,7 @@ i.styles = H`
878
879
  .scb-card.dynamic-direction .media img {
879
880
  margin: 0;
880
881
  object-fit: var(--scb-card-media-fit, cover);
881
- aspect-ratio: var(--scb-card-horizontal-media-aspect, 16 / 9);
882
+ aspect-ratio: var(--scb-card-horizontal-media-aspect, 3 / 2);
882
883
  inline-size: 100%;
883
884
  block-size: auto;
884
885
  }
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class ScbGalleryGrid extends LitElement {
3
+ #private;
4
+ variant: 'default' | 'masonry';
5
+ enableClickCarousel: boolean;
6
+ private overlayOpen;
7
+ private overlayIndex;
8
+ private overlayImages;
9
+ static styles: import('lit').CSSResult;
10
+ connectedCallback(): void;
11
+ disconnectedCallback(): void;
12
+ protected firstUpdated(): void;
13
+ protected updated(changed: Map<string, unknown>): void;
14
+ render(): import('lit-html').TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'scb-gallery-grid': ScbGalleryGrid;
19
+ }
20
+ }