q2-tecton-elements 1.12.0-alpha.0 → 1.12.0

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 (162) hide show
  1. package/dist/cjs/{icons-4595ee47.js → icons-9bd0febe.js} +10 -0
  2. package/dist/cjs/{index-a55d3c34.js → index-773c3eec.js} +25 -12
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  5. package/dist/cjs/q2-btn_2.cjs.entry.js +3 -3
  6. package/dist/cjs/q2-calendar.cjs.entry.js +15 -4
  7. package/dist/cjs/q2-card.cjs.entry.js +89 -0
  8. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  9. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-checkbox-group.cjs.entry.js +4 -1
  11. package/dist/cjs/q2-checkbox.cjs.entry.js +17 -6
  12. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-dropdown.cjs.entry.js +2 -2
  14. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-icon.cjs.entry.js +2 -2
  16. package/dist/cjs/q2-input.cjs.entry.js +12 -7
  17. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  19. package/dist/cjs/q2-optgroup.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-option-list.cjs.entry.js +357 -0
  21. package/dist/cjs/q2-option.cjs.entry.js +2 -10
  22. package/dist/cjs/q2-pagination.cjs.entry.js +118 -0
  23. package/dist/cjs/q2-pill.cjs.entry.js +137 -0
  24. package/dist/cjs/q2-radio-group.cjs.entry.js +40 -12
  25. package/dist/cjs/q2-radio.cjs.entry.js +20 -3
  26. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-select.cjs.entry.js +14 -6
  28. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-stepper.cjs.entry.js +2 -2
  30. package/dist/cjs/q2-tab-container.cjs.entry.js +5 -1
  31. package/dist/cjs/q2-tag.cjs.entry.js +94 -0
  32. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  33. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  34. package/dist/collection/collection-manifest.json +5 -0
  35. package/dist/collection/components/q2-btn/styles.css +1 -1
  36. package/dist/collection/components/q2-calendar/helpers.js +6 -0
  37. package/dist/collection/components/q2-calendar/index.js +25 -3
  38. package/dist/collection/components/q2-calendar/styles.css +1 -1
  39. package/dist/collection/components/q2-card/index.js +290 -0
  40. package/dist/collection/components/q2-card/styles.css +161 -0
  41. package/dist/collection/components/q2-checkbox/index.js +32 -4
  42. package/dist/collection/components/q2-checkbox/styles.css +1 -1
  43. package/dist/collection/components/q2-checkbox-group/index.js +21 -0
  44. package/dist/collection/components/q2-dropdown/styles.css +3 -3
  45. package/dist/collection/components/q2-icon/icons.js +10 -0
  46. package/dist/collection/components/q2-input/index.js +63 -6
  47. package/dist/collection/components/q2-input/styles.css +25 -33
  48. package/dist/collection/components/q2-loading/styles.css +1 -1
  49. package/dist/collection/components/q2-option/index.js +19 -25
  50. package/dist/collection/components/q2-option/styles.css +5 -0
  51. package/dist/collection/components/q2-option-list/index.js +646 -0
  52. package/dist/collection/components/q2-option-list/styles.css +128 -0
  53. package/dist/collection/components/q2-pagination/index.js +277 -0
  54. package/dist/collection/components/q2-pagination/styles.css +120 -0
  55. package/dist/collection/components/q2-pill/index.js +324 -0
  56. package/dist/collection/components/q2-pill/styles.css +227 -0
  57. package/dist/collection/components/q2-radio/index.js +38 -1
  58. package/dist/collection/components/q2-radio-group/index.js +64 -19
  59. package/dist/collection/components/q2-select/index.js +30 -4
  60. package/dist/collection/components/q2-select/styles.css +4 -4
  61. package/dist/collection/components/q2-stepper/styles.css +8 -8
  62. package/dist/collection/components/q2-tab-container/index.js +4 -0
  63. package/dist/collection/components/q2-tag/index.js +200 -0
  64. package/dist/collection/components/q2-tag/styles.css +141 -0
  65. package/dist/collection/utils/index.js +24 -12
  66. package/dist/esm/{icons-3ee662ea.js → icons-6a143c2f.js} +10 -0
  67. package/dist/esm/{index-ec6660af.js → index-fa32f694.js} +25 -13
  68. package/dist/esm/loader.js +1 -1
  69. package/dist/esm/q2-avatar.entry.js +1 -1
  70. package/dist/esm/q2-btn_2.entry.js +3 -3
  71. package/dist/esm/q2-calendar.entry.js +15 -4
  72. package/dist/esm/q2-card.entry.js +85 -0
  73. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  74. package/dist/esm/q2-carousel.entry.js +1 -1
  75. package/dist/esm/q2-checkbox-group.entry.js +4 -1
  76. package/dist/esm/q2-checkbox.entry.js +17 -6
  77. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  78. package/dist/esm/q2-dropdown.entry.js +2 -2
  79. package/dist/esm/q2-editable-field.entry.js +1 -1
  80. package/dist/esm/q2-icon.entry.js +2 -2
  81. package/dist/esm/q2-input.entry.js +12 -7
  82. package/dist/esm/q2-loc.entry.js +1 -1
  83. package/dist/esm/q2-message.entry.js +1 -1
  84. package/dist/esm/q2-optgroup.entry.js +1 -1
  85. package/dist/esm/q2-option-list.entry.js +353 -0
  86. package/dist/esm/q2-option.entry.js +3 -11
  87. package/dist/esm/q2-pagination.entry.js +114 -0
  88. package/dist/esm/q2-pill.entry.js +133 -0
  89. package/dist/esm/q2-radio-group.entry.js +41 -13
  90. package/dist/esm/q2-radio.entry.js +20 -3
  91. package/dist/esm/q2-section.entry.js +1 -1
  92. package/dist/esm/q2-select.entry.js +14 -6
  93. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  94. package/dist/esm/q2-stepper.entry.js +2 -2
  95. package/dist/esm/q2-tab-container.entry.js +5 -1
  96. package/dist/esm/q2-tag.entry.js +90 -0
  97. package/dist/esm/q2-tecton-elements.js +1 -1
  98. package/dist/esm/q2-textarea.entry.js +1 -1
  99. package/dist/q2-tecton-elements/p-08668234.entry.js +1 -0
  100. package/dist/q2-tecton-elements/{p-fbf7c5e6.entry.js → p-0a7cff38.entry.js} +1 -1
  101. package/dist/q2-tecton-elements/p-167a19fd.entry.js +1 -0
  102. package/dist/q2-tecton-elements/{p-07a5d703.entry.js → p-30bf5f44.entry.js} +1 -1
  103. package/dist/q2-tecton-elements/{p-7e030e92.entry.js → p-34415315.entry.js} +1 -1
  104. package/dist/q2-tecton-elements/p-3c6f73cb.js +1 -0
  105. package/dist/q2-tecton-elements/p-54300d2f.entry.js +1 -0
  106. package/dist/q2-tecton-elements/p-54f0d64e.entry.js +1 -0
  107. package/dist/q2-tecton-elements/p-5b906cf1.entry.js +1 -0
  108. package/dist/q2-tecton-elements/{p-06fff43d.entry.js → p-650d7497.entry.js} +1 -1
  109. package/dist/q2-tecton-elements/p-7ce98c1a.entry.js +1 -0
  110. package/dist/q2-tecton-elements/p-8c22e6b4.entry.js +1 -0
  111. package/dist/q2-tecton-elements/p-91dba21f.entry.js +1 -0
  112. package/dist/q2-tecton-elements/{p-a6f8d09a.entry.js → p-9a3c37ab.entry.js} +1 -1
  113. package/dist/q2-tecton-elements/{p-75e87cca.entry.js → p-a0248299.entry.js} +1 -1
  114. package/dist/q2-tecton-elements/p-aca8302b.entry.js +1 -0
  115. package/dist/q2-tecton-elements/{p-df182f61.entry.js → p-af202624.entry.js} +1 -1
  116. package/dist/q2-tecton-elements/{p-c5e55b9f.entry.js → p-b9c2c1d3.entry.js} +1 -1
  117. package/dist/q2-tecton-elements/p-c3d68d5c.js +1 -0
  118. package/dist/q2-tecton-elements/{p-bb2e110a.entry.js → p-c5199147.entry.js} +1 -1
  119. package/dist/q2-tecton-elements/{p-843b1ee9.entry.js → p-c5e6f7fa.entry.js} +1 -1
  120. package/dist/q2-tecton-elements/p-ce44ee47.entry.js +1 -0
  121. package/dist/q2-tecton-elements/{p-50967020.entry.js → p-d3058002.entry.js} +1 -1
  122. package/dist/q2-tecton-elements/p-d65aaed2.entry.js +1 -0
  123. package/dist/q2-tecton-elements/{p-9b50c3c3.entry.js → p-d9bc6494.entry.js} +1 -1
  124. package/dist/q2-tecton-elements/p-df86f160.entry.js +1 -0
  125. package/dist/q2-tecton-elements/{p-9a977ee6.entry.js → p-e38080d2.entry.js} +1 -1
  126. package/dist/q2-tecton-elements/p-e9d69ba8.entry.js +1 -0
  127. package/dist/q2-tecton-elements/p-f98dc161.entry.js +1 -0
  128. package/dist/q2-tecton-elements/{p-7e6fc65d.entry.js → p-fa9e3825.entry.js} +1 -1
  129. package/dist/q2-tecton-elements/{p-b281c349.entry.js → p-fe6407a4.entry.js} +1 -1
  130. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  131. package/dist/test/elements/q2-tag-test.js +151 -0
  132. package/dist/test/helpers.js +14 -3
  133. package/dist/types/components/q2-calendar/helpers.d.ts +1 -0
  134. package/dist/types/components/q2-calendar/index.d.ts +1 -0
  135. package/dist/types/components/q2-card/index.d.ts +31 -0
  136. package/dist/types/components/q2-checkbox/index.d.ts +3 -1
  137. package/dist/types/components/q2-checkbox-group/index.d.ts +1 -0
  138. package/dist/types/components/q2-input/index.d.ts +3 -0
  139. package/dist/types/components/q2-option/index.d.ts +2 -3
  140. package/dist/types/components/q2-option-list/index.d.ts +62 -0
  141. package/dist/types/components/q2-pagination/index.d.ts +30 -0
  142. package/dist/types/components/q2-pill/index.d.ts +39 -0
  143. package/dist/types/components/q2-radio/index.d.ts +4 -1
  144. package/dist/types/components/q2-radio-group/index.d.ts +5 -1
  145. package/dist/types/components/q2-select/index.d.ts +1 -0
  146. package/dist/types/components/q2-tag/index.d.ts +28 -0
  147. package/dist/types/components.d.ts +175 -1
  148. package/dist/types/utils/index.d.ts +1 -0
  149. package/dist/types/workspace/workspace/Tecton_tecton-production_master/packages/q2-tecton-elements/.stencil/test/elements/q2-tag-test.d.ts +1 -0
  150. package/dist/types/workspace/workspace/{_production_release_1.11.0-alpha → Tecton_tecton-production_master}/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +4 -1
  151. package/package.json +2 -2
  152. package/dist/q2-tecton-elements/p-29a37091.entry.js +0 -1
  153. package/dist/q2-tecton-elements/p-37aba2a4.js +0 -1
  154. package/dist/q2-tecton-elements/p-4cd00f1a.js +0 -1
  155. package/dist/q2-tecton-elements/p-6702eb4d.entry.js +0 -1
  156. package/dist/q2-tecton-elements/p-768e3a5d.entry.js +0 -1
  157. package/dist/q2-tecton-elements/p-943c7745.entry.js +0 -1
  158. package/dist/q2-tecton-elements/p-95a73559.entry.js +0 -1
  159. package/dist/q2-tecton-elements/p-ac859fcc.entry.js +0 -1
  160. package/dist/q2-tecton-elements/p-ccbe9158.entry.js +0 -1
  161. package/dist/q2-tecton-elements/p-db6f90ac.entry.js +0 -1
  162. package/dist/q2-tecton-elements/p-fa6eea5c.entry.js +0 -1
