@cupra/ui-kit 2.0.0-canary.133 → 2.0.0-canary.134

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 (33) hide show
  1. package/dist/cjs/components/ds-select/ds-select.cjs +6 -5
  2. package/dist/cjs/components/ds-theme-provider/ds-theme-provider.cjs +1 -1
  3. package/dist/cjs/decorators/customUiKitElement.cjs +1 -1
  4. package/dist/cjs/utils/IconsManager.cjs +1 -1
  5. package/dist/cjs/utils/PubSub.cjs +1 -1
  6. package/dist/cjs/utils/StylesRegistry/StylesRegistry.cjs +1 -1
  7. package/dist/cjs/utils/version.cjs +1 -1
  8. package/dist/esm/components/ds-select/ds-select.js +11 -7
  9. package/dist/esm/components/ds-theme-provider/ds-theme-provider.js +1 -1
  10. package/dist/esm/decorators/customUiKitElement.js +1 -1
  11. package/dist/esm/utils/IconsManager.js +1 -1
  12. package/dist/esm/utils/PubSub.js +1 -1
  13. package/dist/esm/utils/StylesRegistry/StylesRegistry.js +1 -1
  14. package/dist/esm/utils/version.js +1 -1
  15. package/dist/types/components/ds-select/ds-select.d.ts +1 -0
  16. package/dist/types/components/ds-select/ds-select.types.d.ts +1 -0
  17. package/dist-react/cjs/components/ds-select/ds-select.cjs +6 -5
  18. package/dist-react/cjs/components/ds-theme-provider/ds-theme-provider.cjs +1 -1
  19. package/dist-react/cjs/decorators/customUiKitElement.cjs +1 -1
  20. package/dist-react/cjs/utils/IconsManager.cjs +1 -1
  21. package/dist-react/cjs/utils/PubSub.cjs +1 -1
  22. package/dist-react/cjs/utils/StylesRegistry/StylesRegistry.cjs +1 -1
  23. package/dist-react/cjs/utils/version.cjs +1 -1
  24. package/dist-react/esm/components/ds-select/ds-select.js +11 -7
  25. package/dist-react/esm/components/ds-theme-provider/ds-theme-provider.js +1 -1
  26. package/dist-react/esm/decorators/customUiKitElement.js +1 -1
  27. package/dist-react/esm/utils/IconsManager.js +1 -1
  28. package/dist-react/esm/utils/PubSub.js +1 -1
  29. package/dist-react/esm/utils/StylesRegistry/StylesRegistry.js +1 -1
  30. package/dist-react/esm/utils/version.js +1 -1
  31. package/dist-react/types/components/ds-select/ds-select.d.ts +1 -0
  32. package/dist-react/types/components/ds-select/ds-select.types.d.ts +1 -0
  33. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- require(`../ds-theme-provider/themeContext.cjs`);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`),n=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`),r=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.cjs`),i=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-assigned-elements.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const a=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),o=require(`../base/UiKitElement.cjs`),s=require(`../../decorators/customUiKitElement.cjs`);require(`../ds-icon/ds-icon.cjs`);const c=require(`../../utils/booleanConverter.cjs`),l=require(`../../utils/uiKitHtml.cjs`),u=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 d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/if-defined.cjs`);const f=require(`./controllers/SelectKeyboardController.cjs`),p=require(`./styles/common.styles.cjs`);var m,h=class extends o.UiKitElement{static{m=this}constructor(...e){super(...e),this.mode=`light`,this.size=`large`,this.variant=`primary`,this.readonly=!1,this.iconName=void 0,this._open=!1,this._keyboardNavigating=!1,this.nativeSelect=null,this.nativeLabel=null,this.nativeOptions=[],this.keyboardFocusIndex=-1,this.hasForcedError=!1,this.handleMutations=e=>{e.forEach(e=>{e.type===`childList`&&this.syncNativeOptions()}),this.requestUpdate()},this.syncNativeOptions=()=>{this.nativeOptions=Array.from(this.nativeSelect.options)},this.handleOpen=()=>{this.readonly||(this._open=!0,this.keyboardFocusIndex=this.findSelectedOptionIndex(),this.focusDisplaySelect())},this.handleClose=()=>{this._open=!1},this.handleClickDisplaySelect=()=>{this._open?this.handleClose():(this._keyboardNavigating=!1,this.handleOpen())},this.handleKeydown=e=>{this._open?(this._keyboardNavigating=!0,f.SelectKeyboardController.handleKeydownWhenOpen(e,{commit:()=>this.commitSelection(),navigateNext:()=>this.advanceSelection(1),navigatePrev:()=>this.advanceSelection(-1),navigateFirst:()=>this.advanceToFirst(),navigateLast:()=>this.advanceToLast(),close:this.handleClose})):f.SelectKeyboardController.handleKeydownWhenClosed(e,{open:()=>{this._keyboardNavigating=!0,this.handleOpen()}})}}static{this.styles=[p.commonStyles]}static{this.ARIA_OPTION_PREFIX=`option-`}firstUpdated(){queueMicrotask(()=>this.initializeNativeSelect())}disconnectedCallback(){super.disconnectedCallback(),this.cleanup()}initializeNativeSelect(){this.nativeSelect=this.nativeSelects?.[0],this.nativeLabel=this.nativeLabels?.[0],this.nativeSelect&&(this.syncNativeOptions(),this.setupNativeElementsAttributes(),this.setupEventListeners())}handleChangeForcedError(){this.hasForcedError=this.forcedError?.length>0}setupNativeElementsAttributes(){this.nativeSelect.setAttribute(`aria-hidden`,`true`),this.nativeSelect.setAttribute(`tabindex`,`-1`)}setupEventListeners(){this.nativeSelect.addEventListener(`change`,this.syncNativeOptions),this.observer=new MutationObserver(this.handleMutations),this.observer.observe(this.nativeSelect,{childList:!0,subtree:!0,attributes:!0})}cleanup(){this.nativeSelect?.removeEventListener(`change`,this.syncNativeOptions),this.observer?.disconnect()}findSelectedOptionIndex(){let e=this.nativeOptions.findIndex(e=>e.value===this.nativeSelect.value);return this.nativeOptions[e]?.hidden?this.nativeOptions.findIndex(e=>!e.hidden):e}focusDisplaySelect(){this.updateComplete.then(()=>{this.displaySelect?.focus()})}advanceToFirst(){if(this.nativeOptions.length){let e=this.nativeOptions.findIndex(e=>!e.hidden);this.advanceSelection(e-this.keyboardFocusIndex)}}advanceToLast(){if(this.nativeOptions.length){let e=-1;for(let t=this.nativeOptions.length-1;t>=0;t--)if(!this.nativeOptions[t].hidden){e=t;break}this.advanceSelection(e-this.keyboardFocusIndex)}}advanceSelection(e){let t=this.nativeOptions.length;this.keyboardFocusIndex=(this.keyboardFocusIndex+e+t)%t,this.shouldSkipHiddenOption()?this.advanceSelection(Math.sign(e)):this.scrollToActive(this.nativeOptions[this.keyboardFocusIndex])}shouldSkipHiddenOption(){return this.nativeOptions.some(e=>!e.hidden)&&this.nativeOptions[this.keyboardFocusIndex].hidden}scrollToActive(e){e?.scrollIntoView?.({block:`nearest`})}commitSelection(e=this.keyboardFocusIndex){this.handleClose();let t=this.nativeOptions[e];this.nativeSelect&&t?.value&&this.updateNativeSelectValue(t.value)}updateNativeSelectValue(e){this.nativeSelect.value=e,[`input`,`change`].forEach(e=>this.nativeSelect.dispatchEvent(new Event(e,{bubbles:!0,composed:!0})))}get containerClasses(){return{container:!0,open:this._open,disabled:!!this.nativeSelect?.disabled,readonly:!!this.readonly,filled:!!this.nativeOptions?.find(e=>e.selected&&!e.hidden)?.selected,invalid:!this.nativeSelect?.validity.valid,error:this.hasForcedError,[this.size]:!!this.size,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}set open(e){this._open=e}get open(){return this._open}render(){return e.x`
1
+ require(`../ds-theme-provider/themeContext.cjs`);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`),n=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`),r=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.cjs`),i=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-assigned-elements.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const a=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),o=require(`../base/UiKitElement.cjs`),s=require(`../../decorators/customUiKitElement.cjs`);require(`../ds-icon/ds-icon.cjs`);const c=require(`../../utils/booleanConverter.cjs`),l=require(`../../utils/uiKitHtml.cjs`),u=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 d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/if-defined.cjs`);const f=require(`./controllers/SelectKeyboardController.cjs`),p=require(`./styles/common.styles.cjs`);var m,h=class extends o.UiKitElement{static{m=this}constructor(...e){super(...e),this.mode=`light`,this.size=`large`,this.variant=`primary`,this.readonly=!1,this.iconName=void 0,this.dataAriaLabel=void 0,this._open=!1,this._keyboardNavigating=!1,this.nativeSelect=null,this.nativeLabel=null,this.nativeOptions=[],this.keyboardFocusIndex=-1,this.hasForcedError=!1,this.handleMutations=e=>{e.forEach(e=>{e.type===`childList`&&this.syncNativeOptions()}),this.requestUpdate()},this.syncNativeOptions=()=>{this.nativeOptions=Array.from(this.nativeSelect.options)},this.handleOpen=()=>{this.readonly||(this._open=!0,this.keyboardFocusIndex=this.findSelectedOptionIndex(),this.focusDisplaySelect())},this.handleClose=()=>{this._open=!1},this.handleClickDisplaySelect=()=>{this._open?this.handleClose():(this._keyboardNavigating=!1,this.handleOpen())},this.handleKeydown=e=>{this._open?(this._keyboardNavigating=!0,f.SelectKeyboardController.handleKeydownWhenOpen(e,{commit:()=>this.commitSelection(),navigateNext:()=>this.advanceSelection(1),navigatePrev:()=>this.advanceSelection(-1),navigateFirst:()=>this.advanceToFirst(),navigateLast:()=>this.advanceToLast(),close:this.handleClose})):f.SelectKeyboardController.handleKeydownWhenClosed(e,{open:()=>{this._keyboardNavigating=!0,this.handleOpen()}})}}static{this.styles=[p.commonStyles]}static{this.ARIA_OPTION_PREFIX=`option-`}firstUpdated(){queueMicrotask(()=>this.initializeNativeSelect())}disconnectedCallback(){super.disconnectedCallback(),this.cleanup()}initializeNativeSelect(){this.nativeSelect=this.nativeSelects?.[0],this.nativeLabel=this.nativeLabels?.[0],this.nativeSelect&&(this.syncNativeOptions(),this.setupNativeElementsAttributes(),this.setupEventListeners())}handleChangeForcedError(){this.hasForcedError=this.forcedError?.length>0}setupNativeElementsAttributes(){this.nativeSelect.setAttribute(`aria-hidden`,`true`),this.nativeSelect.setAttribute(`tabindex`,`-1`)}setupEventListeners(){this.nativeSelect.addEventListener(`change`,this.syncNativeOptions),this.observer=new MutationObserver(this.handleMutations),this.observer.observe(this.nativeSelect,{childList:!0,subtree:!0,attributes:!0})}cleanup(){this.nativeSelect?.removeEventListener(`change`,this.syncNativeOptions),this.observer?.disconnect()}findSelectedOptionIndex(){let e=this.nativeOptions.findIndex(e=>e.value===this.nativeSelect.value);return this.nativeOptions[e]?.hidden?this.nativeOptions.findIndex(e=>!e.hidden):e}focusDisplaySelect(){this.updateComplete.then(()=>{this.displaySelect?.focus()})}advanceToFirst(){if(this.nativeOptions.length){let e=this.nativeOptions.findIndex(e=>!e.hidden);this.advanceSelection(e-this.keyboardFocusIndex)}}advanceToLast(){if(this.nativeOptions.length){let e=-1;for(let t=this.nativeOptions.length-1;t>=0;t--)if(!this.nativeOptions[t].hidden){e=t;break}this.advanceSelection(e-this.keyboardFocusIndex)}}advanceSelection(e){let t=this.nativeOptions.length;this.keyboardFocusIndex=(this.keyboardFocusIndex+e+t)%t,this.shouldSkipHiddenOption()?this.advanceSelection(Math.sign(e)):this.scrollToActive(this.nativeOptions[this.keyboardFocusIndex])}shouldSkipHiddenOption(){return this.nativeOptions.some(e=>!e.hidden)&&this.nativeOptions[this.keyboardFocusIndex].hidden}scrollToActive(e){e?.scrollIntoView?.({block:`nearest`})}commitSelection(e=this.keyboardFocusIndex){this.handleClose();let t=this.nativeOptions[e];this.nativeSelect&&t?.value&&this.updateNativeSelectValue(t.value)}updateNativeSelectValue(e){this.nativeSelect.value=e,[`input`,`change`].forEach(e=>this.nativeSelect.dispatchEvent(new Event(e,{bubbles:!0,composed:!0})))}get containerClasses(){return{container:!0,open:this._open,disabled:!!this.nativeSelect?.disabled,readonly:!!this.readonly,filled:!!this.nativeOptions?.find(e=>e.selected&&!e.hidden)?.selected,invalid:!this.nativeSelect?.validity.valid,error:this.hasForcedError,[this.size]:!!this.size,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}set open(e){this._open=e}get open(){return this._open}render(){return e.x`
2
2
  <slot @slotchange=${this.initializeNativeSelect}></slot>
