@cupra/ui-kit 2.0.0-canary.107 → 2.0.0-canary.109

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 (41) hide show
  1. package/dist/cjs/components/ds-button/ds-button.cjs +31 -35
  2. package/dist/cjs/components/ds-button/styles/common.styles.cjs +12 -9
  3. package/dist/cjs/components/ds-icon-button/ds-icon-button.cjs +2 -2
  4. package/dist/cjs/components/ds-theme-provider/ds-theme-provider.cjs +1 -1
  5. package/dist/cjs/utils/IconsManager.cjs +1 -1
  6. package/dist/cjs/utils/PubSub.cjs +1 -1
  7. package/dist/cjs/utils/StylesRegistry/StylesRegistry.cjs +1 -1
  8. package/dist/cjs/utils/cssWithTokens.cjs +1 -1
  9. package/dist/cjs/utils/htmlWithTokens.cjs +1 -1
  10. package/dist/esm/components/ds-button/ds-button.js +34 -34
  11. package/dist/esm/components/ds-button/styles/common.styles.js +12 -9
  12. package/dist/esm/components/ds-icon-button/ds-icon-button.js +5 -1
  13. package/dist/esm/components/ds-theme-provider/ds-theme-provider.js +1 -1
  14. package/dist/esm/utils/IconsManager.js +1 -1
  15. package/dist/esm/utils/PubSub.js +1 -1
  16. package/dist/esm/utils/StylesRegistry/StylesRegistry.js +1 -1
  17. package/dist/esm/utils/cssWithTokens.js +1 -1
  18. package/dist/esm/utils/htmlWithTokens.js +1 -1
  19. package/dist/types/components/ds-button/ds-button.d.ts +1 -0
  20. package/dist/types/components/ds-icon-button/ds-icon-button.d.ts +1 -0
  21. package/dist-react/cjs/components/ds-button/ds-button.cjs +31 -35
  22. package/dist-react/cjs/components/ds-button/styles/common.styles.cjs +12 -9
  23. package/dist-react/cjs/components/ds-icon-button/ds-icon-button.cjs +2 -2
  24. package/dist-react/cjs/components/ds-theme-provider/ds-theme-provider.cjs +1 -1
  25. package/dist-react/cjs/utils/IconsManager.cjs +1 -1
  26. package/dist-react/cjs/utils/PubSub.cjs +1 -1
  27. package/dist-react/cjs/utils/StylesRegistry/StylesRegistry.cjs +1 -1
  28. package/dist-react/cjs/utils/cssWithTokens.cjs +1 -1
  29. package/dist-react/cjs/utils/htmlWithTokens.cjs +1 -1
  30. package/dist-react/esm/components/ds-button/ds-button.js +34 -34
  31. package/dist-react/esm/components/ds-button/styles/common.styles.js +12 -9
  32. package/dist-react/esm/components/ds-icon-button/ds-icon-button.js +5 -1
  33. package/dist-react/esm/components/ds-theme-provider/ds-theme-provider.js +1 -1
  34. package/dist-react/esm/utils/IconsManager.js +1 -1
  35. package/dist-react/esm/utils/PubSub.js +1 -1
  36. package/dist-react/esm/utils/StylesRegistry/StylesRegistry.js +1 -1
  37. package/dist-react/esm/utils/cssWithTokens.js +1 -1
  38. package/dist-react/esm/utils/htmlWithTokens.js +1 -1
  39. package/dist-react/types/components/ds-button/ds-button.d.ts +1 -0
  40. package/dist-react/types/components/ds-icon-button/ds-icon-button.d.ts +1 -0
  41. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/when.cjs`),f=require(`./styles/common.styles.cjs`);var p=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.destructive=!1,this.htmlTagName=`button`,this.type=`button`,this.iconPosition=`left`,this.rounded=!1,this.fullWidth=!1,this.loading=!1}static{this.styles=[f.buttonStyles,f.textStyles,f.loadingDotsStyles]}connectedCallback(){super.connectedCallback(),this.closestForm=this.closest(`form`)}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant,rounded:this.rounded,disabled:this.disabled||this.loading,destructive:this.destructive,"full-width":this.fullWidth}}handleClick(e){if(this.href||e.preventDefault(),this.closestForm&&this.type===`submit`){let e=new Event(`submit`,{bubbles:!0,composed:!0,cancelable:!0});this.closestForm.dispatchEvent(e)}}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}get loadingTemplate(){return this.loading?e.x`
1
+ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/when.cjs`),f=require(`./styles/common.styles.cjs`);var p=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.destructive=!1,this.htmlTagName=`button`,this.type=`button`,this.iconPosition=`left`,this.rounded=!1,this.fullWidth=!1,this.loading=!1}static{this.styles=[f.buttonStyles,f.textStyles,f.loadingDotsStyles]}connectedCallback(){super.connectedCallback(),this.closestForm=this.closest(`form`)}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant,rounded:this.rounded,disabled:this.disabled||this.loading,destructive:this.destructive,"full-width":this.fullWidth}}handleClick(e){if(this.href||e.preventDefault(),this.closestForm&&this.type===`submit`){let e=new Event(`submit`,{bubbles:!0,composed:!0,cancelable:!0});this.closestForm.dispatchEvent(e)}}handleCustomClick(e){let t=(this.shadowRoot?.querySelector(`slot`))?.assignedElements()[0];t&&!t.contains(e.composedPath()[0])&&(e.stopPropagation(),t.click())}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}get loadingTemplate(){return this.loading?e.x`
2
2
  <span class="loading-dots">
3
3
  <span>.</span>
4
4
  <span>.</span>
@@ -17,42 +17,38 @@ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/l
17
17
  </style>`}render(){return e.x`
18
18
  ${this.cssTokens}
