@aurodesignsystem-dev/auro-formkit 0.0.0-pr1304.0 → 0.0.0-pr1307.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/components/bibtemplate/dist/auro-bibtemplate.d.ts +10 -0
  2. package/components/bibtemplate/dist/buttonVersion.d.ts +1 -1
  3. package/components/bibtemplate/dist/headerVersion.d.ts +1 -1
  4. package/components/bibtemplate/dist/iconVersion.d.ts +1 -1
  5. package/components/bibtemplate/dist/index.js +26 -16
  6. package/components/bibtemplate/dist/registered.js +26 -16
  7. package/components/checkbox/demo/api.md +7 -0
  8. package/components/checkbox/demo/api.min.js +17 -14
  9. package/components/checkbox/demo/index.min.js +17 -14
  10. package/components/checkbox/dist/auro-checkbox-group.d.ts +4 -3
  11. package/components/checkbox/dist/auro-checkbox.d.ts +2 -0
  12. package/components/checkbox/dist/index.js +8 -5
  13. package/components/checkbox/dist/registered.js +8 -5
  14. package/components/combobox/demo/api.min.js +544 -355
  15. package/components/combobox/demo/index.html +5 -1
  16. package/components/combobox/demo/index.js +15 -0
  17. package/components/combobox/demo/index.min.js +545 -351
  18. package/components/combobox/dist/auro-combobox.d.ts +1 -1
  19. package/components/combobox/dist/index.js +428 -240
  20. package/components/combobox/dist/registered.js +428 -240
  21. package/components/counter/demo/api.min.js +434 -258
  22. package/components/counter/demo/index.min.js +434 -258
  23. package/components/counter/dist/auro-counter-button.d.ts +11 -2
  24. package/components/counter/dist/index.js +391 -219
  25. package/components/counter/dist/registered.js +391 -219
  26. package/components/datepicker/demo/api.md +2 -2
  27. package/components/datepicker/demo/api.min.js +584 -400
  28. package/components/datepicker/demo/index.min.js +584 -400
  29. package/components/datepicker/dist/auro-datepicker.d.ts +1 -1
  30. package/components/datepicker/dist/buttonVersion.d.ts +1 -1
  31. package/components/datepicker/dist/iconVersion.d.ts +1 -1
  32. package/components/datepicker/dist/index.js +445 -261
  33. package/components/datepicker/dist/popoverVersion.d.ts +1 -1
  34. package/components/datepicker/dist/registered.js +445 -261
  35. package/components/dropdown/README.md +2 -2
  36. package/components/dropdown/demo/api.html +3 -1
  37. package/components/dropdown/demo/api.js +20 -17
  38. package/components/dropdown/demo/api.md +50 -53
  39. package/components/dropdown/demo/api.min.js +440 -221
  40. package/components/dropdown/demo/index.html +3 -1
  41. package/components/dropdown/demo/index.js +10 -13
  42. package/components/dropdown/demo/index.md +6 -6
  43. package/components/dropdown/demo/index.min.js +395 -204
  44. package/components/dropdown/demo/readme.html +9 -1
  45. package/components/dropdown/demo/readme.md +2 -2
  46. package/components/dropdown/dist/iconVersion.d.ts +1 -1
  47. package/components/dropdown/dist/index.js +349 -189
  48. package/components/dropdown/dist/registered.js +349 -189
  49. package/components/form/demo/api.min.js +13 -11
  50. package/components/form/demo/index.min.js +13 -11
  51. package/components/form/dist/auro-form.d.ts +8 -0
  52. package/components/form/dist/index.js +8 -6
  53. package/components/form/dist/registered.js +8 -6
  54. package/components/input/demo/api.md +7 -3
  55. package/components/input/demo/api.min.js +95 -81
  56. package/components/input/demo/index.min.js +95 -81
  57. package/components/input/dist/auro-input.d.ts +23 -0
  58. package/components/input/dist/base-input.d.ts +2 -18
  59. package/components/input/dist/buttonVersion.d.ts +1 -1
  60. package/components/input/dist/iconVersion.d.ts +1 -1
  61. package/components/input/dist/index.js +50 -36
  62. package/components/input/dist/registered.js +50 -36
  63. package/components/menu/demo/api.md +3 -3
  64. package/components/menu/demo/api.min.js +18 -17
  65. package/components/menu/demo/index.min.js +18 -17
  66. package/components/menu/dist/auro-menuoption.d.ts +2 -1
  67. package/components/menu/dist/index.js +7 -6
  68. package/components/menu/dist/registered.js +7 -6
  69. package/components/radio/demo/api.min.js +11 -11
  70. package/components/radio/demo/index.min.js +11 -11
  71. package/components/radio/dist/index.js +2 -2
  72. package/components/radio/dist/registered.js +2 -2
  73. package/components/select/demo/api.min.js +406 -235
  74. package/components/select/demo/index.min.js +406 -235
  75. package/components/select/dist/index.js +377 -207
  76. package/components/select/dist/registered.js +377 -207
  77. package/custom-elements.json +18148 -0
  78. package/package.json +48 -16