3
3
  <div class=${u.e(this.containerClasses)}>
4
4
  ${this.displaySelectTemplate}
@@ -8,10 +8,10 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
8
8
  <slot name="forced-error" @slotchange=${this.handleChangeForcedError}></slot>
9
9
  <slot name="invalid-error"></slot>
10
10
  </div>
11
- `}get iconTemplate(){return l.uiKitHtml`<ds-icon class="icon" icon-name=${this._open?`arrow-up`:`arrow-down`}></ds-icon>`}get leftIconTemplate(){return this.iconName?l.uiKitHtml`<ds-icon class="left-icon" icon-name=${d.o(this.iconName)}></ds-icon>`:e.E}get displaySelectTemplate(){let t=this.nativeOptions.find(e=>e.selected),n=Array.from(t?.childNodes||[])?.map(e=>{let t=e.cloneNode(!0);if(e.nodeType!==3)return t;if(e.textContent.trim()===``)return``;let n=document.createElement(`span`);return n.classList.add(`text`),n.appendChild(t),n});return e.x`
11
+ `}get iconTemplate(){return l.uiKitHtml`<ds-icon class="icon" icon-name=${this._open?`arrow-up`:`arrow-down`}></ds-icon>`}get leftIconTemplate(){return this.iconName?l.uiKitHtml`<ds-icon class="left-icon" icon-name=${d.o(this.iconName)}></ds-icon>`:e.E}get displaySelectTemplate(){let t=this.nativeOptions.find(e=>e.selected),n=Array.from(t?.childNodes||[])?.map(e=>{let t=e.cloneNode(!0);if(e.nodeType!==3)return t;if(e.textContent.trim()===``)return``;let n=document.createElement(`span`);return n.classList.add(`text`),n.appendChild(t),n}),r=this.nativeLabel?e.x`<label id="display-label" class="label">${this.nativeLabel.textContent}</label>`:e.E,i=this.nativeLabel?`display-label`:void 0,a=this.nativeLabel?void 0:this.dataAriaLabel;return e.x`
12
12
  <div class="select-outline">
