q2-tecton-elements 1.27.0 → 1.28.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 (161) hide show
  1. package/dist/cjs/click-elsewhere_2.cjs.entry.js +258 -0
  2. package/dist/cjs/{index-ffd19146.js → index-7a73e106.js} +12 -52
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/q2-action-sheet.cjs.entry.js +1 -1
  5. package/dist/cjs/q2-avatar.cjs.entry.js +1 -1
  6. package/dist/cjs/q2-badge_2.cjs.entry.js +1 -1
  7. package/dist/cjs/q2-btn_2.cjs.entry.js +1 -1
  8. package/dist/cjs/q2-calendar.cjs.entry.js +128 -83
  9. package/dist/cjs/q2-card.cjs.entry.js +1 -1
  10. package/dist/cjs/q2-carousel-pane.cjs.entry.js +1 -1
  11. package/dist/cjs/q2-carousel.cjs.entry.js +1 -1
  12. package/dist/cjs/q2-chart-area.cjs.entry.js +1 -1
  13. package/dist/cjs/q2-chart-bar.cjs.entry.js +1 -1
  14. package/dist/cjs/q2-chart-donut.cjs.entry.js +1 -1
  15. package/dist/cjs/q2-checkbox-group.cjs.entry.js +1 -1
  16. package/dist/cjs/q2-checkbox.cjs.entry.js +1 -1
  17. package/dist/cjs/q2-dropdown-item.cjs.entry.js +1 -1
  18. package/dist/cjs/q2-dropdown.cjs.entry.js +45 -45
  19. package/dist/cjs/q2-editable-field.cjs.entry.js +1 -1
  20. package/dist/cjs/q2-icon.cjs.entry.js +1 -1
  21. package/dist/cjs/q2-loc.cjs.entry.js +1 -1
  22. package/dist/cjs/q2-message.cjs.entry.js +1 -1
  23. package/dist/cjs/q2-month-picker.cjs.entry.js +1 -1
  24. package/dist/cjs/q2-optgroup_2.cjs.entry.js +1 -1
  25. package/dist/cjs/{q2-option-list_2.cjs.entry.js → q2-option-list.cjs.entry.js} +3 -167
  26. package/dist/cjs/q2-pagination.cjs.entry.js +1 -1
  27. package/dist/cjs/q2-pill.cjs.entry.js +1 -1
  28. package/dist/cjs/q2-radio-group.cjs.entry.js +1 -1
  29. package/dist/cjs/q2-radio.cjs.entry.js +1 -1
  30. package/dist/cjs/q2-section.cjs.entry.js +1 -1
  31. package/dist/cjs/q2-select.cjs.entry.js +11 -6
  32. package/dist/cjs/q2-stepper-pane.cjs.entry.js +1 -1
  33. package/dist/cjs/q2-stepper-vertical.cjs.entry.js +1 -1
  34. package/dist/cjs/q2-stepper.cjs.entry.js +1 -1
  35. package/dist/cjs/q2-tab-container.cjs.entry.js +1 -1
  36. package/dist/cjs/q2-tag.cjs.entry.js +1 -1
  37. package/dist/cjs/q2-tecton-elements.cjs.js +1 -1
  38. package/dist/cjs/q2-textarea.cjs.entry.js +1 -1
  39. package/dist/cjs/q2-tooltip.cjs.entry.js +1 -1
  40. package/dist/collection/components/q2-avatar/styles.css +4 -12
  41. package/dist/collection/components/q2-calendar/helpers.js +37 -11
  42. package/dist/collection/components/q2-calendar/index.js +174 -91
  43. package/dist/collection/components/q2-calendar/styles.css +5 -68
  44. package/dist/collection/components/q2-dropdown/index.js +130 -54
  45. package/dist/collection/components/q2-dropdown/styles.css +3 -89
  46. package/dist/collection/components/q2-select/index.js +10 -5
  47. package/dist/collection/utils/index.js +11 -51
  48. package/dist/components/index11.js +1 -1
  49. package/dist/components/index15.js +12 -52
  50. package/dist/components/index3.js +1 -1
  51. package/dist/components/index7.js +1 -1
  52. package/dist/components/index8.js +1 -1
  53. package/dist/components/q2-calendar.js +154 -101
  54. package/dist/components/q2-card.js +1 -1
  55. package/dist/components/q2-carousel.js +1 -1
  56. package/dist/components/q2-checkbox-group.js +1 -1
  57. package/dist/components/q2-checkbox.js +1 -1
  58. package/dist/components/q2-dropdown.js +68 -59
  59. package/dist/components/q2-radio-group.js +1 -1
  60. package/dist/components/q2-radio.js +1 -1
  61. package/dist/components/q2-select.js +11 -6
  62. package/dist/components/q2-stepper-pane.js +1 -1
  63. package/dist/components/q2-stepper-vertical.js +1 -1
  64. package/dist/components/q2-stepper.js +1 -1
  65. package/dist/components/q2-tab-container.js +1 -1
  66. package/dist/components/q2-textarea.js +1 -1
  67. package/dist/docs.json +166 -4
  68. package/dist/esm/click-elsewhere_2.entry.js +253 -0
  69. package/dist/esm/{index-a0cc60e3.js → index-576f618c.js} +12 -52
  70. package/dist/esm/loader.js +1 -1
  71. package/dist/esm/q2-action-sheet.entry.js +1 -1
  72. package/dist/esm/q2-avatar.entry.js +1 -1
  73. package/dist/esm/q2-badge_2.entry.js +1 -1
  74. package/dist/esm/q2-btn_2.entry.js +1 -1
  75. package/dist/esm/q2-calendar.entry.js +128 -83
  76. package/dist/esm/q2-card.entry.js +1 -1
  77. package/dist/esm/q2-carousel-pane.entry.js +1 -1
  78. package/dist/esm/q2-carousel.entry.js +1 -1
  79. package/dist/esm/q2-chart-area.entry.js +1 -1
  80. package/dist/esm/q2-chart-bar.entry.js +1 -1
  81. package/dist/esm/q2-chart-donut.entry.js +1 -1
  82. package/dist/esm/q2-checkbox-group.entry.js +1 -1
  83. package/dist/esm/q2-checkbox.entry.js +1 -1
  84. package/dist/esm/q2-dropdown-item.entry.js +1 -1
  85. package/dist/esm/q2-dropdown.entry.js +45 -45
  86. package/dist/esm/q2-editable-field.entry.js +1 -1
  87. package/dist/esm/q2-icon.entry.js +1 -1
  88. package/dist/esm/q2-loc.entry.js +1 -1
  89. package/dist/esm/q2-message.entry.js +1 -1
  90. package/dist/esm/q2-month-picker.entry.js +1 -1
  91. package/dist/esm/q2-optgroup_2.entry.js +1 -1
  92. package/dist/esm/{q2-option-list_2.entry.js → q2-option-list.entry.js} +4 -167
  93. package/dist/esm/q2-pagination.entry.js +1 -1
  94. package/dist/esm/q2-pill.entry.js +1 -1
  95. package/dist/esm/q2-radio-group.entry.js +1 -1
  96. package/dist/esm/q2-radio.entry.js +1 -1
  97. package/dist/esm/q2-section.entry.js +1 -1
  98. package/dist/esm/q2-select.entry.js +11 -6
  99. package/dist/esm/q2-stepper-pane.entry.js +1 -1
  100. package/dist/esm/q2-stepper-vertical.entry.js +1 -1
  101. package/dist/esm/q2-stepper.entry.js +1 -1
  102. package/dist/esm/q2-tab-container.entry.js +1 -1
  103. package/dist/esm/q2-tag.entry.js +1 -1
  104. package/dist/esm/q2-tecton-elements.js +1 -1
  105. package/dist/esm/q2-textarea.entry.js +1 -1
  106. package/dist/esm/q2-tooltip.entry.js +1 -1
  107. package/dist/q2-tecton-elements/p-0b7003c4.entry.js +1 -0
  108. package/dist/q2-tecton-elements/{p-0b8943da.entry.js → p-0d92ab4a.entry.js} +1 -1
  109. package/dist/q2-tecton-elements/p-138db98d.entry.js +1 -0
  110. package/dist/q2-tecton-elements/{p-a298cbfb.entry.js → p-1b9e07b4.entry.js} +1 -1
  111. package/dist/q2-tecton-elements/{p-bafb5e70.entry.js → p-1e57a843.entry.js} +1 -1
  112. package/dist/q2-tecton-elements/{p-ac6dd5b1.entry.js → p-2423b9a9.entry.js} +1 -1
  113. package/dist/q2-tecton-elements/{p-396fd275.entry.js → p-2bb447c3.entry.js} +1 -1
  114. package/dist/q2-tecton-elements/{p-414ca427.entry.js → p-31b655b6.entry.js} +1 -1
  115. package/dist/q2-tecton-elements/{p-85e780b2.entry.js → p-3422207a.entry.js} +1 -1
  116. package/dist/q2-tecton-elements/{p-edcf49fd.entry.js → p-39989362.entry.js} +1 -1
  117. package/dist/q2-tecton-elements/{p-3dca7465.entry.js → p-3aad6a45.entry.js} +1 -1
  118. package/dist/q2-tecton-elements/{p-ef657f8f.entry.js → p-4d2b7f2e.entry.js} +1 -1
  119. package/dist/q2-tecton-elements/{p-869e899c.entry.js → p-4ffde81a.entry.js} +1 -1
  120. package/dist/q2-tecton-elements/{p-d06d752f.entry.js → p-55bdd480.entry.js} +1 -1
  121. package/dist/q2-tecton-elements/p-590adc15.entry.js +1 -0
  122. package/dist/q2-tecton-elements/{p-949fa312.entry.js → p-5cd51157.entry.js} +1 -1
  123. package/dist/q2-tecton-elements/p-5e14a790.entry.js +1 -0
  124. package/dist/q2-tecton-elements/{p-12e65423.entry.js → p-6524d5f3.entry.js} +1 -1
  125. package/dist/q2-tecton-elements/{p-521c9085.entry.js → p-68908be9.entry.js} +1 -1
  126. package/dist/q2-tecton-elements/{p-9367dc29.entry.js → p-6975e5e4.entry.js} +1 -1
  127. package/dist/q2-tecton-elements/p-6bb3789b.entry.js +1 -0
  128. package/dist/q2-tecton-elements/{p-5a670d93.entry.js → p-6db208c7.entry.js} +1 -1
  129. package/dist/q2-tecton-elements/{p-2b8a8981.entry.js → p-7a702d92.entry.js} +1 -1
  130. package/dist/q2-tecton-elements/{p-fb768d19.entry.js → p-7e1a14ea.entry.js} +1 -1
  131. package/dist/q2-tecton-elements/p-921ea070.js +1 -0
  132. package/dist/q2-tecton-elements/{p-04b9a7ee.entry.js → p-a63e64f0.entry.js} +1 -1
  133. package/dist/q2-tecton-elements/p-b9bbfaf7.entry.js +1 -0
  134. package/dist/q2-tecton-elements/{p-d69cb7d1.entry.js → p-bbd2c530.entry.js} +1 -1
  135. package/dist/q2-tecton-elements/{p-05bdc0aa.entry.js → p-c19e143e.entry.js} +1 -1
  136. package/dist/q2-tecton-elements/{p-256e5161.entry.js → p-c8525f80.entry.js} +1 -1
  137. package/dist/q2-tecton-elements/{p-fcad1609.entry.js → p-c93341d5.entry.js} +1 -1
  138. package/dist/q2-tecton-elements/{p-8545c3cb.entry.js → p-d6824ce5.entry.js} +1 -1
  139. package/dist/q2-tecton-elements/{p-f3e4bb52.entry.js → p-ddfb393a.entry.js} +1 -1
  140. package/dist/q2-tecton-elements/{p-9292bd80.entry.js → p-df3fb1e7.entry.js} +1 -1
  141. package/dist/q2-tecton-elements/{p-fe3625ad.entry.js → p-ed77f0c2.entry.js} +1 -1
  142. package/dist/q2-tecton-elements/{p-25ea01d3.entry.js → p-ed91f837.entry.js} +1 -1
  143. package/dist/q2-tecton-elements/{p-1d28c600.entry.js → p-fa0e471c.entry.js} +1 -1
  144. package/dist/q2-tecton-elements/q2-tecton-elements.esm.js +1 -1
  145. package/dist/test/helpers.js +19 -0
  146. package/dist/types/components/q2-calendar/helpers.d.ts +1 -0
  147. package/dist/types/components/q2-calendar/index.d.ts +22 -12
  148. package/dist/types/components/q2-dropdown/index.d.ts +13 -8
  149. package/dist/types/components.d.ts +26 -0
  150. package/dist/types/utils/index.d.ts +4 -9
  151. package/dist/types/workspace/workspace/Tecton_tecton-production_master/packages/q2-tecton-elements/.stencil/test/helpers.d.ts +1 -0
  152. package/package.json +3 -3
  153. package/dist/cjs/click-elsewhere.cjs.entry.js +0 -93
  154. package/dist/esm/click-elsewhere.entry.js +0 -89
  155. package/dist/q2-tecton-elements/p-2453cd92.js +0 -1
  156. package/dist/q2-tecton-elements/p-72374b8e.entry.js +0 -1
  157. package/dist/q2-tecton-elements/p-8e652d59.entry.js +0 -1
  158. package/dist/q2-tecton-elements/p-aae8b9fc.entry.js +0 -1
  159. package/dist/q2-tecton-elements/p-be0d3bfe.entry.js +0 -1
  160. package/dist/q2-tecton-elements/p-ce67d77a.entry.js +0 -1
  161. package/dist/q2-tecton-elements/p-ee1f3114.entry.js +0 -1