@@ -1,9 +1,63 @@
1
+ function errorExample() {
2
+ const btn = document.querySelector('#errorButton');
3
+ const dropdown = document.querySelector('#error');
4
+
5
+ btn?.addEventListener('click', () => {
6
+ dropdown?.hide();
7
+ });
8
+ }
9
+
10
+ function inverseErrorExample() {
11
+ const btn = document.querySelector('#inverseErrorButton');
12
+ const dropdown = document.querySelector('#inverseError');
13
+
14
+ btn?.addEventListener('click', () => {
15
+ dropdown?.hide();
16
+ });
17
+ }
18
+
19
+ function fullscreenBreakpointExample() {
20
+ const btn = document.querySelector('#fullscreenButton');
21
+ const dropdown = document.querySelector('#fullscreen');
22
+
23
+ btn?.addEventListener('click', () => {
24
+ dropdown?.hide();
25
+ });
26
+ }
27
+
28
+ function classicExample() {
29
+ const btn = document.querySelector('#classicButton');
30
+ const dropdown = document.querySelector('#classic');
31
+
32
+ btn?.addEventListener('click', () => {
33
+ dropdown?.hide();
34
+ });
35
+ }
36
+
37
+ function classicInverseExample() {
38
+ const btn = document.querySelector('#classicInverseButton');
39
+ const dropdown = document.querySelector('#classicInverse');
40
+
41
+ btn?.addEventListener('click', () => {
42
+ dropdown?.hide();
43
+ });
44
+ }
45
+
46
+ function matchWidthExample() {
47
+ const btn = document.querySelector('#matchWidthButton');
48
+ const dropdown = document.querySelector('#matchWidth');
49
+
50
+ btn?.addEventListener('click', () => {
51
+ dropdown?.hide();
52
+ });
53
+ }
54
+
1
55
  function hideExample() {
2
56
  const btn = document.querySelector('#hideExampleBtn');
3
57
  const dropdown = document.querySelector('#hideExample');
4
58
 
5
- btn.addEventListener('click', () => {
6
- dropdown.hide();
59
+ btn?.addEventListener('click', () => {
60
+ dropdown?.hide();
7
61
  });
8
62
  }
9
63
 
@@ -11,16 +65,24 @@ function showExample() {
11
65
  const triggerInput = document.querySelector('#showExampleTriggerInput');
12
66
  const dropdownElem = document.querySelector('#showMethodExample');
13
67
 
14
- triggerInput.addEventListener('keydown', () => {
15
- dropdownElem.show();
68
+ triggerInput?.addEventListener('keydown', () => {
69
+ dropdownElem?.show();
16
70
  });
17
71
  }
18
72
 
19
73
  function inDialogExample() {
20
- document.querySelector("#dropdown-dialog-opener").addEventListener("click", () => {
74
+ const openBtn = document.querySelector("#dropdown-dialog-opener");
75
+ const closeBtn = document.querySelector("#in-dialog-dismiss-btn");
76
+ const dropdown = document.querySelector("#in-dialog-dropdown");
77
+
78
+ openBtn?.addEventListener("click", () => {
21
79
  const dialog = document.querySelector("#dropdown-dialog");
22
80
  dialog.open = true;
23
81
  });
82
+
83
+ closeBtn?.addEventListener("click", () => {
84
+ dropdown?.hide();
85
+ });
24
86
  }
25
87
 
26
88
  /**
@@ -28,14 +90,14 @@ function inDialogExample() {
28
90
  * Copyright 2017 Google LLC
29
91
  * SPDX-License-Identifier: BSD-3-Clause
30
92
  */
31
- const t$2=globalThis,i$5=t$2.trustedTypes,s$4=i$5?i$5.createPolicy("lit-html",{createHTML:t=>t}):void 0,e$5="$lit$",h$3=`lit$${Math.random().toFixed(9).slice(2)}$`,o$7="?"+h$3,n$5=`<${o$7}>`,r$3=document,l$2=()=>r$3.createComment(""),c$3=t=>null===t||"object"!=typeof t&&"function"!=typeof t,a$2=Array.isArray,u$3=t=>a$2(t)||"function"==typeof t?.[Symbol.iterator],d$1="[ \t\n\f\r]",f$4=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,v=/-->/g,_=/>/g,m$1=RegExp(`>|${d$1}(?:([^\\s"'>=/]+)(${d$1}*=${d$1}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),p$2=/'/g,g$1=/"/g,$=/^(?:script|style|textarea|title)$/i,y$2=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x$1=y$2(1),T=Symbol.for("lit-noChange"),E=Symbol.for("lit-nothing"),A=new WeakMap,C=r$3.createTreeWalker(r$3,129);function P(t,i){if(!a$2(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==s$4?s$4.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?"<svg>":3===i?"<math>":"",c=f$4;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f$4?"!--"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp("</"+u[2],"g")),c=m$1):void 0!==u[3]&&(c=m$1):c===m$1?">"===u[0]?(c=r??f$4,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m$1:'"'===u[3]?g$1:p$2):c===g$1||c===p$2?c=m$1:c===v||c===_?c=f$4:(c=m$1,r=void 0);const x=c===m$1&&t[i+1].startsWith("/>")?" ":"";l+=c===f$4?s+n$5:d>=0?(o.push(a),s.slice(0,d)+e$5+s.slice(d)+h$3+x):s+h$3+(-2===d?i:x);}return [P(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes);}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e$5)){const i=v[a++],s=r.getAttribute(t).split(h$3),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:"."===e[1]?H:"?"===e[1]?I:"@"===e[1]?L:k$1}),r.removeAttribute(t);}else t.startsWith(h$3)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h$3),s=t.length-1;if(s>0){r.textContent=i$5?i$5.emptyScript:"";for(let i=0;i<s;i++)r.append(t[i],l$2()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l$2());}}}else if(8===r.nodeType)if(r.data===o$7)d.push({type:2,index:c});else {let t=-1;for(;-1!==(t=r.data.indexOf(h$3,t+1));)d.push({type:7,index:c}),t+=h$3.length-1;}c++;}}static createElement(t,i){const s=r$3.createElement("template");return s.innerHTML=t,s}}function S$1(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c$3(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(false),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S$1(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r$3).importNode(i,true);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z$1(h,this,t)),this._$AV.push(i),l=s[++n];}o!==l?.index&&(h=C.nextNode(),o++);}return C.currentNode=r$3,e}p(t){let i=0;for(const s of this._$AV) void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??true;}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S$1(this,t,i),c$3(t)?t===E||null==t||""===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u$3(t)?this.k(t):this._(t);}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t));}_(t){this._$AH!==E&&c$3(this._$AH)?this._$AA.nextSibling.data=t:this.T(r$3.createTextNode(t)),this._$AH=t;}$(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else {const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t;}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a$2(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l$2()),this.O(l$2()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(false,true,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i;}}setConnected(t){ void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t));}}let k$1 = class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E;}_$AI(t,i=this,s,e){const h=this.strings;let o=false;if(void 0===h)t=S$1(this,t,i,0),o=!c$3(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else {const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S$1(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c$3(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??"")+h[n+1]),this._$AH[n]=r;}o&&!e&&this.j(t);}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"");}};class H extends k$1{constructor(){super(...arguments),this.type=3;}j(t){this.element[this.name]=t===E?void 0:t;}}class I extends k$1{constructor(){super(...arguments),this.type=4;}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E);}}class L extends k$1{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5;}_$AI(t,i=this){if((t=S$1(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t);}}let z$1 = class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){S$1(this,t);}};const j=t$2.litHtmlPolyfillSupport;j?.(N,R),(t$2.litHtmlVersions??=[]).push("3.3.1");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l$2(),t),t,void 0,s??{});}return h._$AI(t),h};
93
+ const t$2=globalThis,i$5=t=>t,s$4=t$2.trustedTypes,e$5=s$4?s$4.createPolicy("lit-html",{createHTML:t=>t}):void 0,h$3="$lit$",o$7=`lit$${Math.random().toFixed(9).slice(2)}$`,n$5="?"+o$7,r$4=`<${n$5}>`,l$2=document,c$3=()=>l$2.createComment(""),a$2=t=>null===t||"object"!=typeof t&&"function"!=typeof t,u$3=Array.isArray,d$1=t=>u$3(t)||"function"==typeof t?.[Symbol.iterator],f$3="[ \t\n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_$1=/-->/g,m$1=/>/g,p$2=RegExp(`>|${f$3}(?:([^\\s"'>=/]+)(${f$3}*=${f$3}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g$1=/'/g,$=/"/g,y$2=/^(?:script|style|textarea|title)$/i,x$1=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),b$1=x$1(1),E=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),C=new WeakMap,P=l$2.createTreeWalker(l$2,129);function V(t,i){if(!u$3(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$5?e$5.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?"<svg>":3===i?"<math>":"",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?"!--"===u[1]?c=_$1:void 0!==u[1]?c=m$1:void 0!==u[2]?(y$2.test(u[2])&&(n=RegExp("</"+u[2],"g")),c=p$2):void 0!==u[3]&&(c=p$2):c===p$2?">"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?p$2:'"'===u[3]?$:g$1):c===$||c===g$1?c=p$2:c===_$1||c===m$1?c=v:(c=p$2,n=void 0);const x=c===p$2&&t[i+1].startsWith("/>")?" ":"";l+=c===v?s+r$4:d>=0?(e.push(a),s.slice(0,d)+h$3+s.slice(d)+o$7+x):s+o$7+(-2===d?i:x);}return [V(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),e]};let S$1 = class S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes);}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(h$3)){const i=v[a++],s=r.getAttribute(t).split(o$7),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:"."===e[1]?I:"?"===e[1]?L:"@"===e[1]?z$1:H}),r.removeAttribute(t);}else t.startsWith(o$7)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(y$2.test(r.tagName)){const t=r.textContent.split(o$7),i=t.length-1;if(i>0){r.textContent=s$4?s$4.emptyScript:"";for(let s=0;s<i;s++)r.append(t[s],c$3()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],c$3());}}}else if(8===r.nodeType)if(r.data===n$5)d.push({type:2,index:l});else {let t=-1;for(;-1!==(t=r.data.indexOf(o$7,t+1));)d.push({type:7,index:l}),t+=o$7.length-1;}l++;}}static createElement(t,i){const s=l$2.createElement("template");return s.innerHTML=t,s}};function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=a$2(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(false),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??l$2).importNode(i,true);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n];}o!==r?.index&&(h=P.nextNode(),o++);}return P.currentNode=l$2,e}p(t){let i=0;for(const s of this._$AV) void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??true;}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),a$2(t)?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):d$1(t)?this.k(t):this._(t);}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t));}_(t){this._$AH!==A&&a$2(this._$AH)?this._$AA.nextSibling.data=t:this.T(l$2.createTextNode(t)),this._$AH=t;}$(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=S$1.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else {const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t;}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new S$1(t)),i}k(t){u$3(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(c$3()),this.O(c$3()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(false,true,s);t!==this._$AB;){const s=i$5(t).nextSibling;i$5(t).remove(),t=s;}}setConnected(t){ void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t));}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A;}_$AI(t,i=this,s,e){const h=this.strings;let o=false;if(void 0===h)t=M(this,t,i,0),o=!a$2(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else {const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!a$2(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??"")+h[n+1]),this._$AH[n]=r;}o&&!e&&this.j(t);}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"");}}class I extends H{constructor(){super(...arguments),this.type=3;}j(t){this.element[this.name]=t===A?void 0:t;}}class L extends H{constructor(){super(...arguments),this.type=4;}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A);}}let z$1 = class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5;}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t);}};class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t);}}const B=t$2.litHtmlPolyfillSupport;B?.(S$1,k),(t$2.litHtmlVersions??=[]).push("3.3.2");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(c$3(),t),t,void 0,s??{});}return h._$AI(t),h};
32
94
 
33
95
  /**
34
96
  * @license
35
97
  * Copyright 2020 Google LLC
36
98
  * SPDX-License-Identifier: BSD-3-Clause
37
99
  */
38
- const a$1=Symbol.for(""),o$6=t=>{if(t?.r===a$1)return t?._$litStatic$},s$3=t=>({_$litStatic$:t,r:a$1}),i$4=(t,...r)=>({_$litStatic$:r.reduce(((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1]),t[0]),r:a$1}),l$1=new Map,n$4=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$6(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l$1.get(t))&&(n.raw=n,l$1.set(t,r=n)),e=u;}return t(r,...e)},u$2=n$4(x$1);
100
+ const a$1=Symbol.for(""),o$6=t=>{if(t?.r===a$1)return t?._$litStatic$},s$3=t=>({_$litStatic$:t,r:a$1}),i$4=(t,...r)=>({_$litStatic$:r.reduce((r,e,a)=>r+(t=>{if(void 0!==t._$litStatic$)return t._$litStatic$;throw Error(`Value passed to 'literal' function must be a 'literal' result: ${t}. Use 'unsafeStatic' to pass non-literal values, but\n take care to ensure page security.`)})(e)+t[a+1],t[0]),r:a$1}),l$1=new Map,n$4=t=>(r,...e)=>{const a=e.length;let s,i;const n=[],u=[];let c,$=0,f=false;for(;$<a;){for(c=r[$];$<a&&void 0!==(i=e[$],s=o$6(i));)c+=s+r[++$],f=true;$!==a&&u.push(i),n.push(c),$++;}if($===a&&n.push(r[a]),f){const t=n.join("$$lit$$");void 0===(r=l$1.get(t))&&(n.raw=n,l$1.set(t,r=n)),e=u;}return t(r,...e)},u$2=n$4(b$1);
39
101
 
40
102
  /**
41
103
  * @license
@@ -48,44 +110,44 @@ const t$1={ATTRIBUTE:1,CHILD:2},e$4=t=>(...e)=>({_$litDirective$:t,values:e});le
48
110
  * @license
49
111
  * Copyright 2018 Google LLC
50
112
  * SPDX-License-Identifier: BSD-3-Clause
51
- */const e$3=e$4(class extends i$3{constructor(t){if(super(t),t.type!==t$1.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter((s=>t[s])).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return T}});
113
+ */const e$3=e$4(class extends i$3{constructor(t){if(super(t),t.type!==t$1.ATTRIBUTE||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return " "+Object.keys(t).filter(s=>t[s]).join(" ")+" "}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(" ").split(/\s/).filter(t=>""!==t)));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)));}return E}});
52
114
 
53
115
  /**
54
116
  * @license
55
117
  * Copyright 2019 Google LLC
56
118
  * SPDX-License-Identifier: BSD-3-Clause
57
119
  */
58
- const t=globalThis,e$2=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s$2=Symbol(),o$5=new WeakMap;let n$3 = class n{constructor(t,e,o){if(this._$cssResult$=true,o!==s$2)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e;}get styleSheet(){let t=this.o;const s=this.t;if(e$2&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o$5.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o$5.set(s,t));}return t}toString(){return this.cssText}};const r$2=t=>new n$3("string"==typeof t?t:t+"",void 0,s$2),i$2=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(true===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[o+1]),t[0]);return new n$3(o,t,s$2)},S=(s,o)=>{if(e$2)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement("style"),n=t.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o);}},c$2=e$2?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r$2(e)})(t):t;
120
+ const t=globalThis,e$2=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s$2=Symbol(),o$5=new WeakMap;let n$3 = class n{constructor(t,e,o){if(this._$cssResult$=true,o!==s$2)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e;}get styleSheet(){let t=this.o;const s=this.t;if(e$2&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o$5.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o$5.set(s,t));}return t}toString(){return this.cssText}};const r$3=t=>new n$3("string"==typeof t?t:t+"",void 0,s$2),i$2=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(true===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[o+1],t[0]);return new n$3(o,t,s$2)},S=(s,o)=>{if(e$2)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement("style"),n=t.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o);}},c$2=e$2?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r$3(e)})(t):t;
59
121
 