13
13
  <div class="select-container">
14
- <label id="display-label" class="label">${this.nativeLabel?.innerText}</label>
14
+ ${r}
15
15
  <div
16
16
  class="select"
17
17
  role="combobox"
@@ -19,7 +19,8 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
19
19
  aria-expanded="${this._open}"
20
20
  aria-activedescendant="${this.activeDescendantId}"
21
21
  aria-controls="options-container"
22
- aria-labelledby="display-label"
22
+ aria-labelledby=${d.o(i)}
23
+ aria-label=${d.o(a)}
23
24
  aria-disabled=${!!this.nativeSelect?.disabled}
24
25
  @click=${this.handleClickDisplaySelect}
25
26
  @keydown=${this.handleKeydown}
@@ -46,4 +47,4 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
46
47
  >
47
48
  ${r}
48
49
  </div>
49
- `}};a.__decorate([t.n({type:String})],h.prototype,`mode`,void 0),a.__decorate([t.n({type:String})],h.prototype,`size`,void 0),a.__decorate([t.n({type:String})],h.prototype,`variant`,void 0),a.__decorate([t.n({type:Boolean,converter:c.booleanConverter,reflect:!0})],h.prototype,`readonly`,void 0),a.__decorate([t.n({type:String,attribute:`icon-name`})],h.prototype,`iconName`,void 0),a.__decorate([n.r()],h.prototype,`_open`,void 0),a.__decorate([n.r()],h.prototype,`_keyboardNavigating`,void 0),a.__decorate([n.r()],h.prototype,`nativeOptions`,void 0),a.__decorate([n.r()],h.prototype,`keyboardFocusIndex`,void 0),a.__decorate([n.r()],h.prototype,`hasForcedError`,void 0),a.__decorate([i.o({slot:``,selector:`select`,flatten:!0})],h.prototype,`nativeSelects`,void 0),a.__decorate([i.o({slot:``,selector:`label`,flatten:!0})],h.prototype,`nativeLabels`,void 0),a.__decorate([i.o({slot:`forced-error`,flatten:!0})],h.prototype,`forcedError`,void 0),a.__decorate([r.e(`.select`)],h.prototype,`displaySelect`,void 0),h=m=a.__decorate([s.customUiKitElement(`ds-select`)],h);
50
+ `}};a.__decorate([t.n({type:String})],h.prototype,`mode`,void 0),a.__decorate([t.n({type:String})],h.prototype,`size`,void 0),a.__decorate([t.n({type:String})],h.prototype,`variant`,void 0),a.__decorate([t.n({type:Boolean,converter:c.booleanConverter,reflect:!0})],h.prototype,`readonly`,void 0),a.__decorate([t.n({type:String,attribute:`icon-name`})],h.prototype,`iconName`,void 0),a.__decorate([t.n({type:String,attribute:`data-aria-label`})],h.prototype,`dataAriaLabel`,void 0),a.__decorate([n.r()],h.prototype,`_open`,void 0),a.__decorate([n.r()],h.prototype,`_keyboardNavigating`,void 0),a.__decorate([n.r()],h.prototype,`nativeLabel`,void 0),a.__decorate([n.r()],h.prototype,`nativeOptions`,void 0),a.__decorate([n.r()],h.prototype,`keyboardFocusIndex`,void 0),a.__decorate([n.r()],h.prototype,`hasForcedError`,void 0),a.__decorate([i.o({slot:``,selector:`select`,flatten:!0})],h.prototype,`nativeSelects`,void 0),a.__decorate([i.o({slot:``,selector:`label`,flatten:!0})],h.prototype,`nativeLabels`,void 0),a.__decorate([i.o({slot:`forced-error`,flatten:!0})],h.prototype,`forcedError`,void 0),a.__decorate([r.e(`.select`)],h.prototype,`displaySelect`,void 0),h=m=a.__decorate([s.customUiKitElement(`ds-select`)],h);
@@ -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.133`,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.134`,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
- require(`../utils/version.cjs`);function e(e,t){return function(n){if(!n?.prototype)throw TypeError(`@customUiKitElement requires a class that extends HTMLElement.`);let r=e;if(globalThis?.customElements?.get(r))return;let i=t?.skipTagAsComponentName?[]:[e];Array.isArray(t?.extendComponentNames)&&(i=[...t.extendComponentNames,...i]),globalThis?.customElements?.define?.(r,class extends n{static{this.componentName=i}connectedCallback(){n.prototype.connectedCallback?.call(this),this.setAttribute(`data-ui-kit-version`,`2.0.0-canary.133`)}})}}exports.customUiKitElement=e;
1
+ require(`../utils/version.cjs`);function e(e,t){return function(n){if(!n?.prototype)throw TypeError(`@customUiKitElement requires a class that extends HTMLElement.`);let r=e;if(globalThis?.customElements?.get(r))return;let i=t?.skipTagAsComponentName?[]:[e];Array.isArray(t?.extendComponentNames)&&(i=[...t.extendComponentNames,...i]),globalThis?.customElements?.define?.(r,class extends n{static{this.componentName=i}connectedCallback(){n.prototype.connectedCallback?.call(this),this.setAttribute(`data-ui-kit-version`,`2.0.0-canary.134`)}})}}exports.customUiKitElement=e;
@@ -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.133`),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.134`),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.133`),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.134`),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.133/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.134/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
- var e=`2.0.0-canary.133`,t=`--v${e.replaceAll(`.`,`-`)}`;exports.VERSION=e,exports.VERSION_TAG_SUFFIX=t;
1
+ var e=`2.0.0-canary.134`,t=`--v${e.replaceAll(`.`,`-`)}`;exports.VERSION=e,exports.VERSION_TAG_SUFFIX=t;
@@ -24,7 +24,7 @@ var h, g = class extends s {
24
24
  h = this;
25
25
  }