@@ -1 +1 @@
1
- import{r as t,h as o,F as r,g as e}from"./p-080839ed.js";import{s as i,h as n,i as s,o as a,l as d}from"./p-37aba2a4.js";const l=class{constructor(o){t(this,o),this.type="icon",this.dropdownOpen=!1,this.scheduledAfterRender=[],this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])",this.focusToggle=()=>{const t=this.hostElement.shadowRoot.querySelector(".dropdown-button");t&&t.dispatchEvent(new FocusEvent("focus"))},this.openDropdown=()=>{i(this),this.dropdownOpen||(this.dropdownOpen=!0,this.scheduledAfterRender.push(this.resizeIframe))},this.closeDropdown=()=>{this.dropdownOpen&&(this.dropdownOpen=!1,this.scheduledAfterRender.push((()=>{this.resizeIframe()})))},this.onClickElsewhere=t=>{"click-elsewhere"===t.target.localName&&(t.stopPropagation(),this.closeDropdown())},this.onToggleClick=()=>{if(this.dropdownOpen)return this.focusToggle(),void this.closeDropdown();this.focusToggle(),this.openDropdown()},this.onToggleKeydown=t=>["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusLastItem()):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusFirstItem()):["Escape","Esc"].includes(t.key)?(t.preventDefault(),this.focusToggle(),void this.closeDropdown()):void 0,this.onDropdownMenuClick=t=>{if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;o.disabled||o.separator||(this.focusToggle(),this.closeDropdown())},this.onDropdownMenuKeydown=t=>{if(["Escape","Esc"].includes(t.key))return this.closeDropdown(),void this.focusToggle();if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;return["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"prev")):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"next")):void 0}}resizeIframe(){return window.TectonElements&&window.TectonElements.resizeIframe&&window.TectonElements.resizeIframe()}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType)}orchestrateResolvedMenuItems(){this.name&&this.context?this.resolveMenuItemElements().then((t=>{this.removeResolvedElements(),t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{throw this.removeResolvedElements(),t})):this.removeResolvedElements()}removeResolvedElements(){this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item").forEach((t=>this.hostElement.removeChild(t)))}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let o,r;switch(t["tct-ctxid"]&&(r={},r[t.contextIdParamName]=t["tct-ctxid"]),t.action){case"navigateTo":o=()=>this.navigateTo(t.featureName,t.moduleName,r);break;case"showOverpanel":o=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,r)}const e=document.createElement("q2-dropdown-item");return e.setAttribute("value",t.itemLabel),e.classList.add("resolved-menu-item"),e.innerHTML=t.itemLabel,e.onclick=o,e}))))}navigateTo(t,o,r){return window.TectonElements&&window.TectonElements.navigateTo(t,o,r)}showOverpanel(t,o){return window.TectonElements&&window.TectonElements.showOverpanel(t,o,void 0,!0)}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get toggleButtonProps(){const t=["primary","secondary","neutral"],o=["icon","fab","custom",...t].includes(this.type)?this.type:"",r="icon"===o,e="fab"===o,i="custom"===o;let n;return t.includes(o)&&(n="neutral"===o?o:`workflow-${o}`),{icon:r,fab:e,intent:n,active:this.dropdownOpen,disabled:!!this.disabled,ariaExpanded:this.dropdownOpen,className:"dropdown-button"+(r||e||n?"":" unstyled"),custom:i}}ariaLabelObserver(){n(this)}nameHandler(){this.orchestrateResolvedMenuItems()}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}delegateFocus(t){s(t,this.hostElement)&&this.controlElement.shadowRoot.querySelector("button").focus()}componentWillLoad(){n(this)}componentDidLoad(){this.orchestrateResolvedMenuItems(),a(this.hostElement)}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}),25)}focusFirstItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusLastItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,o){const r=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector)),e=r.indexOf(t);if(-1===e)return;let i=0;"next"===o?i=e<r.length-1?e+1:0:"prev"===o&&(i=e>0?e-1:r.length-1);const n=r[i];n&&n.dispatchEvent(new Event("focus"))}render(){const t=this.toggleButtonProps;return o("click-elsewhere",{class:"dropdown-container"+(this.dropdownOpen?" dropdown-open":""),onChange:this.onClickElsewhere},o("q2-btn",{ref:t=>this.controlElement=t,class:t.className,onClick:this.onToggleClick,onKeyDown:this.onToggleKeydown,fab:t.fab,intent:t.intent,active:t.active,disabled:t.disabled,ariaExpanded:t.ariaExpanded,label:this.hideLabel&&this.label?d(this.label):void 0,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton"},this.hasCustomButton?o("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},o("slot",{name:"custom-dropdown-button"})):o(r,null,this.icon?o("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&o("span",{class:"dropdown-button-text"},d(this.label)))),o("div",{ref:t=>this.dropdownContainer=t,class:"q2-element-dropdown "+("up"===this.privatePopDirection?"dropup":""),role:"menu",onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown},o("div",null,o("slot",null),this.dropdownOpen&&o("q2-btn",{class:"sr close-dropdown",onFocus:this.closeDropdown}))))}get hostElement(){return e(this)}static get watchers(){return{ariaLabel:["ariaLabelObserver"],name:["nameHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],resolvedType:["resolvedTypeHandler"]}}};l.style="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-global-focus)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white);color:var(--t-font-color);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1);height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host{display:inline-flex}.dropdown-container{position:relative;display:block}.dropdown-button-content{display:flex;align-items:center}.dropdown-button.unstyled .dropdown-button-content{padding:var(--tct-scale-2, var(--app-scale-2, 10px)) var(--tct-scale-1, var(--app-scale-1, 5px))}.q2-element-dropdown{width:var(--tct-dropdown-width, var(--t-dropdown-width, 175px))}.q2-element-dropdown.dropup{bottom:var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px))}q2-btn[color=primary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-primary]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-primary-border-width, var(--t-btn-primary-border-width, 0)))}q2-btn[color=secondary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-secondary]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-secondary-border-width, var(--t-btn-secondary-border-width, 0)))}q2-btn[intent=neutral]~.q2-element-dropdown.dropup{bottom:calc(var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px)) + var(--tct-btn-neutral-border-width, var(--t-btn-neutral-border-width, 0)))}";export{l as q2_dropdown}
1
+ import{r as t,h as o,F as r,g as e}from"./p-080839ed.js";import{s as i,h as s,i as n,o as a,l as d}from"./p-c3d68d5c.js";const l=class{constructor(o){t(this,o),this.type="icon",this.dropdownOpen=!1,this.scheduledAfterRender=[],this.dropdownItemSelector="q2-dropdown-item:not([disabled]):not([separator])",this.focusToggle=()=>{const t=this.hostElement.shadowRoot.querySelector(".dropdown-button");t&&t.dispatchEvent(new FocusEvent("focus"))},this.openDropdown=()=>{i(this),this.dropdownOpen||(this.dropdownOpen=!0,this.scheduledAfterRender.push(this.resizeIframe))},this.closeDropdown=()=>{this.dropdownOpen&&(this.dropdownOpen=!1,this.scheduledAfterRender.push((()=>{this.resizeIframe()})))},this.onClickElsewhere=t=>{"click-elsewhere"===t.target.localName&&(t.stopPropagation(),this.closeDropdown())},this.onToggleClick=()=>{if(this.dropdownOpen)return this.focusToggle(),void this.closeDropdown();this.focusToggle(),this.openDropdown()},this.onToggleKeydown=t=>["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusLastItem()):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),this.openDropdown(),void this.focusFirstItem()):["Escape","Esc"].includes(t.key)?(t.preventDefault(),this.focusToggle(),void this.closeDropdown()):void 0,this.onDropdownMenuClick=t=>{if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;o.disabled||o.separator||(this.focusToggle(),this.closeDropdown())},this.onDropdownMenuKeydown=t=>{if(["Escape","Esc"].includes(t.key))return this.closeDropdown(),void this.focusToggle();if("q2-dropdown-item"!==t.target.localName)return;const o=t.target;return["ArrowUp","Up"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"prev")):["ArrowDown","Down"].includes(t.key)?(t.preventDefault(),void this.focusAdjacentItem(o,"next")):void 0}}resizeIframe(){return window.TectonElements&&window.TectonElements.resizeIframe&&window.TectonElements.resizeIframe()}resolveMenu(){return this.name&&window.TectonElements&&window.TectonElements.resolveMenu(this.name,this.contextValue,this.resolvedType)}orchestrateResolvedMenuItems(){this.name&&this.context?this.resolveMenuItemElements().then((t=>{this.removeResolvedElements(),t.forEach((t=>{this.hostElement.appendChild(t)}))})).catch((t=>{throw this.removeResolvedElements(),t})):this.removeResolvedElements()}removeResolvedElements(){this.hostElement.querySelectorAll("q2-dropdown-item.resolved-menu-item").forEach((t=>this.hostElement.removeChild(t)))}resolveMenuItemElements(){return this.resolveMenu().then((t=>t.map((t=>{let o,r;switch(t["tct-ctxid"]&&(r={},r[t.contextIdParamName]=t["tct-ctxid"]),t.action){case"navigateTo":o=()=>this.navigateTo(t.featureName,t.moduleName,r);break;case"showOverpanel":o=()=>this.showOverpanel(`${t.featureName}.${t.moduleName}`,r)}const e=document.createElement("q2-dropdown-item");return e.setAttribute("value",t.itemLabel),e.classList.add("resolved-menu-item"),e.innerHTML=t.itemLabel,e.onclick=o,e}))))}navigateTo(t,o,r){return window.TectonElements&&window.TectonElements.navigateTo(t,o,r)}showOverpanel(t,o){return window.TectonElements&&window.TectonElements.showOverpanel(t,o,void 0,!0)}get hasCustomButton(){return!!this.hostElement.querySelector("[slot=custom-dropdown-button]")}get toggleButtonProps(){const t=["primary","secondary","neutral"],o=["icon","fab","custom",...t].includes(this.type)?this.type:"",r="icon"===o,e="fab"===o,i="custom"===o;let s;return t.includes(o)&&(s="neutral"===o?o:`workflow-${o}`),{icon:r,fab:e,intent:s,active:this.dropdownOpen,disabled:!!this.disabled,ariaExpanded:this.dropdownOpen,className:"dropdown-button"+(r||e||s?"":" unstyled"),custom:i}}ariaLabelObserver(){s(this)}nameHandler(){this.orchestrateResolvedMenuItems()}contextHandler(){this.orchestrateResolvedMenuItems()}contextValueHandler(){this.orchestrateResolvedMenuItems()}resolvedTypeHandler(){this.orchestrateResolvedMenuItems()}delegateFocus(t){n(t,this.hostElement)&&this.controlElement.shadowRoot.querySelector("button").focus()}componentWillLoad(){s(this)}componentDidLoad(){this.orchestrateResolvedMenuItems(),a(this.hostElement)}componentDidRender(){setTimeout((()=>{this.scheduledAfterRender.forEach((t=>t())),this.scheduledAfterRender=[]}),25)}focusFirstItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusLastItem(){const t=this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);t&&t.dispatchEvent(new FocusEvent("focus"))}focusAdjacentItem(t,o){const r=Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector)),e=r.indexOf(t);if(-1===e)return;let i=0;"next"===o?i=e<r.length-1?e+1:0:"prev"===o&&(i=e>0?e-1:r.length-1);const s=r[i];s&&s.dispatchEvent(new Event("focus"))}render(){const t=this.toggleButtonProps;return o("click-elsewhere",{class:"dropdown-container"+(this.dropdownOpen?" dropdown-open":""),onChange:this.onClickElsewhere},o("q2-btn",{ref:t=>this.controlElement=t,class:t.className,onClick:this.onToggleClick,onKeyDown:this.onToggleKeydown,fab:t.fab,intent:t.intent,active:t.active,disabled:t.disabled,ariaExpanded:t.ariaExpanded,label:this.hideLabel&&this.label?d(this.label):void 0,hideLabel:this.hideLabel,ariaHasPopup:"menu","test-id":"dropdownButton"},this.hasCustomButton?o("div",{"test-id":"dropdownCustom",class:t.custom?"":"hidden"},o("slot",{name:"custom-dropdown-button"})):o(r,null,this.icon?o("q2-icon",{type:this.icon}):" ",this.label&&!this.hideLabel&&o("span",{class:"dropdown-button-text"},d(this.label)))),o("div",{ref:t=>this.dropdownContainer=t,class:"q2-element-dropdown "+("up"===this.privatePopDirection?"dropup":""),role:"menu",onClick:this.onDropdownMenuClick,onKeyDown:this.onDropdownMenuKeydown},o("div",null,o("slot",null),this.dropdownOpen&&o("q2-btn",{class:"sr close-dropdown",onFocus:this.closeDropdown}))))}get hostElement(){return e(this)}static get watchers(){return{ariaLabel:["ariaLabelObserver"],name:["nameHandler"],context:["contextHandler"],contextValue:["contextValueHandler"],resolvedType:["resolvedTypeHandler"]}}};l.style="*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-global-focus)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit}:host(.sr),:host(.sr) button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sr,.sr button{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.hidden{display:none}:host([hidden]){display:none}.invisible{visibility:hidden}.q2-element-dropdown{display:none;position:absolute;background-color:var(--app-white);color:var(--t-font-color);left:0;width:100%;z-index:100;margin-top:1px;box-shadow:var(--app-shadow-1);height:0;overflow:hidden;opacity:0;visibility:hidden;transition:opacity var(--app-tween-1);border-radius:var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}.q2-element-dropdown::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}.q2-element-dropdown::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.q2-element-dropdown.sizable{display:block;height:auto}.dropdown-open .q2-element-dropdown{display:block;height:auto;overflow:auto;opacity:1;visibility:visible}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host{display:inline-flex}.dropdown-container{position:relative;display:block}.dropdown-button-content{display:flex;align-items:center}.dropdown-button.unstyled .dropdown-button-content{padding:var(--tct-scale-2, var(--app-scale-2, 10px)) var(--tct-scale-1, var(--app-scale-1, 5px))}.q2-element-dropdown{width:var(--tct-dropdown-width, var(--t-dropdown-width, 175px))}.q2-element-dropdown.dropup{bottom:var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px))}q2-btn[color=primary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-primary]~.q2-element-dropdown.dropup{bottom:calc( var-list(var-prefixer(btn-icon-height), 44px) + var-list(var-prefixer(btn-primary-border-width), 0) )}q2-btn[color=secondary]~.q2-element-dropdown.dropup,q2-btn[intent=workflow-secondary]~.q2-element-dropdown.dropup{bottom:calc( var-list(var-prefixer(btn-icon-height), 44px) + var-list(var-prefixer(btn-secondary-border-width), 0) )}q2-btn[intent=neutral]~.q2-element-dropdown.dropup{bottom:calc( var-list(var-prefixer(btn-icon-height), 44px) + var-list(var-prefixer(btn-neutral-border-width), 0) )}";export{l as q2_dropdown}