60
122
  /**
61
123
  * @license
62
124
  * Copyright 2017 Google LLC
63
125
  * SPDX-License-Identifier: BSD-3-Clause
64
- */const{is:i$1,defineProperty:e$1,getOwnPropertyDescriptor:h$2,getOwnPropertyNames:r$1,getOwnPropertySymbols:o$4,getPrototypeOf:n$2}=Object,a=globalThis,c$1=a.trustedTypes,l=c$1?c$1.emptyScript:"",p$1=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u$1={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f$3=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u$1,reflect:false,useDefault:false,hasChanged:f$3};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;let y$1 = class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e$1(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h$2(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n$2(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r$1(t),...o$4(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$2(s));}else void 0!==s&&i.push(c$2(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach((t=>t.hostConnected?.()));}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()));}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u$1).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u$1;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null;}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f$3)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM();}updated(t){}firstUpdated(t){}};y$1.elementStyles=[],y$1.shadowRootOptions={mode:"open"},y$1[d("elementProperties")]=new Map,y$1[d("finalized")]=new Map,p$1?.({ReactiveElement:y$1}),(a.reactiveElementVersions??=[]).push("2.1.1");
126
+ */const{is:i$1,defineProperty:e$1,getOwnPropertyDescriptor:h$2,getOwnPropertyNames:r$2,getOwnPropertySymbols:o$4,getPrototypeOf:n$2}=Object,a=globalThis,c$1=a.trustedTypes,l=c$1?c$1.emptyScript:"",p$1=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u$1={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t);}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t);}catch(t){i=null;}}return i}},f$2=(t,s)=>!i$1(t,s),b={attribute:true,type:String,converter:u$1,reflect:false,useDefault:false,hasChanged:f$2};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;let y$1 = class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t);}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=false),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=true),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e$1(this.prototype,t,h);}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h$2(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t;}};return {get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i);},configurable:true,enumerable:true}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=n$2(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties);}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=true,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...r$2(t),...o$4(t)];for(const i of s)this.createProperty(i,t[i]);}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i);}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t);}this.elementStyles=this.finalizeStyles(this.styles);}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c$2(s));}else void 0!==s&&i.push(c$2(s));return i}static _$Eu(t,s){const i=s.attribute;return false===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=false,this.hasUpdated=false,this._$Em=null,this._$Ev();}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this));}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.();}removeController(t){this._$EO?.delete(t);}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t);}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(true),this._$EO?.forEach(t=>t.hostConnected?.());}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.());}attributeChangedCallback(t,s,i){this._$AK(t,i);}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&true===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u$1).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null;}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u$1;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null;}}requestUpdate(t,s,i,e=false,h){if(void 0!==t){const r=this.constructor;if(false===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f$2)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i);} false===this.isUpdatePending&&(this._$ES=this._$EP());}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),true!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),true===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t));}async _$EP(){this.isUpdatePending=true;try{await this._$ES;}catch(t){Promise.reject(t);}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0;}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];true!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e);}}let t=false;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM();}catch(s){throw t=false,this._$EM(),s}t&&this._$AE(s);}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=true,this.firstUpdated(t)),this.updated(t);}_$EM(){this._$AL=new Map,this.isUpdatePending=false;}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return true}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM();}updated(t){}firstUpdated(t){}};y$1.elementStyles=[],y$1.shadowRootOptions={mode:"open"},y$1[d("elementProperties")]=new Map,y$1[d("finalized")]=new Map,p$1?.({ReactiveElement:y$1}),(a.reactiveElementVersions??=[]).push("2.1.2");
65
127
 
66
128
  /**
67
129
  * @license
68
130
  * Copyright 2017 Google LLC
69
131
  * SPDX-License-Identifier: BSD-3-Clause
70
- */const s$1=globalThis;class i extends y$1{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0;}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=B(r,this.renderRoot,this.renderOptions);}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(true);}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(false);}render(){return T}}i._$litElement$=true,i["finalized"]=true,s$1.litElementHydrateSupport?.({LitElement:i});const o$3=s$1.litElementPolyfillSupport;o$3?.({LitElement:i});(s$1.litElementVersions??=[]).push("4.2.1");
132
+ */const s$1=globalThis;class i extends y$1{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0;}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=D(r,this.renderRoot,this.renderOptions);}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(true);}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(false);}render(){return E}}i._$litElement$=true,i["finalized"]=true,s$1.litElementHydrateSupport?.({LitElement:i});const o$3=s$1.litElementPolyfillSupport;o$3?.({LitElement:i});(s$1.litElementVersions??=[]).push("4.2.2");
71
133
 
72
134
  /**
73
135
  * @license
74
136
  * Copyright 2020 Google LLC
75
137
  * SPDX-License-Identifier: BSD-3-Clause
76
- */const f$2=o=>void 0===o.strings;
138
+ */const r$1=o=>void 0===o.strings;
77
139
 
78
140
  /**
79
141
  * @license
80
142
  * Copyright 2017 Google LLC
81
143
  * SPDX-License-Identifier: BSD-3-Clause
82
- */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return false;for(const i of e)i._$AO?.(t,false),s(i,t);return true},o$2=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t;}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t);}};function h$1(i){ void 0!==this._$AN?(o$2(this),this._$AM=i,r(this)):this._$AM=i;}function n$1(i,t=false,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],false),o$2(r[i]);else null!=r&&(s(r,false),o$2(r));else s(this,i);}const c=i=>{i.type==t$1.CHILD&&(i._$AP??=n$1,i._$AQ??=h$1);};let f$1 = class f extends i$3{constructor(){super(...arguments),this._$AN=void 0;}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU;}_$AO(i,t=true){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o$2(this));}setValue(t){if(f$2(this._$Ct))this._$Ct._$AI(t,this);else {const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0);}}disconnected(){}reconnected(){}};
144
+ */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return false;for(const i of e)i._$AO?.(t,false),s(i,t);return true},o$2=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t;}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t);}};function h$1(i){ void 0!==this._$AN?(o$2(this),this._$AM=i,r(this)):this._$AM=i;}function n$1(i,t=false,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i<r.length;i++)s(r[i],false),o$2(r[i]);else null!=r&&(s(r,false),o$2(r));else s(this,i);}const c=i=>{i.type==t$1.CHILD&&(i._$AP??=n$1,i._$AQ??=h$1);};let f$1 = class f extends i$3{constructor(){super(...arguments),this._$AN=void 0;}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU;}_$AO(i,t=true){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o$2(this));}setValue(t){if(r$1(this._$Ct))this._$Ct._$AI(t,this);else {const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0);}}disconnected(){}reconnected(){}};
83
145
 
84
146
  /**
85
147
  * @license
86
148
  * Copyright 2020 Google LLC
87
149
  * SPDX-License-Identifier: BSD-3-Clause
88
- */const e=()=>new h;class h{}const o$1=new WeakMap,n=e$4(class extends f$1{render(i){return E}update(i,[s]){const e=s!==this.G;return e&&void 0!==this.G&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),E}rt(t){if(this.isConnected||(t=void 0),"function"==typeof this.G){const i=this.ht??globalThis;let s=o$1.get(i);void 0===s&&(s=new WeakMap,o$1.set(i,s)),void 0!==s.get(this.G)&&this.G.call(this.ht,void 0),s.set(this.G,t),void 0!==t&&this.G.call(this.ht,t);}else this.G.value=t;}get lt(){return "function"==typeof this.G?o$1.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0);}reconnected(){this.rt(this.ct);}});
150
+ */const e=()=>new h;class h{}const o$1=new WeakMap,n=e$4(class extends f$1{render(i){return A}update(i,[s]){const e=s!==this.G;return e&&void 0!==this.G&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.G=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),A}rt(t){if(this.isConnected||(t=void 0),"function"==typeof this.G){const i=this.ht??globalThis;let s=o$1.get(i);void 0===s&&(s=new WeakMap,o$1.set(i,s)),void 0!==s.get(this.G)&&this.G.call(this.ht,void 0),s.set(this.G,t),void 0!==t&&this.G.call(this.ht,t);}else this.G.value=t;}get lt(){return "function"==typeof this.G?o$1.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0);}reconnected(){this.rt(this.ct);}});
89
151
 
90
152
  // Copyright (c) Alaska Air. All right reserved. Licensed under the Apache-2.0 license
91
153
  // See LICENSE in the project root for license information.
@@ -214,8 +276,9 @@ function getOppositeAxis(axis) {
214
276
  function getAxisLength(axis) {
215
277
  return axis === 'y' ? 'height' : 'width';
216
278
  }
279
+ const yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);
217
280
  function getSideAxis(placement) {
218
- return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';
281
+ return yAxisSides.has(getSide(placement)) ? 'y' : 'x';
219
282
  }