@@ -1,44 +1,39 @@
1
1
  import { h, Fragment } from '@stencil/core';
2
- import { handleAriaLabel, isEventFromElement, loc, overrideFocus, setPopProperties } from 'src/utils';
2
+ import { handleAriaLabel, handleRenamedProp, isEventFromElement, loc, overrideFocus } from 'src/utils';
3
3
  export class Q2Dropdown {
4
4
  constructor() {
5
- this.scheduledAfterRender = [];
6
5
  this.dropdownItemSelector = 'q2-dropdown-item:not([disabled]):not([separator])';
7
6
  ///// Actions ////////
8
7
  this.focusToggle = () => {
9
- const toggleBtn = this.hostElement.shadowRoot.querySelector('.dropdown-button');
10
- toggleBtn && toggleBtn.dispatchEvent(new FocusEvent('focus'));
8
+ this.controlElement.shadowRoot.querySelector('button').focus();
11
9
  };
12
10
  this.openDropdown = () => {
13
- setPopProperties(this);
14
- if (!this.dropdownOpen) {
15
- this.dropdownOpen = true;
16
- this.scheduledAfterRender.push(this.resizeIframe);
17
- }
11
+ if (this.open)
12
+ return;
13
+ this.open = true;
18
14
  };
19
15
  this.closeDropdown = () => {
20
- if (this.dropdownOpen) {
21
- this.dropdownOpen = false;
22
- this.scheduledAfterRender.push(() => {
23
- this.resizeIframe();
24
- });
25
- }
16
+ if (!this.open)
17
+ return;
18
+ this.open = false;
26
19
  };
27
20
  this.onClickElsewhere = (event) => {
28
21
  const target = event.target;
29
22
  if (target.localName === 'click-elsewhere') {
30
23
  event.stopPropagation();
31
- this.closeDropdown();
24
+ const { popoverElement } = this;
25
+ if (!popoverElement)
26
+ return;
27
+ popoverElement.open = false;
32
28
  }
33
29
  };
34
30
  this.onToggleClick = () => {
35
- if (this.dropdownOpen) {
36
- this.focusToggle();
31
+ if (this.open) {
37
32
  this.closeDropdown();
38
- return;
39
33
  }
40
- this.focusToggle();
41
- this.openDropdown();
34
+ else {
35
+ this.openDropdown();
36
+ }
42
37
  };
43
38
  this.onToggleKeydown = (event) => {
44
39
  if (['ArrowUp', 'Up'].includes(event.key)) {
@@ -96,17 +91,17 @@ export class Q2Dropdown {
96
91
  this.label = undefined;
97
92
  this.hideLabel = undefined;
98
93
  this.disabled = undefined;
99
- this.popDirection = undefined;
94
+ this.alignment = 'left';
100
95
  this.name = undefined;
101
96
  this.context = undefined;
102
97
  this.contextValue = undefined;
103
98
  this.resolvedType = undefined;
104
99
  this.block = undefined;
100
+ this.open = undefined;
101
+ this.popoverMinHeight = 150;
102
+ this.popoverDirection = undefined;
103
+ this.popDirection = undefined;
105
104
  this.ariaLabel = undefined;
106
- this.dropdownOpen = false;
107
- }
108
- resizeIframe() {
109
- return window.TectonElements && window.TectonElements.resizeIframe && window.TectonElements.resizeIframe();
110
105
  }
111
106
  resolveMenu() {
112
107
  return (this.name &&
@@ -162,10 +157,12 @@ export class Q2Dropdown {
162
157
  });
163
158
  }
164
159
  navigateTo(featureName, moduleName, queryParams) {
165
- return window.TectonElements && window.TectonElements.navigateTo(featureName, moduleName, queryParams);
160
+ var _a, _b;
161
+ return (_b = (_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.navigateTo) === null || _b === void 0 ? void 0 : _b.call(_a, featureName, moduleName, queryParams);
166
162
  }
167
163
  showOverpanel(overpanelPath, params) {
168
- return window.TectonElements && window.TectonElements.showOverpanel(overpanelPath, params, undefined, true);
164
+ var _a, _b;
165
+ return (_b = (_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.showOverpanel) === null || _b === void 0 ? void 0 : _b.call(_a, overpanelPath, params, undefined, true);
169
166
  }
170
167
  get hasCustomButton() {
171
168
  return !!this.hostElement.querySelector('[slot=custom-dropdown-button]');
@@ -181,10 +178,10 @@ export class Q2Dropdown {
181
178
  if (allowedIntents.includes(type)) {
182
179
  intent = type === 'neutral' ? type : `workflow-${type}`;
183
180
  }
184
- const active = this.dropdownOpen;
181
+ const active = this.open;
185
182
  const disabled = !!this.disabled;
186
- const ariaExpanded = this.dropdownOpen;
187
- const className = `dropdown-button${!icon && !fab && !intent ? ' unstyled' : ''}`;
183
+ const ariaExpanded = this.open;
184
+ const className = !icon && !fab && !intent ? 'unstyled' : '';
188
185
  return {
189
186
  icon,
190
187
  fab,
@@ -197,7 +194,10 @@ export class Q2Dropdown {
197
194
  };
198
195
  }
199
196
  //////// Observers //////////
200
- ariaLabelObserver() {
197
+ popDirectionHandler() {
198
+ handleRenamedProp(this, 'popDirection', 'popoverDirection');
199
+ }
200
+ ariaLabelHandler() {
201
201
  handleAriaLabel(this);
202
202
  }
203
203
  nameHandler() {
@@ -215,29 +215,28 @@ export class Q2Dropdown {
215
215
  delegateFocus(event) {
216
216
  if (!isEventFromElement(event, this.hostElement))
217
217
  return;
218
- this.controlElement.shadowRoot.querySelector('button').focus();
218
+ this.focusToggle();
219
+ }
220
+ popoverStateHandler({ detail: { open } }) {
221
+ if (this.open !== open)
222
+ this.open = open;
219
223
  }
220
224
  ///// Lifecycle Hooks ////////
221
225
  componentWillLoad() {
222
- handleAriaLabel(this);
226
+ this.popDirectionHandler();
227
+ this.ariaLabelHandler();
223
228
  }
224
229
  componentDidLoad() {
225
230
  this.orchestrateResolvedMenuItems();
226
231
  overrideFocus(this.hostElement);
227
232
  }
228
- componentDidRender() {
229
- setTimeout(() => {
230
- this.scheduledAfterRender.forEach(fn => fn());
231
- this.scheduledAfterRender = [];
232
- }, 25);
233
- }
234
233
  focusFirstItem() {
235
234
  const firstItem = this.hostElement.querySelector(`${this.dropdownItemSelector}:first-child`);
236
- firstItem && firstItem.dispatchEvent(new FocusEvent('focus'));
235
+ firstItem === null || firstItem === void 0 ? void 0 : firstItem.dispatchEvent(new FocusEvent('focus'));
237
236
  }
238
237
  focusLastItem() {
239
238
  const lastItem = this.hostElement.querySelector(`${this.dropdownItemSelector}:last-child`);
240
- lastItem && lastItem.dispatchEvent(new FocusEvent('focus'));
239
+ lastItem === null || lastItem === void 0 ? void 0 : lastItem.dispatchEvent(new FocusEvent('focus'));
241
240
  }
242
241
  focusAdjacentItem(activeItem, direction) {
243
242
  const dropdownItems = Array.from(this.hostElement.querySelectorAll(this.dropdownItemSelector));
@@ -262,7 +261,7 @@ export class Q2Dropdown {
262
261
  }
263
262
  render() {
264
263
  const btnProps = this.toggleButtonProps;
265
- return (h("click-elsewhere", { class: `dropdown-container${this.dropdownOpen ? ' dropdown-open' : ''}`, onChange: this.onClickElsewhere, "test-id": "dropdownContainer" }, h("q2-btn", { ref: el => (this.controlElement = el), class: btnProps.className, onClick: this.onToggleClick, onKeyDown: this.onToggleKeydown, fab: btnProps.fab, intent: btnProps.intent, active: btnProps.active, disabled: btnProps.disabled, ariaExpanded: `${!!btnProps.ariaExpanded}`, label: this.hideLabel && this.label ? loc(this.label) : undefined, hideLabel: this.hideLabel, ariaHasPopup: "menu", "test-id": "dropdownButton", block: this.block }, this.hasCustomButton ? (h("div", { "test-id": "dropdownCustom", class: btnProps.custom ? '' : 'hidden' }, h("slot", { name: "custom-dropdown-button" }))) : (h(Fragment, null, this.icon ? h("q2-icon", { type: this.icon }) : ' ', this.label && !this.hideLabel && (h("span", { class: "dropdown-button-text" }, loc(this.label)))))), h("div", { ref: el => (this.dropdownContainer = el), class: `q2-element-dropdown ${this.privatePopDirection === 'up' ? 'dropup' : ''}`, role: "menu", onClick: this.onDropdownMenuClick, onKeyDown: this.onDropdownMenuKeydown }, h("div", null, h("slot", null), this.dropdownOpen && (h("q2-btn", { class: "sr close-dropdown", onFocus: this.closeDropdown }))))));
264
+ return (h("click-elsewhere", { class: this.open ? 'dropdown-open' : '', onChange: this.onClickElsewhere, "test-id": "dropdownContainer" }, h("q2-btn", { ref: el => (this.controlElement = el), class: btnProps.className, onClick: this.onToggleClick, onKeyDown: this.onToggleKeydown, fab: btnProps.fab, intent: btnProps.intent, active: btnProps.active, disabled: btnProps.disabled, ariaExpanded: `${!!btnProps.ariaExpanded}`, label: this.hideLabel && this.label ? loc(this.label) : undefined, hideLabel: this.hideLabel, ariaHasPopup: "menu", "test-id": "dropdownButton", block: this.block }, this.hasCustomButton ? (h("div", { "test-id": "dropdownCustom", class: btnProps.custom ? '' : 'hidden' }, h("slot", { name: "custom-dropdown-button" }))) : (h(Fragment, null, this.icon ? h("q2-icon", { type: this.icon }) : ' ', this.label && !this.hideLabel && (h("span", { class: "dropdown-button-text" }, loc(this.label)))))), h("q2-popover", { ref: el => (this.popoverElement = el), controlElement: this.controlElement, open: this.open, minHeight: this.popoverMinHeight, direction: this.popoverDirection, align: this.alignment }, h("div", { onClick: this.onDropdownMenuClick, onKeyDown: this.onDropdownMenuKeydown }, h("slot", null), this.open && (h("q2-btn", { class: "sr close-dropdown", onFocus: this.closeDropdown }))))));
266
265
  }
267
266
  static get is() { return "q2-dropdown"; }
268
267
  static get encapsulation() { return "shadow"; }
@@ -364,12 +363,12 @@ export class Q2Dropdown {
364
363
  "attribute": "disabled",
365
364
  "reflect": true
366
365
  },
367
- "popDirection": {
366
+ "alignment": {
368
367
  "type": "string",
369
368
  "mutable": false,
370
369
  "complexType": {
371
- "original": "'up' | 'down'",
372
- "resolved": "\"down\" | \"up\"",
370
+ "original": "'left' | 'right'",
371
+ "resolved": "\"left\" | \"right\"",
373
372
  "references": {}
374
373
  },
375
374
  "required": false,
@@ -378,8 +377,9 @@ export class Q2Dropdown {
378
377
  "tags": [],
379
378
  "text": ""
380
379
  },
381
- "attribute": "pop-direction",
382
- "reflect": true
380
+ "attribute": "alignment",
381
+ "reflect": true,
382
+ "defaultValue": "'left'"
383
383
  },
384
384
  "name": {
385
385
  "type": "string",
@@ -466,6 +466,78 @@ export class Q2Dropdown {
466
466
  "attribute": "block",
467
467
  "reflect": true
468
468
  },
469
+ "open": {
470
+ "type": "boolean",
471
+ "mutable": true,
472
+ "complexType": {
473
+ "original": "boolean",
474
+ "resolved": "boolean",
475
+ "references": {}
476
+ },
477
+ "required": false,
478
+ "optional": false,
479
+ "docs": {
480
+ "tags": [],
481
+ "text": ""
482
+ },
483
+ "attribute": "open",
484
+ "reflect": true
485
+ },
486
+ "popoverMinHeight": {
487
+ "type": "number",
488
+ "mutable": false,
489
+ "complexType": {
490
+ "original": "number",
491
+ "resolved": "number",
492
+ "references": {}
493
+ },
494
+ "required": false,
495
+ "optional": false,
496
+ "docs": {
497
+ "tags": [],
498
+ "text": ""
499
+ },
500
+ "attribute": "popover-min-height",
501
+ "reflect": false,
502
+ "defaultValue": "150"
503
+ },
504
+ "popoverDirection": {
505
+ "type": "string",
506
+ "mutable": true,
507
+ "complexType": {
508
+ "original": "'up' | 'down'",
509
+ "resolved": "\"down\" | \"up\"",
510
+ "references": {}
511
+ },
512
+ "required": false,
513
+ "optional": false,
514
+ "docs": {
515
+ "tags": [],
516
+ "text": ""
517
+ },
518
+ "attribute": "popover-direction",
519
+ "reflect": false
520
+ },
521
+ "popDirection": {
522
+ "type": "string",
523
+ "mutable": false,
524
+ "complexType": {
525
+ "original": "'up' | 'down'",
526
+ "resolved": "\"down\" | \"up\"",
527
+ "references": {}
528
+ },
529
+ "required": false,
530
+ "optional": false,
531
+ "docs": {
532
+ "tags": [{
533
+ "name": "deprecated",
534
+ "text": undefined
535
+ }],
536
+ "text": ""
537
+ },
538
+ "attribute": "pop-direction",
539
+ "reflect": true
540
+ },
469
541
  "ariaLabel": {
470
542
  "type": "string",
471
543
  "mutable": true,
@@ -488,16 +560,14 @@ export class Q2Dropdown {
488
560
  }
489
561
  };
490
562
  }
491
- static get states() {
492
- return {
493
- "dropdownOpen": {}
494
- };
495
- }
496
563
  static get elementRef() { return "hostElement"; }
497
564
  static get watchers() {
498
565
  return [{
566
+ "propName": "popDirection",
567
+ "methodName": "popDirectionHandler"
568
+ }, {
499
569
  "propName": "ariaLabel",
500
- "methodName": "ariaLabelObserver"
570
+ "methodName": "ariaLabelHandler"
501
571
  }, {
502
572
  "propName": "name",
503
573
  "methodName": "nameHandler"
@@ -519,6 +589,12 @@ export class Q2Dropdown {
519
589
  "target": undefined,
520
590
  "capture": false,
521
591
  "passive": false
592
+ }, {
593
+ "name": "popoverStateChanged",
594
+ "method": "popoverStateHandler",
595
+ "target": undefined,
596
+ "capture": false,
597
+ "passive": false
522
598
  }];
523
599
  }
524
600
  }
@@ -65,101 +65,15 @@ button {
65
65
  visibility: hidden;
66
66
  }
67
67
 
68
- .q2-element-dropdown {
69
- display: none;
70
- position: absolute;
71
- background-color: var(--app-white, #ffffff);
72
- color: var(--t-text, #4d4d4d);
73
- left: 0;
74
- width: 100%;
75
- z-index: 100;
76
- margin-top: 1px;
77
- box-shadow: var(--app-shadow-1, 0 2px 4px rgba(0, 0, 0, 0.3));
78
- height: 0;
79
- overflow: hidden;
80
- opacity: 0;
81
- visibility: hidden;
82
- transition: opacity var(--app-tween-1, 0.2s ease);
83
- border-radius: var(--tct-dropdown-border-radius, --t-dropdown-border-radius, 0);
84
- --comp-scrollbar-size: var(--tct-scrollbar-size, var(--t-scrollbar-size, var(--app-scale-1x, 5px)));
85
- --comp-scrollbar-border-radius: var(--tct-scrollbar-border-radius, var(--t-scrollbar-border-radius, var(--app-border-radius-1, 3px)));
86
- --comp-scrollbar-color: var(--tct-scrollbar-color, var(--t-scrollbar-color, var(--t-a11y-gray-color, #747474)));
87
- scrollbar-width: thin;
88
- scrollbar-color: var(--comp-scrollbar-color) transparent;
89
- }
90
- .q2-element-dropdown::-webkit-scrollbar {
91
- width: var(--comp-scrollbar-size);
92
- height: var(--comp-scrollbar-size);
93
- margin: 5px;
94
- }
95
- .q2-element-dropdown::-webkit-scrollbar-thumb {
96
- background: var(--comp-scrollbar-color);
97
- border-radius: var(--comp-scrollbar-border-radius);
98
- }
99
- .q2-element-dropdown::-webkit-scrollbar-track {
100
- background: transparent;
101
- border-radius: var(--comp-scrollbar-border-radius);
102
- }
103
-
104
- .q2-element-dropdown.sizable {
105
- display: block;
106
- height: auto;
107
- }
108
-
109
- .dropdown-open .q2-element-dropdown {
110
- display: block;
111
- height: auto;
112
- overflow: auto;
113
- opacity: 1;
114
- visibility: visible;
115
- }
116
-
117
- :host([alignment=right]) .q2-element-dropdown {
118
- left: auto;
119
- right: 0;
120
- }
121
-
122
- :host([block]) q2-btn,
123
- :host([block]) {
124
- display: block;
125
- }
126
-
127
68
  :host {
128
69
  display: inline-flex;
129
70
  }
130
71
 
131
- .dropdown-container {
72
+ click-elsewhere {
132
73
  position: relative;
133
74
  display: block;
134
75
  }
135
76
 
136
- .dropdown-button-content {
137
- display: flex;
138
- align-items: center;
139
- }
140
-
141
- .dropdown-button.unstyled .dropdown-button-content {
142
- padding: var(--tct-scale-2, var(--app-scale-2x, 10px)) var(--tct-scale-1, var(--app-scale-1x, 5px));
143
- }
144
-
145
- .q2-element-dropdown {
146
- width: var(--tct-dropdown-width, var(--t-dropdown-width, 175px));
147
- }
148
-
149
- .q2-element-dropdown.dropup {
150
- bottom: var(--tct-btn-icon-height, var(--t-btn-icon-height, 44px));
151
- }
152
-
153
- q2-btn[color=primary] ~ .q2-element-dropdown.dropup,
154
- q2-btn[intent=workflow-primary] ~ .q2-element-dropdown.dropup {
155
- 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)));
156
- }
157
-
158
- q2-btn[color=secondary] ~ .q2-element-dropdown.dropup,
159
- q2-btn[intent=workflow-secondary] ~ .q2-element-dropdown.dropup {
160
- 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)));
161
- }
162
-
163
- q2-btn[intent=neutral] ~ .q2-element-dropdown.dropup {
164
- 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)));
77
+ q2-popover {
78
+ --tct-popover-min-width: var(--tct-dropdown-width, var(--t-dropdown-width));
165
79
  }
@@ -361,11 +361,16 @@ export class Q2Select {
361
361
  }
362
362
  calculateSingleSelectSelectedDisplay() {
363
363
  var _a;
364
- const { firstSelectedOptionElement } = this;
365
- return (((firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.display) && loc(firstSelectedOptionElement.display)) ||
366
- ((_a = firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
367
- this.value ||
368
- '');
364
+ const { firstSelectedOptionElement, multilineOptions } = this;
365
+ if (multilineOptions) {
366
+ return ((firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.display) && loc(firstSelectedOptionElement.display)) || this.value || '';
367
+ }
368
+ else {
369
+ return (((firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.display) && loc(firstSelectedOptionElement.display)) ||
370
+ ((_a = firstSelectedOptionElement === null || firstSelectedOptionElement === void 0 ? void 0 : firstSelectedOptionElement.textContent) === null || _a === void 0 ? void 0 : _a.trim()) ||
371
+ this.value ||
372
+ '');
373
+ }
369
374
  }
370
375
  openDropdownWithoutActiveElement() {
371
376
  if (this.readonly || this.disabled)
@@ -102,6 +102,17 @@ export function handleAriaLabel(target) {
102
102
  target.label = loc(ariaLabel);
103
103
  target.ariaLabel = undefined;
104
104
  }
105
+ /**
106
+ * Handles when a prop has been renamed on a component without introducing a breaking change.
107
+ */
108
+ export function handleRenamedProp(target, oldProp, newProp, removeOldProp) {
109
+ if (typeof target[oldProp] === 'undefined')
110
+ return;
111
+ target[newProp] = target[oldProp];
112
+ if (removeOldProp) {
113
+ delete target[oldProp];
114
+ }
115
+ }
105
116
  export function messagesDOM(target) {
106
117
  const type = target.hasError ? 'danger' : 'info';
107
118
  return (h("div", { class: "messages-container" }, h("q2-message", { appearance: "minimal", description: true, type: type, "test-id": "message" }, h("ul", { id: target.inputDescribedBy }, target.messages.map(message => (h("li", { "test-id": "messageListItem" }, loc(message))))))));
@@ -123,57 +134,6 @@ export function setMessageHeight(target) {
123
134
  }
124
135
  });
125
136
  }
126
- export function setPopProperties(target) {
127
- var _a, _b, _c, _d;
128
- const { dropdownContainer, popDirection } = target;
129
- if (dropdownContainer) {
130
- dropdownContainer.style.maxHeight = null;
131
- }
132
- if (popDirection) {
133
- return (target.privatePopDirection = popDirection);
134
- }
135
- const controlElement = target.inputField || target.controlElement;
136
- const minPopHeight = target.minPopHeight || null;
137
- // Add sizable so that we can capture the height
138
- dropdownContainer.classList.add('sizable');
139
- const dropdownHeight = dropdownContainer.getBoundingClientRect().height;
140
- dropdownContainer.classList.remove('sizable');
141
- const { top: topOffset, height } = controlElement.getBoundingClientRect();
142
- const scrollY = ((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) === null || _b === void 0 ? void 0 : _b.scrollY) || 0;
143
- const innerHeight = ((_d = (_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions) === null || _d === void 0 ? void 0 : _d.innerHeight) || window.innerHeight;
144
- const bottomOffset = scrollY + innerHeight - topOffset - height;
145
- const canShowFullSizeBelow = bottomOffset > dropdownHeight;
146
- const canShowFullSizeAbove = dropdownHeight <= topOffset;
147
- // Prefer full size above or below
148
- if (canShowFullSizeBelow) {
149
- return (target.privatePopDirection = 'down');
150
- }
151
- else if (canShowFullSizeAbove || !minPopHeight) {
152
- determinePopOffset(target);
153
- return (target.privatePopDirection = 'up');
154
- }
155
- // If full size will not fit and minHeight is set, then make as tall as possible
156
- const displayBuffer = 5;
157
- const canShowSmallBelow = bottomOffset >= minPopHeight + displayBuffer;
158
- if (canShowSmallBelow) {
159
- const maxBelowHeight = Math.max(bottomOffset - displayBuffer, minPopHeight);
160
- dropdownContainer.style.maxHeight = `${maxBelowHeight}px`;
161
- return (target.privatePopDirection = 'down');
162
- }
163
- else {
164
- const maxAboveHeight = Math.max(topOffset, minPopHeight);
165
- dropdownContainer.style.maxHeight = `${maxAboveHeight}px`;
166
- determinePopOffset(target);
167
- return (target.privatePopDirection = 'up');
168
- }
169
- }
170
- const determinePopOffset = ({ dropdownContainer, inputField }) => {
171
- var _a, _b;
172
- if (!inputField)
173
- return;
174
- const inputFieldHeight = (_b = (_a = inputField.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.input-field')) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().height;
175
- dropdownContainer.style.setProperty('--comp-dropup-offset', `${inputFieldHeight}px`);
176
- };
177
137
  export const resizeIframe = () => {
178
138
  var _a, _b;
179
139
  return (_b = (_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.resizeIframe) === null || _b === void 0 ? void 0 : _b.call(_a);
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
- import { c as createGuid, l as loc } from './index15.js';
2
+ import { d as createGuid, l as loc } from './index15.js';
3
3
 
4
4
  const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch: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}.q2-optgroup-header{--comp-header-padding:var(--tct-scale-1, var(--app-scale-1x, 5px)) var(--tct-scale-2, var(--app-scale-2x, 10px));background:var(--tct-optgroup-header-bg, var(--t-optgroup-header-bg, var(--tct-gray-13, var(--t-gray-13, var(--tct-gray-l2, var(--app-gray-l2, #e6e6e6))))));padding:var(--tct-optgroup-header-padding, var(--t-optgroup-header-padding, var(--comp-header-padding)));font-weight:var(--tct-optgroup-header-font-weight, var(--t-optgroup-header-font-weight, 600));text-transform:var(--tct-optgroup-header-text-transform, var(--t-optgroup-header-text-transform, uppercase));position:sticky;top:calc(var(--comp-multi-select-header-height, 0px) + var(--tct-optgroup-top, var(--t-optgroup-top, 0px)));z-index:5}";
5
5
 
@@ -540,6 +540,17 @@ function handleAriaLabel(target) {
540
540
  target.label = loc(ariaLabel);
541
541
  target.ariaLabel = undefined;
542
542
  }
543
+ /**
544
+ * Handles when a prop has been renamed on a component without introducing a breaking change.
545
+ */
546
+ function handleRenamedProp(target, oldProp, newProp, removeOldProp) {
547
+ if (typeof target[oldProp] === 'undefined')
548
+ return;
549
+ target[newProp] = target[oldProp];
550
+ if (removeOldProp) {
551
+ delete target[oldProp];
552
+ }
553
+ }
543
554
  function messagesDOM(target) {
544
555
  const type = target.hasError ? 'danger' : 'info';
545
556
  return (h("div", { class: "messages-container" },
@@ -563,57 +574,6 @@ function setMessageHeight(target) {
563
574
  }
564
575
  });
565
576
  }
566
- function setPopProperties(target) {
567
- var _a, _b, _c, _d;
568
- const { dropdownContainer, popDirection } = target;
569
- if (dropdownContainer) {
570
- dropdownContainer.style.maxHeight = null;
571
- }
572
- if (popDirection) {
573
- return (target.privatePopDirection = popDirection);
574
- }
575
- const controlElement = target.inputField || target.controlElement;
576
- const minPopHeight = target.minPopHeight || null;
577
- // Add sizable so that we can capture the height
578
- dropdownContainer.classList.add('sizable');
579
- const dropdownHeight = dropdownContainer.getBoundingClientRect().height;
580
- dropdownContainer.classList.remove('sizable');
581
- const { top: topOffset, height } = controlElement.getBoundingClientRect();
582
- const scrollY = ((_b = (_a = window.Tecton) === null || _a === void 0 ? void 0 : _a.platformDimensions) === null || _b === void 0 ? void 0 : _b.scrollY) || 0;
583
- const innerHeight = ((_d = (_c = window.Tecton) === null || _c === void 0 ? void 0 : _c.platformDimensions) === null || _d === void 0 ? void 0 : _d.innerHeight) || window.innerHeight;
584
- const bottomOffset = scrollY + innerHeight - topOffset - height;
585
- const canShowFullSizeBelow = bottomOffset > dropdownHeight;
586
- const canShowFullSizeAbove = dropdownHeight <= topOffset;
587
- // Prefer full size above or below
588
- if (canShowFullSizeBelow) {
589
- return (target.privatePopDirection = 'down');
590
- }
591
- else if (canShowFullSizeAbove || !minPopHeight) {
592
- determinePopOffset(target);
593
- return (target.privatePopDirection = 'up');
594
- }
595
- // If full size will not fit and minHeight is set, then make as tall as possible
596
- const displayBuffer = 5;
597
- const canShowSmallBelow = bottomOffset >= minPopHeight + displayBuffer;
598
- if (canShowSmallBelow) {
599
- const maxBelowHeight = Math.max(bottomOffset - displayBuffer, minPopHeight);
600
- dropdownContainer.style.maxHeight = `${maxBelowHeight}px`;
601
- return (target.privatePopDirection = 'down');
602
- }
603
- else {
604
- const maxAboveHeight = Math.max(topOffset, minPopHeight);
605
- dropdownContainer.style.maxHeight = `${maxAboveHeight}px`;
606
- determinePopOffset(target);
607
- return (target.privatePopDirection = 'up');
608
- }
609
- }
610
- const determinePopOffset = ({ dropdownContainer, inputField }) => {
611
- var _a, _b;
612
- if (!inputField)
613
- return;
614
- const inputFieldHeight = (_b = (_a = inputField.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.input-field')) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().height;
615
- dropdownContainer.style.setProperty('--comp-dropup-offset', `${inputFieldHeight}px`);
616
- };
617
577
  const resizeIframe = () => {
618
578
  var _a, _b;
619
579
  return (_b = (_a = window.TectonElements) === null || _a === void 0 ? void 0 : _a.resizeIframe) === null || _b === void 0 ? void 0 : _b.call(_a);
@@ -626,4 +586,4 @@ const handleColor = (target) => {
626
586
  }
627
587
  };
628
588
 
629
- export { isEventFromElement as a, isTouchDevice as b, createGuid as c, isRelatedTargetWithinHost as d, isHostLosingFocus as e, addSmoothScrollPolyfill as f, setMessageHeight as g, handleAriaLabel as h, isMobile as i, labelDOM as j, handleColor as k, loc as l, messagesDOM as m, nextPaint as n, overrideFocus as o, isFirefox as p, resizeIframe as r, setPopProperties as s, waitForNextPaint as w };
589
+ export { isEventFromElement as a, handleRenamedProp as b, isTouchDevice as c, createGuid as d, isRelatedTargetWithinHost as e, isHostLosingFocus as f, addSmoothScrollPolyfill as g, handleAriaLabel as h, isMobile as i, labelDOM as j, handleColor as k, loc as l, messagesDOM as m, nextPaint as n, overrideFocus as o, isFirefox as p, resizeIframe as r, setMessageHeight as s, waitForNextPaint as w };
@@ -1,7 +1,7 @@
1
1
  import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
2
2
  import { i as icons, d as defineCustomElement$1 } from './index7.js';
3
3
 
4
- const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch: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}.avatar-img{object-fit:cover;height:var(--tct-avatar-img-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-img-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-img-border-radius, --tct-avatar-img-br, --tct-avatar-border-radius, 50%);background-color:unset}.avatar-img-default{object-fit:cover;height:var(--tct-avatar-img-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-img-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, var(--tct-avatar-border-radius, 50%)));background:var(--tct-avatar-background, var(--tct-avatar-bg, #9e9e9e))}.avatar-initials{height:var(--tct-avatar-height, 44px);width:var(--tct-avatar-width, 44px);background:var(--tct-avatar-background, var(--tct-avatar-bg, var(--t-gray-8, #9e9e9e)));border-radius:var(--tct-avatar-br, 50%)}.size-1{--tct-avatar-font-size:var(--tct-avatar-size-1, 60px)}.size-2{--tct-avatar-font-size:var(--tct-avatar-size-2, 50px)}.size-3{--tct-avatar-font-size:var(--tct-avatar-size-3, 40px)}.size-4{--tct-avatar-font-size:var(--tct-avatar-size-4, 30px)}text{fill:var(--tct-avatar-text-color, var(--tct-avatar-color, #ffffff));font-weight:var(--tct-avatar-font-weight, 200);font-size:var(--tct-avatar-font-size, 40px)}.fallback{height:var(--tct-avatar-fallback-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-fallback-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-fallback-border-radius, var(--tct-avatar-fallback-br, var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, 50%))));background:var(--tct-avatar-fallback-background, var(--tct-avatar-fallback-bg, var(--tct-avatar-background, var(--tct-avatar-bg, #9e9e9e))));display:flex;align-items:center;justify-content:center}q2-icon{--t-icon-size:var-list(--tct-avatar-icon-size, --tct-avatar-fallback-icon-size, 65%);--t-icon-fill:var-list(--tct-avatar-icon-fill, --tct-avatar-fallback-fill, transparent);--t-icon-stroke-primary:var-list(\n --tct-avatar-icon-stroke-primary,\n --tct-avatar-fallback-stroke-primary,\n currentcolor\n );--t-icon-stroke-secondary:var-list(\n --tct-avatar-icon-stroke-secondary,\n --tct-avatar-fallback-stroke-secondary,\n currentcolor\n );color:var(--tct-avatar-icon-color, var(--tct-avatar-fallback-color, var(--tct-avatar-color, var(--t-base, #ffffff))));width:var(--tct-avatar-icon-size, var(--t-icon-size));height:var(--tct-avatar-icon-size, var(--t-icon-size))}";
4
+ const stylesCss = "*{box-sizing:border-box}*:active{outline:none}*:focus{outline:none;box-shadow:var(--const-double-focus-ring, 0 0 0 2px #ffffff, 0 0 0 4px #33b4ff #06C)}:host{box-shadow:none !important}::-moz-focus-inner{border:none}input,textarea,button{font-family:inherit;font-size:inherit;font-stretch: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}.avatar-img{object-fit:cover;height:var(--tct-avatar-img-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-img-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-img-border-radius, --tct-avatar-img-br, --tct-avatar-border-radius, 50%);background-color:unset}.avatar-img-default{object-fit:cover;height:var(--tct-avatar-img-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-img-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, var(--tct-avatar-border-radius, 50%)));background:var(--tct-avatar-background, var(--tct-avatar-bg, #9e9e9e))}.avatar-initials{height:var(--tct-avatar-height, 44px);width:var(--tct-avatar-width, 44px);background:var(--tct-avatar-background, var(--tct-avatar-bg, var(--t-gray-8, #9e9e9e)));border-radius:var(--tct-avatar-br, 50%)}.size-1{--tct-avatar-font-size:var(--tct-avatar-size-1, 60px)}.size-2{--tct-avatar-font-size:var(--tct-avatar-size-2, 50px)}.size-3{--tct-avatar-font-size:var(--tct-avatar-size-3, 40px)}.size-4{--tct-avatar-font-size:var(--tct-avatar-size-4, 30px)}text{fill:var(--tct-avatar-text-color, var(--tct-avatar-color, #ffffff));font-weight:var(--tct-avatar-font-weight, 200);font-size:var(--tct-avatar-font-size, 40px)}.fallback{height:var(--tct-avatar-fallback-height, var(--tct-avatar-height, 44px));width:var(--tct-avatar-fallback-width, var(--tct-avatar-width, 44px));border-radius:var(--tct-avatar-fallback-border-radius, var(--tct-avatar-fallback-br, var(--tct-avatar-img-border-radius, var(--tct-avatar-img-br, 50%))));background:var(--tct-avatar-fallback-background, var(--tct-avatar-fallback-bg, var(--tct-avatar-background, var(--tct-avatar-bg, #9e9e9e))));display:flex;align-items:center;justify-content:center}q2-icon{--t-icon-size:var(--tct-avatar-icon-size, var(--tct-avatar-fallback-icon-size, 65%));--t-icon-fill:var(--tct-avatar-icon-fill, var(--tct-avatar-fallback-fill, transparent));--t-icon-stroke-primary:var(--tct-avatar-icon-stroke-primary, var(--tct-avatar-fallback-stroke-primary, currentcolor));--t-icon-stroke-secondary:var(--tct-avatar-icon-stroke-secondary, var(--tct-avatar-fallback-stroke-secondary, currentcolor));color:var(--tct-avatar-icon-color, var(--tct-avatar-fallback-color, var(--tct-avatar-color, var(--t-base, #ffffff))));width:var(--tct-avatar-icon-size, var(--t-icon-size));height:var(--tct-avatar-icon-size, var(--t-icon-size))}";
5
5
 
6
6
  const Q2Avatar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
7
7
  constructor() {
@@ -1,5 +1,5 @@
1
1
  import { h, proxyCustomElement, HTMLElement } from '@stencil/core/internal/client';
2
- import { c as createGuid } from './index15.js';
2
+ import { d as createGuid } from './index15.js';
3
3
 
4
4
  const icons = {
5
5
  a11y: {
@@ -1,5 +1,5 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, h, Fragment } from '@stencil/core/internal/client';
2
- import { i as isMobile, c as createGuid, g as setMessageHeight, h as handleAriaLabel, o as overrideFocus, l as loc, a as isEventFromElement, j as labelDOM, m as messagesDOM } from './index15.js';
2
+ import { i as isMobile, d as createGuid, s as setMessageHeight, h as handleAriaLabel, o as overrideFocus, l as loc, a as isEventFromElement, j as labelDOM, m as messagesDOM } from './index15.js';
3
3
  import { d as defineCustomElement$4 } from './index4.js';
4
4
  import { d as defineCustomElement$3 } from './index5.js';
5
5
  import { d as defineCustomElement$2 } from './index7.js';