19
19
  ${u.r(this.htmlTagName||`button`,[[`button`,()=>e.x`
20
- <div class=${s.e(this.classes)}>
21
- <button
22
- class="inner"
23
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
24
- type=${this.type}
25
- @click=${this.handleClick}
26
- ?disabled=${this.disabled}
27
- >
28
- ${d.n(this.iconPosition===`left`,()=>e.x` ${this.iconTemplate} `)}
29
- <span class="container">
30
- ${this.contentTemplate}
31
- ${this.loadingTemplate}
32
- </span>
33
- ${d.n(this.iconPosition===`right`,()=>e.x` ${this.iconTemplate} `)}
34
- </button>
35
- </div>
20
+ <button
21
+ class=${s.e(this.classes)}
22
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
23
+ type=${this.type}
24
+ @click=${this.handleClick}
25
+ ?disabled=${this.disabled}
26
+ >
27
+ ${d.n(this.iconPosition===`left`,()=>e.x` ${this.iconTemplate} `)}
28
+ <span class="container">
29
+ ${this.contentTemplate}
30
+ ${this.loadingTemplate}
31
+ </span>
32
+ ${d.n(this.iconPosition===`right`,()=>e.x` ${this.iconTemplate} `)}
33
+ </button>
36
34
  `],[`a`,()=>e.x`
37
- <div class=${s.e(this.classes)}>
38
- <a
39
- class="inner"
40
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
41
- href=${this.href}
42
- rel=${this.rel}
43
- target=${this.target}
44
- @click=${this.handleClick}
45
- >
46
- ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
47
- <span class="container">
48
- ${this.contentTemplate}
49
- ${this.loadingTemplate}
50
- </span>
51
- ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
52
- </a>
53
- </div>
35
+ <a
36
+ class=${s.e(this.classes)}
37
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
38
+ href=${this.href}
39
+ rel=${this.rel}
40
+ target=${this.target}
41
+ @click=${this.handleClick}
42
+ >
43
+ ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
44
+ <span class="container">
45
+ ${this.contentTemplate}
46
+ ${this.loadingTemplate}
47
+ </span>
48
+ ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
49
+ </a>
54
50
  `],[`custom`,()=>e.x`
55
- <div class=${s.e(this.classes)}>
51
+ <div class=${s.e(this.classes)} @click=${this.handleCustomClick}>
56
52
  ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
57
53
  ${this.loading&&this.textLoading?e.x`<span class="container">${this.textLoading}${this.loadingTemplate}</span>`:e.x`<slot></slot>${this.loadingTemplate}`}
58
54
  ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
@@ -10,6 +10,15 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
10
10
  box-sizing: border-box;
11
11
  justify-content: center;
12
12
  align-items: center;
13
+ gap: var(--ui-kit-button-gap, 0);
14
+ padding: 0;
15
+ margin: 0;
16
+ background: transparent;
17
+ border: none;
18
+ color: inherit;
19
+ font: inherit;
20
+ text-transform: inherit;
21
+ letter-spacing: inherit;
13
22
  cursor: pointer;
14
23
  outline-style: solid;
15
24
  max-width: 100%;
@@ -19,13 +28,13 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
19
28
  width: 100%;
20
29
  }
21
30
 
22
- .inner,
23
31
  .custom ::slotted(*) {
24
32
  display: inline-flex;
25
33
  align-items: center;
26
34
  justify-content: center;
27
- width: 100%;
28
- height: 100%;
35
+ width: auto;
36
+ flex: 1;
37
+ min-width: 0;
29
38
  gap: var(--ui-kit-button-gap, 0);
30
39
  padding: 0;
31
40
  margin: 0;
@@ -41,12 +50,6 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
41
50
  box-sizing: border-box;
42
51
  }
43
52
 
44
- .custom ::slotted(*) {
45
- width: auto;
46
- flex: 1;
47
- min-width: 0;
48
- }
49
-
50
53
  .custom ::slotted(*:disabled),
51
54
  .custom.disabled ::slotted(*) {
52
55
  pointer-events: none;
@@ -1,4 +1,4 @@
1
- const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`./styles/common.styles.cjs`);var f=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.htmlTagName=`button`}static{this.styles=[d.buttonStyles]}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}handleClick(e){this.href||e.preventDefault()}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,disabled:this.disabled,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}get variantColorTokens(){return o.htmlWithTokens`
1
+ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`./styles/common.styles.cjs`);var f=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.htmlTagName=`button`}static{this.styles=[d.buttonStyles]}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}handleClick(e){this.href||e.preventDefault()}handleCustomClick(e){let t=(this.shadowRoot?.querySelector(`slot`))?.assignedElements()[0];t&&!t.contains(e.composedPath()[0])&&(e.stopPropagation(),t.click())}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,disabled:this.disabled,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}get variantColorTokens(){return o.htmlWithTokens`
2
2
  <style>
3
3
  :host{
4
4
  color-scheme: ${this.mode};
@@ -33,7 +33,7 @@ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/l
33
33
  ${this.iconTemplate}
34
34
  </a>
35
35
  `],[`custom`,()=>e.x`
36
- <div class=${s.e(this.classes)}>
36
+ <div class=${s.e(this.classes)} @click=${this.handleCustomClick}>
37
37
  <slot></slot>
38
38
  </div>
39
39
  `]])}
@@ -1,4 +1,4 @@
1
1
  const e=require(`../../node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/lib/decorators/provide.cjs`),t=require(`./themeContext.cjs`),n=require(`../../core/theme.constants.cjs`),r=require(`../../utils/PubSub.cjs`),i=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`),a=require(`../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const o=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`),s=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const c=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),l=require(`../../decorators/customUiKitElement.cjs`),u=require(`../../utils/booleanConverter.cjs`),d=require(`../../styles/source/shared/fonts-config.cjs`);var f=class extends a.i{constructor(...e){super(...e),this.loadFonts=!0,this.loadStyles=!0,this.cssLoaded=!1,this.loadedFonts=new Set}updated(e){super.updated(e),e.has(`theme`)&&(r.pubSub.publish(`theme`,this.theme),sessionStorage?.setItem(n.THEME_STORAGE_KEY,this.theme),typeof FontFace<`u`&&document?.fonts&&this.loadThemeFonts(),this.loadThemeStyles().then(()=>{this.cssLoaded=!0,this.dispatchEvent(new CustomEvent(`ui-kit:ready`,{bubbles:!0,composed:!0}))}))}loadThemeFonts(){d.fontsConfig[this.theme]?.fonts.forEach(e=>{this.loadThemeFont(e)})}async loadThemeFont({weight:e,name:t,file:n}){if(!this.loadFonts)return Promise.resolve();let r=`${t}-${e}`;if(this.loadedFonts.has(r))return;let i=new FontFace(t,`url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.woff2') format('woff2'),
2
2
  url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.woff') format('woff'),
3
3
  url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.ttf') format('truetype'),