220
283
  function getAlignmentAxis(placement) {
221
284
  return getOppositeAxis(getSideAxis(placement));
@@ -240,19 +303,19 @@ function getExpandedPlacements(placement) {
240
303
  function getOppositeAlignmentPlacement(placement) {
241
304
  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);
242
305
  }
306
+ const lrPlacement = ['left', 'right'];
307
+ const rlPlacement = ['right', 'left'];
308
+ const tbPlacement = ['top', 'bottom'];
309
+ const btPlacement = ['bottom', 'top'];
243
310
  function getSideList(side, isStart, rtl) {
244
- const lr = ['left', 'right'];
245
- const rl = ['right', 'left'];
246
- const tb = ['top', 'bottom'];
247
- const bt = ['bottom', 'top'];
248
311
  switch (side) {
249
312
  case 'top':
250
313
  case 'bottom':
251
- if (rtl) return isStart ? rl : lr;
252
- return isStart ? lr : rl;
314
+ if (rtl) return isStart ? rlPlacement : lrPlacement;
315
+ return isStart ? lrPlacement : rlPlacement;
253
316
  case 'left':
254
317
  case 'right':
255
- return isStart ? tb : bt;
318
+ return isStart ? tbPlacement : btPlacement;
256
319
  default:
257
320
  return [];
258
321
  }
@@ -363,6 +426,71 @@ function computeCoordsFromPlacement(_ref, placement, rtl) {
363
426
  return coords;
364
427
  }
365
428
 
429
+ /**
430
+ * Resolves with an object of overflow side offsets that determine how much the
431
+ * element is overflowing a given clipping boundary on each side.
432
+ * - positive = overflowing the boundary by that number of pixels
433
+ * - negative = how many pixels left before it will overflow
434
+ * - 0 = lies flush with the boundary
435
+ * @see https://floating-ui.com/docs/detectOverflow
436
+ */
437
+ async function detectOverflow(state, options) {
438
+ var _await$platform$isEle;
439
+ if (options === void 0) {
440
+ options = {};
441
+ }
442
+ const {
443
+ x,
444
+ y,
445
+ platform,
446
+ rects,
447
+ elements,
448
+ strategy
449
+ } = state;
450
+ const {
451
+ boundary = 'clippingAncestors',
452
+ rootBoundary = 'viewport',
453
+ elementContext = 'floating',
454
+ altBoundary = false,
455
+ padding = 0
456
+ } = evaluate(options, state);
457
+ const paddingObject = getPaddingObject(padding);
458
+ const altContext = elementContext === 'floating' ? 'reference' : 'floating';
459
+ const element = elements[altBoundary ? altContext : elementContext];
460
+ const clippingClientRect = rectToClientRect(await platform.getClippingRect({
461
+ element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
462
+ boundary,
463
+ rootBoundary,
464
+ strategy
465
+ }));
466
+ const rect = elementContext === 'floating' ? {
467
+ x,
468
+ y,
469
+ width: rects.floating.width,
470
+ height: rects.floating.height
471
+ } : rects.reference;
472
+ const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
473
+ const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
474
+ x: 1,
475
+ y: 1
476
+ } : {
477
+ x: 1,
478
+ y: 1
479
+ };
480
+ const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
481
+ elements,
482
+ rect,
483
+ offsetParent,
484
+ strategy
485
+ }) : rect);
486
+ return {
487
+ top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
488
+ bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
489
+ left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
490
+ right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
491
+ };
492
+ }
493
+
366
494
  /**
367
495
  * Computes the `x` and `y` coordinates that will place the floating element
368
496
  * next to a given reference element.
@@ -392,6 +520,7 @@ const computePosition$1 = async (reference, floating, config) => {
392
520
  let middlewareData = {};
393
521
  let resetCount = 0;
394
522
  for (let i = 0; i < validMiddleware.length; i++) {
523
+ var _platform$detectOverf;
395
524
  const {
396
525
  name,
397
526
  fn
@@ -409,7 +538,10 @@ const computePosition$1 = async (reference, floating, config) => {
409
538
  strategy,
410
539
  middlewareData,
411
540
  rects,
412
- platform,
541
+ platform: {
542
+ ...platform,
543
+ detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow
544
+ },
413
545
  elements: {
414
546
  reference,
415
547
  floating
@@ -454,71 +586,6 @@ const computePosition$1 = async (reference, floating, config) => {
454
586
  };
455
587
  };
456
588
 
457
- /**
458
- * Resolves with an object of overflow side offsets that determine how much the
459
- * element is overflowing a given clipping boundary on each side.
460
- * - positive = overflowing the boundary by that number of pixels
461
- * - negative = how many pixels left before it will overflow
462
- * - 0 = lies flush with the boundary
463
- * @see https://floating-ui.com/docs/detectOverflow
464
- */
465
- async function detectOverflow(state, options) {
466
- var _await$platform$isEle;
467
- if (options === void 0) {
468
- options = {};
469
- }
470
- const {
471
- x,
472
- y,
473
- platform,
474
- rects,
475
- elements,
476
- strategy
477
- } = state;
478
- const {
479
- boundary = 'clippingAncestors',
480
- rootBoundary = 'viewport',
481
- elementContext = 'floating',
482
- altBoundary = false,
483
- padding = 0
484
- } = evaluate(options, state);
485
- const paddingObject = getPaddingObject(padding);
486
- const altContext = elementContext === 'floating' ? 'reference' : 'floating';
487
- const element = elements[altBoundary ? altContext : elementContext];
488
- const clippingClientRect = rectToClientRect(await platform.getClippingRect({
489
- element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),
490
- boundary,
491
- rootBoundary,
492
- strategy
493
- }));
494
- const rect = elementContext === 'floating' ? {
495
- x,
496
- y,
497
- width: rects.floating.width,
498
- height: rects.floating.height
499
- } : rects.reference;
500
- const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));
501
- const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {
502
- x: 1,
503
- y: 1
504
- } : {
505
- x: 1,
506
- y: 1
507
- };
508
- const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({
509
- elements,
510
- rect,
511
- offsetParent,
512
- strategy
513
- }) : rect);
514
- return {
515
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
516
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
517
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
518
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
519
- };
520
- }
521
-
522
589
  function getPlacementList(alignment, autoAlignment, allowedPlacements) {
523
590
  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);
524
591
  return allowedPlacementsSortedByAlignment.filter(placement => {
@@ -558,7 +625,7 @@ const autoPlacement$1 = function (options) {
558
625
  ...detectOverflowOptions
559
626
  } = evaluate(options, state);
560
627
  const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
561
- const overflow = await detectOverflow(state, detectOverflowOptions);
628
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
562
629
  const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
563
630
  const currentPlacement = placements$1[currentIndex];
564
631
  if (currentPlacement == null) {
@@ -672,7 +739,7 @@ const flip$1 = function (options) {
672
739
  fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
673
740
  }
674
741
  const placements = [initialPlacement, ...fallbackPlacements];
675
- const overflow = await detectOverflow(state, detectOverflowOptions);
742
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
676
743
  const overflows = [];
677
744
  let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
678
745
  if (checkMainAxis) {
@@ -693,16 +760,22 @@ const flip$1 = function (options) {
693
760
  const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
694
761
  const nextPlacement = placements[nextIndex];
695
762
  if (nextPlacement) {
696
- // Try next placement and re-run the lifecycle.
697
- return {
698
- data: {
699
- index: nextIndex,
700
- overflows: overflowsData
701
- },
702
- reset: {
703
- placement: nextPlacement
704
- }
705
- };
763
+ const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;
764
+ if (!ignoreCrossAxisOverflow ||
765
+ // We leave the current main axis only if every placement on that axis
766
+ // overflows the main axis.
767
+ overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
768
+ // Try next placement and re-run the lifecycle.
769
+ return {
770
+ data: {
771
+ index: nextIndex,
772
+ overflows: overflowsData
773
+ },
774
+ reset: {
775
+ placement: nextPlacement
776
+ }
777
+ };
778
+ }
706
779
  }
707
780
 
708
781
  // First, find the candidates that fit on the mainAxis side of overflow,
@@ -748,6 +821,8 @@ const flip$1 = function (options) {
748
821
  };
749
822
  };
750
823
 
824
+ const originSides = /*#__PURE__*/new Set(['left', 'top']);
825
+
751
826
  // For type backwards-compatibility, the `OffsetOptions` type was also
752
827
  // Derivable.
753
828
 
@@ -761,7 +836,7 @@ async function convertValueToCoords(state, options) {
761
836
  const side = getSide(placement);
762
837
  const alignment = getAlignment(placement);
763
838
  const isVertical = getSideAxis(placement) === 'y';
764
- const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;
839
+ const mainAxisMulti = originSides.has(side) ? -1 : 1;
765
840
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
766
841
  const rawValue = evaluate(options, state);
767
842
 
@@ -848,7 +923,8 @@ const shift$1 = function (options) {
848
923
  const {
849
924
  x,
850
925
  y,
851
- placement
926
+ placement,
927
+ platform
852
928
  } = state;
853
929
  const {
854
930
  mainAxis: checkMainAxis = true,
@@ -871,7 +947,7 @@ const shift$1 = function (options) {
871
947
  x,
872
948
  y
873
949
  };
874
- const overflow = await detectOverflow(state, detectOverflowOptions);
950
+ const overflow = await platform.detectOverflow(state, detectOverflowOptions);
875
951
  const crossAxis = getSideAxis(getSide(placement));
876
952
  const mainAxis = getOppositeAxis(crossAxis);
877
953
  let mainAxisCoord = coords[mainAxis];
@@ -954,6 +1030,7 @@ function isShadowRoot(value) {
954
1030
  }
955
1031
  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;
956
1032
  }
1033
+ const invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);
957
1034
  function isOverflowElement(element) {
958
1035
  const {
959
1036
  overflow,
@@ -961,27 +1038,32 @@ function isOverflowElement(element) {
961
1038
  overflowY,
962
1039
  display
963
1040
  } = getComputedStyle$1(element);
964
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);
1041
+ return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
965
1042
  }
1043
+ const tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);
966
1044
  function isTableElement(element) {
967
- return ['table', 'td', 'th'].includes(getNodeName(element));
1045
+ return tableElements.has(getNodeName(element));
968
1046
  }
1047
+ const topLayerSelectors = [':popover-open', ':modal'];
969
1048
  function isTopLayer(element) {
970
- return [':popover-open', ':modal'].some(selector => {
1049
+ return topLayerSelectors.some(selector => {
971
1050
  try {
972
1051
  return element.matches(selector);
973
- } catch (e) {
1052
+ } catch (_e) {
974
1053
  return false;
975
1054
  }
976
1055
  });
977
1056
  }
1057
+ const transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];
1058
+ const willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];
1059
+ const containValues = ['paint', 'layout', 'strict', 'content'];
978
1060
  function isContainingBlock(elementOrCss) {
979
1061
  const webkit = isWebKit();
980
1062
  const css = isElement(elementOrCss) ? getComputedStyle$1(elementOrCss) : elementOrCss;
981
1063
 
982
1064
  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block
983
1065
  // https://drafts.csswg.org/css-transforms-2/#individual-transforms
984
- return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));
1066
+ return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));
985
1067
  }
986
1068
  function getContainingBlock(element) {
987
1069
  let currentNode = getParentNode(element);
@@ -999,8 +1081,9 @@ function isWebKit() {
999
1081
  if (typeof CSS === 'undefined' || !CSS.supports) return false;
1000
1082
  return CSS.supports('-webkit-backdrop-filter', 'none');
1001
1083
  }
1084
+ const lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);
1002
1085
  function isLastTraversableNode(node) {
1003
- return ['html', 'body', '#document'].includes(getNodeName(node));
1086
+ return lastTraversableNodeNames.has(getNodeName(node));
1004
1087
  }
1005
1088
  function getComputedStyle$1(element) {
1006
1089
  return getWindow(element).getComputedStyle(element);
@@ -1200,14 +1283,9 @@ function getWindowScrollBarX(element, rect) {
1200
1283
  return rect.left + leftScroll;
1201
1284
  }
1202
1285
 
1203
- function getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {
1204
- if (ignoreScrollbarX === void 0) {
1205
- ignoreScrollbarX = false;
1206
- }
1286
+ function getHTMLOffset(documentElement, scroll) {
1207
1287
  const htmlRect = documentElement.getBoundingClientRect();
1208
- const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :
1209
- // RTL <body> scrollbar.
1210
- getWindowScrollBarX(documentElement, htmlRect));
1288
+ const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
1211
1289
  const y = htmlRect.top + scroll.scrollTop;
1212
1290
  return {
1213
1291
  x,
@@ -1246,7 +1324,7 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
1246
1324
  offsets.y = offsetRect.y + offsetParent.clientTop;
1247
1325
  }
1248
1326
  }
1249
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);
1327
+ const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1250
1328
  return {
1251
1329
  width: rect.width * scale.x,
1252
1330
  height: rect.height * scale.y,
@@ -1280,6 +1358,10 @@ function getDocumentRect(element) {
1280
1358
  };
1281
1359
  }
