q2-tecton-elements 1.10.6 → 1.10.9

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 (189) hide show
  1. package/dist/cjs/{index-f4153f5a.js → index-a55d3c34.js} +9 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/q2-btn_2.cjs.entry.js +10 -6
  4. package/dist/cjs/q2-calendar.cjs.entry.js +2902 -6078
  5. package/dist/cjs/q2-carousel-pane.cjs.entry.js +50 -7
  6. package/dist/cjs/q2-carousel.cjs.entry.js +2719 -6513
  7. package/dist/cjs/q2-checkbox-group.cjs.entry.js +2 -2
  8. package/dist/cjs/q2-checkbox.cjs.entry.js +10 -2
  9. package/dist/cjs/q2-dropdown-item.cjs.entry.js +2 -2
  10. package/dist/cjs/q2-dropdown.cjs.entry.js +8 -2
  11. package/dist/cjs/q2-editable-field.cjs.entry.js +26 -11
  12. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-input.cjs.entry.js +9 -7
  14. package/dist/cjs/q2-loading-element.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-message.cjs.entry.js +11 -3
  17. package/dist/cjs/q2-optgroup.cjs.entry.js +2 -2
  18. package/dist/cjs/q2-option.cjs.entry.js +3 -34
  19. package/dist/cjs/q2-radio-group.cjs.entry.js +10 -2
  20. package/dist/cjs/q2-radio.cjs.entry.js +10 -2
  21. package/dist/cjs/q2-section.cjs.entry.js +9 -3
  22. package/dist/cjs/q2-select.cjs.entry.js +175 -130
  23. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-stepper.cjs.entry.js +10 -4
  25. package/dist/cjs/q2-tab-container.cjs.entry.js +9 -11
  26. package/dist/cjs/q2-tab-pane.cjs.entry.js +2 -2
  27. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  28. package/dist/cjs/q2-textarea.cjs.entry.js +8 -4
  29. package/dist/cjs/tecton-tab-pane.cjs.entry.js +2 -2
  30. package/dist/collection/components/q2-avatar/index.js +1 -1
  31. package/dist/collection/components/q2-avatar/styles.css +63 -61
  32. package/dist/collection/components/q2-btn/index.js +8 -4
  33. package/dist/collection/components/q2-btn/styles.css +96 -96
  34. package/dist/collection/components/q2-calendar/helpers.js +77 -52
  35. package/dist/collection/components/q2-calendar/index.js +248 -196
  36. package/dist/collection/components/q2-calendar/styles.css +63 -84
  37. package/dist/collection/components/q2-calendar/validation.js +100 -166
  38. package/dist/collection/components/q2-carousel/index.js +204 -266
  39. package/dist/collection/components/q2-carousel/styles.css +152 -155
  40. package/dist/collection/components/q2-carousel-pane/index.js +67 -28
  41. package/dist/collection/components/q2-carousel-pane/styles.css +82 -16
  42. package/dist/collection/components/q2-checkbox/index.js +16 -2
  43. package/dist/collection/components/q2-checkbox/styles.css +152 -176
  44. package/dist/collection/components/q2-checkbox-group/index.js +1 -1
  45. package/dist/collection/components/q2-checkbox-group/styles.css +65 -81
  46. package/dist/collection/components/q2-dropdown/index.js +15 -2
  47. package/dist/collection/components/q2-dropdown/styles.css +49 -36
  48. package/dist/collection/components/q2-dropdown-item/index.js +1 -1
  49. package/dist/collection/components/q2-dropdown-item/styles.css +48 -62
  50. package/dist/collection/components/q2-editable-field/index.js +33 -12
  51. package/dist/collection/components/q2-editable-field/styles.css +49 -50
  52. package/dist/collection/components/q2-icon/styles.css +29 -29
  53. package/dist/collection/components/q2-input/index.js +9 -7
  54. package/dist/collection/components/q2-input/styles.css +211 -292
  55. package/dist/collection/components/q2-loading/index.js +1 -1
  56. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/index.js +1 -1
  57. package/dist/collection/components/q2-loading/skeleton/q2-loading-element/styles.css +5 -6
  58. package/dist/collection/components/q2-loading/styles.css +130 -136
  59. package/dist/collection/components/q2-loc/index.js +1 -1
  60. package/dist/collection/components/q2-loc/styles.css +30 -31
  61. package/dist/collection/components/q2-message/index.js +18 -3
  62. package/dist/collection/components/q2-message/styles.css +32 -29
  63. package/dist/collection/components/q2-optgroup/index.js +1 -1
  64. package/dist/collection/components/q2-optgroup/styles.css +42 -47
  65. package/dist/collection/components/q2-option/index.js +4 -42
  66. package/dist/collection/components/q2-option/styles.css +29 -29
  67. package/dist/collection/components/q2-radio/index.js +16 -2
  68. package/dist/collection/components/q2-radio/styles.css +29 -29
  69. package/dist/collection/components/q2-radio-group/index.js +16 -2
  70. package/dist/collection/components/q2-radio-group/styles.css +67 -72
  71. package/dist/collection/components/q2-section/index.js +15 -3
  72. package/dist/collection/components/q2-section/styles.css +77 -77
  73. package/dist/collection/components/q2-select/index.js +182 -131
  74. package/dist/collection/components/q2-select/styles.css +33 -34
  75. package/dist/collection/components/q2-stepper/index.js +15 -3
  76. package/dist/collection/components/q2-stepper/styles.css +32 -32
  77. package/dist/collection/components/q2-stepper-pane/styles.css +29 -29
  78. package/dist/collection/components/q2-tab-container/index.js +7 -9
  79. package/dist/collection/components/q2-tab-container/styles.css +29 -29
  80. package/dist/collection/components/q2-tab-pane/index.js +2 -2
  81. package/dist/collection/components/q2-tab-pane/styles.css +34 -36
  82. package/dist/collection/components/q2-textarea/index.js +8 -4
  83. package/dist/collection/components/q2-textarea/styles.css +180 -228
  84. package/dist/collection/components/tecton-tab-pane/index.js +2 -2
  85. package/dist/collection/components/tecton-tab-pane/styles.css +50 -50
  86. package/dist/collection/utils/index.js +7 -0
  87. package/dist/esm/{index-476b86cc.js → index-ec6660af.js} +8 -1
  88. package/dist/esm/loader.js +1 -1
  89. package/dist/esm/q2-btn_2.entry.js +10 -6
  90. package/dist/esm/q2-calendar.entry.js +2902 -6078
  91. package/dist/esm/q2-carousel-pane.entry.js +51 -8
  92. package/dist/esm/q2-carousel.entry.js +2720 -6514
  93. package/dist/esm/q2-checkbox-group.entry.js +2 -2
  94. package/dist/esm/q2-checkbox.entry.js +10 -2
  95. package/dist/esm/q2-dropdown-item.entry.js +2 -2
  96. package/dist/esm/q2-dropdown.entry.js +8 -2
  97. package/dist/esm/q2-editable-field.entry.js +26 -11
  98. package/dist/esm/q2-icon.entry.js +1 -1
  99. package/dist/esm/q2-input.entry.js +9 -7
  100. package/dist/esm/q2-loading-element.entry.js +1 -1
  101. package/dist/esm/q2-loc.entry.js +1 -1
  102. package/dist/esm/q2-message.entry.js +11 -3
  103. package/dist/esm/q2-optgroup.entry.js +2 -2
  104. package/dist/esm/q2-option.entry.js +4 -35
  105. package/dist/esm/q2-radio-group.entry.js +10 -2
  106. package/dist/esm/q2-radio.entry.js +10 -2
  107. package/dist/esm/q2-section.entry.js +9 -3
  108. package/dist/esm/q2-select.entry.js +175 -130
  109. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  110. package/dist/esm/q2-stepper.entry.js +10 -4
  111. package/dist/esm/q2-tab-container.entry.js +7 -9
  112. package/dist/esm/q2-tab-pane.entry.js +2 -2
  113. package/dist/esm/q2-tecton-elements.js +1 -1
  114. package/dist/esm/q2-textarea.entry.js +8 -4
  115. package/dist/esm/tecton-tab-pane.entry.js +2 -2
  116. package/dist/q2-tecton-elements/{p-4830affe.entry.js → p-07a5d703.entry.js} +1 -1
  117. package/dist/q2-tecton-elements/{p-84c05db6.entry.js → p-32ad664c.entry.js} +1 -1
  118. package/dist/q2-tecton-elements/p-37aba2a4.js +1 -0
  119. package/dist/q2-tecton-elements/p-4ae9d1f3.entry.js +1 -0
  120. package/dist/q2-tecton-elements/p-52f53e07.entry.js +1 -0
  121. package/dist/q2-tecton-elements/p-5559f126.entry.js +1 -0
  122. package/dist/q2-tecton-elements/p-6702eb4d.entry.js +1 -0
  123. package/dist/q2-tecton-elements/p-750bcd33.entry.js +1 -0
  124. package/dist/q2-tecton-elements/p-78642b7b.entry.js +1 -0
  125. package/dist/q2-tecton-elements/p-7e6fc65d.entry.js +1 -0
  126. package/dist/q2-tecton-elements/p-7eb39c90.entry.js +1 -0
  127. package/dist/q2-tecton-elements/p-81df91a1.entry.js +1 -0
  128. package/dist/q2-tecton-elements/{p-01e00610.entry.js → p-843b1ee9.entry.js} +1 -1
  129. package/dist/q2-tecton-elements/p-8509b171.entry.js +1 -0
  130. package/dist/q2-tecton-elements/p-8ea2c4f7.entry.js +1 -0
  131. package/dist/q2-tecton-elements/{p-d1d040ef.entry.js → p-95a73559.entry.js} +1 -1
  132. package/dist/q2-tecton-elements/p-96c9eb75.entry.js +1 -0
  133. package/dist/q2-tecton-elements/p-9b50c3c3.entry.js +1 -0
  134. package/dist/q2-tecton-elements/{p-a9bdd814.entry.js → p-a6f8d09a.entry.js} +1 -1
  135. package/dist/q2-tecton-elements/p-ab977515.entry.js +1 -0
  136. package/dist/q2-tecton-elements/{p-a166b9a6.entry.js → p-bb2e110a.entry.js} +1 -1
  137. package/dist/q2-tecton-elements/p-bbacb804.entry.js +1 -0
  138. package/dist/q2-tecton-elements/p-c555f1de.entry.js +1 -0
  139. package/dist/q2-tecton-elements/p-c5e55b9f.entry.js +1 -0
  140. package/dist/q2-tecton-elements/p-fa6eea5c.entry.js +1 -0
  141. package/dist/q2-tecton-elements/{p-61c0e5fd.entry.js → p-fbf7c5e6.entry.js} +1 -1
  142. package/dist/q2-tecton-elements/p-fc804ebd.entry.js +1 -0
  143. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  144. package/dist/test/helpers.js +4 -0
  145. package/dist/types/components/q2-btn/index.d.ts +1 -0
  146. package/dist/types/components/q2-calendar/helpers.d.ts +6 -6
  147. package/dist/types/components/q2-calendar/index.d.ts +16 -17
  148. package/dist/types/components/q2-calendar/types.d.ts +9 -26
  149. package/dist/types/components/q2-calendar/validation.d.ts +27 -12
  150. package/dist/types/components/q2-carousel/index.d.ts +15 -45
  151. package/dist/types/components/q2-carousel-pane/index.d.ts +5 -2
  152. package/dist/types/components/q2-checkbox/index.d.ts +2 -0
  153. package/dist/types/components/q2-dropdown/index.d.ts +1 -0
  154. package/dist/types/components/q2-editable-field/index.d.ts +5 -1
  155. package/dist/types/components/q2-input/index.d.ts +1 -1
  156. package/dist/types/components/q2-message/index.d.ts +2 -0
  157. package/dist/types/components/q2-option/index.d.ts +0 -4
  158. package/dist/types/components/q2-radio/index.d.ts +3 -0
  159. package/dist/types/components/q2-radio-group/index.d.ts +1 -0
  160. package/dist/types/components/q2-section/index.d.ts +1 -0
  161. package/dist/types/components/q2-select/index.d.ts +10 -7
  162. package/dist/types/components/q2-stepper/index.d.ts +2 -1
  163. package/dist/types/components/q2-tab-container/index.d.ts +1 -1
  164. package/dist/types/components/q2-textarea/index.d.ts +2 -1
  165. package/dist/types/components.d.ts +3 -2
  166. package/dist/types/util.d.ts +2 -1
  167. package/dist/types/utils/index.d.ts +2 -0
  168. package/dist/types/workspace/workspace/tecton-production_release_1.10.x/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +2 -1
  169. package/package.json +4 -5
  170. package/dist/q2-tecton-elements/p-1fc4e6f6.entry.js +0 -1
  171. package/dist/q2-tecton-elements/p-25a5f691.js +0 -1
  172. package/dist/q2-tecton-elements/p-27353237.entry.js +0 -1
  173. package/dist/q2-tecton-elements/p-3e100450.entry.js +0 -1
  174. package/dist/q2-tecton-elements/p-428d15fd.entry.js +0 -1
  175. package/dist/q2-tecton-elements/p-48fc317d.entry.js +0 -1
  176. package/dist/q2-tecton-elements/p-5222b792.entry.js +0 -1
  177. package/dist/q2-tecton-elements/p-5469c1e9.entry.js +0 -1
  178. package/dist/q2-tecton-elements/p-74c1a311.entry.js +0 -1
  179. package/dist/q2-tecton-elements/p-784af485.entry.js +0 -1
  180. package/dist/q2-tecton-elements/p-7c99a58b.entry.js +0 -1
  181. package/dist/q2-tecton-elements/p-7f74b629.entry.js +0 -1
  182. package/dist/q2-tecton-elements/p-831a461f.entry.js +0 -1
  183. package/dist/q2-tecton-elements/p-84c52d3b.entry.js +0 -9
  184. package/dist/q2-tecton-elements/p-997e4c7e.entry.js +0 -1
  185. package/dist/q2-tecton-elements/p-a224bc9c.entry.js +0 -1
  186. package/dist/q2-tecton-elements/p-d893fcf2.entry.js +0 -1
  187. package/dist/q2-tecton-elements/p-da7cca07.entry.js +0 -1
  188. package/dist/q2-tecton-elements/p-f17761da.entry.js +0 -1
  189. package/dist/q2-tecton-elements/p-f5e074f8.entry.js +0 -1
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2e53804.js');
6
- const index$1 = require('./index-f4153f5a.js');
6
+ const index$1 = require('./index-a55d3c34.js');
7
7
 