26
26
  constructor(...e) {
27
- super(...e), this.mode = "light", this.size = "large", this.variant = "primary", this.readonly = !1, this.iconName = void 0, this._open = !1, this._keyboardNavigating = !1, this.nativeSelect = null, this.nativeLabel = null, this.nativeOptions = [], this.keyboardFocusIndex = -1, this.hasForcedError = !1, this.handleMutations = (e) => {
27
+ super(...e), this.mode = "light", this.size = "large", this.variant = "primary", this.readonly = !1, this.iconName = void 0, this.dataAriaLabel = void 0, this._open = !1, this._keyboardNavigating = !1, this.nativeSelect = null, this.nativeLabel = null, this.nativeOptions = [], this.keyboardFocusIndex = -1, this.hasForcedError = !1, this.handleMutations = (e) => {
28
28
  e.forEach((e) => {
29
29
  e.type === "childList" && this.syncNativeOptions();
30
30
  }), this.requestUpdate();
@@ -166,17 +166,17 @@ var h, g = class extends s {
166
166
  return this.iconName ? u`<ds-icon class="left-icon" icon-name=${f(this.iconName)}></ds-icon>` : e;
167
167
  }
168
168
  get displaySelectTemplate() {
169
- let e = this.nativeOptions.find((e) => e.selected), n = Array.from(e?.childNodes || [])?.map((e) => {
169
+ let n = this.nativeOptions.find((e) => e.selected), r = Array.from(n?.childNodes || [])?.map((e) => {
170
170
  let t = e.cloneNode(!0);
171
171
  if (e.nodeType !== 3) return t;
172
172
  if (e.textContent.trim() === "") return "";
173
173
  let n = document.createElement("span");
174
174
  return n.classList.add("text"), n.appendChild(t), n;
175
- });
175
+ }), i = this.nativeLabel ? t`<label id="display-label" class="label">${this.nativeLabel.textContent}</label>` : e, a = this.nativeLabel ? "display-label" : void 0, o = this.nativeLabel ? void 0 : this.dataAriaLabel;
176
176
  return t`
177
177
  <div class="select-outline">
178
178
  <div class="select-container">
179
- <label id="display-label" class="label">${this.nativeLabel?.innerText}</label>
179
+ ${i}
180
180
  <div
181
181
  class="select"
182
182
  role="combobox"
@@ -184,14 +184,15 @@ var h, g = class extends s {
184
184
  aria-expanded="${this._open}"
185
185
  aria-activedescendant="${this.activeDescendantId}"
186
186
  aria-controls="options-container"
187
- aria-labelledby="display-label"
187
+ aria-labelledby=${f(a)}
188
+ aria-label=${f(o)}
188
189
  aria-disabled=${!!this.nativeSelect?.disabled}
189
190
  @click=${this.handleClickDisplaySelect}
190
191
  @keydown=${this.handleKeydown}
191
192
  @blur=${this.handleClose}
192
193
  >
193
194
  ${this.leftIconTemplate}
194
- <span class="select-content">${n}</span>
195
+ <span class="select-content">${r}</span>
195
196
  ${this.iconTemplate}
196
197
  </div>
197
198
  </div>
@@ -235,7 +236,10 @@ o([n({ type: String })], g.prototype, "mode", void 0), o([n({ type: String })],
235
236
  })], g.prototype, "readonly", void 0), o([n({
236
237
  type: String,
237
238
  attribute: "icon-name"
238
- })], g.prototype, "iconName", void 0), o([r()], g.prototype, "_open", void 0), o([r()], g.prototype, "_keyboardNavigating", void 0), o([r()], g.prototype, "nativeOptions", void 0), o([r()], g.prototype, "keyboardFocusIndex", void 0), o([r()], g.prototype, "hasForcedError", void 0), o([a({
239
+ })], g.prototype, "iconName", void 0), o([n({
240
+ type: String,
241
+ attribute: "data-aria-label"
242
+ })], g.prototype, "dataAriaLabel", void 0), o([r()], g.prototype, "_open", void 0), o([r()], g.prototype, "_keyboardNavigating", void 0), o([r()], g.prototype, "nativeLabel", void 0), o([r()], g.prototype, "nativeOptions", void 0), o([r()], g.prototype, "keyboardFocusIndex", void 0), o([r()], g.prototype, "hasForcedError", void 0), o([a({
239
243
  slot: "",
240
244
  selector: "select",
241
245
  flatten: !0
@@ -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.133", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
53
+ let n = "/2.0.0-canary.134", 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");
@@ -11,7 +11,7 @@ function e(e, t) {
11
11
  this.componentName = i;
12
12
  }
13
13
  connectedCallback() {
14
- n.prototype.connectedCallback?.call(this), this.setAttribute("data-ui-kit-version", "2.0.0-canary.133");
14
+ n.prototype.connectedCallback?.call(this), this.setAttribute("data-ui-kit-version", "2.0.0-canary.134");
15
15
  }
16
16
  });
17
17
  };
@@ -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.133"), i = globalThis, a = i[r];
28
+ }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.134"), 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.133"), n = globalThis, r = n[t];
21
+ }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.134"), 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.133/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
7
+ let r = `https://ds-assets.cupra.com/2.0.0-canary.134/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);
@@ -1,4 +1,4 @@
1
1
  //#region src/utils/version.ts
2
- var e = "2.0.0-canary.133", t = `--v${e.replaceAll(".", "-")}`;
2
+ var e = "2.0.0-canary.134", t = `--v${e.replaceAll(".", "-")}`;
3
3
  //#endregion
4
4
  export { e as VERSION, t as VERSION_TAG_SUFFIX };
@@ -11,6 +11,7 @@ export declare class DsSelect extends UiKitElement {
11
11
  variant: DsSelectAttrs['variant'];
12
12
  readonly: DsSelectAttrs['readonly'];
13
13
  iconName: DsSelectAttrs['icon-name'];
14
+ dataAriaLabel: DsSelectAttrs['data-aria-label'];
14
15
  private _open;
15
16
  private _keyboardNavigating;
16
17
  private nativeSelect;
@@ -6,4 +6,5 @@ export interface DsSelectAttrs extends CommonAttrs {
6
6
  variant?: 'primary' | 'secondary' | (string & {});
7
7
  readonly?: boolean;
8
8
  'icon-name'?: DsIconAttrs['icon-name'];
9
+ 'data-aria-label'?: string;
9
10
  }
@@ -1,4 +1,4 @@
1
- require(`../ds-theme-provider/themeContext.cjs`);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`),n=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`),r=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.cjs`),i=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-assigned-elements.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const a=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),o=require(`../base/UiKitElement.cjs`),s=require(`../../decorators/customUiKitElement.cjs`);require(`../ds-icon/ds-icon.cjs`);const c=require(`../../utils/booleanConverter.cjs`),l=require(`../../utils/uiKitHtml.cjs`),u=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 d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/if-defined.cjs`);const f=require(`./controllers/SelectKeyboardController.cjs`),p=require(`./styles/common.styles.cjs`);var m,h=class extends o.UiKitElement{static{m=this}constructor(...e){super(...e),this.mode=`light`,this.size=`large`,this.variant=`primary`,this.readonly=!1,this.iconName=void 0,this._open=!1,this._keyboardNavigating=!1,this.nativeSelect=null,this.nativeLabel=null,this.nativeOptions=[],this.keyboardFocusIndex=-1,this.hasForcedError=!1,this.handleMutations=e=>{e.forEach(e=>{e.type===`childList`&&this.syncNativeOptions()}),this.requestUpdate()},this.syncNativeOptions=()=>{this.nativeOptions=Array.from(this.nativeSelect.options)},this.handleOpen=()=>{this.readonly||(this._open=!0,this.keyboardFocusIndex=this.findSelectedOptionIndex(),this.focusDisplaySelect())},this.handleClose=()=>{this._open=!1},this.handleClickDisplaySelect=()=>{this._open?this.handleClose():(this._keyboardNavigating=!1,this.handleOpen())},this.handleKeydown=e=>{this._open?(this._keyboardNavigating=!0,f.SelectKeyboardController.handleKeydownWhenOpen(e,{commit:()=>this.commitSelection(),navigateNext:()=>this.advanceSelection(1),navigatePrev:()=>this.advanceSelection(-1),navigateFirst:()=>this.advanceToFirst(),navigateLast:()=>this.advanceToLast(),close:this.handleClose})):f.SelectKeyboardController.handleKeydownWhenClosed(e,{open:()=>{this._keyboardNavigating=!0,this.handleOpen()}})}}static{this.styles=[p.commonStyles]}static{this.ARIA_OPTION_PREFIX=`option-`}firstUpdated(){queueMicrotask(()=>this.initializeNativeSelect())}disconnectedCallback(){super.disconnectedCallback(),this.cleanup()}initializeNativeSelect(){this.nativeSelect=this.nativeSelects?.[0],this.nativeLabel=this.nativeLabels?.[0],this.nativeSelect&&(this.syncNativeOptions(),this.setupNativeElementsAttributes(),this.setupEventListeners())}handleChangeForcedError(){this.hasForcedError=this.forcedError?.length>0}setupNativeElementsAttributes(){this.nativeSelect.setAttribute(`aria-hidden`,`true`),this.nativeSelect.setAttribute(`tabindex`,`-1`)}setupEventListeners(){this.nativeSelect.addEventListener(`change`,this.syncNativeOptions),this.observer=new MutationObserver(this.handleMutations),this.observer.observe(this.nativeSelect,{childList:!0,subtree:!0,attributes:!0})}cleanup(){this.nativeSelect?.removeEventListener(`change`,this.syncNativeOptions),this.observer?.disconnect()}findSelectedOptionIndex(){let e=this.nativeOptions.findIndex(e=>e.value===this.nativeSelect.value);return this.nativeOptions[e]?.hidden?this.nativeOptions.findIndex(e=>!e.hidden):e}focusDisplaySelect(){this.updateComplete.then(()=>{this.displaySelect?.focus()})}advanceToFirst(){if(this.nativeOptions.length){let e=this.nativeOptions.findIndex(e=>!e.hidden);this.advanceSelection(e-this.keyboardFocusIndex)}}advanceToLast(){if(this.nativeOptions.length){let e=-1;for(let t=this.nativeOptions.length-1;t>=0;t--)if(!this.nativeOptions[t].hidden){e=t;break}this.advanceSelection(e-this.keyboardFocusIndex)}}advanceSelection(e){let t=this.nativeOptions.length;this.keyboardFocusIndex=(this.keyboardFocusIndex+e+t)%t,this.shouldSkipHiddenOption()?this.advanceSelection(Math.sign(e)):this.scrollToActive(this.nativeOptions[this.keyboardFocusIndex])}shouldSkipHiddenOption(){return this.nativeOptions.some(e=>!e.hidden)&&this.nativeOptions[this.keyboardFocusIndex].hidden}scrollToActive(e){e?.scrollIntoView?.({block:`nearest`})}commitSelection(e=this.keyboardFocusIndex){this.handleClose();let t=this.nativeOptions[e];this.nativeSelect&&t?.value&&this.updateNativeSelectValue(t.value)}updateNativeSelectValue(e){this.nativeSelect.value=e,[`input`,`change`].forEach(e=>this.nativeSelect.dispatchEvent(new Event(e,{bubbles:!0,composed:!0})))}get containerClasses(){return{container:!0,open:this._open,disabled:!!this.nativeSelect?.disabled,readonly:!!this.readonly,filled:!!this.nativeOptions?.find(e=>e.selected&&!e.hidden)?.selected,invalid:!this.nativeSelect?.validity.valid,error:this.hasForcedError,[this.size]:!!this.size,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}set open(e){this._open=e}get open(){return this._open}render(){return e.x`
1
+ require(`../ds-theme-provider/themeContext.cjs`);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`),n=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.cjs`),r=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.cjs`),i=require(`../../node_modules/.pnpm/@lit_reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-assigned-elements.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/decorators.cjs`);const a=require(`../../_virtual/_@oxc-project_runtime@0.122.0/helpers/decorate.cjs`),o=require(`../base/UiKitElement.cjs`),s=require(`../../decorators/customUiKitElement.cjs`);require(`../ds-icon/ds-icon.cjs`);const c=require(`../../utils/booleanConverter.cjs`),l=require(`../../utils/uiKitHtml.cjs`),u=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 d=require(`../../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.cjs`);require(`../../node_modules/.pnpm/lit@3.3.1/node_modules/lit/directives/if-defined.cjs`);const f=require(`./controllers/SelectKeyboardController.cjs`),p=require(`./styles/common.styles.cjs`);var m,h=class extends o.UiKitElement{static{m=this}constructor(...e){super(...e),this.mode=`light`,this.size=`large`,this.variant=`primary`,this.readonly=!1,this.iconName=void 0,this.dataAriaLabel=void 0,this._open=!1,this._keyboardNavigating=!1,this.nativeSelect=null,this.nativeLabel=null,this.nativeOptions=[],this.keyboardFocusIndex=-1,this.hasForcedError=!1,this.handleMutations=e=>{e.forEach(e=>{e.type===`childList`&&this.syncNativeOptions()}),this.requestUpdate()},this.syncNativeOptions=()=>{this.nativeOptions=Array.from(this.nativeSelect.options)},this.handleOpen=()=>{this.readonly||(this._open=!0,this.keyboardFocusIndex=this.findSelectedOptionIndex(),this.focusDisplaySelect())},this.handleClose=()=>{this._open=!1},this.handleClickDisplaySelect=()=>{this._open?this.handleClose():(this._keyboardNavigating=!1,this.handleOpen())},this.handleKeydown=e=>{this._open?(this._keyboardNavigating=!0,f.SelectKeyboardController.handleKeydownWhenOpen(e,{commit:()=>this.commitSelection(),navigateNext:()=>this.advanceSelection(1),navigatePrev:()=>this.advanceSelection(-1),navigateFirst:()=>this.advanceToFirst(),navigateLast:()=>this.advanceToLast(),close:this.handleClose})):f.SelectKeyboardController.handleKeydownWhenClosed(e,{open:()=>{this._keyboardNavigating=!0,this.handleOpen()}})}}static{this.styles=[p.commonStyles]}static{this.ARIA_OPTION_PREFIX=`option-`}firstUpdated(){queueMicrotask(()=>this.initializeNativeSelect())}disconnectedCallback(){super.disconnectedCallback(),this.cleanup()}initializeNativeSelect(){this.nativeSelect=this.nativeSelects?.[0],this.nativeLabel=this.nativeLabels?.[0],this.nativeSelect&&(this.syncNativeOptions(),this.setupNativeElementsAttributes(),this.setupEventListeners())}handleChangeForcedError(){this.hasForcedError=this.forcedError?.length>0}setupNativeElementsAttributes(){this.nativeSelect.setAttribute(`aria-hidden`,`true`),this.nativeSelect.setAttribute(`tabindex`,`-1`)}setupEventListeners(){this.nativeSelect.addEventListener(`change`,this.syncNativeOptions),this.observer=new MutationObserver(this.handleMutations),this.observer.observe(this.nativeSelect,{childList:!0,subtree:!0,attributes:!0})}cleanup(){this.nativeSelect?.removeEventListener(`change`,this.syncNativeOptions),this.observer?.disconnect()}findSelectedOptionIndex(){let e=this.nativeOptions.findIndex(e=>e.value===this.nativeSelect.value);return this.nativeOptions[e]?.hidden?this.nativeOptions.findIndex(e=>!e.hidden):e}focusDisplaySelect(){this.updateComplete.then(()=>{this.displaySelect?.focus()})}advanceToFirst(){if(this.nativeOptions.length){let e=this.nativeOptions.findIndex(e=>!e.hidden);this.advanceSelection(e-this.keyboardFocusIndex)}}advanceToLast(){if(this.nativeOptions.length){let e=-1;for(let t=this.nativeOptions.length-1;t>=0;t--)if(!this.nativeOptions[t].hidden){e=t;break}this.advanceSelection(e-this.keyboardFocusIndex)}}advanceSelection(e){let t=this.nativeOptions.length;this.keyboardFocusIndex=(this.keyboardFocusIndex+e+t)%t,this.shouldSkipHiddenOption()?this.advanceSelection(Math.sign(e)):this.scrollToActive(this.nativeOptions[this.keyboardFocusIndex])}shouldSkipHiddenOption(){return this.nativeOptions.some(e=>!e.hidden)&&this.nativeOptions[this.keyboardFocusIndex].hidden}scrollToActive(e){e?.scrollIntoView?.({block:`nearest`})}commitSelection(e=this.keyboardFocusIndex){this.handleClose();let t=this.nativeOptions[e];this.nativeSelect&&t?.value&&this.updateNativeSelectValue(t.value)}updateNativeSelectValue(e){this.nativeSelect.value=e,[`input`,`change`].forEach(e=>this.nativeSelect.dispatchEvent(new Event(e,{bubbles:!0,composed:!0})))}get containerClasses(){return{container:!0,open:this._open,disabled:!!this.nativeSelect?.disabled,readonly:!!this.readonly,filled:!!this.nativeOptions?.find(e=>e.selected&&!e.hidden)?.selected,invalid:!this.nativeSelect?.validity.valid,error:this.hasForcedError,[this.size]:!!this.size,[this.mode]:!!this.mode,[this.variant]:!!this.variant}}set open(e){this._open=e}get open(){return this._open}render(){return e.x`
2
2
  <slot @slotchange=${this.initializeNativeSelect}></slot>
3
3
  <div class=${u.e(this.containerClasses)}>
4
4
  ${this.displaySelectTemplate}
@@ -8,10 +8,10 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
8
8
  <slot name="forced-error" @slotchange=${this.handleChangeForcedError}></slot>
9
9
  <slot name="invalid-error"></slot>
10
10
  </div>
11
- `}get iconTemplate(){return l.uiKitHtml`<ds-icon class="icon" icon-name=${this._open?`arrow-up`:`arrow-down`}></ds-icon>`}get leftIconTemplate(){return this.iconName?l.uiKitHtml`<ds-icon class="left-icon" icon-name=${d.o(this.iconName)}></ds-icon>`:e.E}get displaySelectTemplate(){let t=this.nativeOptions.find(e=>e.selected),n=Array.from(t?.childNodes||[])?.map(e=>{let t=e.cloneNode(!0);if(e.nodeType!==3)return t;if(e.textContent.trim()===``)return``;let n=document.createElement(`span`);return n.classList.add(`text`),n.appendChild(t),n});return e.x`
11
+ `}get iconTemplate(){return l.uiKitHtml`<ds-icon class="icon" icon-name=${this._open?`arrow-up`:`arrow-down`}></ds-icon>`}get leftIconTemplate(){return this.iconName?l.uiKitHtml`<ds-icon class="left-icon" icon-name=${d.o(this.iconName)}></ds-icon>`:e.E}get displaySelectTemplate(){let t=this.nativeOptions.find(e=>e.selected),n=Array.from(t?.childNodes||[])?.map(e=>{let t=e.cloneNode(!0);if(e.nodeType!==3)return t;if(e.textContent.trim()===``)return``;let n=document.createElement(`span`);return n.classList.add(`text`),n.appendChild(t),n}),r=this.nativeLabel?e.x`<label id="display-label" class="label">${this.nativeLabel.textContent}</label>`:e.E,i=this.nativeLabel?`display-label`:void 0,a=this.nativeLabel?void 0:this.dataAriaLabel;return e.x`
12
12
  <div class="select-outline">
13
13
  <div class="select-container">
14
- <label id="display-label" class="label">${this.nativeLabel?.innerText}</label>
14
+ ${r}
15
15
  <div
16
16
  class="select"
17
17
  role="combobox"
@@ -19,7 +19,8 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
19
19
  aria-expanded="${this._open}"
20
20
  aria-activedescendant="${this.activeDescendantId}"
21
21
  aria-controls="options-container"
22
- aria-labelledby="display-label"
22
+ aria-labelledby=${d.o(i)}
23
+ aria-label=${d.o(a)}
23
24
  aria-disabled=${!!this.nativeSelect?.disabled}
24
25
  @click=${this.handleClickDisplaySelect}
25
26
  @keydown=${this.handleKeydown}
@@ -46,4 +47,4 @@ require(`../ds-theme-provider/themeContext.cjs`);const e=require(`../../node_mod
46
47
  >
47
48
  ${r}
48
49
  </div>
49
- `}};a.__decorate([t.n({type:String})],h.prototype,`mode`,void 0),a.__decorate([t.n({type:String})],h.prototype,`size`,void 0),a.__decorate([t.n({type:String})],h.prototype,`variant`,void 0),a.__decorate([t.n({type:Boolean,converter:c.booleanConverter,reflect:!0})],h.prototype,`readonly`,void 0),a.__decorate([t.n({type:String,attribute:`icon-name`})],h.prototype,`iconName`,void 0),a.__decorate([n.r()],h.prototype,`_open`,void 0),a.__decorate([n.r()],h.prototype,`_keyboardNavigating`,void 0),a.__decorate([n.r()],h.prototype,`nativeOptions`,void 0),a.__decorate([n.r()],h.prototype,`keyboardFocusIndex`,void 0),a.__decorate([n.r()],h.prototype,`hasForcedError`,void 0),a.__decorate([i.o({slot:``,selector:`select`,flatten:!0})],h.prototype,`nativeSelects`,void 0),a.__decorate([i.o({slot:``,selector:`label`,flatten:!0})],h.prototype,`nativeLabels`,void 0),a.__decorate([i.o({slot:`forced-error`,flatten:!0})],h.prototype,`forcedError`,void 0),a.__decorate([r.e(`.select`)],h.prototype,`displaySelect`,void 0),h=m=a.__decorate([s.customUiKitElement(`ds-select`)],h);
50
+ `}};a.__decorate([t.n({type:String})],h.prototype,`mode`,void 0),a.__decorate([t.n({type:String})],h.prototype,`size`,void 0),a.__decorate([t.n({type:String})],h.prototype,`variant`,void 0),a.__decorate([t.n({type:Boolean,converter:c.booleanConverter,reflect:!0})],h.prototype,`readonly`,void 0),a.__decorate([t.n({type:String,attribute:`icon-name`})],h.prototype,`iconName`,void 0),a.__decorate([t.n({type:String,attribute:`data-aria-label`})],h.prototype,`dataAriaLabel`,void 0),a.__decorate([n.r()],h.prototype,`_open`,void 0),a.__decorate([n.r()],h.prototype,`_keyboardNavigating`,void 0),a.__decorate([n.r()],h.prototype,`nativeLabel`,void 0),a.__decorate([n.r()],h.prototype,`nativeOptions`,void 0),a.__decorate([n.r()],h.prototype,`keyboardFocusIndex`,void 0),a.__decorate([n.r()],h.prototype,`hasForcedError`,void 0),a.__decorate([i.o({slot:``,selector:`select`,flatten:!0})],h.prototype,`nativeSelects`,void 0),a.__decorate([i.o({slot:``,selector:`label`,flatten:!0})],h.prototype,`nativeLabels`,void 0),a.__decorate([i.o({slot:`forced-error`,flatten:!0})],h.prototype,`forcedError`,void 0),a.__decorate([r.e(`.select`)],h.prototype,`displaySelect`,void 0),h=m=a.__decorate([s.customUiKitElement(`ds-select`)],h);
@@ -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.133`,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.134`,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(`../utils/version.cjs`);function t(t,n){return function(r){if(!r?.prototype)throw TypeError(`@customUiKitElement requires a class that extends HTMLElement.`);let i=`${t}${e.VERSION_TAG_SUFFIX}`;if(globalThis?.customElements?.get(i))return;let a=n?.skipTagAsComponentName?[]:[t];Array.isArray(n?.extendComponentNames)&&(a=[...n.extendComponentNames,...a]),globalThis?.customElements?.define?.(i,class extends r{static{this.componentName=a}connectedCallback(){r.prototype.connectedCallback?.call(this),this.setAttribute(`data-ui-kit-version`,`2.0.0-canary.133`)}})}}exports.customUiKitElement=t;
1
+ const e=require(`../utils/version.cjs`);function t(t,n){return function(r){if(!r?.prototype)throw TypeError(`@customUiKitElement requires a class that extends HTMLElement.`);let i=`${t}${e.VERSION_TAG_SUFFIX}`;if(globalThis?.customElements?.get(i))return;let a=n?.skipTagAsComponentName?[]:[t];Array.isArray(n?.extendComponentNames)&&(a=[...n.extendComponentNames,...a]),globalThis?.customElements?.define?.(i,class extends r{static{this.componentName=a}connectedCallback(){r.prototype.connectedCallback?.call(this),this.setAttribute(`data-ui-kit-version`,`2.0.0-canary.134`)}})}}exports.customUiKitElement=t;
@@ -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.133`),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.134`),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.133`),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.134`),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.133/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.134/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
- var e=`2.0.0-canary.133`,t=`--v${e.replaceAll(`.`,`-`)}`;exports.VERSION=e,exports.VERSION_TAG_SUFFIX=t;
1
+ var e=`2.0.0-canary.134`,t=`--v${e.replaceAll(`.`,`-`)}`;exports.VERSION=e,exports.VERSION_TAG_SUFFIX=t;
@@ -24,7 +24,7 @@ var h, g = class extends s {
24
24
  h = this;
25
25
  }
26
26
  constructor(...e) {
27
- super(...e), this.mode = "light", this.size = "large", this.variant = "primary", this.readonly = !1, this.iconName = void 0, this._open = !1, this._keyboardNavigating = !1, this.nativeSelect = null, this.nativeLabel = null, this.nativeOptions = [], this.keyboardFocusIndex = -1, this.hasForcedError = !1, this.handleMutations = (e) => {
27
+ super(...e), this.mode = "light", this.size = "large", this.variant = "primary", this.readonly = !1, this.iconName = void 0, this.dataAriaLabel = void 0, this._open = !1, this._keyboardNavigating = !1, this.nativeSelect = null, this.nativeLabel = null, this.nativeOptions = [], this.keyboardFocusIndex = -1, this.hasForcedError = !1, this.handleMutations = (e) => {
28
28
  e.forEach((e) => {
29
29
  e.type === "childList" && this.syncNativeOptions();
30
30
  }), this.requestUpdate();
@@ -166,17 +166,17 @@ var h, g = class extends s {
166
166
  return this.iconName ? u`<ds-icon class="left-icon" icon-name=${f(this.iconName)}></ds-icon>` : e;
167
167
  }
168
168
  get displaySelectTemplate() {
169
- let e = this.nativeOptions.find((e) => e.selected), n = Array.from(e?.childNodes || [])?.map((e) => {
169
+ let n = this.nativeOptions.find((e) => e.selected), r = Array.from(n?.childNodes || [])?.map((e) => {
170
170
  let t = e.cloneNode(!0);
171
171
  if (e.nodeType !== 3) return t;
172
172
  if (e.textContent.trim() === "") return "";
173
173
  let n = document.createElement("span");
174
174
  return n.classList.add("text"), n.appendChild(t), n;
175
- });
175
+ }), i = this.nativeLabel ? t`<label id="display-label" class="label">${this.nativeLabel.textContent}</label>` : e, a = this.nativeLabel ? "display-label" : void 0, o = this.nativeLabel ? void 0 : this.dataAriaLabel;
176
176
  return t`
177
177
  <div class="select-outline">
178
178
  <div class="select-container">
179
- <label id="display-label" class="label">${this.nativeLabel?.innerText}</label>
179
+ ${i}
180
180
  <div
181
181
  class="select"
182
182
  role="combobox"
@@ -184,14 +184,15 @@ var h, g = class extends s {
184
184
  aria-expanded="${this._open}"
185
185
  aria-activedescendant="${this.activeDescendantId}"
186
186
  aria-controls="options-container"
187
- aria-labelledby="display-label"
187
+ aria-labelledby=${f(a)}
188
+ aria-label=${f(o)}
188
189
  aria-disabled=${!!this.nativeSelect?.disabled}
189
190
  @click=${this.handleClickDisplaySelect}
190
191
  @keydown=${this.handleKeydown}
191
192
  @blur=${this.handleClose}
192
193
  >
193
194
  ${this.leftIconTemplate}
194
- <span class="select-content">${n}</span>
195
+ <span class="select-content">${r}</span>
195
196
  ${this.iconTemplate}
196
197
  </div>
197
198
  </div>
@@ -235,7 +236,10 @@ o([n({ type: String })], g.prototype, "mode", void 0), o([n({ type: String })],
235
236
  })], g.prototype, "readonly", void 0), o([n({
236
237
  type: String,
237
238
  attribute: "icon-name"
238
- })], g.prototype, "iconName", void 0), o([r()], g.prototype, "_open", void 0), o([r()], g.prototype, "_keyboardNavigating", void 0), o([r()], g.prototype, "nativeOptions", void 0), o([r()], g.prototype, "keyboardFocusIndex", void 0), o([r()], g.prototype, "hasForcedError", void 0), o([a({
239
+ })], g.prototype, "iconName", void 0), o([n({
240
+ type: String,
241
+ attribute: "data-aria-label"
242
+ })], g.prototype, "dataAriaLabel", void 0), o([r()], g.prototype, "_open", void 0), o([r()], g.prototype, "_keyboardNavigating", void 0), o([r()], g.prototype, "nativeLabel", void 0), o([r()], g.prototype, "nativeOptions", void 0), o([r()], g.prototype, "keyboardFocusIndex", void 0), o([r()], g.prototype, "hasForcedError", void 0), o([a({
239
243
  slot: "",
240
244
  selector: "select",
241
245
  flatten: !0
@@ -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.133", r = `https://ds-assets.cupra.com${n}/styles/${this.theme}/theme.css`;
53
+ let n = "/2.0.0-canary.134", 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");
@@ -11,7 +11,7 @@ function t(t, n) {
11
11
  this.componentName = a;
12
12
  }
13
13
  connectedCallback() {
14
- r.prototype.connectedCallback?.call(this), this.setAttribute("data-ui-kit-version", "2.0.0-canary.133");
14
+ r.prototype.connectedCallback?.call(this), this.setAttribute("data-ui-kit-version", "2.0.0-canary.134");
15
15
  }
16
16
  });
17
17
  };
@@ -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.133"), i = globalThis, a = i[r];
28
+ }, r = Symbol.for("@cupra/ui-kit/icons-manager/2.0.0-canary.134"), 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.133"), n = globalThis, r = n[t];
21
+ }, t = Symbol.for("@cupra/ui-kit/pubsub/2.0.0-canary.134"), 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.133/styles/${n}/components/${e}.css`, i = this.getCachedStyleSheetPromise({ url: r });
7
+ let r = `https://ds-assets.cupra.com/2.0.0-canary.134/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);
@@ -1,4 +1,4 @@
1
1
  //#region src/utils/version.ts
2
- var e = "2.0.0-canary.133", t = `--v${e.replaceAll(".", "-")}`;
2
+ var e = "2.0.0-canary.134", t = `--v${e.replaceAll(".", "-")}`;
3
3
  //#endregion
4
4
  export { e as VERSION, t as VERSION_TAG_SUFFIX };
@@ -11,6 +11,7 @@ export declare class DsSelect extends UiKitElement {
11
11
  variant: DsSelectAttrs['variant'];
12
12
  readonly: DsSelectAttrs['readonly'];
13
13
  iconName: DsSelectAttrs['icon-name'];
14
+ dataAriaLabel: DsSelectAttrs['data-aria-label'];
14
15
  private _open;
15
16
  private _keyboardNavigating;
16
17
  private nativeSelect;
@@ -6,4 +6,5 @@ export interface DsSelectAttrs extends CommonAttrs {
6
6
  variant?: 'primary' | 'secondary' | (string & {});
7
7
  readonly?: boolean;
8
8
  'icon-name'?: DsIconAttrs['icon-name'];
9
+ 'data-aria-label'?: string;
9
10
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cupra/ui-kit",
3
- "version": "2.0.0-canary.133",
3
+ "version": "2.0.0-canary.134",
4
4
  "description": "Web components library",
5
5
  "author": "SEAT S.A.",
6
6
  "license": "SEAT S.A. Library EULA 1.0",