1282
1360
 
1361
+ // Safety check: ensure the scrollbar space is reasonable in case this
1362
+ // calculation is affected by unusual styles.
1363
+ // Most scrollbars leave 15-18px of space.
1364
+ const SCROLLBAR_MAX = 25;
1283
1365
  function getViewportRect(element, strategy) {
1284
1366
  const win = getWindow(element);
1285
1367
  const html = getDocumentElement(element);
@@ -1297,6 +1379,24 @@ function getViewportRect(element, strategy) {
1297
1379
  y = visualViewport.offsetTop;
1298
1380
  }
1299
1381
  }
1382
+ const windowScrollbarX = getWindowScrollBarX(html);
1383
+ // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the
1384
+ // visual width of the <html> but this is not considered in the size
1385
+ // of `html.clientWidth`.
1386
+ if (windowScrollbarX <= 0) {
1387
+ const doc = html.ownerDocument;
1388
+ const body = doc.body;
1389
+ const bodyStyles = getComputedStyle(body);
1390
+ const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
1391
+ const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
1392
+ if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
1393
+ width -= clippingStableScrollbarWidth;
1394
+ }
1395
+ } else if (windowScrollbarX <= SCROLLBAR_MAX) {
1396
+ // If the <body> scrollbar is on the left, the width needs to be extended
1397
+ // by the scrollbar amount so there isn't extra space on the right.
1398
+ width += windowScrollbarX;
1399
+ }
1300
1400
  return {
1301
1401
  width,
1302
1402
  height,
@@ -1305,6 +1405,7 @@ function getViewportRect(element, strategy) {
1305
1405
  };
1306
1406
  }
1307
1407
 
1408
+ const absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);
1308
1409
  // Returns the inner client rect, subtracting scrollbars if present.
1309
1410
  function getInnerBoundingClientRect(element, strategy) {
1310
1411
  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');
@@ -1369,7 +1470,7 @@ function getClippingElementAncestors(element, cache) {
1369
1470
  if (!currentNodeIsContaining && computedStyle.position === 'fixed') {
1370
1471
  currentContainingBlockComputedStyle = null;
1371
1472
  }
1372
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1473
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
1373
1474
  if (shouldDropCurrentNode) {
1374
1475
  // Drop non-containing blocks.
1375
1476
  result = result.filter(ancestor => ancestor !== currentNode);
@@ -1432,6 +1533,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1432
1533
  scrollTop: 0
1433
1534
  };
1434
1535
  const offsets = createCoords(0);
1536
+
1537
+ // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1538
+ // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1539
+ function setLeftRTLScrollbarOffset() {
1540
+ offsets.x = getWindowScrollBarX(documentElement);
1541
+ }
1435
1542
  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
1436
1543
  if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {
1437
1544
  scroll = getNodeScroll(offsetParent);
@@ -1441,11 +1548,12 @@ function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
1441
1548
  offsets.x = offsetRect.x + offsetParent.clientLeft;
1442
1549
  offsets.y = offsetRect.y + offsetParent.clientTop;
1443
1550
  } else if (documentElement) {
1444
- // If the <body> scrollbar appears on the left (e.g. RTL systems). Use
1445
- // Firefox with layout.scrollbar.side = 3 in about:config to test this.
1446
- offsets.x = getWindowScrollBarX(documentElement);
1551
+ setLeftRTLScrollbarOffset();
1447
1552
  }
1448
1553
  }
1554
+ if (isFixed && !isOffsetParentAnElement && documentElement) {
1555
+ setLeftRTLScrollbarOffset();
1556
+ }
1449
1557
  const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
1450
1558
  const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
1451
1559
  const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
@@ -1622,7 +1730,7 @@ function observeMove(element, onMove) {
1622
1730
  // Handle <iframe>s
1623
1731
  root: root.ownerDocument
1624
1732
  });
1625
- } catch (e) {
1733
+ } catch (_e) {
1626
1734
  io = new IntersectionObserver(handleObserve, options);
1627
1735
  }
1628
1736
  io.observe(element);