8
- const stylesCss = "*{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}@keyframes expandVertical{0%{height:0}}@keyframes collapseVertical{100%{height:0}}:host{display:block;background-color:var(--tct-section-bg, var(--t-section-bg, var(--tct-white, var(--app-white, #ffffff))));color:var(--tct-section-font-color, var(--t-section-font-color, #2e2e2e));border-radius:var(--tct-section-border-radius, var(--t-section-border-radius, 3px));margin:var(--tct-scale-3, var(--app-scale-3, 15px))}@media screen and (max-width: 767px){:host{margin:var(--tct-scale-3, var(--app-scale-3, 15px)) 0}}.q2-section-wrapper{display:block;padding:var(--tct-scale-1, var(--app-scale-1, 5px)) 0}.q2-section-wrapper:hover{box-shadow:var(--tct-section-wrapper-hover-box-shadow, inherit)}.q2-section-header{padding:0 var(--tct-scale-3, var(--app-scale-3, 15px));display:flex}.has-header .q2-section-header{min-height:44px}.q2-section-header-content{flex:1 1 100%;min-width:0;align-self:center}.collapsible .q2-section-header-content{cursor:pointer}.title{margin:0;font-size:20px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}.toggle-icon{transition:transform var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}.collapsed .toggle-icon{transform:rotate(180deg)}.q2-section-content-wrapper{height:auto}.q2-section-content{padding:var(--tct-scale-2, var(--app-scale-2, 10px))\n var(--tct-scale-3, var(--app-scale-3, 15px))}.expanded.animate .q2-section-content-wrapper{animation:expandVertical var(--tct-tween-2, var(--app-tween-2, 0.4s ease)) forwards}.collapsed .q2-section-content-wrapper{height:0;animation:collapseVertical 0s forwards;animation-duration:0;padding-top:0;visibility:hidden;overflow:hidden}.collapsed.animate .q2-section-content-wrapper{animation:collapseVertical var(--tct-tween-1, var(--app-tween-1, 0.2s ease)) forwards}.animate .q2-section-content-wrapper{overflow:hidden}";
8
+ const stylesCss = "*{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}@keyframes expandVertical{0%{height:0}}@keyframes collapseVertical{100%{height:0}}:host{display:block;background-color:var(--tct-section-bg, var(--t-section-bg, var(--tct-white, var(--app-white, #ffffff))));color:var(--tct-section-font-color, var(--t-section-font-color, #2e2e2e));border-radius:var(--tct-section-border-radius, var(--t-section-border-radius, 3px));margin:var(--tct-scale-3, var(--app-scale-3, 15px))}@media screen and (max-width: 767px){:host{margin:var(--tct-scale-3, var(--app-scale-3, 15px)) 0}}.q2-section-wrapper{display:block;padding:var(--tct-scale-1, var(--app-scale-1, 5px)) 0}.q2-section-wrapper:hover{box-shadow:var(--tct-section-wrapper-hover-box-shadow, inherit)}.q2-section-header{padding:0 var(--tct-scale-3, var(--app-scale-3, 15px));display:flex}.has-header .q2-section-header{min-height:44px}.q2-section-header-content{flex:1 1 100%;min-width:0;align-self:center}.collapsible .q2-section-header-content{cursor:pointer}.title{margin:0;font-size:20px;font-weight:600;text-transform:uppercase;letter-spacing:0.5px}.toggle-icon{transition:transform var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}.collapsed .toggle-icon{transform:rotate(180deg)}.q2-section-content-wrapper{height:auto}.q2-section-content{padding:var(--tct-scale-2, var(--app-scale-2, 10px)) var(--tct-scale-3, var(--app-scale-3, 15px))}.q2-section-content:focus{box-shadow:none}.expanded.animate .q2-section-content-wrapper{animation:expandVertical var(--tct-tween-2, var(--app-tween-2, 0.4s ease)) forwards}.collapsed .q2-section-content-wrapper{height:0;animation:collapseVertical 0s forwards;animation-duration:0;padding-top:0;visibility:hidden;overflow:hidden}.collapsed.animate .q2-section-content-wrapper{animation:collapseVertical var(--tct-tween-1, var(--app-tween-1, 0.2s ease)) forwards}.animate .q2-section-content-wrapper{overflow:hidden}";
9
9
 