4
- url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.otf') format('opentype')`,{style:`normal`,weight:e,display:`swap`});try{await i.load(),document.fonts.add(i),this.loadedFonts.add(r)}catch(n){console.error(`Error loading "${t}" font with "${e}" weight:`,n)}}loadThemeStyles(){return this.loadStyles?new Promise((e,t)=>{let n=`/2.0.0-canary.107`,r=`https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;if(document.head.querySelector(`link[href="${r}"]`))e();else{let i=`ui-kit-theme-${n}`,a=document.getElementById(i),o=document.createElement(`link`);o.id=i,o.rel=`stylesheet`,o.href=r,o.onload=()=>e(),o.onerror=()=>t(Error(`Failed to load theme CSS: ${r}`)),document.head.appendChild(o),a?.remove()}}):Promise.resolve()}render(){return this.cssLoaded?i.x`<slot></slot>`:i.E}};c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-fonts`})],f.prototype,`loadFonts`,void 0),c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-styles`})],f.prototype,`loadStyles`,void 0),c.__decorate([e.e({context:t.themeContext}),o.n({type:String})],f.prototype,`theme`,void 0),c.__decorate([s.r()],f.prototype,`cssLoaded`,void 0),c.__decorate([s.r()],f.prototype,`loadedFonts`,void 0),f=c.__decorate([l.customUiKitElement(`ds-theme-provider`)],f);
4
+ url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.otf') format('opentype')`,{style:`normal`,weight:e,display:`swap`});try{await i.load(),document.fonts.add(i),this.loadedFonts.add(r)}catch(n){console.error(`Error loading "${t}" font with "${e}" weight:`,n)}}loadThemeStyles(){return this.loadStyles?new Promise((e,t)=>{let n=`/2.0.0-canary.109`,r=`https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;if(document.head.querySelector(`link[href="${r}"]`))e();else{let i=`ui-kit-theme-${n}`,a=document.getElementById(i),o=document.createElement(`link`);o.id=i,o.rel=`stylesheet`,o.href=r,o.onload=()=>e(),o.onerror=()=>t(Error(`Failed to load theme CSS: ${r}`)),document.head.appendChild(o),a?.remove()}}):Promise.resolve()}render(){return this.cssLoaded?i.x`<slot></slot>`:i.E}};c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-fonts`})],f.prototype,`loadFonts`,void 0),c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-styles`})],f.prototype,`loadStyles`,void 0),c.__decorate([e.e({context:t.themeContext}),o.n({type:String})],f.prototype,`theme`,void 0),c.__decorate([s.r()],f.prototype,`cssLoaded`,void 0),c.__decorate([s.r()],f.prototype,`loadedFonts`,void 0),f=c.__decorate([l.customUiKitElement(`ds-theme-provider`)],f);
@@ -1 +1 @@
1
- const e=require(`../core/theme.constants.cjs`),t=require(`./PubSub.cjs`);var n=class{constructor(){this.icons={},this.handleChangeTheme=e=>{if(this.theme===e)return;this.theme=e;let t=Object.keys(this.icons);this.icons={},t.forEach(e=>this.fetchIcon(e))},this.fetchIcon=async(t,n={})=>{let r=typeof sessionStorage<`u`?sessionStorage?.getItem(e.THEME_STORAGE_KEY):null;!this.theme&&r&&(this.theme=r);let i=this.icons[t];if(i)return await i;let a=this.loadIcon(t,n).catch(e=>{throw delete this.icons[t],e});return this.icons[t]=a,a},this.loadIcon=(e,{cache:t=`force-cache`,...n})=>!this.theme||typeof fetch>`u`?Promise.resolve(`<svg class="ds-icon"></svg>`):fetch(`https://ds-assets.cupra.com/icons/${this.theme}/${e}.svg`,{cache:t,...n}).then(e=>e.text()).catch(t=>{if(t?.name===`AbortError`)throw t;return console.error(`Failed to fetch icon "${e}":`,t),``}),t.pubSub.subscribe(`theme`,this.handleChangeTheme)}},r=Symbol.for(`@cupra/ui-kit/icons-manager/2.0.0-canary.107`),i=globalThis,a=i[r];a||(a=new n,Object.defineProperty(i,r,{value:a,writable:!1,configurable:!1,enumerable:!1}));var o=a;exports.iconsManager=o;
1
+ const e=require(`../core/theme.constants.cjs`),t=require(`./PubSub.cjs`);var n=class{constructor(){this.icons={},this.handleChangeTheme=e=>{if(this.theme===e)return;this.theme=e;let t=Object.keys(this.icons);this.icons={},t.forEach(e=>this.fetchIcon(e))},this.fetchIcon=async(t,n={})=>{let r=typeof sessionStorage<`u`?sessionStorage?.getItem(e.THEME_STORAGE_KEY):null;!this.theme&&r&&(this.theme=r);let i=this.icons[t];if(i)return await i;let a=this.loadIcon(t,n).catch(e=>{throw delete this.icons[t],e});return this.icons[t]=a,a},this.loadIcon=(e,{cache:t=`force-cache`,...n})=>!this.theme||typeof fetch>`u`?Promise.resolve(`<svg class="ds-icon"></svg>`):fetch(`https://ds-assets.cupra.com/icons/${this.theme}/${e}.svg`,{cache:t,...n}).then(e=>e.text()).catch(t=>{if(t?.name===`AbortError`)throw t;return console.error(`Failed to fetch icon "${e}":`,t),``}),t.pubSub.subscribe(`theme`,this.handleChangeTheme)}},r=Symbol.for(`@cupra/ui-kit/icons-manager/2.0.0-canary.109`),i=globalThis,a=i[r];a||(a=new n,Object.defineProperty(i,r,{value:a,writable:!1,configurable:!1,enumerable:!1}));var o=a;exports.iconsManager=o;
@@ -1 +1 @@
1
- var e=class{constructor(){this.subscribers={},this.lastPublishedData={}}subscribe(e,t){return this.subscribers[e]||(this.subscribers[e]=[]),this.subscribers[e].push(t),this.lastPublishedData[e]}unsubscribe(e,t){this.subscribers[e]&&(this.subscribers[e]=this.subscribers[e].filter(e=>e!==t))}publish(e,t){this.lastPublishedData[e]=t,this.subscribers[e]&&this.subscribers[e].forEach(n=>{try{n(t)}catch(t){console.error(`Error in subscriber for event "${e}":`,t)}})}},t=Symbol.for(`@cupra/ui-kit/pubsub/2.0.0-canary.107`),n=globalThis,r=n[t];r||(r=new e,Object.defineProperty(n,t,{value:r,writable:!1,configurable:!1,enumerable:!1}));var i=r;exports.pubSub=i;
1
+ var e=class{constructor(){this.subscribers={},this.lastPublishedData={}}subscribe(e,t){return this.subscribers[e]||(this.subscribers[e]=[]),this.subscribers[e].push(t),this.lastPublishedData[e]}unsubscribe(e,t){this.subscribers[e]&&(this.subscribers[e]=this.subscribers[e].filter(e=>e!==t))}publish(e,t){this.lastPublishedData[e]=t,this.subscribers[e]&&this.subscribers[e].forEach(n=>{try{n(t)}catch(t){console.error(`Error in subscriber for event "${e}":`,t)}})}},t=Symbol.for(`@cupra/ui-kit/pubsub/2.0.0-canary.109`),n=globalThis,r=n[t];r||(r=new e,Object.defineProperty(n,t,{value:r,writable:!1,configurable:!1,enumerable:!1}));var i=r;exports.pubSub=i;
@@ -1 +1 @@
1
- var e=require(`../concurrencyLimit.cjs`).concurrencyLimit(20),t=class t{constructor(){this.stylePromises=new Map,this.getStyles=async({componentName:t,theme:n})=>{if(!n||!t)return;let r=`https://ds-assets.cupra.com/2.0.0-canary.107/styles/${n}/components/${t}.css`,i=this.getCachedStyleSheetPromise({url:r});if(i)return i;let a=e(()=>this.fetchStyle({url:r})).then(e=>(e||this.stylePromises.delete(r),e));return this.stylePromises.set(r,a),this.stylePromises.get(r)}}async fetchStyle({url:e}){try{if(typeof fetch>`u`)return;let t=await fetch(e,{cache:`force-cache`});if(t.ok)return t.text()}catch(t){console.error(`Failed to fetch Style Sheet "${e}":`,t)}}getCachedStyleSheetPromise({url:e}){return this.stylePromises.get(e)}static getInstance(){return t.instance||=new t,t.instance}}.getInstance();exports.stylesRegistry=t;
1
+ var e=require(`../concurrencyLimit.cjs`).concurrencyLimit(20),t=class t{constructor(){this.stylePromises=new Map,this.getStyles=async({componentName:t,theme:n})=>{if(!n||!t)return;let r=`https://ds-assets.cupra.com/2.0.0-canary.109/styles/${n}/components/${t}.css`,i=this.getCachedStyleSheetPromise({url:r});if(i)return i;let a=e(()=>this.fetchStyle({url:r})).then(e=>(e||this.stylePromises.delete(r),e));return this.stylePromises.set(r,a),this.stylePromises.get(r)}}async fetchStyle({url:e}){try{if(typeof fetch>`u`)return;let t=await fetch(e,{cache:`force-cache`});if(t.ok)return t.text()}catch(t){console.error(`Failed to fetch Style Sheet "${e}":`,t)}}getCachedStyleSheetPromise({url:e}){return this.stylePromises.get(e)}static getInstance(){return t.instance||=new t,t.instance}}.getInstance();exports.stylesRegistry=t;
@@ -1 +1 @@
1
- const e=require(`../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);function t(t,...n){return e.i`${e.r(String.raw({raw:t},...n).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-107`))}`}exports.cssWithTokens=t;
1
+ const e=require(`../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);function t(t,...n){return e.i`${e.r(String.raw({raw:t},...n).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-109`))}`}exports.cssWithTokens=t;
@@ -1 +1 @@
1
- const e=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.cjs`);function n(n,...r){return e.x`${t.o(String.raw({raw:n},...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-107`))}`}exports.htmlWithTokens=n;
1
+ const e=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.cjs`);function n(n,...r){return e.x`${t.o(String.raw({raw:n},...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-109`))}`}exports.htmlWithTokens=n;
@@ -53,6 +53,10 @@ var g = class extends l(i) {
53
53
  this.closestForm.dispatchEvent(e);
54
54
  }
55
55
  }
56
+ handleCustomClick(e) {
57
+ let t = (this.shadowRoot?.querySelector("slot"))?.assignedElements()[0];
58
+ t && !t.contains(e.composedPath()[0]) && (e.stopPropagation(), t.click());
59
+ }
56
60
  get iconTemplate() {
57
61
  return this.iconName ? this.componentFactory.createIcon({
58
62
  class: "icon",
@@ -89,44 +93,40 @@ var g = class extends l(i) {
89
93
  ${this.cssTokens}
90
94
  ${d(this.htmlTagName || "button", [
91
95
  ["button", () => t`
92
- <div class=${c(this.classes)}>
93
- <button
94
- class="inner"
95
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
96
- type=${this.type}
97
- @click=${this.handleClick}
98
- ?disabled=${this.disabled}
99
- >
100
- ${f(this.iconPosition === "left", () => t` ${this.iconTemplate} `)}
101
- <span class="container">
102
- ${this.contentTemplate}
103
- ${this.loadingTemplate}
104
- </span>
105
- ${f(this.iconPosition === "right", () => t` ${this.iconTemplate} `)}
106
- </button>
107
- </div>
96
+ <button
97
+ class=${c(this.classes)}
98
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
99
+ type=${this.type}
100
+ @click=${this.handleClick}
101
+ ?disabled=${this.disabled}
102
+ >
103
+ ${f(this.iconPosition === "left", () => t` ${this.iconTemplate} `)}
104
+ <span class="container">
105
+ ${this.contentTemplate}
106
+ ${this.loadingTemplate}
107
+ </span>
108
+ ${f(this.iconPosition === "right", () => t` ${this.iconTemplate} `)}
109
+ </button>
108
110
  `],
109
111
  ["a", () => t`
110
- <div class=${c(this.classes)}>
111
- <a
112
- class="inner"
113
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
114
- href=${this.href}
115
- rel=${this.rel}
116
- target=${this.target}
117
- @click=${this.handleClick}
118
- >
119
- ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
120
- <span class="container">
121
- ${this.contentTemplate}
122
- ${this.loadingTemplate}
123
- </span>
124
- ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
125
- </a>
126
- </div>
112
+ <a
113
+ class=${c(this.classes)}
114
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
115
+ href=${this.href}
116
+ rel=${this.rel}
117
+ target=${this.target}
118
+ @click=${this.handleClick}
119
+ >
120
+ ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
121
+ <span class="container">
122
+ ${this.contentTemplate}
123
+ ${this.loadingTemplate}
124
+ </span>
125
+ ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
126
+ </a>
127
127
  `],
128
128
  ["custom", () => t`
129
- <div class=${c(this.classes)}>
129
+ <div class=${c(this.classes)} @click=${this.handleCustomClick}>
130
130
  ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
131
131
  ${this.loading && this.textLoading ? t`<span class="container">${this.textLoading}${this.loadingTemplate}</span>` : t`<slot></slot>${this.loadingTemplate}`}
132
132
  ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
@@ -13,6 +13,15 @@ var t = e`
13
13
  box-sizing: border-box;
14
14
  justify-content: center;
15
15
  align-items: center;
16
+ gap: var(--ui-kit-button-gap, 0);
17
+ padding: 0;
18
+ margin: 0;
19
+ background: transparent;
20
+ border: none;
21
+ color: inherit;
22
+ font: inherit;
23
+ text-transform: inherit;
24
+ letter-spacing: inherit;
16
25
  cursor: pointer;
17
26
  outline-style: solid;
18
27
  max-width: 100%;
@@ -22,13 +31,13 @@ var t = e`
22
31
  width: 100%;
23
32
  }
24
33
 
25
- .inner,
26
34
  .custom ::slotted(*) {
27
35
  display: inline-flex;
28
36
  align-items: center;
29
37
  justify-content: center;
30
- width: 100%;
31
- height: 100%;
38
+ width: auto;
39
+ flex: 1;
40
+ min-width: 0;
32
41
  gap: var(--ui-kit-button-gap, 0);
33
42
  padding: 0;
34
43
  margin: 0;
@@ -44,12 +53,6 @@ var t = e`
44
53
  box-sizing: border-box;
45
54
  }
46
55
 
47
- .custom ::slotted(*) {
48
- width: auto;
49
- flex: 1;
50
- min-width: 0;
51
- }
52
-
53
56
  .custom ::slotted(*:disabled),
54
57
  .custom.disabled ::slotted(*) {
55
58
  pointer-events: none;
@@ -30,6 +30,10 @@ var p = class extends l(i) {
30
30
  handleClick(e) {
31
31
  this.href || e.preventDefault();
32
32
  }
33
+ handleCustomClick(e) {
34
+ let t = (this.shadowRoot?.querySelector("slot"))?.assignedElements()[0];
35
+ t && !t.contains(e.composedPath()[0]) && (e.stopPropagation(), t.click());
36
+ }
33
37
  get classes() {
34
38
  let e = typeof this.size == "string" ? this.size : this.size[this.viewport];
35
39
  return {
@@ -83,7 +87,7 @@ var p = class extends l(i) {
83
87
  </a>
84
88
  `],
85
89
  ["custom", () => t`
86
- <div class=${c(this.classes)}>
90
+ <div class=${c(this.classes)} @click=${this.handleCustomClick}>
87
91
  <slot></slot>
88
92
  </div>
89
93
  `]
@@ -50,7 +50,7 @@ var p = class extends o {
50
50
  }
51
51
  loadThemeStyles() {
52
52
  return this.loadStyles ? new Promise((e, t) => {
53
- let n = "/2.0.0-canary.107", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
53
+ let n = "/2.0.0-canary.109", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
54
54
  if (document.head.querySelector(`link[href="${r}"]`)) e();
55
55
  else {
56
56
  let i = `ui-kit-theme-${n}`, a = document.getElementById(i), o = document.createElement("link");
@@ -25,7 +25,7 @@ var n = class {
25
25
  return console.error(`Failed to fetch icon "${e}":`, t), "";
26
26
  }), t.subscribe("theme", this.handleChangeTheme);
27
27
  }
28
- }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.107"), i = globalThis, a = i[r];
28
+ }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.109"), i = globalThis, a = i[r];
29
29
  a || (a = new n(), Object.defineProperty(i, r, {
30
30
  value: a,
31
31
  writable: !1,
@@ -18,7 +18,7 @@ var e = class {
18
18
  }
19
19
  });
20
20
  }
21
- }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.107"), n = globalThis, r = n[t];
21
+ }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.109"), n = globalThis, r = n[t];
22
22
  r || (r = new e(), Object.defineProperty(n, t, {
23
23
  value: r,
24
24
  writable: !1,
@@ -4,7 +4,7 @@ var t = e(20), n = class e {
4
4
  constructor() {
5
5
  this.stylePromises = /* @__PURE__ */ new Map(), this.getStyles = async ({ componentName: e, theme: n }) => {
6
6
  if (!n || !e) return;
7
- let r = `https://ds-assets.cupra.com/2.0.0-canary.107/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
7
+ let r = `https://ds-assets.cupra.com/2.0.0-canary.109/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
8
8
  if (i) return i;
9
9
  let a = t(() => this.fetchStyle({ url: r })).then((e) => (e || this.stylePromises.delete(r), e));
10
10
  return this.stylePromises.set(r, a), this.stylePromises.get(r);
@@ -2,7 +2,7 @@ import { i as e, r as t } from "../node_modules/.pnpm/@lit_reactive-element@2.1.
2
2
  import "../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.js";
3
3
  //#region src/utils/cssWithTokens.ts
4
4
  function n(n, ...r) {
5
- return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-107"))}`;
5
+ return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-109"))}`;
6
6
  }
7
7
  //#endregion
8
8
  export { n as cssWithTokens };
@@ -4,7 +4,7 @@ import { o as t } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-ht
4
4
  import "../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.js";
5
5
  //#region src/utils/htmlWithTokens.ts
6
6
  function n(n, ...r) {
7
- return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-107"))}`;
7
+ return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-109"))}`;
8
8
  }
9
9
  //#endregion
10
10
  export { n as htmlWithTokens };
@@ -32,6 +32,7 @@ export declare class DsButton extends DsButton_base {
32
32
  'full-width': boolean;
33
33
  };
34
34
  protected handleClick(event: Event): void;
35
+ protected handleCustomClick(event: Event): void;
35
36
  protected get iconTemplate(): any;
36
37
  protected get loadingTemplate(): typeof nothing | import("lit").TemplateResult<1>;
37
38
  protected get contentTemplate(): import("lit").TemplateResult<1>;
@@ -16,6 +16,7 @@ export declare class DsIconButton extends DsIconButton_base {
16
16
  target: DsIconButtonAttrs['target'];
17
17
  protected get iconTemplate(): any;
18
18
  protected handleClick(event: Event): void;
19
+ protected handleCustomClick(event: Event): void;
19
20
  protected get classes(): {
20
21
  [x: string]: boolean;
21
22
  button: boolean;
@@ -1,4 +1,4 @@
1
- const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/when.cjs`),f=require(`./styles/common.styles.cjs`);var p=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.destructive=!1,this.htmlTagName=`button`,this.type=`button`,this.iconPosition=`left`,this.rounded=!1,this.fullWidth=!1,this.loading=!1}static{this.styles=[f.buttonStyles,f.textStyles,f.loadingDotsStyles]}connectedCallback(){super.connectedCallback(),this.closestForm=this.closest(`form`)}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant,rounded:this.rounded,disabled:this.disabled||this.loading,destructive:this.destructive,"full-width":this.fullWidth}}handleClick(e){if(this.href||e.preventDefault(),this.closestForm&&this.type===`submit`){let e=new Event(`submit`,{bubbles:!0,composed:!0,cancelable:!0});this.closestForm.dispatchEvent(e)}}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}get loadingTemplate(){return this.loading?e.x`
1
+ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/when.cjs`),f=require(`./styles/common.styles.cjs`);var p=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.destructive=!1,this.htmlTagName=`button`,this.type=`button`,this.iconPosition=`left`,this.rounded=!1,this.fullWidth=!1,this.loading=!1}static{this.styles=[f.buttonStyles,f.textStyles,f.loadingDotsStyles]}connectedCallback(){super.connectedCallback(),this.closestForm=this.closest(`form`)}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant,rounded:this.rounded,disabled:this.disabled||this.loading,destructive:this.destructive,"full-width":this.fullWidth}}handleClick(e){if(this.href||e.preventDefault(),this.closestForm&&this.type===`submit`){let e=new Event(`submit`,{bubbles:!0,composed:!0,cancelable:!0});this.closestForm.dispatchEvent(e)}}handleCustomClick(e){let t=(this.shadowRoot?.querySelector(`slot`))?.assignedElements()[0];t&&!t.contains(e.composedPath()[0])&&(e.stopPropagation(),t.click())}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}get loadingTemplate(){return this.loading?e.x`
2
2
  <span class="loading-dots">
3
3
  <span>.</span>
4
4
  <span>.</span>
@@ -17,42 +17,38 @@ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/l
17
17
  </style>`}render(){return e.x`
18
18
  ${this.cssTokens}
19
19
  ${u.r(this.htmlTagName||`button`,[[`button`,()=>e.x`
20
- <div class=${s.e(this.classes)}>
21
- <button
22
- class="inner"
23
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
24
- type=${this.type}
25
- @click=${this.handleClick}
26
- ?disabled=${this.disabled}
27
- >
28
- ${d.n(this.iconPosition===`left`,()=>e.x` ${this.iconTemplate} `)}
29
- <span class="container">
30
- ${this.contentTemplate}
31
- ${this.loadingTemplate}
32
- </span>
33
- ${d.n(this.iconPosition===`right`,()=>e.x` ${this.iconTemplate} `)}
34
- </button>
35
- </div>
20
+ <button
21
+ class=${s.e(this.classes)}
22
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
23
+ type=${this.type}
24
+ @click=${this.handleClick}
25
+ ?disabled=${this.disabled}
26
+ >
27
+ ${d.n(this.iconPosition===`left`,()=>e.x` ${this.iconTemplate} `)}
28
+ <span class="container">
29
+ ${this.contentTemplate}
30
+ ${this.loadingTemplate}
31
+ </span>
32
+ ${d.n(this.iconPosition===`right`,()=>e.x` ${this.iconTemplate} `)}
33
+ </button>
36
34
  `],[`a`,()=>e.x`
37
- <div class=${s.e(this.classes)}>
38
- <a
39
- class="inner"
40
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
41
- href=${this.href}
42
- rel=${this.rel}
43
- target=${this.target}
44
- @click=${this.handleClick}
45
- >
46
- ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
47
- <span class="container">
48
- ${this.contentTemplate}
49
- ${this.loadingTemplate}
50
- </span>
51
- ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
52
- </a>
53
- </div>
35
+ <a
36
+ class=${s.e(this.classes)}
37
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g,``)}
38
+ href=${this.href}
39
+ rel=${this.rel}
40
+ target=${this.target}
41
+ @click=${this.handleClick}
42
+ >
43
+ ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
44
+ <span class="container">
45
+ ${this.contentTemplate}
46
+ ${this.loadingTemplate}
47
+ </span>
48
+ ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
49
+ </a>
54
50
  `],[`custom`,()=>e.x`
55
- <div class=${s.e(this.classes)}>
51
+ <div class=${s.e(this.classes)} @click=${this.handleCustomClick}>
56
52
  ${d.n(this.iconPosition===`left`,()=>e.x`${this.iconTemplate}`)}
57
53
  ${this.loading&&this.textLoading?e.x`<span class="container">${this.textLoading}${this.loadingTemplate}</span>`:e.x`<slot></slot>${this.loadingTemplate}`}
58
54
  ${d.n(this.iconPosition===`right`,()=>e.x`${this.iconTemplate}`)}
@@ -10,6 +10,15 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
10
10
  box-sizing: border-box;
11
11
  justify-content: center;
12
12
  align-items: center;
13
+ gap: var(--ui-kit-button-gap, 0);
14
+ padding: 0;
15
+ margin: 0;
16
+ background: transparent;
17
+ border: none;
18
+ color: inherit;
19
+ font: inherit;
20
+ text-transform: inherit;
21
+ letter-spacing: inherit;
13
22
  cursor: pointer;
14
23
  outline-style: solid;
15
24
  max-width: 100%;
@@ -19,13 +28,13 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
19
28
  width: 100%;
20
29
  }
21
30
 
22
- .inner,
23
31
  .custom ::slotted(*) {
24
32
  display: inline-flex;
25
33
  align-items: center;
26
34
  justify-content: center;
27
- width: 100%;
28
- height: 100%;
35
+ width: auto;
36
+ flex: 1;
37
+ min-width: 0;
29
38
  gap: var(--ui-kit-button-gap, 0);
30
39
  padding: 0;
31
40
  margin: 0;
@@ -41,12 +50,6 @@ const e=require(`../../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_mo
41
50
  box-sizing: border-box;
42
51
  }
43
52
 
44
- .custom ::slotted(*) {
45
- width: auto;
46
- flex: 1;
47
- min-width: 0;
48
- }
49
-
50
53
  .custom ::slotted(*:disabled),
51
54
  .custom.disabled ::slotted(*) {
52
55
  pointer-events: none;
@@ -1,4 +1,4 @@
1
- const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`./styles/common.styles.cjs`);var f=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.htmlTagName=`button`}static{this.styles=[d.buttonStyles]}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}handleClick(e){this.href||e.preventDefault()}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,disabled:this.disabled,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}get variantColorTokens(){return o.htmlWithTokens`
1
+ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const n=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),r=require(`../base/UiKitElement.cjs`),i=require(`../../decorators/customUiKitElement.cjs`),a=require(`../../utils/booleanConverter.cjs`),o=require(`../../utils/htmlWithTokens.cjs`),s=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/class-map.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/class-map.cjs`);const c=require(`../../mixins/ViewportMixin.cjs`),l=require(`../../utils/objectConverter.cjs`),u=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/choose.cjs`),d=require(`./styles/common.styles.cjs`);var f=class extends c.ViewportMixin(r.UiKitElement){constructor(...e){super(...e),this.variant=`primary`,this.mode=`light`,this.size=`large`,this.disabled=!1,this.htmlTagName=`button`}static{this.styles=[d.buttonStyles]}get iconTemplate(){return this.iconName?this.componentFactory.createIcon({class:`icon`,"icon-name":this.iconName}):e.E}handleClick(e){this.href||e.preventDefault()}handleCustomClick(e){let t=(this.shadowRoot?.querySelector(`slot`))?.assignedElements()[0];t&&!t.contains(e.composedPath()[0])&&(e.stopPropagation(),t.click())}get classes(){let e=typeof this.size==`string`?this.size:this.size[this.viewport];return{button:!0,custom:this.htmlTagName===`custom`,disabled:this.disabled,[e]:!!e,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}get variantColorTokens(){return o.htmlWithTokens`
2
2
  <style>
3
3
  :host{
4
4
  color-scheme: ${this.mode};
@@ -33,7 +33,7 @@ const e=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/l
33
33
  ${this.iconTemplate}
34
34
  </a>
35
35
  `],[`custom`,()=>e.x`
36
- <div class=${s.e(this.classes)}>
36
+ <div class=${s.e(this.classes)} @click=${this.handleCustomClick}>
37
37
  <slot></slot>
38
38
  </div>
39
39
  `]])}
@@ -1,4 +1,4 @@
1
1
  const e=require(`../../node_modules/.pnpm/@lit_context@1.1.6/node_modules/@lit/context/lib/decorators/provide.cjs`),t=require(`./themeContext.cjs`),n=require(`../../core/theme.constants.cjs`),r=require(`../../utils/PubSub.cjs`),i=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`),a=require(`../../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const o=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.cjs`),s=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const c=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),l=require(`../../decorators/customUiKitElement.cjs`),u=require(`../../utils/booleanConverter.cjs`),d=require(`../../styles/source/shared/fonts-config.cjs`);var f=class extends a.i{constructor(...e){super(...e),this.loadFonts=!0,this.loadStyles=!0,this.cssLoaded=!1,this.loadedFonts=new Set}updated(e){super.updated(e),e.has(`theme`)&&(r.pubSub.publish(`theme`,this.theme),sessionStorage?.setItem(n.THEME_STORAGE_KEY,this.theme),typeof FontFace<`u`&&document?.fonts&&this.loadThemeFonts(),this.loadThemeStyles().then(()=>{this.cssLoaded=!0,this.dispatchEvent(new CustomEvent(`ui-kit:ready`,{bubbles:!0,composed:!0}))}))}loadThemeFonts(){d.fontsConfig[this.theme]?.fonts.forEach(e=>{this.loadThemeFont(e)})}async loadThemeFont({weight:e,name:t,file:n}){if(!this.loadFonts)return Promise.resolve();let r=`${t}-${e}`;if(this.loadedFonts.has(r))return;let i=new FontFace(t,`url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.woff2') format('woff2'),
2
2
  url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.woff') format('woff'),
3
3
  url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.ttf') format('truetype'),
4
- url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.otf') format('opentype')`,{style:`normal`,weight:e,display:`swap`});try{await i.load(),document.fonts.add(i),this.loadedFonts.add(r)}catch(n){console.error(`Error loading "${t}" font with "${e}" weight:`,n)}}loadThemeStyles(){return this.loadStyles?new Promise((e,t)=>{let n=`/2.0.0-canary.107`,r=`https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;if(document.head.querySelector(`link[href="${r}"]`))e();else{let i=`ui-kit-theme-${n}`,a=document.getElementById(i),o=document.createElement(`link`);o.id=i,o.rel=`stylesheet`,o.href=r,o.onload=()=>e(),o.onerror=()=>t(Error(`Failed to load theme CSS: ${r}`)),document.head.appendChild(o),a?.remove()}}):Promise.resolve()}render(){return this.cssLoaded?i.x`<slot></slot>`:i.E}};c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-fonts`})],f.prototype,`loadFonts`,void 0),c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-styles`})],f.prototype,`loadStyles`,void 0),c.__decorate([e.e({context:t.themeContext}),o.n({type:String})],f.prototype,`theme`,void 0),c.__decorate([s.r()],f.prototype,`cssLoaded`,void 0),c.__decorate([s.r()],f.prototype,`loadedFonts`,void 0),f=c.__decorate([l.customUiKitElement(`ds-theme-provider`)],f);
4
+ url('https://ds-assets.cupra.com/fonts/${this.theme}/${n}.otf') format('opentype')`,{style:`normal`,weight:e,display:`swap`});try{await i.load(),document.fonts.add(i),this.loadedFonts.add(r)}catch(n){console.error(`Error loading "${t}" font with "${e}" weight:`,n)}}loadThemeStyles(){return this.loadStyles?new Promise((e,t)=>{let n=`/2.0.0-canary.109`,r=`https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;if(document.head.querySelector(`link[href="${r}"]`))e();else{let i=`ui-kit-theme-${n}`,a=document.getElementById(i),o=document.createElement(`link`);o.id=i,o.rel=`stylesheet`,o.href=r,o.onload=()=>e(),o.onerror=()=>t(Error(`Failed to load theme CSS: ${r}`)),document.head.appendChild(o),a?.remove()}}):Promise.resolve()}render(){return this.cssLoaded?i.x`<slot></slot>`:i.E}};c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-fonts`})],f.prototype,`loadFonts`,void 0),c.__decorate([o.n({type:Boolean,converter:u.booleanConverter,attribute:`load-styles`})],f.prototype,`loadStyles`,void 0),c.__decorate([e.e({context:t.themeContext}),o.n({type:String})],f.prototype,`theme`,void 0),c.__decorate([s.r()],f.prototype,`cssLoaded`,void 0),c.__decorate([s.r()],f.prototype,`loadedFonts`,void 0),f=c.__decorate([l.customUiKitElement(`ds-theme-provider`)],f);
@@ -1 +1 @@
1
- const e=require(`../core/theme.constants.cjs`),t=require(`./PubSub.cjs`);var n=class{constructor(){this.icons={},this.handleChangeTheme=e=>{if(this.theme===e)return;this.theme=e;let t=Object.keys(this.icons);this.icons={},t.forEach(e=>this.fetchIcon(e))},this.fetchIcon=async(t,n={})=>{let r=typeof sessionStorage<`u`?sessionStorage?.getItem(e.THEME_STORAGE_KEY):null;!this.theme&&r&&(this.theme=r);let i=this.icons[t];if(i)return await i;let a=this.loadIcon(t,n).catch(e=>{throw delete this.icons[t],e});return this.icons[t]=a,a},this.loadIcon=(e,{cache:t=`force-cache`,...n})=>!this.theme||typeof fetch>`u`?Promise.resolve(`<svg class="ds-icon"></svg>`):fetch(`https://ds-assets.cupra.com/icons/${this.theme}/${e}.svg`,{cache:t,...n}).then(e=>e.text()).catch(t=>{if(t?.name===`AbortError`)throw t;return console.error(`Failed to fetch icon "${e}":`,t),``}),t.pubSub.subscribe(`theme`,this.handleChangeTheme)}},r=Symbol.for(`@cupra/ui-kit/icons-manager/2.0.0-canary.107`),i=globalThis,a=i[r];a||(a=new n,Object.defineProperty(i,r,{value:a,writable:!1,configurable:!1,enumerable:!1}));var o=a;exports.iconsManager=o;
1
+ const e=require(`../core/theme.constants.cjs`),t=require(`./PubSub.cjs`);var n=class{constructor(){this.icons={},this.handleChangeTheme=e=>{if(this.theme===e)return;this.theme=e;let t=Object.keys(this.icons);this.icons={},t.forEach(e=>this.fetchIcon(e))},this.fetchIcon=async(t,n={})=>{let r=typeof sessionStorage<`u`?sessionStorage?.getItem(e.THEME_STORAGE_KEY):null;!this.theme&&r&&(this.theme=r);let i=this.icons[t];if(i)return await i;let a=this.loadIcon(t,n).catch(e=>{throw delete this.icons[t],e});return this.icons[t]=a,a},this.loadIcon=(e,{cache:t=`force-cache`,...n})=>!this.theme||typeof fetch>`u`?Promise.resolve(`<svg class="ds-icon"></svg>`):fetch(`https://ds-assets.cupra.com/icons/${this.theme}/${e}.svg`,{cache:t,...n}).then(e=>e.text()).catch(t=>{if(t?.name===`AbortError`)throw t;return console.error(`Failed to fetch icon "${e}":`,t),``}),t.pubSub.subscribe(`theme`,this.handleChangeTheme)}},r=Symbol.for(`@cupra/ui-kit/icons-manager/2.0.0-canary.109`),i=globalThis,a=i[r];a||(a=new n,Object.defineProperty(i,r,{value:a,writable:!1,configurable:!1,enumerable:!1}));var o=a;exports.iconsManager=o;
@@ -1 +1 @@
1
- var e=class{constructor(){this.subscribers={},this.lastPublishedData={}}subscribe(e,t){return this.subscribers[e]||(this.subscribers[e]=[]),this.subscribers[e].push(t),this.lastPublishedData[e]}unsubscribe(e,t){this.subscribers[e]&&(this.subscribers[e]=this.subscribers[e].filter(e=>e!==t))}publish(e,t){this.lastPublishedData[e]=t,this.subscribers[e]&&this.subscribers[e].forEach(n=>{try{n(t)}catch(t){console.error(`Error in subscriber for event "${e}":`,t)}})}},t=Symbol.for(`@cupra/ui-kit/pubsub/2.0.0-canary.107`),n=globalThis,r=n[t];r||(r=new e,Object.defineProperty(n,t,{value:r,writable:!1,configurable:!1,enumerable:!1}));var i=r;exports.pubSub=i;
1
+ var e=class{constructor(){this.subscribers={},this.lastPublishedData={}}subscribe(e,t){return this.subscribers[e]||(this.subscribers[e]=[]),this.subscribers[e].push(t),this.lastPublishedData[e]}unsubscribe(e,t){this.subscribers[e]&&(this.subscribers[e]=this.subscribers[e].filter(e=>e!==t))}publish(e,t){this.lastPublishedData[e]=t,this.subscribers[e]&&this.subscribers[e].forEach(n=>{try{n(t)}catch(t){console.error(`Error in subscriber for event "${e}":`,t)}})}},t=Symbol.for(`@cupra/ui-kit/pubsub/2.0.0-canary.109`),n=globalThis,r=n[t];r||(r=new e,Object.defineProperty(n,t,{value:r,writable:!1,configurable:!1,enumerable:!1}));var i=r;exports.pubSub=i;
@@ -1 +1 @@
1
- var e=require(`../concurrencyLimit.cjs`).concurrencyLimit(20),t=class t{constructor(){this.stylePromises=new Map,this.getStyles=async({componentName:t,theme:n})=>{if(!n||!t)return;let r=`https://ds-assets.cupra.com/2.0.0-canary.107/styles/${n}/components/${t}.css`,i=this.getCachedStyleSheetPromise({url:r});if(i)return i;let a=e(()=>this.fetchStyle({url:r})).then(e=>(e||this.stylePromises.delete(r),e));return this.stylePromises.set(r,a),this.stylePromises.get(r)}}async fetchStyle({url:e}){try{if(typeof fetch>`u`)return;let t=await fetch(e,{cache:`force-cache`});if(t.ok)return t.text()}catch(t){console.error(`Failed to fetch Style Sheet "${e}":`,t)}}getCachedStyleSheetPromise({url:e}){return this.stylePromises.get(e)}static getInstance(){return t.instance||=new t,t.instance}}.getInstance();exports.stylesRegistry=t;
1
+ var e=require(`../concurrencyLimit.cjs`).concurrencyLimit(20),t=class t{constructor(){this.stylePromises=new Map,this.getStyles=async({componentName:t,theme:n})=>{if(!n||!t)return;let r=`https://ds-assets.cupra.com/2.0.0-canary.109/styles/${n}/components/${t}.css`,i=this.getCachedStyleSheetPromise({url:r});if(i)return i;let a=e(()=>this.fetchStyle({url:r})).then(e=>(e||this.stylePromises.delete(r),e));return this.stylePromises.set(r,a),this.stylePromises.get(r)}}async fetchStyle({url:e}){try{if(typeof fetch>`u`)return;let t=await fetch(e,{cache:`force-cache`});if(t.ok)return t.text()}catch(t){console.error(`Failed to fetch Style Sheet "${e}":`,t)}}getCachedStyleSheetPromise({url:e}){return this.stylePromises.get(e)}static getInstance(){return t.instance||=new t,t.instance}}.getInstance();exports.stylesRegistry=t;
@@ -1 +1 @@
1
- const e=require(`../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);function t(t,...n){return e.i`${e.r(String.raw({raw:t},...n).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-107`))}`}exports.cssWithTokens=t;
1
+ const e=require(`../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);function t(t,...n){return e.i`${e.r(String.raw({raw:t},...n).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-109`))}`}exports.cssWithTokens=t;
@@ -1 +1 @@
1
- const e=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.cjs`);function n(n,...r){return e.x`${t.o(String.raw({raw:n},...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-107`))}`}exports.htmlWithTokens=n;
1
+ const e=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.cjs`);const t=require(`../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.cjs`);require(`../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.cjs`);function n(n,...r){return e.x`${t.o(String.raw({raw:n},...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g,`$1-v2-0-0-canary-109`))}`}exports.htmlWithTokens=n;
@@ -53,6 +53,10 @@ var g = class extends l(i) {
53
53
  this.closestForm.dispatchEvent(e);
54
54
  }
55
55
  }
56
+ handleCustomClick(e) {
57
+ let t = (this.shadowRoot?.querySelector("slot"))?.assignedElements()[0];
58
+ t && !t.contains(e.composedPath()[0]) && (e.stopPropagation(), t.click());
59
+ }
56
60
  get iconTemplate() {
57
61
  return this.iconName ? this.componentFactory.createIcon({
58
62
  class: "icon",
@@ -89,44 +93,40 @@ var g = class extends l(i) {
89
93
  ${this.cssTokens}
90
94
  ${d(this.htmlTagName || "button", [
91
95
  ["button", () => t`
92
- <div class=${c(this.classes)}>
93
- <button
94
- class="inner"
95
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
96
- type=${this.type}
97
- @click=${this.handleClick}
98
- ?disabled=${this.disabled}
99
- >
100
- ${f(this.iconPosition === "left", () => t` ${this.iconTemplate} `)}
101
- <span class="container">
102
- ${this.contentTemplate}
103
- ${this.loadingTemplate}
104
- </span>
105
- ${f(this.iconPosition === "right", () => t` ${this.iconTemplate} `)}
106
- </button>
107
- </div>
96
+ <button
97
+ class=${c(this.classes)}
98
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
99
+ type=${this.type}
100
+ @click=${this.handleClick}
101
+ ?disabled=${this.disabled}
102
+ >
103
+ ${f(this.iconPosition === "left", () => t` ${this.iconTemplate} `)}
104
+ <span class="container">
105
+ ${this.contentTemplate}
106
+ ${this.loadingTemplate}
107
+ </span>
108
+ ${f(this.iconPosition === "right", () => t` ${this.iconTemplate} `)}
109
+ </button>
108
110
  `],
109
111
  ["a", () => t`
110
- <div class=${c(this.classes)}>
111
- <a
112
- class="inner"
113
- aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
114
- href=${this.href}
115
- rel=${this.rel}
116
- target=${this.target}
117
- @click=${this.handleClick}
118
- >
119
- ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
120
- <span class="container">
121
- ${this.contentTemplate}
122
- ${this.loadingTemplate}
123
- </span>
124
- ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
125
- </a>
126
- </div>
112
+ <a
113
+ class=${c(this.classes)}
114
+ aria-label=${this.textContent?.replace(/^\s+|\s+$/g, "")}
115
+ href=${this.href}
116
+ rel=${this.rel}
117
+ target=${this.target}
118
+ @click=${this.handleClick}
119
+ >
120
+ ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
121
+ <span class="container">
122
+ ${this.contentTemplate}
123
+ ${this.loadingTemplate}
124
+ </span>
125
+ ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
126
+ </a>
127
127
  `],
128
128
  ["custom", () => t`
129
- <div class=${c(this.classes)}>
129
+ <div class=${c(this.classes)} @click=${this.handleCustomClick}>
130
130
  ${f(this.iconPosition === "left", () => t`${this.iconTemplate}`)}
131
131
  ${this.loading && this.textLoading ? t`<span class="container">${this.textLoading}${this.loadingTemplate}</span>` : t`<slot></slot>${this.loadingTemplate}`}
132
132
  ${f(this.iconPosition === "right", () => t`${this.iconTemplate}`)}
@@ -13,6 +13,15 @@ var t = e`
13
13
  box-sizing: border-box;
14
14
  justify-content: center;
15
15
  align-items: center;
16
+ gap: var(--ui-kit-button-gap, 0);
17
+ padding: 0;
18
+ margin: 0;
19
+ background: transparent;
20
+ border: none;
21
+ color: inherit;
22
+ font: inherit;
23
+ text-transform: inherit;
24
+ letter-spacing: inherit;
16
25
  cursor: pointer;
17
26
  outline-style: solid;
18
27
  max-width: 100%;
@@ -22,13 +31,13 @@ var t = e`
22
31
  width: 100%;
23
32
  }
24
33
 
25
- .inner,
26
34
  .custom ::slotted(*) {
27
35
  display: inline-flex;
28
36
  align-items: center;
29
37
  justify-content: center;
30
- width: 100%;
31
- height: 100%;
38
+ width: auto;
39
+ flex: 1;
40
+ min-width: 0;
32
41
  gap: var(--ui-kit-button-gap, 0);
33
42
  padding: 0;
34
43
  margin: 0;
@@ -44,12 +53,6 @@ var t = e`
44
53
  box-sizing: border-box;
45
54
  }
46
55
 
47
- .custom ::slotted(*) {
48
- width: auto;
49
- flex: 1;
50
- min-width: 0;
51
- }
52
-
53
56
  .custom ::slotted(*:disabled),
54
57
  .custom.disabled ::slotted(*) {
55
58
  pointer-events: none;
@@ -30,6 +30,10 @@ var p = class extends l(i) {
30
30
  handleClick(e) {
31
31
  this.href || e.preventDefault();
32
32
  }
33
+ handleCustomClick(e) {
34
+ let t = (this.shadowRoot?.querySelector("slot"))?.assignedElements()[0];
35
+ t && !t.contains(e.composedPath()[0]) && (e.stopPropagation(), t.click());
36
+ }
33
37
  get classes() {
34
38
  let e = typeof this.size == "string" ? this.size : this.size[this.viewport];
35
39
  return {
@@ -83,7 +87,7 @@ var p = class extends l(i) {
83
87
  </a>
84
88
  `],
85
89
  ["custom", () => t`
86
- <div class=${c(this.classes)}>
90
+ <div class=${c(this.classes)} @click=${this.handleCustomClick}>
87
91
  <slot></slot>
88
92
  </div>
89
93
  `]
@@ -50,7 +50,7 @@ var p = class extends o {
50
50
  }
51
51
  loadThemeStyles() {
52
52
  return this.loadStyles ? new Promise((e, t) => {
53
- let n = "/2.0.0-canary.107", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
53
+ let n = "/2.0.0-canary.109", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
54
54
  if (document.head.querySelector(`link[href="${r}"]`)) e();
55
55
  else {
56
56
  let i = `ui-kit-theme-${n}`, a = document.getElementById(i), o = document.createElement("link");
@@ -25,7 +25,7 @@ var n = class {
25
25
  return console.error(`Failed to fetch icon "${e}":`, t), "";
26
26
  }), t.subscribe("theme", this.handleChangeTheme);
27
27
  }
28
- }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.107"), i = globalThis, a = i[r];
28
+ }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.109"), i = globalThis, a = i[r];
29
29
  a || (a = new n(), Object.defineProperty(i, r, {
30
30
  value: a,
31
31
  writable: !1,
@@ -18,7 +18,7 @@ var e = class {
18
18
  }
19
19
  });
20
20
  }
21
- }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.107"), n = globalThis, r = n[t];
21
+ }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.109"), n = globalThis, r = n[t];
22
22
  r || (r = new e(), Object.defineProperty(n, t, {
23
23
  value: r,
24
24
  writable: !1,
@@ -4,7 +4,7 @@ var t = e(20), n = class e {
4
4
  constructor() {
5
5
  this.stylePromises = /* @__PURE__ */ new Map(), this.getStyles = async ({ componentName: e, theme: n }) => {
6
6
  if (!n || !e) return;
7
- let r = `https://ds-assets.cupra.com/2.0.0-canary.107/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
7
+ let r = `https://ds-assets.cupra.com/2.0.0-canary.109/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
8
8
  if (i) return i;
9
9
  let a = t(() => this.fetchStyle({ url: r })).then((e) => (e || this.stylePromises.delete(r), e));
10
10
  return this.stylePromises.set(r, a), this.stylePromises.get(r);
@@ -2,7 +2,7 @@ import { i as e, r as t } from "../node_modules/.pnpm/@lit_reactive-element@2.1.
2
2
  import "../node_modules/.pnpm/lit@3.3.1/node_modules/lit/index.js";
3
3
  //#region src/utils/cssWithTokens.ts
4
4
  function n(n, ...r) {
5
- return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-107"))}`;
5
+ return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-109"))}`;
6
6
  }
7
7
  //#endregion
8
8
  export { n as cssWithTokens };
@@ -4,7 +4,7 @@ import { o as t } from "../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-ht
4
4
  import "../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/unsafe-html.js";
5
5
  //#region src/utils/htmlWithTokens.ts
6
6
  function n(n, ...r) {
7
- return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-107"))}`;
7
+ return e`${t(String.raw({ raw: n }, ...r).replace(/(--private-[\w-]+)(?=\s*[):,])/g, "$1-v2-0-0-canary-109"))}`;
8
8
  }
9
9
  //#endregion
10
10
  export { n as htmlWithTokens };
@@ -32,6 +32,7 @@ export declare class DsButton extends DsButton_base {
32
32
  'full-width': boolean;
33
33
  };
34
34
  protected handleClick(event: Event): void;
35
+ protected handleCustomClick(event: Event): void;
35
36
  protected get iconTemplate(): any;
36
37
  protected get loadingTemplate(): typeof nothing | import("lit").TemplateResult<1>;
37
38
  protected get contentTemplate(): import("lit").TemplateResult<1>;
@@ -16,6 +16,7 @@ export declare class DsIconButton extends DsIconButton_base {
16
16
  target: DsIconButtonAttrs['target'];
17
17
  protected get iconTemplate(): any;
18
18
  protected handleClick(event: Event): void;
19
+ protected handleCustomClick(event: Event): void;
19
20
  protected get classes(): {
20
21
  [x: string]: boolean;
21
22
  button: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cupra/ui-kit",
3
- "version": "2.0.0-canary.107",
3
+ "version": "2.0.0-canary.109",
4
4
  "description": "Web components library",
5
5
  "author": "SEAT S.A.",
6
6
  "license": "SEAT S.A. Library EULA 1.0",