@@ -2413,32 +2521,32 @@ class AuroFloatingUI {
2413
2521
 
2414
2522
  // Selectors for focusable elements
2415
2523
  const FOCUSABLE_SELECTORS = [
2416
- 'a[href]',
2417
- 'button:not([disabled])',
2418
- 'textarea:not([disabled])',
2419
- 'input:not([disabled])',
2420
- 'select:not([disabled])',
2524
+ "a[href]",
2525
+ "button:not([disabled])",
2526
+ "textarea:not([disabled])",
2527
+ "input:not([disabled])",
2528
+ "select:not([disabled])",
2421
2529
  '[role="tab"]:not([disabled])',
2422
2530
  '[role="link"]:not([disabled])',
2423
2531
  '[role="button"]:not([disabled])',
2424
2532
  '[tabindex]:not([tabindex="-1"])',
2425
- '[contenteditable]:not([contenteditable="false"])'
2533
+ '[contenteditable]:not([contenteditable="false"])',
2426
2534
  ];
2427
2535
 
2428
2536
  // List of custom components that are known to be focusable
2429
2537
  const FOCUSABLE_COMPONENTS = [
2430
- 'auro-checkbox',
2431
- 'auro-radio',
2432
- 'auro-dropdown',
2433
- 'auro-button',
2434
- 'auro-combobox',
2435
- 'auro-input',
2436
- 'auro-counter',
2437
- 'auro-menu',
2438
- 'auro-select',
2439
- 'auro-datepicker',
2440
- 'auro-hyperlink',
2441
- 'auro-accordion',
2538
+ "auro-checkbox",
2539
+ "auro-radio",
2540
+ "auro-dropdown",
2541
+ "auro-button",
2542
+ "auro-combobox",
2543
+ "auro-input",
2544
+ "auro-counter",
2545
+ // 'auro-menu', // Auro menu is not focusable by default, it uses a different interaction model
2546
+ "auro-select",
2547
+ "auro-datepicker",
2548
+ "auro-hyperlink",
2549
+ "auro-accordion",
2442
2550
  ];
2443
2551
 
2444
2552
  /**
@@ -2452,21 +2560,43 @@ function isFocusableComponent(element) {
2452
2560
  const componentName = element.tagName.toLowerCase();
2453
2561
 
2454
2562
  // Guard Clause: Element is a focusable component
2455
- if (!FOCUSABLE_COMPONENTS.some((name) => element.hasAttribute(name) || componentName === name)) return false;
2563
+ if (
2564
+ !FOCUSABLE_COMPONENTS.some(
2565
+ (name) => element.hasAttribute(name) || componentName === name,
2566
+ )
2567
+ )
2568
+ return false;
2456
2569
 
2457
2570
  // Guard Clause: Element is not disabled
2458
- if (element.hasAttribute('disabled')) return false;
2571
+ if (element.hasAttribute("disabled")) return false;
2459
2572
 
2460
2573
  // Guard Clause: The element is a hyperlink and has no href attribute
2461
- if (componentName.match("hyperlink") && !element.hasAttribute('href')) return false;
2574
+ if (componentName.match("hyperlink") && !element.hasAttribute("href"))
2575
+ return false;
2462
2576
 
2463
2577
  // If all guard clauses pass, the element is a focusable component
2464
2578
  return true;
2465
2579
  }
2466
2580
 
2581
+ /**
2582
+ * Safely get a numeric tabindex for an element.
2583
+ * Returns a number if the tabindex is a valid integer, otherwise null.
2584
+ *
2585
+ * @param {HTMLElement} element The element whose tabindex to read.
2586
+ * @returns {?number} The numeric tabindex or null if missing/invalid.
2587
+ */
2588
+ function getNumericTabIndex(element) {
2589
+ const raw = element.getAttribute("tabindex");
2590
+ if (raw == null) return null;
2591
+
2592
+ const value = Number.parseInt(raw, 10);
2593
+ return Number.isNaN(value) ? null : value;
2594
+ }
2595
+
2467
2596
  /**
2468
2597
  * Retrieves all focusable elements within the container in DOM order, including those in shadow DOM and slots.
2469
2598
  * Returns a unique, ordered array of elements that can receive focus.
2599
+ * Also sorts elements with tabindex first, preserving their order.
2470
2600
  *
2471
2601
  * @param {HTMLElement} container The container to search within
2472
2602
  * @returns {Array<HTMLElement>} An array of focusable elements within the container.
@@ -2500,14 +2630,14 @@ function getFocusableElements(container) {
2500
2630
  if (root.shadowRoot) {
2501
2631
  // Process shadow DOM children in order
2502
2632
  if (root.shadowRoot.children) {
2503
- Array.from(root.shadowRoot.children).forEach(child => {
2633
+ Array.from(root.shadowRoot.children).forEach((child) => {
2504
2634
  collectFocusableElements(child);
2505
2635
  });
2506
2636
  }
2507
2637
  }
2508
2638
 
2509
2639
  // Process slots and their assigned nodes in order
2510
- if (root.tagName === 'SLOT') {
2640
+ if (root.tagName === "SLOT") {
2511
2641
  const assignedNodes = root.assignedNodes({ flatten: true });
2512
2642
  for (const node of assignedNodes) {
2513
2643
  collectFocusableElements(node);
@@ -2515,7 +2645,7 @@ function getFocusableElements(container) {
2515
2645
  } else {
2516
2646
  // Process light DOM children in order
2517
2647
  if (root.children) {
2518
- Array.from(root.children).forEach(child => {
2648
+ Array.from(root.children).forEach((child) => {
2519
2649
  collectFocusableElements(child);
2520
2650
  });
2521
2651
  }
@@ -2538,7 +2668,37 @@ function getFocusableElements(container) {
2538
2668
  }
2539
2669
  }
2540
2670
 
2541
- return uniqueElements;
2671
+ // Move tab-indexed elements to the front while preserving their order
2672
+ // This ensures that elements with tabindex are prioritized in the focus order
2673
+
2674
+ // First extract elements with valid positive tabindex
2675
+ const elementsWithTabindex = uniqueElements.filter((el) => {
2676
+ const tabindex = getNumericTabIndex(el);
2677
+ return tabindex !== null && tabindex > 0;
2678
+ });
2679
+
2680
+ // Sort these elements by their tabindex value
2681
+ elementsWithTabindex.sort((a, b) => {
2682
+ const aIndex = getNumericTabIndex(a) ?? 0;
2683
+ const bIndex = getNumericTabIndex(b) ?? 0;
2684
+ return aIndex - bIndex;
2685
+ });
2686
+
2687
+ // Elements without tabindex (preserving their original order)
2688
+ const elementsWithoutTabindex = uniqueElements.filter((el) => {
2689
+ const tabindex = getNumericTabIndex(el);
2690
+
2691
+ // Elements without tabindex or with tabindex of 0 stay in DOM order
2692
+ return tabindex === null || tabindex === 0;
2693
+ });
2694
+
2695
+ // Combine both arrays with tabindex elements first
2696
+ const tabIndexedUniqueElements = [
2697
+ ...elementsWithTabindex,
2698
+ ...elementsWithoutTabindex,
2699
+ ];
2700
+
2701
+ return tabIndexedUniqueElements;
2542
2702
  }
2543
2703
 
2544
2704
  /**
@@ -2551,15 +2711,17 @@ class FocusTrap {
2551
2711
  * Initializes event listeners and prepares the container for focus management.
2552
2712
  *
2553
2713
  * @param {HTMLElement} container The DOM element to trap focus within.
2714
+ * @param {boolean} [controlTabOrder=false] If true enables manual control of the tab order by the FocusTrap.
2554
2715
  * @throws {Error} If the provided container is not a valid HTMLElement.
2555
2716
  */
2556
- constructor(container) {
2717
+ constructor(container, controlTabOrder = false) {
2557
2718
  if (!container || !(container instanceof HTMLElement)) {
2558
2719
  throw new Error("FocusTrap requires a valid HTMLElement.");
2559
2720
  }
2560
2721
 
2561
2722
  this.container = container;
2562
- this.tabDirection = 'forward'; // or 'backward'
2723
+ this.tabDirection = "forward"; // or 'backward';
2724
+ this.controlTabOrder = controlTabOrder;
2563
2725
 
2564
2726
  this._init();
2565
2727
  }
@@ -2571,58 +2733,119 @@ class FocusTrap {
2571
2733
  * @private
2572
2734
  */
2573
2735
  _init() {
2574
-
2575
2736
  // Add inert attribute to prevent focusing programmatically as well (if supported)
2576
- if ('inert' in HTMLElement.prototype) {
2737
+ if ("inert" in HTMLElement.prototype) {
2577
2738
  this.container.inert = false; // Ensure the container isn't inert
2578
- this.container.setAttribute('data-focus-trap-container', true); // Mark for identification
2739
+ this.container.setAttribute("data-focus-trap-container", true); // Mark for identification
2579
2740
  }
2580
2741
 
2581
2742
  // Track tab direction
2582
- this.container.addEventListener('keydown', this._onKeydown);
2743
+ this.container.addEventListener("keydown", this._onKeydown);
2583
2744
  }
2584
2745
 
2585
2746
  /**
2586
- * Handles keydown events to manage tab navigation within the container.
2587
- * Ensures that focus wraps around when reaching the first or last focusable element.
2588
- *
2589
- * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
2747
+ * Gets an array of currently active (focused) elements in the document and shadow DOM.
2748
+ * @returns {Array<HTMLElement>} An array of focusable elements within the container.
2590
2749
  * @private
2591
2750
  */
2592
- _onKeydown = (e) => {
2593
-
2594
- if (e.key === 'Tab') {
2595
-
2596
- // Set the tab direction based on the key pressed
2597
- this.tabDirection = e.shiftKey ? 'backward' : 'forward';
2598
-
2599
- // Get the active element(s) in the document and shadow root
2600
- // This will include the active element in the shadow DOM if it exists
2601
- // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
2602
- let activeElement = document.activeElement;
2603
- const actives = [activeElement];
2604
- while (activeElement?.shadowRoot?.activeElement) {
2605
- actives.push(activeElement.shadowRoot.activeElement);
2606
- activeElement = activeElement.shadowRoot.activeElement;
2607
- }
2751
+ _getActiveElements() {
2752
+ // Get the active element(s) in the document and shadow root
2753
+ // This will include the active element in the shadow DOM if it exists
2754
+ // Active element may be inside the shadow DOM depending on delegatesFocus, so we need to check both
2755
+ let { activeElement } = document;
2756
+ const actives = [activeElement];
2757
+ while (activeElement?.shadowRoot?.activeElement) {
2758
+ actives.push(activeElement.shadowRoot.activeElement);
2759
+ activeElement = activeElement.shadowRoot.activeElement;
2760
+ }
2761
+ return actives;
2762
+ }
2608
2763
 
2609
- // Update the focusable elements
2610
- const focusables = this._getFocusableElements();
2611
-
2612
- // If we're at either end of the focusable elements, wrap around to the other end
2613
- const focusIndex =
2614
- (actives.includes(focusables[0]) || actives.includes(this.container)) && this.tabDirection === 'backward'
2615
- ? focusables.length - 1
2616
- : actives.includes(focusables[focusables.length - 1]) && this.tabDirection === 'forward'
2617
- ? 0
2618
- : null;
2619
-
2620
- if (focusIndex !== null) {
2621
- focusables[focusIndex].focus();
2622
- e.preventDefault(); // Prevent default tab behavior
2623
- e.stopPropagation(); // Stop the event from bubbling up
2624
- }
2764
+ /**
2765
+ * Gets the next focus index based on the current index and focusable elements.
2766
+ * @param {number} currentIndex The current index of the focused element.
2767
+ * @param {Array<HTMLElement>} focusables The array of focusable elements.
2768
+ * @returns {number|null} The next focus index or null if not determined.
2769
+ */
2770
+ _getNextFocusIndex(currentIndex, focusables, actives) {
2771
+ if (this.controlTabOrder) {
2772
+ // Calculate the new index based on the current index and tab direction
2773
+ let newFocusIndex =
2774
+ currentIndex + (this.tabDirection === "forward" ? 1 : -1);
2775
+
2776
+ // Wrap-around logic
2777
+ if (newFocusIndex < 0) newFocusIndex = focusables.length - 1;
2778
+ if (newFocusIndex >= focusables.length) newFocusIndex = 0;
2779
+
2780
+ // Early return with the new index
2781
+ return newFocusIndex;
2625
2782
  }
2783
+
2784
+ // Determine if we need to wrap
2785
+ const atFirst =
2786
+ actives.includes(focusables[0]) || actives.includes(this.container);
2787
+ const atLast = actives.includes(focusables[focusables.length - 1]);
2788
+
2789
+ // Only wrap if at the ends
2790
+ if (this.tabDirection === "backward" && atFirst) {
2791
+ return focusables.length - 1;
2792
+ }
2793
+
2794
+ if (this.tabDirection === "forward" && atLast) {
2795
+ return 0;
2796
+ }
2797
+
2798
+ // No wrap, so don't change focus, return early
2799
+ return null;
2800
+ }
2801
+
2802
+ /**
2803
+ * Handles the Tab key press event to manage focus within the container.
2804
+ * @param {KeyboardEvent} e The keyboard event triggered by the user.
2805
+ * @returns {void}
2806
+ */
2807
+ _handleTabKey(e) {
2808
+ // Update the focusable elements
2809
+ const focusables = this._getFocusableElements();
2810
+
2811
+ // If there are no focusable elements, exit
2812
+ if (!focusables.length) return;
2813
+
2814
+ // Set the tab direction based on the key pressed
2815
+ this.tabDirection = e.shiftKey ? "backward" : "forward";
2816
+
2817
+ // Get the active elements that are currently focused
2818
+ const actives = this._getActiveElements();
2819
+
2820
+ // If we're at either end of the focusable elements, wrap around to the other end
2821
+ let focusIndex = focusables.findIndex((el) => actives.includes(el));
2822
+
2823
+ // Fallback if we have no focused element
2824
+ if (focusIndex === -1) focusIndex = 0;
2825
+
2826
+ // Get the next focus index based on the current focus index, tab direction, and controlTabOrder setting
2827
+ // Is null if no new focus index is determined
2828
+ const newFocusIndex = this._getNextFocusIndex(
2829
+ focusIndex,
2830
+ focusables,
2831
+ actives,
2832
+ );
2833
+
2834
+ // If we have a new focus index, set focus to that element
2835
+ if (newFocusIndex !== null) {
2836
+ e.preventDefault();
2837
+ focusables[newFocusIndex].focus();
2838
+ }
2839
+ }
2840
+
2841
+ /**
2842
+ * Catches the keydown event
2843
+ * @param {KeyboardEvent} e The keyboard event triggered by user interaction.
2844
+ * @private
2845
+ */
2846
+ _onKeydown = (e) => {
2847
+ // Handle tab
2848
+ if (e.key === "Tab") this._handleTabKey(e);
2626
2849
  };
2627
2850
 
2628
2851
  /**
@@ -2635,8 +2858,8 @@ class FocusTrap {
2635
2858
  _getFocusableElements() {
2636
2859
  // Use the imported utility function to get focusable elements
2637
2860
  const elements = getFocusableElements(this.container);
2638
-
2639
- // Filter out any elements with the 'focus-bookend' class
2861
+
2862
+ // Return the elements found
2640
2863
  return elements;
2641
2864
  }
2642
2865
 
@@ -2663,12 +2886,11 @@ class FocusTrap {
2663
2886
  * Call this method to clean up when the focus trap is no longer needed.
2664
2887
  */
2665
2888
  disconnect() {
2666
-
2667
- if (this.container.hasAttribute('data-focus-trap-container')) {
2668
- this.container.removeAttribute('data-focus-trap-container');
2889
+ if (this.container.hasAttribute("data-focus-trap-container")) {
2890
+ this.container.removeAttribute("data-focus-trap-container");
2669
2891
  }
2670
2892
 
2671
- this.container.removeEventListener('keydown', this._onKeydown);
2893
+ this.container.removeEventListener("keydown", this._onKeydown);
2672
2894
  }
2673
2895
  }
2674
2896
 
@@ -2716,21 +2938,21 @@ class AuroDependencyVersioning {
2716
2938
  * @license
2717
2939
  * Copyright 2018 Google LLC
2718
2940
  * SPDX-License-Identifier: BSD-3-Clause
2719
- */const o=o=>o??E;
2941
+ */const o=o=>o??A;
2720
2942
 
2721
- class p{registerComponent(t,a){customElements.get(t)||customElements.define(t,class extends a{});}closestElement(t,a=this,e=(a,s=a&&a.closest(t))=>a&&a!==document&&a!==window?s||e(a.getRootNode().host):null){return e(a)}handleComponentTagRename(t,a){const e=a.toLowerCase();t.tagName.toLowerCase()!==e&&t.setAttribute(e,true);}elementMatch(t,a){const e=a.toLowerCase();return t.tagName.toLowerCase()===e||t.hasAttribute(e)}}var u='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-labelledby="error__desc" class="ico_squareLarge" data-deprecated="true" role="img" style="min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor" viewBox="0 0 24 24" part="svg"><title/><desc id="error__desc">Error alert indicator.</desc><path d="m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583"/></svg>';class m extends i{static get properties(){return {hidden:{type:Boolean,reflect:true},hiddenVisually:{type:Boolean,reflect:true},hiddenAudible:{type:Boolean,reflect:true}}}hideAudible(t){return t?"true":"false"}}const g=new Map,f=(t,a={})=>{const e=a.responseParser||(t=>t.text());return g.has(t)||g.set(t,fetch(t).then(e)),g.get(t)};var w=i$2`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, .75rem))}:host{color:currentColor;vertical-align:middle;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem)!important;width:var(--ds-auro-icon-size, 1.5rem)!important;height:var(--ds-auro-icon-size, 1.5rem)!important}.componentWrapper{display:flex;line-height:var(--ds-auro-icon-size)}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.svgWrapper [part=svg]{display:flex}.labelWrapper{margin-left:var(--ds-size-50, .25rem)}.labelWrapper ::slotted(*){line-height:inherit!important}
2722
- `;class z extends m{constructor(){super(),this.onDark=false,this.appearance="default";}static get properties(){return {...m.properties,onDark:{type:Boolean,reflect:true},appearance:{type:String,reflect:true},svg:{attribute:false,reflect:true}}}static get styles(){return w}async fetchIcon(t,a){let e="";e="logos"===t?await f(`${this.uri}/${t}/${a}.svg`):await f(`${this.uri}/icons/${t}/${a}.svg`);return (new DOMParser).parseFromString(e,"text/html").body.querySelector("svg")}async firstUpdated(){try{if(!this.customSvg){const t=await this.fetchIcon(this.category,this.name);if(t)this.svg=t;else if(!t){const t=(new DOMParser).parseFromString(u,"text/html");this.svg=t.body.firstChild;}}}catch(t){this.svg=void 0;}}}i$2`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}:host{display:inline-block;--ds-auro-icon-size: 100%;width:100%;height:100%}:host .logo{color:var(--ds-auro-alaska-color)}:host([onDark]),:host([appearance=inverse]){--ds-auro-alaska-color: #FFF}
2943
+ class p{registerComponent(t,a){customElements.get(t)||customElements.define(t,class extends a{});}closestElement(t,a=this,e=(a,s=a&&a.closest(t))=>a&&a!==document&&a!==window?s||e(a.getRootNode().host):null){return e(a)}handleComponentTagRename(t,a){const e=a.toLowerCase();t.tagName.toLowerCase()!==e&&t.setAttribute(e,true);}elementMatch(t,a){const e=a.toLowerCase();return t.tagName.toLowerCase()===e||t.hasAttribute(e)}getSlotText(t,a){const e=t.shadowRoot?.querySelector(`slot[name="${a}"]`);return (e?.assignedNodes({flatten:true})||[]).map(t=>t.textContent?.trim()).join(" ").trim()||null}}var u='<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-labelledby="error__desc" class="ico_squareLarge" data-deprecated="true" role="img" style="min-width:var(--auro-size-lg, var(--ds-size-300, 1.5rem));height:var(--auro-size-lg, var(--ds-size-300, 1.5rem));fill:currentColor" viewBox="0 0 24 24" part="svg"><title/><desc id="error__desc">Error alert indicator.</desc><path d="m13.047 5.599 6.786 11.586A1.207 1.207 0 0 1 18.786 19H5.214a1.207 1.207 0 0 1-1.047-1.815l6.786-11.586a1.214 1.214 0 0 1 2.094 0m-1.165.87a.23.23 0 0 0-.085.085L5.419 17.442a.232.232 0 0 0 .203.35h12.756a.234.234 0 0 0 .203-.35L12.203 6.554a.236.236 0 0 0-.321-.084M12 15.5a.75.75 0 1 1 0 1.5.75.75 0 0 1 0-1.5m-.024-6.22c.325 0 .589.261.589.583v4.434a.586.586 0 0 1-.589.583.586.586 0 0 1-.588-.583V9.863c0-.322.264-.583.588-.583"/></svg>';class m extends i{static get properties(){return {hidden:{type:Boolean,reflect:true},hiddenVisually:{type:Boolean,reflect:true},hiddenAudible:{type:Boolean,reflect:true}}}hideAudible(t){return t?"true":"false"}}const g=new Map,f=(t,a={})=>{const e=a.responseParser||(t=>t.text());return g.has(t)||g.set(t,fetch(t).then(e)),g.get(t)};var w=i$2`:focus:not(:focus-visible){outline:3px solid transparent}.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}.ico_squareLarge{fill:currentColor;height:var(--auro-size-lg, var(--ds-size-300, 1.5rem))}.ico_squareSmall{fill:currentColor;height:.6rem}.ico_squareMed{fill:currentColor;height:var(--auro-size-md, var(--ds-size-200, 1rem))}.ico_squareSml{fill:currentColor;height:var(--auro-size-sm, var(--ds-size-150, .75rem))}:host{color:currentColor;vertical-align:middle;display:inline-block}svg{min-width:var(--ds-auro-icon-size, 1.5rem)!important;width:var(--ds-auro-icon-size, 1.5rem)!important;height:var(--ds-auro-icon-size, 1.5rem)!important}.componentWrapper{display:flex;line-height:var(--ds-auro-icon-size)}.svgWrapper{height:var(--ds-auro-icon-size);width:var(--ds-auro-icon-size)}.svgWrapper [part=svg]{display:flex}.labelWrapper{margin-left:var(--ds-size-50, .25rem)}.labelWrapper ::slotted(*){line-height:inherit!important}
2944
+ `;class z extends m{constructor(){super(),this._initializeDefaults();}_initializeDefaults(){this.onDark=false,this.appearance="default";}static get properties(){return {...m.properties,onDark:{type:Boolean,reflect:true},appearance:{type:String,reflect:true},svg:{attribute:false,reflect:true}}}static get styles(){return w}async fetchIcon(t,a){let e="";e="logos"===t?await f(`${this.uri}/${t}/${a}.svg`):await f(`${this.uri}/icons/${t}/${a}.svg`);return (new DOMParser).parseFromString(e,"text/html").body.querySelector("svg")}async firstUpdated(){try{if(!this.customSvg){const t=await this.fetchIcon(this.category,this.name);if(t)this.svg=t;else if(!t){const t=(new DOMParser).parseFromString(u,"text/html");this.svg=t.body.firstChild;}}}catch(t){this.svg=void 0;}}}i$2`.util_displayInline{display:inline}.util_displayInlineBlock{display:inline-block}.util_displayBlock,:host{display:block}.util_displayFlex{display:flex}.util_displayHidden,:host([hidden]:not(:focus):not(:active)){display:none}.util_displayHiddenVisually,:host([hiddenVisually]:not(:focus):not(:active)){position:absolute;overflow:hidden;clip:rect(1px,1px,1px,1px);width:1px;height:1px;padding:0;border:0}:host{display:inline-block;--ds-auro-icon-size: 100%;width:100%;height:100%}:host .logo{color:var(--ds-auro-alaska-color)}:host([onDark]),:host([appearance=inverse]){--ds-auro-alaska-color: #FFF}
2723
2945
  `;var y=i$2`:host{--ds-auro-icon-color: var(--ds-basic-color-texticon-default, #2a2a2a);--ds-auro-alaska-color: #02426D;--ds-auro-icon-size: var(--ds-size-300, 1.5rem)}
2724
- `;var k=i$2`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]),:host(:not([appearance=inverse])[variant=accent1]){--ds-auro-icon-color: var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]),:host(:not([appearance=inverse])[variant=disabled]){--ds-auro-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]),:host(:not([appearance=inverse])[variant=muted]){--ds-auro-icon-color: var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]),:host(:not([appearance=inverse])[variant=statusDefault]){--ds-auro-icon-color: var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]),:host(:not([appearance=inverse])[variant=statusInfo]){--ds-auro-icon-color: var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]),:host(:not([appearance=inverse])[variant=statusSuccess]){--ds-auro-icon-color: var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]),:host(:not([appearance=inverse])[variant=statusWarning]){--ds-auro-icon-color: var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]),:host(:not([appearance=inverse])[variant=statusError]){--ds-auro-icon-color: var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]),:host(:not([appearance=inverse])[variant=statusInfoSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]),:host(:not([appearance=inverse])[variant=statusSuccessSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]),:host(:not([appearance=inverse])[variant=statusWarningSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]),:host(:not([appearance=inverse])[variant=statusErrorSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]),:host(:not([appearance=inverse])[variant=fareBasicEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]),:host(:not([appearance=inverse])[variant=fareBusiness]){--ds-auro-icon-color: var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]),:host(:not([appearance=inverse])[variant=fareEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]),:host(:not([appearance=inverse])[variant=fareFirst]){--ds-auro-icon-color: var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]),:host(:not([appearance=inverse])[variant=farePremiumEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]),:host(:not([appearance=inverse])[variant=tierOneWorldEmerald]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]),:host(:not([appearance=inverse])[variant=tierOneWorldSapphire]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]),:host(:not([appearance=inverse])[variant=tierOneWorldRuby]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]),:host([appearance=inverse]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]),:host([appearance=inverse][variant=disabled]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]),:host([appearance=inverse][variant=muted]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]),:host([appearance=inverse][variant=statusError]){--ds-auro-icon-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}
2725
- `;class x extends z{constructor(){super(),this.variant=void 0,this.privateDefaults();}privateDefaults(){this.uri="https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist",this.runtimeUtils=new p;}static get properties(){return {...z.properties,ariaHidden:{type:String,reflect:true},category:{type:String,reflect:true},customColor:{type:Boolean,reflect:true},customSvg:{type:Boolean},label:{type:Boolean,reflect:true},name:{type:String,reflect:true},variant:{type:String,reflect:true}}}static get styles(){return [z.styles,y,w,k]}static register(t="auro-icon"){p.prototype.registerComponent(t,x);}connectedCallback(){super.connectedCallback(),this.runtimeUtils.handleComponentTagRename(this,"auro-icon");}exposeCssParts(){this.setAttribute("exportparts","svg:iconSvg");}async firstUpdated(){if(await super.firstUpdated(),this.hasAttribute("ariaHidden")&&this.svg){const t=this.svg.querySelector("desc");t&&(t.remove(),this.svg.removeAttribute("aria-labelledby"));}}render(){const t={labelWrapper:true,util_displayHiddenVisually:!this.label};return x$1`
2946
+ `;var x=i$2`:host{color:var(--ds-auro-icon-color)}:host([customColor]){color:inherit}:host(:not([onDark])[variant=accent1]),:host(:not([appearance=inverse])[variant=accent1]){--ds-auro-icon-color: var(--ds-basic-color-texticon-accent1, #265688)}:host(:not([onDark])[variant=disabled]),:host(:not([appearance=inverse])[variant=disabled]){--ds-auro-icon-color: var(--ds-basic-color-texticon-disabled, #d0d0d0)}:host(:not([onDark])[variant=muted]),:host(:not([appearance=inverse])[variant=muted]){--ds-auro-icon-color: var(--ds-basic-color-texticon-muted, #676767)}:host(:not([onDark])[variant=statusDefault]),:host(:not([appearance=inverse])[variant=statusDefault]){--ds-auro-icon-color: var(--ds-basic-color-status-default, #afb9c6)}:host(:not([onDark])[variant=statusInfo]),:host(:not([appearance=inverse])[variant=statusInfo]){--ds-auro-icon-color: var(--ds-basic-color-status-info, #01426a)}:host(:not([onDark])[variant=statusSuccess]),:host(:not([appearance=inverse])[variant=statusSuccess]){--ds-auro-icon-color: var(--ds-basic-color-status-success, #447a1f)}:host(:not([onDark])[variant=statusWarning]),:host(:not([appearance=inverse])[variant=statusWarning]){--ds-auro-icon-color: var(--ds-basic-color-status-warning, #fac200)}:host(:not([onDark])[variant=statusError]),:host(:not([appearance=inverse])[variant=statusError]){--ds-auro-icon-color: var(--ds-basic-color-status-error, #e31f26)}:host(:not([onDark])[variant=statusInfoSubtle]),:host(:not([appearance=inverse])[variant=statusInfoSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-info-subtle, #ebf3f9)}:host(:not([onDark])[variant=statusSuccessSubtle]),:host(:not([appearance=inverse])[variant=statusSuccessSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-success-subtle, #d6eac7)}:host(:not([onDark])[variant=statusWarningSubtle]),:host(:not([appearance=inverse])[variant=statusWarningSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-warning-subtle, #fff0b2)}:host(:not([onDark])[variant=statusErrorSubtle]),:host(:not([appearance=inverse])[variant=statusErrorSubtle]){--ds-auro-icon-color: var(--ds-basic-color-status-error-subtle, #fbc6c6)}:host(:not([onDark])[variant=fareBasicEconomy]),:host(:not([appearance=inverse])[variant=fareBasicEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-basiceconomy, #97eaf8)}:host(:not([onDark])[variant=fareBusiness]),:host(:not([appearance=inverse])[variant=fareBusiness]){--ds-auro-icon-color: var(--ds-basic-color-fare-business, #01426a)}:host(:not([onDark])[variant=fareEconomy]),:host(:not([appearance=inverse])[variant=fareEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-economy, #0074ca)}:host(:not([onDark])[variant=fareFirst]),:host(:not([appearance=inverse])[variant=fareFirst]){--ds-auro-icon-color: var(--ds-basic-color-fare-first, #00274a)}:host(:not([onDark])[variant=farePremiumEconomy]),:host(:not([appearance=inverse])[variant=farePremiumEconomy]){--ds-auro-icon-color: var(--ds-basic-color-fare-premiumeconomy, #005154)}:host(:not([onDark])[variant=tierOneWorldEmerald]),:host(:not([appearance=inverse])[variant=tierOneWorldEmerald]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-emerald, #139142)}:host(:not([onDark])[variant=tierOneWorldSapphire]),:host(:not([appearance=inverse])[variant=tierOneWorldSapphire]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-sapphire, #015daa)}:host(:not([onDark])[variant=tierOneWorldRuby]),:host(:not([appearance=inverse])[variant=tierOneWorldRuby]){--ds-auro-icon-color: var(--ds-basic-color-tier-program-oneworld-ruby, #a41d4a)}:host([onDark]),:host([appearance=inverse]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse, #ffffff)}:host([onDark][variant=disabled]),:host([appearance=inverse][variant=disabled]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse-disabled, #7e8894)}:host([onDark][variant=muted]),:host([appearance=inverse][variant=muted]){--ds-auro-icon-color: var(--ds-basic-color-texticon-inverse-muted, #ccd2db)}:host([onDark][variant=statusError]),:host([appearance=inverse][variant=statusError]){--ds-auro-icon-color: var(--ds-advanced-color-state-error-inverse, #f9a4a8)}
2947
+ `;class _ extends z{constructor(){super(),this._initializeDefaults();}_initializeDefaults(){this.variant=void 0,this.uri="https://cdn.jsdelivr.net/npm/@alaskaairux/icons@latest/dist",this.runtimeUtils=new p;}static get properties(){return {...z.properties,ariaHidden:{type:String,reflect:true},category:{type:String,reflect:true},customColor:{type:Boolean,reflect:true},customSvg:{type:Boolean},label:{type:Boolean,reflect:true},name:{type:String,reflect:true},variant:{type:String,reflect:true}}}static get styles(){return [z.styles,y,w,x]}static register(t="auro-icon"){p.prototype.registerComponent(t,_);}connectedCallback(){super.connectedCallback(),this.runtimeUtils.handleComponentTagRename(this,"auro-icon");}exposeCssParts(){this.setAttribute("exportparts","svg:iconSvg");}async firstUpdated(){if(await super.firstUpdated(),this.hasAttribute("ariaHidden")&&this.svg){const t=this.svg.querySelector("desc");t&&(t.remove(),this.svg.removeAttribute("aria-labelledby"));}}render(){const t={labelWrapper:true,util_displayHiddenVisually:!this.label};return b$1`
2726
2948
  <div class="componentWrapper">
2727
2949
  <div
2728
2950
  class="${e$3({svgWrapper:true})}"
2729
2951
  title="${o(this.title||void 0)}">
2730
2952
  <span aria-hidden="${o(this.ariaHidden||true)}" part="svg">
2731
- ${this.customSvg?x$1`
2953
+ ${this.customSvg?b$1`
2732
2954
  <slot name="svg"></slot>
2733
- `:x$1`
2955
+ `:b$1`
2734
2956
  ${this.svg}
2735
2957
  `}
2736
2958
  </span>
@@ -2742,7 +2964,7 @@ class p{registerComponent(t,a){customElements.get(t)||customElements.define(t,cl
2742
2964
  </div>
2743
2965
  `}}
2744
2966
 
2745
- var iconVersion = '9.1.1';
2967
+ var iconVersion = '9.1.2';
2746
2968
 
2747
2969
  var styleCss$2 = i$2`:host{position:fixed;z-index:var(--depth-tooltip, 400);display:none;isolation:isolate}:host(:not([matchWidth])) .container{min-width:fit-content}:host([isfullscreen]){position:fixed;top:0;left:0}:host([isfullscreen]) .container{width:100dvw;max-width:none;height:100dvh;max-height:none;border-radius:unset;margin-top:0;box-shadow:unset;overscroll-behavior:contain}:host([data-show]){display:flex}:host([common]:not([isfullscreen])) .container,:host([rounded]:not([isfullscreen])) .container{border-radius:var(--ds-border-radius, 0.375rem)}:host([common][isfullscreen]) .container,:host([rounded][isfullscreen]) .container{border-radius:unset;box-shadow:unset}:host(:not([isfullscreen])) .container.shape-box{border-radius:unset}:host(:not([isfullscreen])) .container[class*=shape-pill],:host(:not([isfullscreen])) .container[class*=shape-snowflake]{border-radius:30px}:host(:not([isfullscreen])) .container[class*=shape-rounded]{border-radius:16px}.container{display:inline-block;overflow:auto;box-sizing:border-box;border-radius:var(--ds-border-radius, 0.375rem);margin:var(--ds-size-50, 0.25rem) 0}`;
2748
2970
 
@@ -3175,7 +3397,7 @@ class AuroHelpText extends i {
3175
3397
 
3176
3398
  // function that renders the HTML and CSS into the scope of the component
3177
3399
  render() {
3178
- return x$1`
3400
+ return b$1`
3179
3401
  <div class="helptext-wrapper body-xs" ?visible="${this.hasTextContent}">
3180
3402
  <slot @slotchange=${this.handleSlotChange}></slot>
3181
3403
  </div>
@@ -3183,7 +3405,7 @@ class AuroHelpText extends i {
3183
3405
  }
3184
3406
  }
3185
3407
 
3186
- var formkitVersion = '202601262116';
3408
+ var formkitVersion = '202602132006';
3187
3409
 
3188
3410
  class AuroElement extends i {
3189
3411
  static get properties() {
@@ -3411,7 +3633,7 @@ class AuroDropdown extends AuroElement {
3411
3633
  /**
3412
3634
  * @private
3413
3635
  */
3414
- this.iconTag = versioning.generateTag('auro-formkit-dropdown-icon', iconVersion, x);
3636
+ this.iconTag = versioning.generateTag('auro-formkit-dropdown-icon', iconVersion, _);
3415
3637
 
3416
3638
  /**
3417
3639
  * @private
@@ -3478,7 +3700,7 @@ class AuroDropdown extends AuroElement {
3478
3700
  * The value for the role attribute of the trigger element.
3479
3701
  */
3480
3702
  a11yRole: {
3481
- type: String || undefined,
3703
+ type: String,
3482
3704
  attribute: false,
3483
3705
  reflect: false
3484
3706
  },
@@ -4239,20 +4461,17 @@ AuroDropdown.register();
4239
4461
 
4240
4462
  /* eslint-disable jsdoc/require-jsdoc, no-magic-numbers */
4241
4463
 
4242
- function initExamples(initialCount = 0) {
4243
- try {
4244
- // javascript example function calls to be added here upon creation to test examples
4245
- hideExample();
4246
- showExample();
4247
- inDialogExample();
4248
- } catch (err) {
4249
- if (initialCount <= 20) {
4250
- // setTimeout handles issue where content is sometimes loaded after the functions get called
4251
- setTimeout(() => {
4252
- initExamples(initialCount + 1);
4253
- }, 100);
4254
- }
4255
- }
4464
+ function initExamples() {
4465
+ // javascript example function calls to be added here upon creation to test examples
4466
+ errorExample();
4467
+ inverseErrorExample();
4468
+ fullscreenBreakpointExample();
4469
+ classicExample();
4470
+ classicInverseExample();
4471
+ matchWidthExample();
4472
+ hideExample();
4473
+ showExample();
4474
+ inDialogExample();
4256
4475
  }
4257
4476
 
4258
4477
  export { initExamples };