10
10
  const Q2Section = class {
11
11
  constructor(hostRef) {
@@ -98,6 +98,7 @@ const Q2Section = class {
98
98
  componentDidLoad() {
99
99
  this.addHeaderSlotListener();
100
100
  this.addContentSlotListener();
101
+ index$1.overrideFocus(this.hostElement);
101
102
  }
102
103
  disconnectedCallback() {
103
104
  this.removeHeaderSlotListener();
@@ -136,6 +137,11 @@ const Q2Section = class {
136
137
  this.expanded = event.detail.expanded;
137
138
  }
138
139
  }
140
+ delegateFocus(event) {
141
+ if (!index$1.isEventFromElement(event, this.hostElement))
142
+ return;
143
+ this.contentContainer.focus();
144
+ }
139
145
  //////// Observers //////////
140
146
  expandedObserver() {
141
147
  if (this.collapsible) {
@@ -155,7 +161,7 @@ const Q2Section = class {
155
161
  }
156
162
  }
157
163
  render() {
158
- return (index.h("section", { class: this.wrapperClasses }, index.h("div", { class: "q2-section-header" }, index.h("div", { class: "q2-section-header-content", id: this.titleId, onClick: this.onHeaderClick }, !this.hasYieldedHeader && !!this.label ? (index.h("h2", { class: "title" }, index$1.loc(this.label))) : (''), index.h("div", { class: "q2-section-header-slot-wrapper" }, index.h("slot", { name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon ? (index.h("q2-btn", { class: `q2-section-content-toggle ${this.expanded ? 'expanded' : 'collapsed'}`, label: this.label, ariaExpanded: !!this.expanded, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, index.h("q2-icon", { type: "chevron-up", class: "toggle-icon" }))) : ('')), index.h("div", { class: "q2-section-content-wrapper", id: this.contentId, "aria-labelledby": this.titleId, role: "region", onAnimationStart: this.onAnimationStart, onAnimationEnd: this.onAnimationEnd }, index.h("div", { class: "q2-section-content" }, index.h("slot", null)))));
164
+ return (index.h("section", { class: this.wrapperClasses }, index.h("div", { class: "q2-section-header" }, index.h("div", { class: "q2-section-header-content", id: this.titleId, onClick: this.onHeaderClick }, !this.hasYieldedHeader && !!this.label ? (index.h("h2", { class: "title" }, index$1.loc(this.label))) : (''), index.h("div", { class: "q2-section-header-slot-wrapper" }, index.h("slot", { name: "q2-section-header" }))), this.collapsible && !this.noCollapseIcon ? (index.h("q2-btn", { class: `q2-section-content-toggle ${this.expanded ? 'expanded' : 'collapsed'}`, label: this.label, ariaExpanded: !!this.expanded, ariaControls: this.contentId, "test-id": "toggleButton", "hide-label": true, onClick: this.onHeaderClick }, index.h("q2-icon", { type: "chevron-up", class: "toggle-icon" }))) : ('')), index.h("div", { class: "q2-section-content-wrapper", id: this.contentId, "aria-labelledby": this.titleId, role: "region", onAnimationStart: this.onAnimationStart, onAnimationEnd: this.onAnimationEnd }, index.h("div", { class: "q2-section-content", tabindex: "-1" }, index.h("slot", null)))));
159
165
  }
160
166
  get hostElement() { return index.getElement(this); }
161
167
  static get watchers() { return {
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2e53804.js');
6
- const index$1 = require('./index-f4153f5a.js');
6
+ const index$1 = require('./index-a55d3c34.js');
7
7
 
8
- const stylesCss = "*{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-element-br, 0);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--app-scale-1x, 5px));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--app-border-radius-1, 3px));--comp-scrollbar-color:var(--tct-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;margin-bottom:var(--app-scale-2)}:host([alignment=right]) .q2-element-dropdown{left:auto;right:0}:host{display:block;margin-top:var(--tct-select-margin-top, var(--app-scale-4, 30px));margin-bottom:var(--tct-select-margin-bottom, var(--app-scale-4, 30px))}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0}.custom-display-content{position:absolute;bottom:0;left:calc(var-list(--tct-scale-2, --app-scale-2, 10px) + 1px);height:44px;width:calc(100% - 34px - var-list(--tct-scale-3, --app-scale-3, 15px));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var-list(--tct-scale-3, --app-scale-3, 15px) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var-list(--tct-scale-3, --app-scale-3, 15px))}.dropdown-open .q2-select-dropdown{overflow-y:auto;max-height:300px}.multi-select-header{padding:var(--tct-scale-1, var(--app-scale-1, 5px)) var(--tct-scale-2, var(--app-scale-2, 10px))}.show-all-options{margin-right:var(--tct-scale-1, var(--app-scale-1, 5px));margin-left:var(--tct-scale-2, var(--app-scale-2, 10px))}.q2-element-dropdown.dropup{bottom:40px}";
8
+ const stylesCss = "*{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:block;margin-top:var(--tct-select-margin-top, var(--app-scale-4, 30px));margin-bottom:var(--tct-select-margin-bottom, var(--app-scale-4, 30px))}.q2-select-container{position:relative;display:block}.q2-select-input{margin:0}.custom-display-content{position:absolute;bottom:0;left:calc(var-list(--tct-scale-2, --app-scale-2, 10px) + 1px);height:44px;width:calc(100% - 34px - var-list(--tct-scale-3, --app-scale-3, 15px));overflow:hidden;cursor:pointer;transition:left var(--tct-tween-2, var(--app-tween-1, 0.2s ease))}.custom-display-content:not([hidden]){display:flex;align-items:center}.is-searchable.is-focused .custom-display-content,.is-searchable .custom-display-content:active{left:calc(var-list(--tct-scale-3, --app-scale-3, 15px) + 1px)}.has-error .custom-display-content{width:calc(100% - 68px - var-list(--tct-scale-3, --app-scale-3, 15px))}.dropdown-open .q2-select-dropdown{overflow-y:auto;max-height:300px}.multi-select-header{padding:var(--tct-scale-1, var(--app-scale-1, 5px)) var(--tct-scale-2, var(--app-scale-2, 10px))}.show-all-options{margin-right:var(--tct-scale-1, var(--app-scale-1, 5px));margin-left:var(--tct-scale-2, var(--app-scale-2, 10px))}.q2-element-dropdown.dropup{bottom:40px}";
9
9
 
10
10
  const Q2Select = class {
11
11
  constructor(hostRef) {
@@ -92,6 +92,144 @@ const Q2Select = class {
92
92
  }
93
93
  };
94
94
  ////// ACTIONS ////////
95
+ this.dropdownFocusoutHandler = (event) => {
96
+ const { relatedTarget } = event;
97
+ const isInDropdown = this.dropdownContainer.contains(relatedTarget);
98
+ const isInLightDom = !isInDropdown && this.hostElement.contains(relatedTarget);
99
+ if (isInDropdown || isInLightDom)
100
+ return;
101
+ if (!this.dropdownOpen)
102
+ return;
103
+ this.closeDropdown();
104
+ };
105
+ this.dropdownKeydownHandler = (event) => {
106
+ event.stopPropagation();
107
+ const { activeIndex, searchable, optionElements, multiSelectHeader } = this;
108
+ const { key, shiftKey } = event;
109
+ if (multiSelectHeader &&
110
+ multiSelectHeader.contains(event.target) &&
111
+ [' ', 'Enter'].includes(key))
112
+ return;
113
+ switch (key) {
114
+ case ' ':
115
+ case 'Enter':
116
+ event.preventDefault();
117
+ event.stopPropagation();
118
+ const newOption = this.hostElement.querySelector(`[option-id="${this.activeOptionId}"]`);
119
+ if (!newOption || newOption.disabled)
120
+ break;
121
+ this.selectOption(newOption.value, true);
122
+ break;
123
+ case 'ArrowUp':
124
+ event.preventDefault();
125
+ const isFirstOption = activeIndex === 0;
126
+ if (isFirstOption)
127
+ break;
128
+ if (activeIndex !== undefined) {
129
+ const nextIndex = this.getNextVisibleIndex(-1);
130
+ if (nextIndex === -1)
131
+ break;
132
+ this.adjustActiveOptionAndScroll(nextIndex - activeIndex);
133
+ }
134
+ else {
135
+ this.setDefaultActiveElement();
136
+ }
137
+ break;
138
+ case 'ArrowDown':
139
+ event.preventDefault();
140
+ const isLastOption = activeIndex === optionElements.length - 1;
141
+ if (isLastOption)
142
+ break;
143
+ if (activeIndex !== undefined) {
144
+ const nextIndex = this.getNextVisibleIndex(1);
145
+ if (nextIndex === -1)
146
+ break;
147
+ this.adjustActiveOptionAndScroll(nextIndex - activeIndex);
148
+ }
149
+ else {
150
+ this.setDefaultActiveElement();
151
+ }
152
+ break;
153
+ case 'Home':
154
+ event.preventDefault();
155
+ this.openDropdownWithActiveElement(0);
156
+ break;
157
+ case 'End':
158
+ event.preventDefault();
159
+ this.openDropdownWithActiveElement(optionElements.length - 1);
160
+ break;
161
+ case 'PageUp':
162
+ event.preventDefault();
163
+ this.openDropdownWithActiveElement(Math.max(activeIndex - 10, 0));
164
+ break;
165
+ case 'PageDown':
166
+ event.preventDefault();
167
+ this.openDropdownWithActiveElement(Math.min(activeIndex + 10, optionElements.length - 1));
168
+ break;
169
+ case 'Tab':
170
+ if (shiftKey)
171
+ break;
172
+ const myOption = this.hostElement.querySelector(`[option-id="${this.activeOptionId}"]`);
173
+ if (!myOption || myOption.disabled)
174
+ return;
175
+ this.selectOption(myOption.value);
176
+ break;
177
+ case 'Esc':
178
+ case 'Escape':
179
+ this.closeDropdown();
180
+ this.focusInput();
181
+ break;
182
+ default:
183
+ if (searchable)
184
+ break;
185
+ if (!key.match(/^[A-Za-z0-9]$/))
186
+ break;
187
+ // search in non-searchable select: alpha-numeric only
188
+ this.searchAndFocus(key);
189
+ break;
190
+ }
191
+ };
192
+ this.inputKeydownHandler = (event) => {
193
+ const { key } = event;
194
+ const { optionElements, dropdownOpen, searchable } = this;
195
+ switch (key) {
196
+ case 'ArrowDown':
197
+ event.preventDefault();
198
+ this.openDropdownWithActiveElement(this.getDefaultActiveIndex());
199
+ break;
200
+ case 'ArrowUp':
201
+ event.preventDefault();
202
+ this.openDropdownWithActiveElement(this.getLastEnabledIndex());
203
+ this.setFocusedOption();
204
+ break;
205
+ case 'Home':
206
+ event.preventDefault();
207
+ this.openDropdownWithActiveElement(0);
208
+ break;
209
+ case 'End':
210
+ event.preventDefault();
211
+ this.openDropdownWithActiveElement(optionElements.length - 1);
212
+ break;
213
+ case 'Escape':
214
+ case 'Esc':
215
+ if (dropdownOpen) {
216
+ this.closeDropdown();
217
+ }
218
+ else {
219
+ this.searchText = '';
220
+ }
221
+ break;
222
+ default:
223
+ if (searchable) {
224
+ this.openDropdownWithoutActiveElement();
225
+ break;
226
+ }
227
+ if (!key.match(/^[A-Za-z0-9]$/))
228
+ break;
229
+ // search in non-searchable select: alpha-numeric only
230
+ this.searchAndFocus(key);
231
+ }
232
+ };
95
233
  this.inputClickHandler = (event) => {
96
234
  event.stopPropagation();
97
235
  index$1.setPopProperties(this);
@@ -100,32 +238,11 @@ const Q2Select = class {
100
238
  };
101
239
  this.inputInputHandler = (event) => {
102
240
  event.stopPropagation();
103
- if (!this.dropdownOpen) {
241
+ if (!this.dropdownOpen)
104
242
  this.openDropdownWithoutActiveElement();
105
- }
106
243
  this.searchText = event.detail.value;
107
244
  this.input.emit({ query: event.detail.value });
108
245
  };
109
- this.inputKeydownHandler = (event) => {
110
- if (event.key === 'Enter' && this.dropdownOpen) {
111
- event.preventDefault();
112
- const newOption = this.hostElement.querySelector(`[option-id="${this.activeOptionId}"]`);
113
- newOption && !newOption.disabled && this.selectOption(newOption.value);
114
- }
115
- if (['Escape', 'Esc'].includes(event.key)) {
116
- this.closeDropdown();
117
- this.focusInput();
118
- }
119
- if (event.key === 'Tab') {
120
- if (this.dropdownOpen && this.searchable && event.shiftKey) {
121
- event.preventDefault();
122
- this.focusInput();
123
- }
124
- else {
125
- this.dropdownOpen && !this.multiple && event.preventDefault();
126
- }
127
- }
128
- };
129
246
  this.inputFocusHandler = () => {
130
247
  this.inputFocused = true;
131
248
  };
@@ -135,16 +252,6 @@ const Q2Select = class {
135
252
  this.inputChangeHandler = (event) => {
136
253
  event.stopPropagation();
137
254
  };
138
- this.showAllOptionTabKeyDown = (event) => {
139
- if (event.key === 'Tab' && !event.shiftKey && this.selectedOptionsCount === 0) {
140
- event.preventDefault();
141
- }
142
- };
143
- this.showSelectedOptionTabKeyDown = (event) => {
144
- if (event.key === 'Tab' && !event.shiftKey) {
145
- event.preventDefault();
146
- }
147
- };
148
255
  this.clickedElsewhere = (event) => {
149
256
  const target = event.target;
150
257
  if (target.localName === 'click-elsewhere') {
@@ -154,13 +261,15 @@ const Q2Select = class {
154
261
  }
155
262
  }
156
263
  };
157
- this.showSelectedOptions = () => {
264
+ this.showSelectedOptions = (event) => {
265
+ event.stopImmediatePropagation();
158
266
  this.onlyShowingSelected = true;
159
267
  this.optionElements.forEach(optionElement => {
160
268
  optionElement._multiSelectHidden = !optionElement.selected;
161
269
  });
162
270
  };
163
- this.showAllOptions = () => {
271
+ this.showAllOptions = (event) => {
272
+ event.stopPropagation();
164
273
  this.onlyShowingSelected = false;
165
274
  this.optionElements.forEach(optionElement => {
166
275
  optionElement._multiSelectHidden = false;
@@ -187,12 +296,20 @@ const Q2Select = class {
187
296
  else
188
297
  return 0;
189
298
  }
299
+ getLastEnabledIndex() {
300
+ const enabledIndexes = this.optionElements.reduce((acc, element, index) => {
301
+ if (!element.hidden && !element.disabled)
302
+ acc.push(index);
303
+ return acc;
304
+ }, []);
305
+ return enabledIndexes[enabledIndexes.length - 1];
306
+ }
190
307
  setActiveOption() {
191
- if (!this.dropdownOpen) {
308
+ if (!this.dropdownOpen)
192
309
  return;
193
- }
310
+ const activeIndex = this.activeIndex;
194
311
  this.optionElements.forEach((element, elementIndex) => {
195
- if (this.activeIndex === elementIndex) {
312
+ if (activeIndex === elementIndex) {
196
313
  element.active = true;
197
314
  this.activeOptionId = element.optionId;
198
315
  }
@@ -203,6 +320,8 @@ const Q2Select = class {
203
320
  }
204
321
  setFocusedOption() {
205
322
  const option = this.optionElements[this.activeIndex];
323
+ if (!option)
324
+ return;
206
325
  option.dispatchEvent(new FocusEvent('focus'));
207
326
  option.focus();
208
327
  }
@@ -240,7 +359,7 @@ const Q2Select = class {
240
359
  if (this.hasCustomDisplay && !this.searchText) {
241
360
  return '';
242
361
  }
243
- if (this.searchable && this.dropdownOpen) {
362
+ if (this.searchable && this.dropdownOpen && !this.value) {
244
363
  // when dropdown is open search selects show typing
245
364
  // when closed they display the same as non searchable select (what is selected)
246
365
  return this.searchText || '';
@@ -280,7 +399,7 @@ const Q2Select = class {
280
399
  element.multiline = this.multilineOptions;
281
400
  });
282
401
  }
283
- selectOption(value) {
402
+ selectOption(value, focusInputOnClose = false) {
284
403
  if (this.multiple) {
285
404
  const isSelected = this.selectedOptions.includes(value);
286
405
  if (isSelected) {
@@ -295,7 +414,8 @@ const Q2Select = class {
295
414
  else {
296
415
  this.change.emit({ value });
297
416
  this.closeDropdown();
298
- this.focusInput();
417
+ if (focusInputOnClose)
418
+ this.focusInput();
299
419
  }
300
420
  }
301
421
  scrollToActiveOption() {
@@ -313,9 +433,7 @@ const Q2Select = class {
313
433
  this.dropdownOpen = true;
314
434
  this.setActiveOption();
315
435
  this.scheduledAfterRender.push(() => {
316
- if (!this.searchable) {
317
- this.setFocusedOption();
318
- }
436
+ this.setFocusedOption();
319
437
  this.scrollToActiveOption();
320
438
  this.resizeIframe();
321
439
  });
@@ -358,8 +476,8 @@ const Q2Select = class {
358
476
  this.setFocusedOption();
359
477
  }
360
478
  focusInput() {
361
- const input = this.hostElement.shadowRoot.querySelector('q2-input');
362
- input && input.dispatchEvent(new FocusEvent('focus'));
479
+ var _a;
480
+ (_a = this.inputField) === null || _a === void 0 ? void 0 : _a.dispatchEvent(new FocusEvent('focus'));
363
481
  }
364
482
  getNextVisibleIndex(direction) {
365
483
  let index = this.activeIndex + direction;
@@ -381,6 +499,7 @@ const Q2Select = class {
381
499
  observer.observe(this.hostElement, { childList: true, subtree: true });
382
500
  this.mutationObserver = observer;
383
501
  this.onMutationObserved();
502
+ index$1.overrideFocus(this.hostElement);
384
503
  }
385
504
  componentDidRender() {
386
505
  setTimeout(() => {
@@ -453,6 +572,11 @@ const Q2Select = class {
453
572
  this.setStatusMessage(index$1.loc(statusMessageLocString, [count]));
454
573
  }
455
574
  }
575
+ delegateFocus(event) {
576
+ if (!index$1.isEventFromElement(event, this.hostElement))
577
+ return;
578
+ this.inputField.shadowRoot.querySelector('.input-field').focus();
579
+ }
456
580
  setStatusMessage(message) {
457
581
  clearTimeout(this.statusMessageTimer);
458
582
  this.statusMessage = '';
@@ -465,89 +589,10 @@ const Q2Select = class {
465
589
  if (target.localName !== 'q2-option' || target.disabled) {
466
590
  return;
467
591
  }
468
- this.selectOption(target.value);
592
+ this.selectOption(target.value, true);
469
593
  }
470
594
  keydownHandler(event) {
471
- event.stopPropagation();
472
- const { dropdownOpen, activeIndex, searchable, multiple, optionElements } = this;
473
- const { key, shiftKey } = event;
474
- switch (key) {
475
- case 'Enter':
476
- if (!dropdownOpen)
477
- break;
478
- event.preventDefault();
479
- const newOption = this.hostElement.querySelector(`[option-id="${this.activeOptionId}"]`);
480
- if (newOption === null || newOption === void 0 ? void 0 : newOption.disabled)
481
- break;
482
- this.selectOption(newOption.value);
483
- break;
484
- case 'ArrowUp':
485
- event.preventDefault();
486
- if (!dropdownOpen) {
487
- this.openDropdownWithActiveElement(this.getDefaultActiveIndex());
488
- break;
489
- }
490
- if (activeIndex > 0) {
491
- const nextIndex = this.getNextVisibleIndex(-1);
492
- if (nextIndex > -1) {
493
- this.adjustActiveOptionAndScroll(nextIndex - activeIndex);
494
- }
495
- }
496
- else if (activeIndex !== 0) {
497
- this.setDefaultActiveElement();
498
- }
499
- break;
500
- case 'ArrowDown':
501
- event.preventDefault();
502
- if (!dropdownOpen) {
503
- this.openDropdownWithActiveElement(this.getDefaultActiveIndex());
504
- break;
505
- }
506
- if (activeIndex < optionElements.length - 1) {
507
- const nextIndex = this.getNextVisibleIndex(1);
508
- if (nextIndex > -1) {
509
- this.adjustActiveOptionAndScroll(nextIndex - this.activeIndex);
510
- }
511
- }
512
- else if (!activeIndex) {
513
- this.setDefaultActiveElement();
514
- }
515
- break;
516
- case 'Home':
517
- if (!dropdownOpen)
518
- break;
519
- event.preventDefault();
520
- this.adjustActiveOptionAndScroll(0);
521
- break;
522
- case 'End':
523
- if (!dropdownOpen)
524
- break;
525
- event.preventDefault();
526
- this.adjustActiveOptionAndScroll(optionElements.length - 1);
527
- break;
528
- case 'Escape':
529
- this.closeDropdown();
530
- this.focusInput();
531
- break;
532
- case 'Tab':
533
- if (!dropdownOpen)
534
- break;
535
- if ((searchable && shiftKey) || !multiple) {
536
- event.preventDefault();
537
- }
538
- if (searchable && shiftKey) {
539
- this.focusInput();
540
- }
541
- break;
542
- default:
543
- if (searchable)
544
- break;
545
- if (!key.match(/^[A-Za-z0-9]$/))
546
- break;
547
- // search in non-searchable select: alpha-numeric only
548
- this.searchAndFocus(key);
549
- break;
550
- }
595
+ this.inputKeydownHandler(event);
551
596
  }
552
597
  render() {
553
598
  return (index.h("click-elsewhere", { class: this.wrapperClasses, onChange: this.clickedElsewhere }, index.h("div", { "aria-live": "polite", "aria-atomic": "true", role: "status", class: "sr" }, this.statusMessage), index.h("q2-input", { ref: el => (this.inputField = el), class: "q2-select-input", label: (this.label && index$1.loc(this.label)) || '', value: this.selectedDisplay, errors: (Array.isArray(this.errors) &&
@@ -558,10 +603,10 @@ const Q2Select = class {
558
603
  }
559
604
  optionsDropdown() {
560
605
  const dropDirection = this.privatePopDirection === 'up' ? 'dropup' : '';
561
- return (index.h("div", { class: `q2-select-dropdown q2-element-dropdown ${dropDirection}`, ref: el => (this.dropdownContainer = el) }, this.multiple ? this.visibilityToggle() : '', index.h("div", { class: "q2-select-options", id: "dropdown", role: "listbox" }, index.h("slot", null))));
606
+ return (index.h("div", { class: `q2-select-dropdown q2-element-dropdown ${dropDirection}`, ref: el => (this.dropdownContainer = el), onKeyDown: this.dropdownKeydownHandler, onFocusout: this.dropdownFocusoutHandler }, this.multiple ? this.visibilityToggle() : '', index.h("div", { class: "q2-select-options", id: "dropdown", role: "listbox" }, index.h("slot", null))));
562
607
  }
563
608
  visibilityToggle() {
564
- return (index.h("div", { class: "multi-select-header" }, index$1.loc('tecton.element.select.multiHeader.showing'), index.h("q2-btn", { class: `option-toggle show-all-options${this.onlyShowingSelected ? '' : ' selected'}`, badge: true, "aria-selected": !this.onlyShowingSelected || undefined, "test-id": "allOptionsButton", onClick: this.showAllOptions, onKeyDown: this.showAllOptionTabKeyDown, label: index$1.loc('tecton.element.select.multiHeader.allAriaLabel'), "hide-label": true }, index$1.loc('tecton.element.select.multiHeader.all')), index.h("q2-btn", { class: `option-toggle show-selected-options${this.onlyShowingSelected ? ' selected' : ''}`, "aria-selected": this.onlyShowingSelected || undefined, disabled: this.selectedOptions.length === 0, badge: true, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, onKeyDown: this.showSelectedOptionTabKeyDown, label: index$1.loc('tecton.element.select.multiHeader.selectedAriaLabel', [
609
+ return (index.h("div", { class: "multi-select-header", ref: el => (this.multiSelectHeader = el) }, index$1.loc('tecton.element.select.multiHeader.showing'), index.h("q2-btn", { class: `option-toggle show-all-options${this.onlyShowingSelected ? '' : ' selected'}`, badge: true, "aria-selected": !this.onlyShowingSelected || undefined, "test-id": "allOptionsButton", onClick: this.showAllOptions, label: index$1.loc('tecton.element.select.multiHeader.allAriaLabel'), "hide-label": true }, index$1.loc('tecton.element.select.multiHeader.all')), index.h("q2-btn", { class: `option-toggle show-selected-options${this.onlyShowingSelected ? ' selected' : ''}`, "aria-selected": this.onlyShowingSelected || undefined, disabled: this.selectedOptions.length === 0, badge: true, "test-id": "selectedOptionsButton", onClick: this.showSelectedOptions, label: index$1.loc('tecton.element.select.multiHeader.selectedAriaLabel', [
565
610
  this.selectedOptionsCount
566
611
  ]), "hide-label": true }, index$1.loc('tecton.element.select.multiHeader.selected', [this.selectedOptionsCount]))));
567
612
  }
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2e53804.js');
6
- const index$1 = require('./index-f4153f5a.js');
6
+ const index$1 = require('./index-a55d3c34.js');
7
7
 
8
8
  const stylesCss = "*{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}:host{display:block;position:relative}";
9
9
 
@@ -3,9 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index$1 = require('./index-c2e53804.js');
6
- const index = require('./index-f4153f5a.js');
6
+ const index = require('./index-a55d3c34.js');
7
7
 
8
- const stylesCss = "*{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}:host{display:block;position:relative}ul{--comp-bullet-bg:var(--tct-stepper-bullet-active-bg, var(--t-stepper-bullet-active-bg, var(--t-primary, #0079c1)));--comp-bullet-font-color:var(--tct-stepper-bullet-active-font-color, var(--t-stepper-bullet-active-font-color, var(--t-primary-font-color, #ffffff)));--comp-bullet-size:var(--tct-stepper-bullet-size, var(--t-stepper-bullet-size, 18px));--comp-bullet-gap:var(--tct-stepper-bullet-padding, var(--t-stepper-bullet-padding, var(--app-scale-2x, 10px)));--comp-bullet-border-offset:var(--tct-stepper-bullet-border-offset, var(--t-stepper-bullet-border-offset, 4px));--comp-bullet-border:var(--tct-stepper-bullet-border, var(--t-stepper-bullet-border, 2px solid var(--t-primary-l3)));--comp-bullet-font-size:var(--tct-stepper-bullet-font-size, var(--t-stepper-bullet-font-size, var(--app-font-size-small, 12px)));--comp-step-width:var(--tct-stepper-step-width, var(--t-stepper-step-width, var(--t-stepper-step-width, 80px)));--comp-step-gap:var(--tct-stepper-step-gap, var(--t-stepper-step-gap, 5px));--comp-tween:var(--tct-stepper-tween, var(--t-stepper-tween, var(--app-tween-1, 0.2s ease)));overflow-x:auto;display:flex;justify-content:center;list-style:none;padding:0;padding:var(--tct-stepper-list-padding, var(--t-stepper-list-padding, 2px));margin:0;gap:var(--comp-step-gap);--comp-scrollbar-size:var(--tct-scrollbar-size, var(--app-scale-1x, 5px));--comp-scrollbar-border-radius:var(--tct-scrollbar-border-radius, var(--app-border-radius-1, 3px));--comp-scrollbar-color:var(--tct-scrollbar-color, var(--t-a11y-gray-color, #747474));scrollbar-width:thin;scrollbar-color:var(--comp-scrollbar-color) transparent}ul::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}ul::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}ul::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.has-scroll ul{justify-content:unset}li{min-height:var(--tct-stepper-min-height, var(--t-stepper-min-height, 50px));flex:0 0 auto;position:relative;width:var(--comp-step-width);text-align:center;max-width:150px;min-width:80px}.step-btn{position:relative;background:transparent;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;height:calc(100% - 4px);width:100%;transition:var(--comp-tween);padding:0;transition-property:box-shadow;outline:none}.step-btn[aria-disabled]{cursor:default}.step-btn[aria-disabled],.step-btn[aria-disabled]+hr{--comp-bullet-font-color:var(--tct-stepper-bullet-inactive-font-color, var(--t-stepper-bullet-inactive-font-color, var(--t-text, #4d4d4d)));--comp-bullet-bg:var(--tct-stepper-bullet-inactive-bg, var(--t-stepper-bullet-inactive-bg, var(--t-gray12, #d9d9d9)))}.step-bubble{margin:var(--comp-bullet-gap) auto;background:var(--comp-bullet-bg);color:var(--comp-bullet-font-color);width:var(--comp-bullet-size);height:var(--comp-bullet-size);min-height:var(--comp-bullet-size);font-size:var(--comp-bullet-font-size);transition:var(--comp-tween);transition-property:background, color;border-radius:50%;position:relative}[aria-selected] .step-bubble{font-weight:var(--tct-stepper-bullet-active-font-weight, var(--t-stepper-bullet-active-font-weight, 600))}[aria-selected] .step-bubble:before{content:\"\";position:absolute;inset:calc(var(--comp-bullet-border-offset) * -1);width:calc(var(--comp-bullet-size) + var(--comp-bullet-border-offset));height:calc(var(--comp-bullet-size) + var(--comp-bullet-border-offset));border-radius:50%;border:var(--comp-bullet-border)}hr{width:calc( var(--comp-step-width) - var(--comp-step-gap) - var(--comp-bullet-gap) - var(--comp-bullet-size) );top:calc(calc(var(--comp-bullet-size) / 2) + var(--comp-bullet-gap));left:calc(calc(var(--comp-step-width) * -0.5) + var(--comp-step-gap) + var(--comp-bullet-gap));border:0;border-top:1px solid var(--comp-bullet-bg);height:0;position:absolute;margin:0;transition:border var(--comp-tween)}.step-container{position:relative}.step-label{color:var(--tct-stepper-title-color, var(--t-stepper-title-color, var(--t-text, #4d4d4d)));font-size:var(--tct-stepper-title-font-size, var(--t-stepper-title-font-size, var(--app-font-size-small, 12px)));height:1.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}[aria-selected] .step-label{font-weight:var(--tct-stepper-active-font-weight, var(--t-stepper-active-font-weight, 600))}[aria-describedby] .step-label{-webkit-line-clamp:1}.step-description{color:var(--tct-stepper-description-color, var(--t-stepper-description-color, var(--t-textA, rgba(77, 77, 77, 0.77))));font-size:var(--tct-stepper-description-font-size, var(--t-stepper-description-font-size, var(--app-font-size-small, 12px)));display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;padding-bottom:0.2em}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:18px}.gradient-left{background-image:linear-gradient(to right, var(--t-base), var(--t-base-a0));left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base));right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-bg:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left{left:0}.btn-right{right:0}";
8
+ const stylesCss = "*{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}:host{display:block;position:relative}ul{--comp-bullet-bg:var(--tct-stepper-bullet-active-bg, var(--t-stepper-bullet-active-bg, var(--t-primary, #0079c1)));--comp-bullet-font-color:var(--tct-stepper-bullet-active-font-color, var(--t-stepper-bullet-active-font-color, var(--t-primary-font-color, #ffffff)));--comp-bullet-size:var(--tct-stepper-bullet-size, var(--t-stepper-bullet-size, 18px));--comp-bullet-gap:var(--tct-stepper-bullet-padding, var(--t-stepper-bullet-padding, var(--app-scale-2x, 10px)));--comp-bullet-border-offset:var(--tct-stepper-bullet-border-offset, var(--t-stepper-bullet-border-offset, 4px));--comp-bullet-border:var(--tct-stepper-bullet-border, var(--t-stepper-bullet-border, 2px solid var(--t-primary-l3)));--comp-bullet-font-size:var(--tct-stepper-bullet-font-size, var(--t-stepper-bullet-font-size, var(--app-font-size-small, 12px)));--comp-step-width:var(--tct-stepper-step-width, var(--t-stepper-step-width, var(--t-stepper-step-width, 80px)));--comp-step-gap:var(--tct-stepper-step-gap, var(--t-stepper-step-gap, 5px));--comp-tween:var(--tct-stepper-tween, var(--t-stepper-tween, var(--app-tween-1, 0.2s ease)));overflow-x:auto;display:flex;justify-content:center;list-style:none;padding:0;padding:var(--tct-stepper-list-padding, var(--t-stepper-list-padding, 2px));margin:0;gap:var(--comp-step-gap);--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}ul::-webkit-scrollbar{width:var(--comp-scrollbar-size);height:var(--comp-scrollbar-size);margin:5px}ul::-webkit-scrollbar-thumb{background:var(--comp-scrollbar-color);border-radius:var(--comp-scrollbar-border-radius)}ul::-webkit-scrollbar-track{background:transparent;border-radius:var(--comp-scrollbar-border-radius)}.has-scroll ul{justify-content:unset}li{min-height:var(--tct-stepper-min-height, var(--t-stepper-min-height, 50px));flex:0 0 auto;position:relative;width:var(--comp-step-width);text-align:center;max-width:150px;min-width:80px}.step-btn{position:relative;background:transparent;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;height:calc(100% - 4px);width:100%;transition:var(--comp-tween);padding:0;transition-property:box-shadow;outline:none}.step-btn[aria-disabled]{cursor:default}.step-btn[aria-disabled],.step-btn[aria-disabled]+hr{--comp-bullet-font-color:var(--tct-stepper-bullet-inactive-font-color, var(--t-stepper-bullet-inactive-font-color, var(--t-text, #4d4d4d)));--comp-bullet-bg:var(--tct-stepper-bullet-inactive-bg, var(--t-stepper-bullet-inactive-bg, var(--t-gray12, #d9d9d9)))}.step-bubble{margin:var(--comp-bullet-gap) auto;background:var(--comp-bullet-bg);color:var(--comp-bullet-font-color);width:var(--comp-bullet-size);height:var(--comp-bullet-size);min-height:var(--comp-bullet-size);font-size:var(--comp-bullet-font-size);transition:var(--comp-tween);transition-property:background, color;border-radius:50%;position:relative}[aria-selected] .step-bubble{font-weight:var(--tct-stepper-bullet-active-font-weight, var(--t-stepper-bullet-active-font-weight, 600))}[aria-selected] .step-bubble:before{content:\"\";position:absolute;inset:calc(var(--comp-bullet-border-offset) * -1);width:calc(var(--comp-bullet-size) + var(--comp-bullet-border-offset));height:calc(var(--comp-bullet-size) + var(--comp-bullet-border-offset));border-radius:50%;border:var(--comp-bullet-border)}hr{width:calc( var(--comp-step-width) - var(--comp-step-gap) - var(--comp-bullet-gap) - var(--comp-bullet-size) );top:calc(calc(var(--comp-bullet-size) / 2) + var(--comp-bullet-gap));left:calc(calc(var(--comp-step-width) * -0.5) + var(--comp-step-gap) + var(--comp-bullet-gap));border:0;border-top:1px solid var(--comp-bullet-bg);height:0;position:absolute;margin:0;transition:border var(--comp-tween)}.step-container{position:relative}.step-label{color:var(--tct-stepper-title-color, var(--t-stepper-title-color, var(--t-text, #4d4d4d)));font-size:var(--tct-stepper-title-font-size, var(--t-stepper-title-font-size, var(--app-font-size-small, 12px)));height:1.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}[aria-selected] .step-label{font-weight:var(--tct-stepper-active-font-weight, var(--t-stepper-active-font-weight, 600))}[aria-describedby] .step-label{-webkit-line-clamp:1}.step-description{color:var(--tct-stepper-description-color, var(--t-stepper-description-color, var(--t-textA, rgba(77, 77, 77, 0.77))));font-size:var(--tct-stepper-description-font-size, var(--t-stepper-description-font-size, var(--app-font-size-small, 12px)));display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;padding-bottom:0.2em}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:18px}.gradient-left{background-image:linear-gradient(to right, var(--t-base), var(--t-base-a0));left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base));right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-bg:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left{left:0}.btn-right{right:0}";
9
9
 
10
10
  index.addSmoothScrollPolyfill();
11
11
  const Q2Stepper = class {
@@ -90,6 +90,7 @@ const Q2Stepper = class {
90
90
  componentDidLoad() {
91
91
  this.resizeObserver.observe(this.listElement);
92
92
  this.checkScrollState();
93
+ index.overrideFocus(this.hostElement);
93
94
  setTimeout(() => this.showStep(this.currentStep || 1), 0);
94
95
  }
95
96
  componentDidRender() {
@@ -112,6 +113,11 @@ const Q2Stepper = class {
112
113
  this.currentStep = event.detail.selectedStep;
113
114
  }
114
115
  }
116
+ delegateFocus(event) {
117
+ if (!index.isEventFromElement(event, this.hostElement))
118
+ return;
119
+ this.focusStep(this.currentStep, true, true);
120
+ }
115
121
  ////////// GETTER METHODS ////////
116
122
  get allPanes() {
117
123
  return this.hostElement.querySelectorAll('q2-stepper-pane');
@@ -141,13 +147,13 @@ const Q2Stepper = class {
141
147
  pane.isActive = stepNumber === index + 1;
142
148
  });
143
149
  }
144
- focusStep(stepNumber, scrollIntoView) {
150
+ focusStep(stepNumber, scrollIntoView, forceFocus) {
145
151
  var _a;
146
152
  const stepListItem = this.listElement.children[stepNumber - 1];
147
153
  const isActive = document.activeElement === this.hostElement;
148
154
  if (!stepListItem)
149
155
  return;
150
- if (isActive) {
156
+ if (isActive || forceFocus) {
151
157
  (_a = stepListItem.firstElementChild) === null || _a === void 0 ? void 0 : _a.focus();
152
158
  }
153
159
  if (scrollIntoView) {
@@ -3,13 +3,11 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index$1 = require('./index-c2e53804.js');
6
- const index = require('./index-f4153f5a.js');
6
+ const index = require('./index-a55d3c34.js');
7
7
 
8
8
  const stylesCss = "*{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}:host{display:block;position:relative}button{cursor:pointer;margin:0}.tab-container{position:relative}ul{--comp-container-padding:var(--tct-scale-1, var(--app-scale-1, 5px)) var(--tct-scale-1, var(--app-scale-1, 5px)) 0;padding:var(--tct-tab-container-padding, var(--t-tab-container-padding, var(--comp-container-padding)));display:flex;gap:var(--tct-tab-gap, var(--t-tab-gap, var(--tct-scale-1, var(--app-scale-1, 5px))));list-style:none;border-bottom:1px solid var(--tct-tab-container-border-color, var(--t-tab-container-border-color, var(--tct-gray-11, var(--t-gray-11, var(--tct-gray-l1, var(--app-gray-l1, #cccccc))))));overflow-x:auto;align-items:center;scrollbar-width:none;scrollbar-color:transparent}ul::-webkit-scrollbar{width:0;height:0}ul::-webkit-scrollbar-thumb{background:transparent}ul::-webkit-scrollbar-track{background:transparent}@media print{ul.no-print{display:none}}li{flex:0 0 auto}li button{background:var(--tct-tab-inactive-bg-color, var(--t-tab-inactive-bg-color, transparent));border-width:var(--tct-tab-inactive-border-width, var(--t-tab-inactive-border-width, 0 0 3px 0));border-color:var(--tct-tab-inactive-border-color, var(--t-tab-inactive-border-color, transparent));border-style:var(--tct-tab-inactive-border-style, var(--t-tab-inactive-border-style, solid));border-radius:var(--tct-tab-border-radius, var(--t-tab-border-radius, 0));width:var(--tct-tab-width, var(--t-tab-width, 100%));text-align:var(--tct-tab-text-align, var(--t-tab-text-align, center));text-decoration:var(--tct-tab-text-decoration, var(--t-tab-text-decoration, none));padding:var(--tct-tab-padding, var(--t-tab-padding, var(--tct-scale-2, var(--app-scale-2, 10px))));color:var(--tct-tab-inactive-color, var(--t-tab-inactive-color, inherit));font-size:var(--tct-tab-font-size, var(--t-tab-font-size, 17px));display:block;transition:color var(--tct-tween-2, var(--app-tween-2, 0.4s ease)), border-color var(--tct-tween-1, var(--app-tween-1, 0.2s ease))}:host([type=section]) li button{--comp-tab-section-padding:var(--tct-scale-2, var(--app-scale-2, 10px)) var(--tct-scale-1, var(--app-scale-1, 5px));font-size:inherit;padding:var(--tct-tab-section-padding, var(--t-tab-section-padding, var(--comp-tab-section-padding)))}li button:hover{color:var(--tct-tab-hover-color, var(--t-tab-hover-color, var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e))));background-color:var(--tct-tab-hover-bg-color, var(--t-tab-hover-bg-color, inherit));width:var(--tct-tab-hover-width, var(--t-tab-hover-width, 100%))}li button[aria-selected=true]{color:var(--tct-tab-active-color, var(--t-tab-active-color, #2e2e2e));border-color:var(--tct-tab-active-border-color, var(--t-tab-active-border-color, currentColor));border-style:var(--tct-tab-active-border-style, var(--t-tab-active-border-style, solid));width:var(--tct-tab-active-width, var(--t-tab-active-width, 100%));background-color:var(--tct-tab-active-bg-color, var(--t-tab-active-bg-color, inherit))}:host([color=alt]) li button{color:var(--tct-tab-alt-inactive-color, var(--t-tab-alt-inactive-color, inherit))}:host([color=alt]) li button:hover,:host([color=alt]) li button[aria-selected=true]{color:var(--tct-tab-alt-active-color, var(--t-tab-alt-active-color, inherit))}@media screen and (max-width: 767px){li button{--comp-tab-padding:var(--tct-scale-2, var(--app-scale-2, 10px)) var(--tct-scale-1, var(--app-scale-1, 5px));font-size:inherit;padding:var(--tct-tab-padding, var(--t-tab-padding, var(--comp-tab-padding)))}}.tab-content{--comp-tab-content-padding:var(--tct-scale-2, var(--app-scale-2, 10px)) 0;padding:var(--tct-tab-content-padding, var(--t-tab-content-padding, var(--comp-tab-content-padding)))}.tab-content:focus{outline:none;box-shadow:none}.gradient-left,.gradient-right{z-index:1;position:absolute;top:0;height:100%;width:44px}.gradient-left{background-image:linear-gradient(to right, var(--t-base), var(--t-base-a0));left:0}.gradient-right{background-image:linear-gradient(to right, var(--t-base-a0), var(--t-base));right:0}.btn-left,.btn-right{--tct-icon-size:18px;--tct-btn-icon-hover-bg:transparent;--tct-btn-icon-width:22px;--tct-icon-stroke-primary:var(--tct-stepper-scroll-arrow-color, var(--t-stepper-scroll-arrow-color, var(--t-text, #4d4d4d)));position:absolute;top:calc(50% - 22px);z-index:2}.btn-left{left:0}.btn-right{right:0}";
9
9
 
10
10
  index.addSmoothScrollPolyfill();
11
- const userAgent = navigator.userAgent.toLowerCase();
12
- const isFirefox = userAgent.includes('firefox');
13
11
  const Q2TabContainer = class {
14
12
  constructor(hostRef) {
15
13
  index$1.registerInstance(this, hostRef);
@@ -151,12 +149,11 @@ const Q2TabContainer = class {
151
149
  onResize() {
152
150
  this.checkScrollState();
153
151
  }
154
- onFocus() {
155
- // firefox receives focus on overflowed element even if it's not interactive element
156
- if (isFirefox) {
157
- const index = this.tabs.findIndex(el => el.value === this.selectedTabValue);
158
- this.moveFocus(index);
159
- }
152
+ onFocus(event) {
153
+ if (!index.isEventFromElement(event, this.hostElement))
154
+ return;
155
+ const index$1 = this.tabs.findIndex(el => el.value === this.selectedTabValue);
156
+ this.moveFocus(index$1);
160
157
  }
161
158
  ///////// Lifecycle Hooks /////////
162
159
  componentWillLoad() {
@@ -174,9 +171,10 @@ const Q2TabContainer = class {
174
171
  componentDidLoad() {
175
172
  this.resizeObserver.observe(this.listElement);
176
173
  this.checkScrollState();
177
- const index = this.tabs.findIndex(el => el.value === this.value);
174
+ index.overrideFocus(this.hostElement);
175
+ const index$1 = this.tabs.findIndex(el => el.value === this.value);
178
176
  this.scheduledAfterRender.push(() => {
179
- const tab = this.moveFocus(Math.max(index, 0), false);
177
+ const tab = this.moveFocus(Math.max(index$1, 0), false);
180
178
  this.value = tab.dataset.value;
181
179
  tab.blur();
182
180
  });
@@ -4,14 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-c2e53804.js');
6
6
 
7
- const stylesCss = "*{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}.tab-pane[aria-hidden='true']{display:none}.tab-pane:focus{outline:none;box-shadow:none}";
7
+ const stylesCss = "*{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}.tab-pane[aria-hidden=true]{display:none}.tab-pane:focus{outline:none;box-shadow:none}";
8
8
 
9
9
  const Q2TabPane = class {
10
10
  constructor(hostRef) {
11
11
  index.registerInstance(this, hostRef);
12
12
  }
13
13
  render() {
14
- return (index.h("div", { id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-expanded": `${!!this.selected}`, "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, index.h("slot", null)));
14
+ return (index.h("div", { id: `tab-pane-${this.guid}-${this.index}`, class: `tab-pane${this.selected ? '' : ' hidden'}`, role: "tabpanel", tabindex: "-1", "aria-hidden": `${!this.selected}`, "aria-labelledby": `tab-${this.guid}-${this.index}` }, index.h("slot", null)));
15
15
  }
16
16
  };
17
17
  Q2TabPane.style = stylesCss;