@quartzds/core 1.0.0-beta.128 → 1.0.0-beta.129

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 (176) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/components/index.js +1 -1
  3. package/components/{p-DhXeFnmO.js → p-BJEvSqqL.js} +5 -5
  4. package/components/{p-DhXeFnmO.js.map → p-BJEvSqqL.js.map} +1 -1
  5. package/components/{p-C9IjLb3Y.js → p-Bn9o5Um2.js} +3 -3
  6. package/components/{p-C9IjLb3Y.js.map → p-Bn9o5Um2.js.map} +1 -1
  7. package/components/{p-CRMf7xaM.js → p-BoqB4ddF.js} +9 -6
  8. package/components/p-BoqB4ddF.js.map +1 -0
  9. package/components/{p-DzybtRcv.js → p-CQ-Ilm5d.js} +5 -5
  10. package/components/p-CQ-Ilm5d.js.map +1 -0
  11. package/components/{p-meIfRYro.js → p-Cevyg51v.js} +5 -5
  12. package/components/p-Cevyg51v.js.map +1 -0
  13. package/components/{p-DF9UaDLm.js → p-CnWdHgve.js} +8 -8
  14. package/components/p-CnWdHgve.js.map +1 -0
  15. package/components/{p-BtT3CnSD.js → p-CrzaI1TQ.js} +9 -9
  16. package/components/{p-BtT3CnSD.js.map → p-CrzaI1TQ.js.map} +1 -1
  17. package/components/{p-DTtaqXO_.js → p-DEa0r_EV.js} +6 -6
  18. package/components/{p-DTtaqXO_.js.map → p-DEa0r_EV.js.map} +1 -1
  19. package/components/{p-Dcnye_tS.js → p-DOqfdgQA.js} +3 -3
  20. package/components/{p-Dcnye_tS.js.map → p-DOqfdgQA.js.map} +1 -1
  21. package/components/{p-B6Ey_-Vx.js → p-DjZ2J7fQ.js} +5 -5
  22. package/components/{p-B6Ey_-Vx.js.map → p-DjZ2J7fQ.js.map} +1 -1
  23. package/components/{p-CJjC212f.js → p-Do46q_Gd.js} +4 -4
  24. package/components/{p-CJjC212f.js.map → p-Do46q_Gd.js.map} +1 -1
  25. package/components/{p-WIHZZjmJ.js → p-cw45QxUT.js} +7 -7
  26. package/components/{p-WIHZZjmJ.js.map → p-cw45QxUT.js.map} +1 -1
  27. package/components/{p-oL9ZVNSo.js → p-fKK7EmM2.js} +3 -3
  28. package/components/{p-oL9ZVNSo.js.map → p-fKK7EmM2.js.map} +1 -1
  29. package/components/qds-action-item.js +3 -3
  30. package/components/qds-avatar-media.js +1 -1
  31. package/components/qds-avatar.js +4 -4
  32. package/components/qds-badge-indicator.js +1 -1
  33. package/components/qds-breadcrumb-item.js +3 -3
  34. package/components/qds-button.js +4 -4
  35. package/components/qds-checkbox.js +1 -1
  36. package/components/qds-chip.js +8 -7
  37. package/components/qds-chip.js.map +1 -1
  38. package/components/qds-dialog.js +6 -6
  39. package/components/qds-divider.js +1 -1
  40. package/components/qds-dropdown.js +1 -1
  41. package/components/qds-form-message.js +1 -1
  42. package/components/qds-icon-button.js +1 -1
  43. package/components/qds-icon-tab.js +59 -26
  44. package/components/qds-icon-tab.js.map +1 -1
  45. package/components/qds-icon.js +1 -1
  46. package/components/qds-inline-link.js +4 -4
  47. package/components/qds-input.js +4 -4
  48. package/components/qds-input.js.map +1 -1
  49. package/components/qds-label.js +2 -2
  50. package/components/qds-list-item.js +10 -10
  51. package/components/qds-loader.js +1 -1
  52. package/components/qds-menu-item.js +4 -4
  53. package/components/qds-mini-button.js +1 -1
  54. package/components/qds-progress-bar.js +1 -1
  55. package/components/qds-radio.js +1 -1
  56. package/components/qds-select.js +3 -3
  57. package/components/qds-standalone-link.js +4 -4
  58. package/components/qds-switch.js +5 -5
  59. package/components/qds-tab.js +39 -25
  60. package/components/qds-tab.js.map +1 -1
  61. package/components/qds-tabbar.js +140 -33
  62. package/components/qds-tabbar.js.map +1 -1
  63. package/components/qds-table-cell.js +2 -2
  64. package/components/qds-table-head-cell.js +2 -2
  65. package/components/qds-table-row.js +1 -1
  66. package/components/qds-table.js +1 -1
  67. package/components/qds-tag.js +1 -1
  68. package/components/qds-textarea.js +4 -4
  69. package/components/qds-textarea.js.map +1 -1
  70. package/components/qds-title.js +1 -1
  71. package/components/qds-tooltip.js +1 -1
  72. package/dist/cjs/{helpers-D2klK1IS.js → helpers-D6srVOLt.js} +9 -6
  73. package/dist/cjs/{helpers-D2klK1IS.js.map → helpers-D6srVOLt.js.map} +1 -1
  74. package/dist/cjs/loader.cjs.js +1 -1
  75. package/dist/cjs/qds-action-item.cjs.entry.js +1 -1
  76. package/dist/cjs/qds-avatar-media.cjs.entry.js +1 -1
  77. package/dist/cjs/qds-avatar.cjs.entry.js +1 -1
  78. package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +1 -1
  79. package/dist/cjs/qds-button.cjs.entry.js +1 -1
  80. package/dist/cjs/qds-checkbox_2.cjs.entry.js +6 -6
  81. package/dist/cjs/qds-chip.cjs.entry.js +5 -4
  82. package/dist/cjs/qds-chip.entry.cjs.js.map +1 -1
  83. package/dist/cjs/qds-dialog.cjs.entry.js +2 -2
  84. package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -1
  85. package/dist/cjs/qds-divider_2.cjs.entry.js +4 -4
  86. package/dist/cjs/qds-dropdown.cjs.entry.js +3 -3
  87. package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -1
  88. package/dist/cjs/qds-icon-tab.cjs.entry.js +51 -21
  89. package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -1
  90. package/dist/cjs/qds-icon.cjs.entry.js +1 -1
  91. package/dist/cjs/qds-inline-link.cjs.entry.js +3 -3
  92. package/dist/cjs/qds-input.cjs.entry.js +2 -2
  93. package/dist/cjs/qds-input.entry.cjs.js.map +1 -1
  94. package/dist/cjs/qds-label.cjs.entry.js +1 -1
  95. package/dist/cjs/qds-list-item.cjs.entry.js +1 -1
  96. package/dist/cjs/qds-menu-item.cjs.entry.js +1 -1
  97. package/dist/cjs/qds-mini-button.cjs.entry.js +2 -2
  98. package/dist/cjs/qds-progress-bar.cjs.entry.js +1 -1
  99. package/dist/cjs/qds-select.cjs.entry.js +2 -2
  100. package/dist/cjs/qds-standalone-link.cjs.entry.js +3 -3
  101. package/dist/cjs/qds-switch.cjs.entry.js +4 -4
  102. package/dist/cjs/qds-tab.cjs.entry.js +34 -20
  103. package/dist/cjs/qds-tab.entry.cjs.js.map +1 -1
  104. package/dist/cjs/qds-tabbar.cjs.entry.js +130 -26
  105. package/dist/cjs/qds-tabbar.entry.cjs.js.map +1 -1
  106. package/dist/cjs/qds-table-cell.cjs.entry.js +2 -2
  107. package/dist/cjs/qds-table-head-cell.cjs.entry.js +2 -2
  108. package/dist/cjs/qds-table-row.cjs.entry.js +1 -1
  109. package/dist/cjs/qds-table.cjs.entry.js +1 -1
  110. package/dist/cjs/qds-tag.cjs.entry.js +3 -3
  111. package/dist/cjs/qds-textarea.cjs.entry.js +4 -4
  112. package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -1
  113. package/dist/cjs/qds-title.cjs.entry.js +2 -2
  114. package/dist/cjs/qds-tooltip.cjs.entry.js +3 -3
  115. package/dist/cjs/qds-tooltip.entry.cjs.js.map +1 -1
  116. package/dist/cjs/qds.cjs.js +1 -1
  117. package/dist/custom-elements.json +203 -13
  118. package/dist/docs.json +37 -1
  119. package/dist/esm/{helpers-_EoroLk_.js → helpers-_a9kqEyo.js} +9 -6
  120. package/dist/esm/{helpers-_EoroLk_.js.map → helpers-_a9kqEyo.js.map} +1 -1
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/esm/qds-action-item.entry.js +1 -1
  123. package/dist/esm/qds-avatar-media.entry.js +1 -1
  124. package/dist/esm/qds-avatar.entry.js +1 -1
  125. package/dist/esm/qds-breadcrumb-item.entry.js +1 -1
  126. package/dist/esm/qds-button.entry.js +1 -1
  127. package/dist/esm/qds-checkbox_2.entry.js +6 -6
  128. package/dist/esm/qds-chip.entry.js +5 -4
  129. package/dist/esm/qds-chip.entry.js.map +1 -1
  130. package/dist/esm/qds-dialog.entry.js +2 -2
  131. package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -1
  132. package/dist/esm/qds-divider_2.entry.js +4 -4
  133. package/dist/esm/qds-dropdown.entry.js +3 -3
  134. package/dist/esm/qds-dropdown.entry.js.map +1 -1
  135. package/dist/esm/qds-icon-tab.entry.js +51 -21
  136. package/dist/esm/qds-icon-tab.entry.js.map +1 -1
  137. package/dist/esm/qds-icon.entry.js +1 -1
  138. package/dist/esm/qds-inline-link.entry.js +3 -3
  139. package/dist/esm/qds-input.entry.js +2 -2
  140. package/dist/esm/qds-input.entry.js.map +1 -1
  141. package/dist/esm/qds-label.entry.js +1 -1
  142. package/dist/esm/qds-list-item.entry.js +1 -1
  143. package/dist/esm/qds-menu-item.entry.js +1 -1
  144. package/dist/esm/qds-mini-button.entry.js +2 -2
  145. package/dist/esm/qds-progress-bar.entry.js +1 -1
  146. package/dist/esm/qds-select.entry.js +2 -2
  147. package/dist/esm/qds-standalone-link.entry.js +3 -3
  148. package/dist/esm/qds-switch.entry.js +4 -4
  149. package/dist/esm/qds-tab.entry.js +34 -20
  150. package/dist/esm/qds-tab.entry.js.map +1 -1
  151. package/dist/esm/qds-tabbar.entry.js +130 -26
  152. package/dist/esm/qds-tabbar.entry.js.map +1 -1
  153. package/dist/esm/qds-table-cell.entry.js +2 -2
  154. package/dist/esm/qds-table-head-cell.entry.js +2 -2
  155. package/dist/esm/qds-table-row.entry.js +1 -1
  156. package/dist/esm/qds-table.entry.js +1 -1
  157. package/dist/esm/qds-tag.entry.js +3 -3
  158. package/dist/esm/qds-textarea.entry.js +4 -4
  159. package/dist/esm/qds-textarea.entry.js.map +1 -1
  160. package/dist/esm/qds-title.entry.js +2 -2
  161. package/dist/esm/qds-tooltip.entry.js +3 -3
  162. package/dist/esm/qds-tooltip.entry.js.map +1 -1
  163. package/dist/esm/qds.js +1 -1
  164. package/dist/types/components/icon-tab/icon-tab.d.ts +2 -1
  165. package/dist/types/components/tab/tab.d.ts +2 -0
  166. package/dist/types/components/tabbar/tabbar.d.ts +7 -0
  167. package/dist/types/components.d.ts +8 -0
  168. package/dist/types/helpers.d.ts +1 -1
  169. package/dist/vscode.html-custom-data.json +4 -0
  170. package/hydrate/index.js +267 -113
  171. package/hydrate/index.mjs +267 -113
  172. package/package.json +1 -1
  173. package/components/p-CRMf7xaM.js.map +0 -1
  174. package/components/p-DF9UaDLm.js.map +0 -1
  175. package/components/p-DzybtRcv.js.map +0 -1
  176. package/components/p-meIfRYro.js.map +0 -1
@@ -4,15 +4,15 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-D2489VzR.js';
7
- import { i as invariant, V as VERTICAL_MOVE_KEYS, H as HORIZONTAL_MOVE_KEYS, q as resolvePanelElement, s as componentOnReady } from './p-CRMf7xaM.js';
7
+ import { i as invariant, V as VERTICAL_MOVE_KEYS, H as HORIZONTAL_MOVE_KEYS, q as resolvePanelElement, s as componentOnReady } from './p-BoqB4ddF.js';
8
8
  import { d as defineCustomElement$7 } from './p-XP2CY_fo.js';
9
- import { d as defineCustomElement$6 } from './p-Dcnye_tS.js';
10
- import { d as defineCustomElement$5 } from './p-C9IjLb3Y.js';
11
- import { d as defineCustomElement$4 } from './p-oL9ZVNSo.js';
12
- import { d as defineCustomElement$3 } from './p-DF9UaDLm.js';
13
- import { d as defineCustomElement$2 } from './p-DzybtRcv.js';
9
+ import { d as defineCustomElement$6 } from './p-DOqfdgQA.js';
10
+ import { d as defineCustomElement$5 } from './p-Bn9o5Um2.js';
11
+ import { d as defineCustomElement$4 } from './p-fKK7EmM2.js';
12
+ import { d as defineCustomElement$3 } from './p-CnWdHgve.js';
13
+ import { d as defineCustomElement$2 } from './p-CQ-Ilm5d.js';
14
14
 
15
- const tabbarCss = ":host([hidden]){display:none!important}:host{display:block}.qds-tabbar,.qds-tabs,.qds-vertical,.qds-vertical-divider{display:flex}.qds-tabbar,.qds-vertical-divider{width:inherit}.qds-arrow-start{transform:scaleX(var(--qds-direction-factor,1)) rotate(180deg)}.qds-align-center{align-content:center}.qds-hidden{display:none}.qds-centered{justify-content:center}.qds-tabs{flex:1;margin-block:0;overflow:auto;padding-inline-start:0;scroll-behavior:smooth;scrollbar-width:none}.qds-vertical{flex-direction:column}.qds-vertical-divider{flex-direction:row}[data-size=small]{gap:var(--qds-control-small-gap-siblings-related)}[data-size=standard]{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=root] .qds-tabs,[data-size=large]{gap:var(--qds-control-large-gap-siblings-related)}[data-layer=main][data-level=section] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=subsection] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}[data-layer=popup][data-level=root] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=popup][data-level=section] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}:is([data-layer=panel],[data-layer=accessory])[data-level=root] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}";
15
+ const tabbarCss = ":host([hidden]){display:none!important}:host{display:block}.qds-tabbar,.qds-tabs,.qds-vertical,.qds-vertical-divider{display:flex}.qds-tabbar,.qds-vertical-divider{width:inherit}.qds-arrow-start{transform:scaleX(var(--qds-direction-factor,1)) rotate(180deg)}.qds-align-center{align-content:center}.qds-hidden{display:none}.qds-centered{justify-content:center}.qds-tabs{flex:1;margin-block:0;overflow:auto;padding-inline-start:0;scroll-behavior:smooth;scrollbar-width:none}.qds-vertical{flex-direction:column}.qds-vertical-divider{flex-direction:row}[data-size=small]{gap:var(--qds-control-small-gap-siblings-related)}[data-size=standard]{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=root] .qds-tabs,[data-size=large]{gap:var(--qds-control-large-gap-siblings-related)}[data-layer=main][data-level=section] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=subsection] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}[data-layer=popup][data-level=root] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=popup][data-level=section] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}:is([data-layer=panel],[data-layer=accessory])[data-level=root] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}.qds-sr-only{clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
16
16
 
17
17
  // SPDX-FileCopyrightText: © 2024 Schneider Electric
18
18
  //
@@ -33,7 +33,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
33
33
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
34
34
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
35
35
  };
36
- var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_tabbar, _Tabbar_computedImportance_get, _Tabbar_computedSize_get, _Tabbar_computedPlacement_get, _Tabbar_computeDividerVisible_get, _Tabbar_computedAriaOrientation_get, _Tabbar_getTabItems, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_switchTabPanel, _Tabbar_handleTabActivation, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_isVerticalPlacement, _Tabbar_isHorizontalPlacement, _Tabbar_isEndOrBottomPlacement, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_syncInternalsAccessibility, _Tabbar_updateTabsCache, _Tabbar_setTabSettings, _Tabbar_onSlotchange;
36
+ var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_mutationObserver, _Tabbar_tabbar, _Tabbar_toggleAnnouncement, _Tabbar_scrollStartButton, _Tabbar_scrollEndButton, _Tabbar_pendingArrowFocus, _Tabbar_isInternallySettingActive, _Tabbar_computedImportance_get, _Tabbar_computedSize_get, _Tabbar_computedPlacement_get, _Tabbar_computeDividerVisible_get, _Tabbar_computedAriaOrientation_get, _Tabbar_getTabItems, _Tabbar_announceScroll, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_handleTabMutation, _Tabbar_activateTab, _Tabbar_switchTabPanel, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_isVerticalPlacement, _Tabbar_isHorizontalPlacement, _Tabbar_isEndOrBottomPlacement, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_syncInternalsAccessibility, _Tabbar_updateTabsCache, _Tabbar_setTabSettings, _Tabbar_onSlotchange, _Tabbar_scrollEndButtonRef, _Tabbar_scrollStartButtonRef;
37
37
  const TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab';
38
38
  const TAB_SETTINGS = {
39
39
  'main-root': {
@@ -79,7 +79,12 @@ const isTabItem = (item) => {
79
79
  return tagName === 'qds-tab' || tagName === 'qds-icon-tab';
80
80
  };
81
81
  const isEnabledTabItem = (item) => isTabItem(item) && !item.inert && item.disabled !== true;
82
+ const isTabActive = (tab) => tab.selected;
82
83
  const getTabTrigger = (tab) => tab.tab;
84
+ const getPanelId = (tab) => {
85
+ const panelElement = resolvePanelElement(tab);
86
+ return panelElement?.id ?? '';
87
+ };
83
88
  const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
84
89
  constructor(registerHost) {
85
90
  super();
@@ -130,26 +135,37 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
130
135
  this.alignment = 'start';
131
136
  this.disableEndArrow = false;
132
137
  this.disableStartArrow = false;
138
+ this.scrollAnnouncement = '';
133
139
  _Tabbar_tabs.set(this, []);
134
140
  _Tabbar_ro.set(this, void 0);
141
+ _Tabbar_mutationObserver.set(this, void 0);
135
142
  _Tabbar_tabbar.set(this, void 0);
143
+ _Tabbar_toggleAnnouncement.set(this, false);
144
+ _Tabbar_scrollStartButton.set(this, void 0);
145
+ _Tabbar_scrollEndButton.set(this, void 0);
146
+ _Tabbar_pendingArrowFocus.set(this, void 0);
147
+ _Tabbar_isInternallySettingActive.set(this, false);
136
148
  _Tabbar_scrollToStart.set(this, () => {
137
149
  invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
138
150
  const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
151
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'end', "f");
139
152
  __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
140
153
  left: isRTL
141
154
  ? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
142
155
  : __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
143
156
  });
157
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'previous');
144
158
  });
145
159
  _Tabbar_scrollToEnd.set(this, () => {
146
160
  invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
147
161
  const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
162
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'start', "f");
148
163
  __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
149
164
  left: isRTL
150
165
  ? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
151
166
  : __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
152
167
  });
168
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'next');
153
169
  });
154
170
  _Tabbar_isVerticalPlacement.set(this, () => this.placement === 'start' || this.placement === 'end');
155
171
  _Tabbar_isHorizontalPlacement.set(this, () => this.placement === 'top' || this.placement === 'bottom');
@@ -161,8 +177,7 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
161
177
  const tab = target.closest(TAB_ITEM_SELECTOR);
162
178
  if (!isEnabledTabItem(tab))
163
179
  return;
164
- __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabActivation).call(this, tab);
165
- __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, tab);
180
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, tab);
166
181
  });
167
182
  _Tabbar_onKeyDown.set(this, (event) => {
168
183
  const isVertical = this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this);
@@ -216,8 +231,7 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
216
231
  target.focus({ preventScroll: true });
217
232
  if (!isVertical)
218
233
  target.scrollIntoView();
219
- __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabActivation).call(this, nextTab);
220
- __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, nextTab);
234
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, nextTab);
221
235
  });
222
236
  _Tabbar_onMouseDown.set(this, (event) => {
223
237
  const { target } = event;
@@ -249,6 +263,13 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
249
263
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_updateTabsCache).call(this);
250
264
  if (__classPrivateFieldGet(this, _Tabbar_tabs, "f").length > 0)
251
265
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, __classPrivateFieldGet(this, _Tabbar_tabs, "f")[0]);
266
+ __classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
267
+ });
268
+ _Tabbar_scrollEndButtonRef.set(this, (button) => {
269
+ __classPrivateFieldSet(this, _Tabbar_scrollEndButton, button, "f");
270
+ });
271
+ _Tabbar_scrollStartButtonRef.set(this, (button) => {
272
+ __classPrivateFieldSet(this, _Tabbar_scrollStartButton, button, "f");
252
273
  });
253
274
  }
254
275
  settingChanged() {
@@ -260,12 +281,46 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
260
281
  windowResize() {
261
282
  __classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
262
283
  }
284
+ activeChanged() {
285
+ if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
286
+ return;
287
+ if (this.active === undefined || this.active === '')
288
+ return;
289
+ const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
290
+ const nextTab = tabs.find((tab) => {
291
+ const panelId = getPanelId(tab);
292
+ return panelId === this.active;
293
+ });
294
+ if (!nextTab || nextTab.disabled === true)
295
+ return;
296
+ const previousTab = this.activeTab;
297
+ if (previousTab === nextTab && this.active === getPanelId(nextTab))
298
+ return;
299
+ this.activeTab = nextTab;
300
+ if (previousTab && previousTab !== nextTab) {
301
+ this.hideEmitter.emit(previousTab);
302
+ }
303
+ if (previousTab !== nextTab) {
304
+ this.showEmitter.emit(nextTab);
305
+ }
306
+ // Update tab states without triggering mutation observer
307
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
308
+ for (const t of tabs) {
309
+ const target = getTabTrigger(t);
310
+ const isSelected = t === nextTab;
311
+ t.selected = isSelected;
312
+ if (target instanceof globalThis.Element)
313
+ target.ariaSelected = isSelected.toString();
314
+ }
315
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
316
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, nextTab);
317
+ }
263
318
  componentWillLoad() {
264
319
  this.settingChanged();
265
320
  this.internals.role = 'tablist';
266
321
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_syncInternalsAccessibility).call(this);
267
322
  const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
268
- const preselectedTab = tabs.find((tab) => tab.selected);
323
+ const preselectedTab = tabs.find((tab) => isTabActive(tab));
269
324
  if (preselectedTab)
270
325
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, preselectedTab);
271
326
  else if (tabs.length > 0)
@@ -274,26 +329,43 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
274
329
  componentDidRender() {
275
330
  if (this.activeTab)
276
331
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, this.activeTab);
332
+ if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'start' && this.disableEndArrow) {
333
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
334
+ __classPrivateFieldGet(this, _Tabbar_scrollStartButton, "f")?.focus();
335
+ }
336
+ else if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'end' && this.disableStartArrow) {
337
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
338
+ __classPrivateFieldGet(this, _Tabbar_scrollEndButton, "f")?.focus();
339
+ }
277
340
  this.settingChanged();
278
341
  }
279
342
  componentDidLoad() {
280
343
  invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
281
344
  __classPrivateFieldSet(this, _Tabbar_ro, new ResizeObserver(__classPrivateFieldGet(this, _Tabbar_onScroll, "f")), "f");
282
345
  __classPrivateFieldGet(this, _Tabbar_ro, "f").observe(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
346
+ __classPrivateFieldSet(this, _Tabbar_mutationObserver, new MutationObserver((mutations) => {
347
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabMutation).call(this, mutations);
348
+ }), "f");
349
+ __classPrivateFieldGet(this, _Tabbar_mutationObserver, "f").observe(this.host, {
350
+ attributes: true,
351
+ attributeFilter: ['active'],
352
+ childList: true,
353
+ subtree: true,
354
+ });
283
355
  }
284
356
  disconnectedCallback() {
285
- if (__classPrivateFieldGet(this, _Tabbar_ro, "f"))
286
- __classPrivateFieldGet(this, _Tabbar_ro, "f").disconnect();
357
+ __classPrivateFieldGet(this, _Tabbar_ro, "f")?.disconnect();
358
+ __classPrivateFieldGet(this, _Tabbar_mutationObserver, "f")?.disconnect();
287
359
  }
288
360
  render() {
289
- return (h("div", { key: '8591f74558abeec27a6c1e1b311177463cb5992e', class: {
361
+ return (h("div", { key: '43a1bae6bd980854ec8cbc786be30d3c4dae4ae9', class: {
290
362
  'qds-vertical-divider': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
291
- }, "data-layer": this.layer, "data-level": this.level, "data-importance": __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) }, __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && __classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '00282e934dacfb0a0651ee106a668ac52c4d1c5b', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) })), h("div", { key: 'e49a2b154315c79b89349d7bd32b4a77964629c7', class: "qds-tabbar" }, h("div", { key: 'e06a929cc8514fc6d3085545aa87af2cd0b2b77b', class: {
363
+ }, "data-layer": this.layer, "data-level": this.level, "data-importance": __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) }, h("span", { key: '6c81132bbb30f3c5813186bd9a2e6c4715b208c5', class: "qds-sr-only", "aria-live": "polite" }, this.scrollAnnouncement), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && __classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '147475632fc9fd2d8f859240dfa71e45058c4d78', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) })), h("div", { key: '51a0179675663618453b54d25bda6054e3f91321', class: "qds-tabbar" }, h("div", { key: '44f0167da0d5b5d682f86c57a0a7b347e51e0fca', class: {
292
364
  'qds-align-center': true,
293
365
  'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
294
366
  this.orientation === 'vertical' ||
295
367
  __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
296
- } }, h("qds-icon-button", { key: '862744ce7171f7bc6213ec150cfbe69e92eedb10', "aria-label": "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow })), h("div", { key: 'f3657c4be9d81155c9868993d5870c223475b7a0', class: {
368
+ } }, h("qds-icon-button", { key: '22a512257855b48e1b50f9b48d06017c756a58ea', "aria-label": "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollStartButtonRef, "f") })), h("div", { key: '4e1a36aaf66917a57bf64618fa675e91db34e555', class: {
297
369
  'qds-tabs': true,
298
370
  'qds-vertical': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
299
371
  'qds-centered': this.alignment === 'center' &&
@@ -303,12 +375,12 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
303
375
  this.disableStartArrow,
304
376
  }, ref: (element) => {
305
377
  __classPrivateFieldSet(this, _Tabbar_tabbar, element, "f");
306
- }, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f") }, h("slot", { key: 'f07b2e92977e6b6c14635cbc16d18d0028bc0eee', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), h("div", { key: '737647c4e399bbd90b597262529387e4ad64d315', class: {
378
+ }, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f") }, h("slot", { key: '0ae4c49fd815426bd78962526f5fce946d0688a1', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), h("div", { key: 'c4fc6997f1430efe4975c8ed1ad723fa6d906d79', class: {
307
379
  'qds-align-center': true,
308
380
  'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
309
381
  this.orientation === 'vertical' ||
310
382
  __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
311
- } }, h("qds-icon-button", { key: '110214d91f43ae81c1cd718b538628e2d97e802d', "aria-label": "show next tab", iconName: "next", iconLibrary: "core", importance: "subdued", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToEnd, "f"), disabled: this.disableEndArrow }))), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && !__classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '3bcc003f4ed3e84dcb627097feea57f804fe2fb3', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) }))));
383
+ } }, h("qds-icon-button", { key: '87973e92e8ad9e40a2ba6a2a7ade1040c6e46fde', "aria-label": "show next tab", iconName: "next", iconLibrary: "core", importance: "subdued", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToEnd, "f"), disabled: this.disableEndArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollEndButtonRef, "f") }))), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && !__classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '9c7748c515f2f86c4065b90929dbe7d8f19b377b', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) }))));
312
384
  }
313
385
  static get delegatesFocus() { return true; }
314
386
  get host() { return this; }
@@ -316,7 +388,8 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
316
388
  "importance": ["settingChanged"],
317
389
  "orientation": ["accessibilityChanged"],
318
390
  "placement": ["accessibilityChanged"],
319
- "tablistDescription": ["accessibilityChanged"]
391
+ "tablistDescription": ["accessibilityChanged"],
392
+ "active": ["activeChanged"]
320
393
  }; }
321
394
  static get style() { return tabbarCss; }
322
395
  }, [273, "qds-tabbar", {
@@ -329,16 +402,19 @@ const Tabbar = /*@__PURE__*/ proxyCustomElement(class Tabbar extends H {
329
402
  "showDivider": [4, "show-divider"],
330
403
  "alignment": [1],
331
404
  "importance": [1],
405
+ "active": [1],
332
406
  "disableEndArrow": [32],
333
407
  "disableStartArrow": [32],
334
- "activeTab": [32]
408
+ "activeTab": [32],
409
+ "scrollAnnouncement": [32]
335
410
  }, [[9, "resize", "windowResize"]], {
336
411
  "importance": ["settingChanged"],
337
412
  "orientation": ["accessibilityChanged"],
338
413
  "placement": ["accessibilityChanged"],
339
- "tablistDescription": ["accessibilityChanged"]
414
+ "tablistDescription": ["accessibilityChanged"],
415
+ "active": ["activeChanged"]
340
416
  }]);
341
- _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = new WeakMap(), _Tabbar_isVerticalPlacement = new WeakMap(), _Tabbar_isHorizontalPlacement = new WeakMap(), _Tabbar_isEndOrBottomPlacement = new WeakMap(), _Tabbar_onClick = new WeakMap(), _Tabbar_onKeyDown = new WeakMap(), _Tabbar_onMouseDown = new WeakMap(), _Tabbar_onScroll = new WeakMap(), _Tabbar_onViewportCrop = new WeakMap(), _Tabbar_onSlotchange = new WeakMap(), _Tabbar_instances = new WeakSet(), _Tabbar_computedImportance_get = function _Tabbar_computedImportance_get() {
417
+ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_mutationObserver = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_toggleAnnouncement = new WeakMap(), _Tabbar_scrollStartButton = new WeakMap(), _Tabbar_scrollEndButton = new WeakMap(), _Tabbar_pendingArrowFocus = new WeakMap(), _Tabbar_isInternallySettingActive = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = new WeakMap(), _Tabbar_isVerticalPlacement = new WeakMap(), _Tabbar_isHorizontalPlacement = new WeakMap(), _Tabbar_isEndOrBottomPlacement = new WeakMap(), _Tabbar_onClick = new WeakMap(), _Tabbar_onKeyDown = new WeakMap(), _Tabbar_onMouseDown = new WeakMap(), _Tabbar_onScroll = new WeakMap(), _Tabbar_onViewportCrop = new WeakMap(), _Tabbar_onSlotchange = new WeakMap(), _Tabbar_scrollEndButtonRef = new WeakMap(), _Tabbar_scrollStartButtonRef = new WeakMap(), _Tabbar_instances = new WeakSet(), _Tabbar_computedImportance_get = function _Tabbar_computedImportance_get() {
342
418
  return this.importance;
343
419
  }, _Tabbar_computedSize_get = function _Tabbar_computedSize_get() {
344
420
  return this.size ?? undefined;
@@ -376,8 +452,15 @@ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new W
376
452
  return [
377
453
  ...this.host.querySelectorAll(TAB_ITEM_SELECTOR),
378
454
  ].filter((element) => isTabItem(element));
455
+ }, _Tabbar_announceScroll = function _Tabbar_announceScroll(direction) {
456
+ const text = direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed';
457
+ __classPrivateFieldSet(this, _Tabbar_toggleAnnouncement, !__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f"), "f");
458
+ this.scrollAnnouncement = text + (__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f") ? '' : '.');
379
459
  }, _Tabbar_setActiveTab = function _Tabbar_setActiveTab(tab) {
380
460
  this.activeTab = tab;
461
+ const panelId = getPanelId(tab);
462
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
463
+ this.active = panelId;
381
464
  for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
382
465
  const target = getTabTrigger(t);
383
466
  const isSelected = t === tab;
@@ -385,22 +468,46 @@ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new W
385
468
  if (target instanceof globalThis.Element)
386
469
  target.ariaSelected = isSelected.toString();
387
470
  }
388
- }, _Tabbar_switchTabPanel = function _Tabbar_switchTabPanel(activeTab) {
389
- for (const tab of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
390
- const panel = resolvePanelElement(tab);
391
- if (panel) {
392
- panel.hidden = tab !== activeTab;
393
- }
471
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
472
+ }, _Tabbar_handleTabMutation = function _Tabbar_handleTabMutation(mutations) {
473
+ if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
474
+ return;
475
+ const activeTab = mutations
476
+ .map((m) => m.target)
477
+ .find((target) => target instanceof H && isTabItem(target) && target.selected);
478
+ if (activeTab) {
479
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, activeTab);
394
480
  }
395
- }, _Tabbar_handleTabActivation = function _Tabbar_handleTabActivation(tab) {
481
+ }, _Tabbar_activateTab = function _Tabbar_activateTab(tab) {
396
482
  const previousTab = this.activeTab;
397
483
  if (previousTab === tab)
398
484
  return;
399
485
  this.activeTab = tab;
400
- this.hideEmitter.emit(previousTab);
486
+ const panelId = getPanelId(tab);
487
+ if (previousTab) {
488
+ this.hideEmitter.emit(previousTab);
489
+ }
401
490
  this.showEmitter.emit(tab);
402
491
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, tab);
403
492
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, tab);
493
+ // Set active property without triggering watcher events again
494
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
495
+ this.active = panelId;
496
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
497
+ for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
498
+ const target = getTabTrigger(t);
499
+ const isSelected = t === tab;
500
+ t.selected = isSelected;
501
+ if (target instanceof globalThis.Element)
502
+ target.ariaSelected = isSelected.toString();
503
+ }
504
+ }, _Tabbar_switchTabPanel = function _Tabbar_switchTabPanel(activeTab) {
505
+ for (const tab of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
506
+ const panel = resolvePanelElement(tab);
507
+ if (panel) {
508
+ panel.hidden = tab !== activeTab;
509
+ }
510
+ }
404
511
  }, _Tabbar_getCurrentTab = function _Tabbar_getCurrentTab() {
405
512
  return __classPrivateFieldGet(this, _Tabbar_tabs, "f").find((tab) => getTabTrigger(tab).getAttribute('tabindex') === '0');
406
513
  }, _Tabbar_setCurrentTab = function _Tabbar_setCurrentTab(tab) {
@@ -415,7 +522,7 @@ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new W
415
522
  const tabindex = shouldActivateTab ? '0' : '-1';
416
523
  target.setAttribute('tabindex', tabindex);
417
524
  if (shouldActivateTab)
418
- __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabActivation).call(this, t);
525
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, t);
419
526
  });
420
527
  }
421
528
  }, _Tabbar_syncInternalsAccessibility = function _Tabbar_syncInternalsAccessibility() {
@@ -1 +1 @@
1
- {"file":"qds-tabbar.js","mappings":"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","names":["HTMLElement","__stencil_proxyCustomElement"],"sources":["src/components/tabbar/tabbar.css?tag=qds-tabbar&encapsulation=shadow","src/components/tabbar/tabbar.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: block;\n}\n\n.qds-vertical,\n.qds-vertical-divider,\n.qds-tabbar,\n.qds-tabs {\n display: flex;\n}\n\n.qds-vertical-divider,\n.qds-tabbar {\n width: inherit;\n}\n\n.qds-arrow-start {\n transform: scaleX(var(--qds-direction-factor, 1)) rotate(180deg);\n}\n\n.qds-align-center {\n align-content: center;\n}\n\n.qds-hidden {\n display: none;\n}\n\n.qds-centered {\n justify-content: center;\n}\n\n.qds-tabs {\n flex: 1;\n margin-block: 0;\n overflow: auto;\n padding-inline-start: 0;\n scroll-behavior: smooth;\n scrollbar-width: none;\n}\n\n.qds-vertical {\n flex-direction: column;\n}\n\n.qds-vertical-divider {\n flex-direction: row;\n}\n\n[data-size='small'] {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n[data-size='standard'] {\n gap: var(--qds-control-standard-gap-siblings-related);\n}\n\n[data-size='large'] {\n gap: var(--qds-control-large-gap-siblings-related);\n}\n\n[data-layer='main'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='subsection'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-layer='popup'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n:is([data-layer='panel'], [data-layer='accessory'])[data-level='root']\n .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n invariant,\n resolvePanelElement,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\nimport type { IndicatorPosition } from '../icon-tab/icon-tab'\nimport type { Importance, Size } from '../shared'\nimport type { Tab } from '../tab/tab'\n\nexport type Layer = 'accessory' | 'main' | 'panel' | 'popup'\nexport type Level = 'root' | 'section' | 'subsection'\nexport type TabbarSize = Size | undefined\nexport type TabbarImportance = Exclude<Importance, 'emphasized'> | undefined\nexport type Orientation = 'horizontal' | 'vertical'\nexport type Placement = 'bottom' | 'end' | 'start' | 'top'\nexport type Alignment = 'center' | 'start'\n\ntype TabItemElement = HTMLQdsIconTabElement | HTMLQdsTabElement\n\nconst TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab'\n\nconst TAB_SETTINGS: Record<\n string,\n Pick<Tab, 'importance' | 'indicatorPosition' | 'size'> | undefined\n> = {\n 'main-root': {\n importance: 'standard',\n size: 'large',\n indicatorPosition: 'block-end',\n },\n 'main-section': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'popup-root': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'main-subsection': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'popup-section': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'inline-start',\n },\n 'panel-root': {\n importance: 'standard',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'accessory-root': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-end',\n },\n}\n\nconst isTabItem = (item: unknown): item is TabItemElement => {\n if (!(item instanceof HTMLElement)) return false\n\n const tagName = item.tagName.toLowerCase()\n return tagName === 'qds-tab' || tagName === 'qds-icon-tab'\n}\n\nconst isEnabledTabItem = (item: unknown): item is TabItemElement =>\n isTabItem(item) && !item.inert && item.disabled !== true\n\nconst getTabTrigger = (tab: TabItemElement): HTMLElement =>\n (tab as TabItemElement & { tab: HTMLElement }).tab\n\n/**\n * `<qds-tabbar>` is the component that facilitates navigation between the groups\n * of related content within the page.\n * It allows users to switch between groups by clicking on Tabs without going to another page.\n */\n@Component({\n tag: 'qds-tabbar',\n shadow: { delegatesFocus: true },\n styleUrl: 'tabbar.css',\n})\nexport class Tabbar implements ComponentInterface {\n /**\n * The tabbar's layer.\n *\n * @deprecated The property layer is deprecated. Please use `size` property instead.\n * Please do not use `layer` and `size` at the same time.\n */\n @Prop() public layer?: Layer = 'main'\n\n /**\n * The tabbar's level.\n *\n * @deprecated The property level is deprecated. Please use `size` property instead.\n * Please do not use `level` and `size` at the same time.\n */\n @Prop() public level?: Level = 'root'\n\n /**\n * The tabbar's size. This controls the size of the tabs within the tabbar.\n */\n @Prop() public size?: Size = 'standard'\n\n /**\n * The tabbar's orientation.\n *\n * @deprecated Please use the `placement` property instead. Do not use\n * `orientation` and `placement` at the same time.\n */\n @Prop() public orientation?: Orientation = 'horizontal'\n\n /**\n * The tabbar's placement.\n */\n @Prop() public placement?: Placement = 'top'\n\n /**\n * the tablist Description\n */\n @Prop() public readonly tablistDescription?: string\n\n /**\n * Displays a divider line.\n */\n @Prop() public showDivider?: boolean = false\n\n /**\n * The alignment of tabs. Only applicable for horizontal orientation.\n */\n @Prop() public readonly alignment?: Alignment = 'start'\n\n /**\n * The importance of the tabbar. This controls the visual emphasis of the tabs within the tabbar.\n */\n @Prop() public importance?: TabbarImportance\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabShow', cancelable: false })\n private readonly showEmitter!: EventEmitter<HTMLElement>\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabHide', cancelable: false })\n private readonly hideEmitter!: EventEmitter<HTMLElement>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: TabItemElement\n\n #tabs: TabItemElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #tabbar?: HTMLElement\n\n get #computedImportance(): TabbarImportance {\n return this.importance\n }\n\n get #computedSize(): Size | undefined {\n return this.size ?? undefined\n }\n\n get #computedPlacement(): IndicatorPosition | undefined {\n switch (this.placement) {\n case 'top': {\n return 'block-end'\n }\n case 'end': {\n return 'inline-start'\n }\n case 'bottom': {\n return 'block-start'\n }\n case 'start': {\n return 'inline-end'\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computeDividerVisible(): boolean {\n if (this.layer === 'panel') return false\n if (\n this.layer === 'main' &&\n this.level === 'subsection' &&\n (this.orientation === 'horizontal' || this.#isVerticalPlacement())\n )\n return false\n return this.showDivider === true\n }\n\n get #computedAriaOrientation(): Orientation {\n return this.orientation === 'vertical' || this.#isVerticalPlacement()\n ? 'vertical'\n : 'horizontal'\n }\n\n @Watch('importance')\n protected settingChanged(): void {\n this.#setTabSettings()\n }\n\n @Watch('orientation')\n @Watch('placement')\n @Watch('tablistDescription')\n protected accessibilityChanged(): void {\n this.#syncInternalsAccessibility()\n }\n\n @Listen('resize', { target: 'window' })\n protected windowResize(): void {\n this.#onViewportCrop()\n }\n\n public componentWillLoad(): void {\n this.settingChanged()\n this.internals.role = 'tablist'\n this.#syncInternalsAccessibility()\n const tabs = this.#getTabItems()\n const preselectedTab = tabs.find((tab) => tab.selected)\n if (preselectedTab) this.#setActiveTab(preselectedTab)\n else if (tabs.length > 0) this.#setActiveTab(tabs[0])\n }\n\n public componentDidRender(): void {\n if (this.activeTab) this.#switchTabPanel(this.activeTab)\n this.settingChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#tabbar)\n\n this.#ro = new ResizeObserver(this.#onScroll)\n this.#ro.observe(this.#tabbar)\n }\n\n public disconnectedCallback(): void {\n if (this.#ro) this.#ro.disconnect()\n }\n\n public render() {\n return (\n <div\n class={{\n 'qds-vertical-divider':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n }}\n data-layer={this.layer}\n data-level={this.level}\n data-importance={this.#computedImportance}\n >\n {this.#computeDividerVisible && this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n <div class=\"qds-tabbar\">\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show previous tab\"\n importance=\"subdued\"\n iconName=\"next\"\n iconLibrary=\"core\"\n class=\"qds-arrow-start\"\n onClick={this.#scrollToStart}\n disabled={this.disableStartArrow}\n />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n class={{\n 'qds-tabs': true,\n 'qds-vertical':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n 'qds-centered':\n this.alignment === 'center' &&\n (this.orientation === 'horizontal' ||\n this.#isHorizontalPlacement()) &&\n this.disableEndArrow &&\n this.disableStartArrow,\n }}\n ref={(element) => {\n this.#tabbar = element\n }}\n onClick={this.#onClick}\n onKeyDown={this.#onKeyDown}\n onMouseDown={this.#onMouseDown}\n onScroll={this.#onScroll}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </div>\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show next tab\"\n iconName=\"next\"\n iconLibrary=\"core\"\n importance=\"subdued\"\n onClick={this.#scrollToEnd}\n disabled={this.disableEndArrow}\n />\n </div>\n </div>\n {this.#computeDividerVisible && !this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n </div>\n )\n }\n\n #getTabItems(): TabItemElement[] {\n return [\n ...this.host.querySelectorAll<HTMLElement>(TAB_ITEM_SELECTOR),\n ].filter((element): element is TabItemElement => isTabItem(element))\n }\n\n readonly #scrollToStart = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft + this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft - this.#tabbar.clientWidth,\n })\n }\n\n readonly #scrollToEnd = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft - this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft + this.#tabbar.clientWidth,\n })\n }\n\n #setActiveTab(tab: TabItemElement): void {\n this.activeTab = tab\n\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: TabItemElement): void {\n for (const tab of this.#tabs) {\n const panel = resolvePanelElement(tab)\n if (panel) {\n panel.hidden = tab !== activeTab\n }\n }\n }\n\n #handleTabActivation(tab: TabItemElement): void {\n const previousTab = this.activeTab\n if (previousTab === tab) return\n\n this.activeTab = tab\n\n this.hideEmitter.emit(previousTab)\n\n this.showEmitter.emit(tab)\n this.#setCurrentTab(tab)\n this.#switchTabPanel(tab)\n }\n\n #getCurrentTab(): TabItemElement | undefined {\n return this.#tabs.find(\n (tab) => getTabTrigger(tab).getAttribute('tabindex') === '0',\n )\n }\n\n #setCurrentTab(tab: TabItemElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: TabItemElement | undefined) => {\n const target = element ? getTabTrigger(element) : undefined\n if (target === undefined) return\n const isDisabled = target.getAttribute('aria-disabled') === 'true'\n const shouldActivateTab = isCurrent && !isDisabled\n const tabindex = shouldActivateTab ? '0' : '-1'\n target.setAttribute('tabindex', tabindex)\n if (shouldActivateTab) this.#handleTabActivation(t)\n })\n }\n }\n\n readonly #isVerticalPlacement = (): boolean =>\n this.placement === 'start' || this.placement === 'end'\n\n readonly #isHorizontalPlacement = (): boolean =>\n this.placement === 'top' || this.placement === 'bottom'\n\n readonly #isEndOrBottomPlacement = (): boolean =>\n this.placement === 'end' || this.placement === 'bottom'\n\n readonly #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (!isEnabledTabItem(tab)) return\n\n this.#handleTabActivation(tab)\n this.#setActiveTab(tab)\n }\n\n readonly #onKeyDown = (event: KeyboardEvent): void => {\n const isVertical =\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n const MOVE_SELECTION_KEYS = isVertical\n ? VERTICAL_MOVE_KEYS\n : HORIZONTAL_MOVE_KEYS\n if (!MOVE_SELECTION_KEYS.has(event.key)) return\n\n const tabs = this.#tabs\n if (tabs.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const activeTab = this.#getCurrentTab()\n let index = activeTab ? tabs.indexOf(activeTab) : 0\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n\n let nextTab: TabItemElement | undefined\n do {\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n index = (isRTL ? index < tabs.length - 1 : index > 0)\n ? index - (isRTL ? -1 : 1)\n : isRTL\n ? 0\n : tabs.length - 1\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n index = (isRTL ? index > 0 : index < tabs.length - 1)\n ? index + (isRTL ? -1 : 1)\n : isRTL\n ? tabs.length - 1\n : 0\n break\n }\n case 'Home': {\n index = isRTL ? tabs.length - 1 : 0\n break\n }\n case 'End': {\n index = isRTL ? 0 : tabs.length - 1\n break\n }\n default:\n }\n nextTab = tabs[index]\n } while (nextTab.disabled === true)\n\n this.#setCurrentTab(nextTab)\n\n const target = getTabTrigger(nextTab)\n target.focus({ preventScroll: true })\n if (!isVertical) target.scrollIntoView()\n this.#handleTabActivation(nextTab)\n this.#setActiveTab(nextTab)\n }\n\n readonly #onMouseDown = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (isEnabledTabItem(tab)) this.#setCurrentTab(tab)\n }\n\n readonly #onScroll = (): void => {\n if (!this.#tabbar) return\n\n const { clientWidth, scrollWidth, scrollLeft } = this.#tabbar\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.disableStartArrow = scrollLeft === 0\n this.disableEndArrow = isRTL\n ? scrollWidth + scrollLeft <= clientWidth\n : scrollWidth - clientWidth - scrollLeft <= 1\n }\n\n readonly #onViewportCrop = (): void => {\n if (!this.#tabbar) return\n\n const { scrollWidth, clientWidth } = this.#tabbar\n\n if (scrollWidth > clientWidth) {\n this.#onScroll()\n }\n }\n\n #syncInternalsAccessibility(): void {\n this.internals.ariaOrientation = this.#computedAriaOrientation\n this.internals.ariaLabel = this.tablistDescription ?? ''\n }\n\n #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter(\n (element): element is TabItemElement => isEnabledTabItem(element),\n )\n : []\n }\n\n #setTabSettings(): void {\n const settings = TAB_SETTINGS[`${this.layer}-${this.level}`]\n if (!settings) return\n\n for (const tab of this.#getTabItems()) {\n tab.importance = this.#computedImportance ?? settings.importance\n tab.size = this.#computedSize ?? settings.size\n\n tab.indicatorPosition =\n this.orientation === 'vertical'\n ? 'inline-end'\n : (this.#computedPlacement ?? settings.indicatorPosition)\n }\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateTabsCache()\n\n if (this.#tabs.length > 0) this.#setCurrentTab(this.#tabs[0])\n }\n}\n"],"version":3}
1
+ {"file":"qds-tabbar.js","mappings":";;;;;;;;;;;;;;AAAA,MAAM,SAAS,GAAG,k7CAAk7C;;ACAp8C;AACA;AACA;;;;;;;;;;;;;;;;;;AAoCA,MAAM,iBAAiB,GAAG,uBAAuB;AAEjD,MAAM,YAAY,GAGd;AACF,IAAA,WAAW,EAAE;AACX,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA;AACD,IAAA,iBAAiB,EAAE;AACjB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,aAAa;AACjC,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,cAAc;AAClC,KAAA;AACD,IAAA,YAAY,EAAE;AACZ,QAAA,UAAU,EAAE,UAAU;AACtB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,aAAa;AACjC,KAAA;AACD,IAAA,gBAAgB,EAAE;AAChB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,WAAW;AAC/B,KAAA;CACF;AAED,MAAM,SAAS,GAAG,CAAC,IAAa,KAA4B;AAC1D,IAAA,IAAI,EAAE,IAAI,YAAYA,CAAW,CAAC;AAAE,QAAA,OAAO,KAAK;IAEhD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;AAC1C,IAAA,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,cAAc;AAC5D,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC,IAAa,KACrC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI;AAE1D,MAAM,WAAW,GAAG,CAAC,GAAmB,KAAc,GAAG,CAAC,QAAQ;AAElE,MAAM,aAAa,GAAG,CAAC,GAAmB,KACvC,GAA6C,CAAC,GAAG;AAEpD,MAAM,UAAU,GAAG,CAAC,GAAmB,KAAY;AACjD,IAAA,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC;AAC7C,IAAA,OAAO,YAAY,EAAE,EAAE,IAAI,EAAE;AAC/B,CAAC;MAYY,MAAM,iBAAAC,kBAAA,CAAA,MAAA,MAAA,SAAAD,CAAA,CAAA;AALnB,IAAA,WAAA,CAAA,YAAA,EAAA;;;;;;;;;;AAME;;;;;AAKG;AACY,QAAA,IAAK,CAAA,KAAA,GAAW,MAAM;AAErC;;;;;AAKG;AACY,QAAA,IAAK,CAAA,KAAA,GAAW,MAAM;AAErC;;AAEG;AACY,QAAA,IAAI,CAAA,IAAA,GAAU,UAAU;AAEvC;;;;;AAKG;AACY,QAAA,IAAW,CAAA,WAAA,GAAiB,YAAY;AAEvD;;AAEG;AACY,QAAA,IAAS,CAAA,SAAA,GAAe,KAAK;AAO5C;;AAEG;AACY,QAAA,IAAW,CAAA,WAAA,GAAa,KAAK;AAE5C;;AAEG;AACqB,QAAA,IAAS,CAAA,SAAA,GAAe,OAAO;AA6BtC,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK;AAEvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK;AAIzB,QAAA,IAAkB,CAAA,kBAAA,GAAG,EAAE;AAExC,QAAA,YAAA,CAAA,GAAA,CAAA,IAAA,EAA0B,EAAE,CAAA;QAE5B,UAA+B,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;QAE/B,wBAAoC,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;QAEpC,cAAqB,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAErB,QAAA,0BAAA,CAAA,GAAA,CAAA,IAAA,EAAsB,KAAK,CAAA;QAE3B,yBAAgC,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;QAEhC,uBAA8B,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;QAE9B,yBAAoC,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAEpC,QAAA,iCAAA,CAAA,GAAA,CAAA,IAAA,EAA6B,KAAK,CAAA;AAgQzB,QAAA,qBAAA,CAAA,GAAA,CAAA,IAAA,EAAiB,MAAW;YACnC,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC;AAEvB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;YACxE,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAsB,KAAK,EAAA,GAAA,CAAA;YAC/B,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,MAAM,CAAC;AAClB,gBAAA,IAAI,EAAE;sBACF,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,UAAU,GAAG,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC;sBACvC,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,UAAU,GAAG,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,WAAW;AACvD,aAAA,CAAC;AACF,YAAA,sBAAA,CAAA,IAAI,EAAgB,iBAAA,EAAA,GAAA,EAAA,sBAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,UAAU,CAAC;AAClC,SAAC,CAAA;AAEQ,QAAA,mBAAA,CAAA,GAAA,CAAA,IAAA,EAAe,MAAW;YACjC,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC;AAEvB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;YACxE,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAsB,OAAO,EAAA,GAAA,CAAA;YACjC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC,MAAM,CAAC;AAClB,gBAAA,IAAI,EAAE;sBACF,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,UAAU,GAAG,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC;sBACvC,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,UAAU,GAAG,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC,WAAW;AACvD,aAAA,CAAC;AACF,YAAA,sBAAA,CAAA,IAAI,EAAgB,iBAAA,EAAA,GAAA,EAAA,sBAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,MAAM,CAAC;AAC9B,SAAC,CAAA;QA4FQ,2BAAA,CAAA,GAAA,CAAA,IAAA,EAAuB,MAC9B,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAA;QAE/C,6BAAA,CAAA,GAAA,CAAA,IAAA,EAAyB,MAChC,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAA;QAEhD,8BAAA,CAAA,GAAA,CAAA,IAAA,EAA0B,MACjC,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAA;QAEhD,eAAW,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAiB,KAAU;AAC9C,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AACxB,YAAA,IAAI,EAAE,MAAM,YAAYA,CAAW,CAAC;gBAAE;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAC7C,YAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC;gBAAE;AAE5B,YAAA,sBAAA,CAAA,IAAI,EAAa,iBAAA,EAAA,GAAA,EAAA,mBAAA,CAAA,CAAA,IAAA,CAAjB,IAAI,EAAc,GAAG,CAAC;AACxB,SAAC,CAAA;QAEQ,iBAAa,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAoB,KAAU;YACnD,MAAM,UAAU,GACd,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB;YAChE,MAAM,mBAAmB,GAAG;AAC1B,kBAAE;kBACA,oBAAoB;YACxB,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE;YAEzC,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,oBAAM;AACvB,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE;YAEvB,KAAK,CAAC,cAAc,EAAE;YACtB,KAAK,CAAC,eAAe,EAAE;AAEvB,YAAA,MAAM,SAAS,GAAG,sBAAA,CAAA,IAAI,gDAAe,CAAnB,IAAA,CAAA,IAAI,CAAiB;AACvC,YAAA,IAAI,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC;AAEnD,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;AAExE,YAAA,IAAI,OAAmC;AACvC,YAAA,GAAG;AACD,gBAAA,QAAQ,KAAK,CAAC,GAAG;AACf,oBAAA,KAAK,WAAW;oBAChB,KAAK,SAAS,EAAE;AACd,wBAAA,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC;AAClD,8BAAE,KAAK,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC;AACzB,8BAAE;AACA,kCAAE;AACF,kCAAE,IAAI,CAAC,MAAM,GAAG,CAAC;wBACrB;;AAEF,oBAAA,KAAK,YAAY;oBACjB,KAAK,WAAW,EAAE;AAChB,wBAAA,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AAClD,8BAAE,KAAK,IAAI,KAAK,GAAG,EAAE,GAAG,CAAC;AACzB,8BAAE;AACA,kCAAE,IAAI,CAAC,MAAM,GAAG;kCACd,CAAC;wBACP;;oBAEF,KAAK,MAAM,EAAE;AACX,wBAAA,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC;wBACnC;;oBAEF,KAAK,KAAK,EAAE;AACV,wBAAA,KAAK,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;wBACnC;;;AAIJ,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,aAAC,QAAQ,OAAO,CAAC,QAAQ,KAAK,IAAI;AAElC,YAAA,sBAAA,CAAA,IAAI,EAAe,iBAAA,EAAA,GAAA,EAAA,qBAAA,CAAA,CAAA,IAAA,CAAnB,IAAI,EAAgB,OAAO,CAAC;AAE5B,YAAA,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;AACrC,YAAA,IAAI,CAAC,UAAU;gBAAE,MAAM,CAAC,cAAc,EAAE;AACxC,YAAA,sBAAA,CAAA,IAAI,EAAa,iBAAA,EAAA,GAAA,EAAA,mBAAA,CAAA,CAAA,IAAA,CAAjB,IAAI,EAAc,OAAO,CAAC;AAC5B,SAAC,CAAA;QAEQ,mBAAe,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAiB,KAAU;AAClD,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AACxB,YAAA,IAAI,EAAE,MAAM,YAAYA,CAAW,CAAC;gBAAE;YAEtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC;YAC7C,IAAI,gBAAgB,CAAC,GAAG,CAAC;AAAE,gBAAA,sBAAA,CAAA,IAAI,EAAe,iBAAA,EAAA,GAAA,EAAA,qBAAA,CAAA,CAAA,IAAA,CAAnB,IAAI,EAAgB,GAAG,CAAC;AACrD,SAAC,CAAA;AAEQ,QAAA,gBAAA,CAAA,GAAA,CAAA,IAAA,EAAY,MAAW;YAC9B,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA;gBAAE;AAEnB,YAAA,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ;AAE7D,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,KAAK;AACxE,YAAA,IAAI,CAAC,iBAAiB,GAAG,UAAU,KAAK,CAAC;YACzC,IAAI,CAAC,eAAe,GAAG;AACrB,kBAAE,WAAW,GAAG,UAAU,IAAI;kBAC5B,WAAW,GAAG,WAAW,GAAG,UAAU,IAAI,CAAC;AACjD,SAAC,CAAA;AAEQ,QAAA,sBAAA,CAAA,GAAA,CAAA,IAAA,EAAkB,MAAW;YACpC,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA;gBAAE;AAEnB,YAAA,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ;AAEjD,YAAA,IAAI,WAAW,GAAG,WAAW,EAAE;AAC7B,gBAAA,sBAAA,CAAA,IAAI,EAAA,gBAAA,EAAA,GAAA,CAAU,CAAd,IAAA,CAAA,IAAI,CAAY;;AAEpB,SAAC,CAAA;AA+BQ,QAAA,oBAAA,CAAA,GAAA,CAAA,IAAA,EAAgB,MAAW;AAClC,YAAA,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,uBAAA,CAAiB,CAArB,IAAA,CAAA,IAAI,CAAmB;YAEvB,IAAI,uBAAA,IAAI,EAAA,YAAA,EAAA,GAAA,CAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,qBAAA,CAAe,CAAnB,IAAA,CAAA,IAAI,EAAgB,sBAAA,CAAA,IAAI,EAAA,YAAA,EAAA,GAAA,CAAM,CAAC,CAAC,CAAC,CAAC;AAE7D,YAAA,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB;AACxB,SAAC,CAAA;QAEQ,0BAAsB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAoB,KAAU;YAC5D,sBAAA,CAAA,IAAI,EAAA,uBAAA,EAAoB,MAAM,EAAA,GAAA,CAAA;AAChC,SAAC,CAAA;QAEQ,4BAAwB,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,MAAoB,KAAU;YAC9D,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAsB,MAAM,EAAA,GAAA,CAAA;AAClC,SAAC,CAAA;AACF;IA7dW,cAAc,GAAA;AACtB,QAAA,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,sBAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB;;IAMd,oBAAoB,GAAA;AAC5B,QAAA,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,kCAAA,CAA4B,CAAhC,IAAA,CAAA,IAAI,CAA8B;;IAI1B,YAAY,GAAA;AACpB,QAAA,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB;;IAId,aAAa,GAAA;AACrB,QAAA,IAAI,sBAAA,CAAA,IAAI,EAA2B,iCAAA,EAAA,GAAA,CAAA;YAAE;QACrC,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE;YAAE;AAErD,QAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,8CAAa,CAAjB,IAAA,CAAA,IAAI,CAAe;QAChC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAChC,YAAA,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;AAC/B,YAAA,OAAO,OAAO,KAAK,IAAI,CAAC,MAAM;AAChC,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI;YAAE;AAE3C,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;QAClC,IAAI,WAAW,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,CAAC,OAAO,CAAC;YAAE;AAEpE,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO;AAExB,QAAA,IAAI,WAAW,IAAI,WAAW,KAAK,OAAO,EAAE;AAC1C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;;AAEpC,QAAA,IAAI,WAAW,KAAK,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;;;QAIhC,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,IAAI,EAAA,GAAA,CAAA;AACtC,QAAA,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;AACpB,YAAA,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;AAC/B,YAAA,MAAM,UAAU,GAAG,CAAC,KAAK,OAAO;AAChC,YAAA,CAAC,CAAC,QAAQ,GAAG,UAAU;AACvB,YAAA,IAAI,MAAM,YAAY,UAAU,CAAC,OAAO;AACtC,gBAAA,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE;;QAE/C,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,KAAK,EAAA,GAAA,CAAA;AAEvC,QAAA,sBAAA,CAAA,IAAI,EAAgB,iBAAA,EAAA,GAAA,EAAA,sBAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,OAAO,CAAC;;IAGxB,iBAAiB,GAAA;QACtB,IAAI,CAAC,cAAc,EAAE;AACrB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS;AAC/B,QAAA,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,kCAAA,CAA4B,CAAhC,IAAA,CAAA,IAAI,CAA8B;AAClC,QAAA,MAAM,IAAI,GAAG,sBAAA,CAAA,IAAI,8CAAa,CAAjB,IAAA,CAAA,IAAI,CAAe;AAChC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC;AAC3D,QAAA,IAAI,cAAc;AAAE,YAAA,sBAAA,CAAA,IAAI,EAAc,iBAAA,EAAA,GAAA,EAAA,oBAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,cAAc,CAAC;AACjD,aAAA,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,sBAAA,CAAA,IAAI,EAAc,iBAAA,EAAA,GAAA,EAAA,oBAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,IAAI,CAAC,CAAC,CAAC,CAAC;;IAGhD,kBAAkB,GAAA;QACvB,IAAI,IAAI,CAAC,SAAS;AAAE,YAAA,sBAAA,CAAA,IAAI,iDAAgB,CAApB,IAAA,CAAA,IAAI,EAAiB,IAAI,CAAC,SAAS,CAAC;AACxD,QAAA,IAAI,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAA,GAAA,CAAmB,KAAK,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE;YAC/D,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAsB,SAAS,EAAA,GAAA,CAAA;YACnC,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAA,GAAA,CAAmB,EAAE,KAAK,EAAE;;AAC3B,aAAA,IAAI,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAA,GAAA,CAAmB,KAAK,KAAK,IAAI,IAAI,CAAC,iBAAiB,EAAE;YACtE,sBAAA,CAAA,IAAI,EAAA,yBAAA,EAAsB,SAAS,EAAA,GAAA,CAAA;YACnC,sBAAA,CAAA,IAAI,EAAA,uBAAA,EAAA,GAAA,CAAiB,EAAE,KAAK,EAAE;;QAEhC,IAAI,CAAC,cAAc,EAAE;;IAGhB,gBAAgB,GAAA;QACrB,SAAS,CAAC,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAA,GAAA,CAAQ,CAAC;QAEvB,sBAAA,CAAA,IAAI,EAAO,UAAA,EAAA,IAAI,cAAc,CAAC,uBAAA,IAAI,EAAA,gBAAA,EAAA,GAAA,CAAU,CAAC,EAAA,GAAA,CAAA;AAC7C,QAAA,sBAAA,CAAA,IAAI,kBAAI,CAAC,OAAO,CAAC,sBAAA,CAAA,IAAI,EAAQ,cAAA,EAAA,GAAA,CAAA,CAAC;QAE9B,sBAAA,CAAA,IAAI,4BAAqB,IAAI,gBAAgB,CAAC,CAAC,SAAS,KAAI;AAC1D,YAAA,sBAAA,CAAA,IAAI,EAAmB,iBAAA,EAAA,GAAA,EAAA,yBAAA,CAAA,CAAA,IAAA,CAAvB,IAAI,EAAoB,SAAS,CAAC;AACpC,SAAC,CAAC,MAAA;AACF,QAAA,sBAAA,CAAA,IAAI,gCAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;AACxC,YAAA,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,CAAC,QAAQ,CAAC;AAC3B,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;;IAGG,oBAAoB,GAAA;QACzB,sBAAA,CAAA,IAAI,EAAA,UAAA,EAAA,GAAA,CAAI,EAAE,UAAU,EAAE;QACtB,sBAAA,CAAA,IAAI,EAAA,wBAAA,EAAA,GAAA,CAAkB,EAAE,UAAU,EAAE;;IAG/B,MAAM,GAAA;QACX,QACE,CACE,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE;AACL,gBAAA,sBAAsB,EACpB,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB;AACjE,aAAA,EACW,YAAA,EAAA,IAAI,CAAC,KAAK,EACV,YAAA,EAAA,IAAI,CAAC,KAAK,EAAA,iBAAA,EACL,sBAAA,CAAA,IAAI,EAAoB,iBAAA,EAAA,GAAA,EAAA,8BAAA,CAAA,EAAA,EAEzC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,aAAa,EAAA,WAAA,EAAW,QAAQ,EACzC,EAAA,IAAI,CAAC,kBAAkB,CACnB,EACN,sBAAA,CAAA,IAAI,EAAuB,iBAAA,EAAA,GAAA,EAAA,iCAAA,CAAA,IAAI,sBAAA,CAAA,IAAI,EAAwB,8BAAA,EAAA,GAAA,CAAA,CAAA,IAAA,CAA5B,IAAI,CAA0B,KAC5D,CACE,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,QAAQ,EACN,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB,EAAA,CAEhE,CACH,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,YAAY,EAAA,EACrB,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,kBAAkB,EAAE,IAAI;gBACxB,YAAY,EACV,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB;oBAC/C,IAAI,CAAC,WAAW,KAAK,UAAU;oBAC/B,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB;AAC9B,aAAA,EAAA,EAED,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAA,EACa,mBAAmB,EAC9B,UAAU,EAAC,SAAS,EACpB,QAAQ,EAAC,MAAM,EACf,WAAW,EAAC,MAAM,EAClB,KAAK,EAAC,iBAAiB,EACvB,OAAO,EAAE,uBAAA,IAAI,EAAA,qBAAA,EAAA,GAAA,CAAe,EAC5B,QAAQ,EAAE,IAAI,CAAC,iBAAiB,EAChC,GAAG,EAAE,sBAAA,CAAA,IAAI,EAAA,4BAAA,EAAA,GAAA,CAAsB,GAC/B,CACE,EAEN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,cAAc,EACZ,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB;AAChE,gBAAA,cAAc,EACZ,IAAI,CAAC,SAAS,KAAK,QAAQ;AAC3B,qBAAC,IAAI,CAAC,WAAW,KAAK,YAAY;AAChC,wBAAA,sBAAA,CAAA,IAAI,EAAA,6BAAA,EAAA,GAAA,CAAuB,CAA3B,IAAA,CAAA,IAAI,CAAyB,CAAC;AAChC,oBAAA,IAAI,CAAC,eAAe;AACpB,oBAAA,IAAI,CAAC,iBAAiB;AACzB,aAAA,EACD,GAAG,EAAE,CAAC,OAAO,KAAI;gBACf,sBAAA,CAAA,IAAI,EAAA,cAAA,EAAW,OAAO,EAAA,GAAA,CAAA;AACxB,aAAC,EACD,OAAO,EAAE,sBAAA,CAAA,IAAI,EAAS,eAAA,EAAA,GAAA,CAAA,EACtB,SAAS,EAAE,sBAAA,CAAA,IAAI,yBAAW,EAC1B,WAAW,EAAE,sBAAA,CAAA,IAAI,EAAA,mBAAA,EAAA,GAAA,CAAa,EAC9B,QAAQ,EAAE,sBAAA,CAAA,IAAI,EAAU,gBAAA,EAAA,GAAA,CAAA,EAAA,EAExB,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,YAAY,EAAE,sBAAA,CAAA,IAAI,EAAA,oBAAA,EAAA,GAAA,CAAc,GAAI,CACtC,EACN,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,kBAAkB,EAAE,IAAI;gBACxB,YAAY,EACV,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB;oBAC/C,IAAI,CAAC,WAAW,KAAK,UAAU;oBAC/B,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB;aAC9B,EAAA,EAED,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,YAAA,EACa,eAAe,EAC1B,QAAQ,EAAC,MAAM,EACf,WAAW,EAAC,MAAM,EAClB,UAAU,EAAC,SAAS,EACpB,OAAO,EAAE,sBAAA,CAAA,IAAI,EAAa,mBAAA,EAAA,GAAA,CAAA,EAC1B,QAAQ,EAAE,IAAI,CAAC,eAAe,EAC9B,GAAG,EAAE,sBAAA,CAAA,IAAI,EAAoB,0BAAA,EAAA,GAAA,CAAA,EAAA,CAC7B,CACE,CACF,EACL,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,iCAAA,CAAuB,IAAI,CAAC,sBAAA,CAAA,IAAI,EAAwB,8BAAA,EAAA,GAAA,CAAA,CAAA,IAAA,CAA5B,IAAI,CAA0B,KAC7D,oEACE,QAAQ,EACN,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,uBAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI,CAAuB,EAAA,CAEhE,CACH,CACG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA5OR,OAAO,IAAI,CAAC,UAAU;AACxB,CAAC,EAAA,wBAAA,GAAA,SAAA,wBAAA,GAAA;AAGC,IAAA,OAAO,IAAI,CAAC,IAAI,IAAI,SAAS;AAC/B,CAAC,EAAA,6BAAA,GAAA,SAAA,6BAAA,GAAA;AAGC,IAAA,QAAQ,IAAI,CAAC,SAAS;QACpB,KAAK,KAAK,EAAE;AACV,YAAA,OAAO,WAAW;;QAEpB,KAAK,KAAK,EAAE;AACV,YAAA,OAAO,cAAc;;QAEvB,KAAK,QAAQ,EAAE;AACb,YAAA,OAAO,aAAa;;QAEtB,KAAK,OAAO,EAAE;AACZ,YAAA,OAAO,YAAY;;QAErB,SAAS;AACP,YAAA,OAAO,SAAS;;;AAGtB,CAAC,EAAA,iCAAA,GAAA,SAAA,iCAAA,GAAA;AAGC,IAAA,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO;AAAE,QAAA,OAAO,KAAK;AACxC,IAAA,IACE,IAAI,CAAC,KAAK,KAAK,MAAM;QACrB,IAAI,CAAC,KAAK,KAAK,YAAY;AAC3B,SAAC,IAAI,CAAC,WAAW,KAAK,YAAY,IAAI,sBAAA,CAAA,IAAI,EAAqB,2BAAA,EAAA,GAAA,CAAA,CAAA,IAAA,CAAzB,IAAI,CAAuB,CAAC;AAElE,QAAA,OAAO,KAAK;AACd,IAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI;AAClC,CAAC,EAAA,mCAAA,GAAA,SAAA,mCAAA,GAAA;AAGC,IAAA,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU,IAAI,sBAAA,CAAA,IAAI,EAAA,2BAAA,EAAA,GAAA,CAAqB,CAAzB,IAAA,CAAA,IAAI;AAC5C,UAAE;UACA,YAAY;AAClB,CAAC,EAAA,mBAAA,GAAA,SAAA,mBAAA,GAAA;IAuMC,OAAO;AACL,QAAA,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAc,iBAAiB,CAAC;AAC9D,KAAA,CAAC,MAAM,CAAC,CAAC,OAAO,KAAgC,SAAS,CAAC,OAAO,CAAC,CAAC;AACtE,CAAC,2DAEe,SAA8B,EAAA;AAC5C,IAAA,MAAM,IAAI,GACR,SAAS,KAAK,MAAM,GAAG,kBAAkB,GAAG,sBAAsB;AACpE,IAAA,sBAAA,CAAA,IAAI,EAAuB,0BAAA,EAAA,CAAC,uBAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAoB,MAAA;IACpD,IAAI,CAAC,kBAAkB,GAAG,IAAI,IAAI,uBAAA,IAAI,EAAA,0BAAA,EAAA,GAAA,CAAoB,GAAG,EAAE,GAAG,GAAG,CAAC;AACxE,CAAC,uDA4Ba,GAAmB,EAAA;AAC/B,IAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AACpB,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;IAE/B,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,IAAI,EAAA,GAAA,CAAA;AACtC,IAAA,IAAI,CAAC,MAAM,GAAG,OAAO;AACrB,IAAA,KAAK,MAAM,CAAC,IAAI,sBAAA,CAAA,IAAI,8CAAa,CAAjB,IAAA,CAAA,IAAI,CAAe,EAAE;AACnC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG;AAC5B,QAAA,CAAC,CAAC,QAAQ,GAAG,UAAU;AACvB,QAAA,IAAI,MAAM,YAAY,UAAU,CAAC,OAAO;AACtC,YAAA,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE;;IAE/C,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,KAAK,EAAA,GAAA,CAAA;AACzC,CAAC,iEAEkB,SAA2B,EAAA;AAC5C,IAAA,IAAI,sBAAA,CAAA,IAAI,EAA2B,iCAAA,EAAA,GAAA,CAAA;QAAE;IAErC,MAAM,SAAS,GAAG;SACf,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM;AACnB,SAAA,IAAI,CACH,CAAC,MAAM,KACL,MAAM,YAAYA,CAAW,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CACxE;IAEH,IAAI,SAAS,EAAE;AACb,QAAA,sBAAA,CAAA,IAAI,EAAc,iBAAA,EAAA,GAAA,EAAA,oBAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,SAAS,CAAC;;AAEjC,CAAC,qDAEY,GAAmB,EAAA;AAC9B,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;IAClC,IAAI,WAAW,KAAK,GAAG;QAAE;AAEzB,IAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AACpB,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;IAE/B,IAAI,WAAW,EAAE;AACf,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;;AAEpC,IAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC;AAC1B,IAAA,sBAAA,CAAA,IAAI,EAAe,iBAAA,EAAA,GAAA,EAAA,qBAAA,CAAA,CAAA,IAAA,CAAnB,IAAI,EAAgB,GAAG,CAAC;AACxB,IAAA,sBAAA,CAAA,IAAI,EAAgB,iBAAA,EAAA,GAAA,EAAA,sBAAA,CAAA,CAAA,IAAA,CAApB,IAAI,EAAiB,GAAG,CAAC;;IAGzB,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,IAAI,EAAA,GAAA,CAAA;AACtC,IAAA,IAAI,CAAC,MAAM,GAAG,OAAO;IACrB,sBAAA,CAAA,IAAI,EAAA,iCAAA,EAA8B,KAAK,EAAA,GAAA,CAAA;AAEvC,IAAA,KAAK,MAAM,CAAC,IAAI,sBAAA,CAAA,IAAI,8CAAa,CAAjB,IAAA,CAAA,IAAI,CAAe,EAAE;AACnC,QAAA,MAAM,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC;AAC/B,QAAA,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG;AAC5B,QAAA,CAAC,CAAC,QAAQ,GAAG,UAAU;AACvB,QAAA,IAAI,MAAM,YAAY,UAAU,CAAC,OAAO;AACtC,YAAA,MAAM,CAAC,YAAY,GAAG,UAAU,CAAC,QAAQ,EAAE;;AAEjD,CAAC,2DAEe,SAAyB,EAAA;AACvC,IAAA,KAAK,MAAM,GAAG,IAAI,uBAAA,IAAI,EAAA,YAAA,EAAA,GAAA,CAAM,EAAE;AAC5B,QAAA,MAAM,KAAK,GAAG,mBAAmB,CAAC,GAAG,CAAC;QACtC,IAAI,KAAK,EAAE;AACT,YAAA,KAAK,CAAC,MAAM,GAAG,GAAG,KAAK,SAAS;;;AAGtC,CAAC,EAAA,qBAAA,GAAA,SAAA,qBAAA,GAAA;AAGC,IAAA,OAAO,sBAAA,CAAA,IAAI,EAAM,YAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CACpB,CAAC,GAAG,KAAK,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,CAC7D;AACH,CAAC,yDAEc,GAAmB,EAAA;AAChC,IAAA,KAAK,MAAM,CAAC,IAAI,uBAAA,IAAI,EAAA,YAAA,EAAA,GAAA,CAAM,EAAE;AAC1B,QAAA,MAAM,SAAS,GAAG,CAAC,KAAK,GAAG;AAE3B,QAAA,gBAAgB,CAAC,CAAC,EAAE,CAAC,OAAmC,KAAI;AAC1D,YAAA,MAAM,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS;YAC3D,IAAI,MAAM,KAAK,SAAS;gBAAE;YAC1B,MAAM,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM;AAClE,YAAA,MAAM,iBAAiB,GAAG,SAAS,IAAI,CAAC,UAAU;YAClD,MAAM,QAAQ,GAAG,iBAAiB,GAAG,GAAG,GAAG,IAAI;AAC/C,YAAA,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC;AACzC,YAAA,IAAI,iBAAiB;AAAE,gBAAA,sBAAA,CAAA,IAAI,EAAa,iBAAA,EAAA,GAAA,EAAA,mBAAA,CAAA,CAAA,IAAA,CAAjB,IAAI,EAAc,CAAC,CAAC;AAC7C,SAAC,CAAC;;AAEN,CAAC,EAAA,kCAAA,GAAA,SAAA,kCAAA,GAAA;AAgHC,IAAA,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,sBAAA,CAAA,IAAI,8DAAyB;IAC9D,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,IAAI,CAAC,kBAAkB,IAAI,EAAE;AAC1D,CAAC,EAAA,uBAAA,GAAA,SAAA,uBAAA,GAAA;AAGC,IAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC;AACxD,IAAA,sBAAA,CAAA,IAAI,gBAAS;UACT,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAClD,CAAC,OAAO,KAAgC,gBAAgB,CAAC,OAAO,CAAC;AAErE,UAAE,EAAE,EAAA,GAAA,CAAA;AACR,CAAC,EAAA,sBAAA,GAAA,SAAA,sBAAA,GAAA;AAGC,IAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;AAC5D,IAAA,IAAI,CAAC,QAAQ;QAAE;AAEf,IAAA,KAAK,MAAM,GAAG,IAAI,sBAAA,CAAA,IAAI,8CAAa,CAAjB,IAAA,CAAA,IAAI,CAAe,EAAE;AACrC,QAAA,GAAG,CAAC,UAAU,GAAG,sBAAA,CAAA,IAAI,yDAAoB,IAAI,QAAQ,CAAC,UAAU;AAChE,QAAA,GAAG,CAAC,IAAI,GAAG,sBAAA,CAAA,IAAI,mDAAc,IAAI,QAAQ,CAAC,IAAI;AAE9C,QAAA,GAAG,CAAC,iBAAiB;YACnB,IAAI,CAAC,WAAW,KAAK;AACnB,kBAAE;AACF,mBAAG,sBAAA,CAAA,IAAI,EAAA,iBAAA,EAAA,GAAA,EAAA,6BAAA,CAAmB,IAAI,QAAQ,CAAC,iBAAiB,CAAC;;AAEjE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["HTMLElement","__stencil_proxyCustomElement"],"sources":["src/components/tabbar/tabbar.css?tag=qds-tabbar&encapsulation=shadow","src/components/tabbar/tabbar.tsx"],"sourcesContent":["/*\n * SPDX-FileCopyrightText: © 2024 Schneider Electric\n *\n * SPDX-License-Identifier: Apache-2.0\n */\n\n@import url('../shared.css');\n\n:host {\n display: block;\n}\n\n.qds-vertical,\n.qds-vertical-divider,\n.qds-tabbar,\n.qds-tabs {\n display: flex;\n}\n\n.qds-vertical-divider,\n.qds-tabbar {\n width: inherit;\n}\n\n.qds-arrow-start {\n transform: scaleX(var(--qds-direction-factor, 1)) rotate(180deg);\n}\n\n.qds-align-center {\n align-content: center;\n}\n\n.qds-hidden {\n display: none;\n}\n\n.qds-centered {\n justify-content: center;\n}\n\n.qds-tabs {\n flex: 1;\n margin-block: 0;\n overflow: auto;\n padding-inline-start: 0;\n scroll-behavior: smooth;\n scrollbar-width: none;\n}\n\n.qds-vertical {\n flex-direction: column;\n}\n\n.qds-vertical-divider {\n flex-direction: row;\n}\n\n[data-size='small'] {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n[data-size='standard'] {\n gap: var(--qds-control-standard-gap-siblings-related);\n}\n\n[data-size='large'] {\n gap: var(--qds-control-large-gap-siblings-related);\n}\n\n[data-layer='main'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='subsection'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-layer='popup'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n:is([data-layer='panel'], [data-layer='accessory'])[data-level='root']\n .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n.qds-sr-only {\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n invariant,\n resolvePanelElement,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\nimport type { IndicatorPosition } from '../icon-tab/icon-tab'\nimport type { Importance, Size } from '../shared'\nimport type { Tab } from '../tab/tab'\n\nexport type Layer = 'accessory' | 'main' | 'panel' | 'popup'\nexport type Level = 'root' | 'section' | 'subsection'\nexport type TabbarSize = Size | undefined\nexport type TabbarImportance = Exclude<Importance, 'emphasized'> | undefined\nexport type Orientation = 'horizontal' | 'vertical'\nexport type Placement = 'bottom' | 'end' | 'start' | 'top'\nexport type Alignment = 'center' | 'start'\n\ntype TabItemElement = HTMLQdsIconTabElement | HTMLQdsTabElement\n\nconst TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab'\n\nconst TAB_SETTINGS: Record<\n string,\n Pick<Tab, 'importance' | 'indicatorPosition' | 'size'> | undefined\n> = {\n 'main-root': {\n importance: 'standard',\n size: 'large',\n indicatorPosition: 'block-end',\n },\n 'main-section': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'popup-root': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'main-subsection': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'popup-section': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'inline-start',\n },\n 'panel-root': {\n importance: 'standard',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'accessory-root': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-end',\n },\n}\n\nconst isTabItem = (item: unknown): item is TabItemElement => {\n if (!(item instanceof HTMLElement)) return false\n\n const tagName = item.tagName.toLowerCase()\n return tagName === 'qds-tab' || tagName === 'qds-icon-tab'\n}\n\nconst isEnabledTabItem = (item: unknown): item is TabItemElement =>\n isTabItem(item) && !item.inert && item.disabled !== true\n\nconst isTabActive = (tab: TabItemElement): boolean => tab.selected\n\nconst getTabTrigger = (tab: TabItemElement): HTMLElement =>\n (tab as TabItemElement & { tab: HTMLElement }).tab\n\nconst getPanelId = (tab: TabItemElement): string => {\n const panelElement = resolvePanelElement(tab)\n return panelElement?.id ?? ''\n}\n\n/**\n * `<qds-tabbar>` is the component that facilitates navigation between the groups\n * of related content within the page.\n * It allows users to switch between groups by clicking on Tabs without going to another page.\n */\n@Component({\n tag: 'qds-tabbar',\n shadow: { delegatesFocus: true },\n styleUrl: 'tabbar.css',\n})\nexport class Tabbar implements ComponentInterface {\n /**\n * The tabbar's layer.\n *\n * @deprecated The property layer is deprecated. Please use `size` property instead.\n * Please do not use `layer` and `size` at the same time.\n */\n @Prop() public layer?: Layer = 'main'\n\n /**\n * The tabbar's level.\n *\n * @deprecated The property level is deprecated. Please use `size` property instead.\n * Please do not use `level` and `size` at the same time.\n */\n @Prop() public level?: Level = 'root'\n\n /**\n * The tabbar's size. This controls the size of the tabs within the tabbar.\n */\n @Prop() public size?: Size = 'standard'\n\n /**\n * The tabbar's orientation.\n *\n * @deprecated Please use the `placement` property instead. Do not use\n * `orientation` and `placement` at the same time.\n */\n @Prop() public orientation?: Orientation = 'horizontal'\n\n /**\n * The tabbar's placement.\n */\n @Prop() public placement?: Placement = 'top'\n\n /**\n * the tablist Description\n */\n @Prop() public readonly tablistDescription?: string\n\n /**\n * Displays a divider line.\n */\n @Prop() public showDivider?: boolean = false\n\n /**\n * The alignment of tabs. Only applicable for horizontal orientation.\n */\n @Prop() public readonly alignment?: Alignment = 'start'\n\n /**\n * The importance of the tabbar. This controls the visual emphasis of the tabs within the tabbar.\n */\n @Prop() public importance?: TabbarImportance\n\n /**\n * Sets the active tab by panel identifier.\n * When set, navigates to the tab with the matching panel.\n */\n @Prop() public active?: string\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabShow', cancelable: false })\n private readonly showEmitter!: EventEmitter<HTMLElement>\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabHide', cancelable: false })\n private readonly hideEmitter!: EventEmitter<HTMLElement>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: TabItemElement\n\n @State() private scrollAnnouncement = ''\n\n #tabs: TabItemElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #mutationObserver?: MutationObserver\n\n #tabbar?: HTMLElement\n\n #toggleAnnouncement = false\n\n #scrollStartButton?: HTMLElement\n\n #scrollEndButton?: HTMLElement\n\n #pendingArrowFocus?: 'end' | 'start'\n\n #isInternallySettingActive = false\n\n get #computedImportance(): TabbarImportance {\n return this.importance\n }\n\n get #computedSize(): Size | undefined {\n return this.size ?? undefined\n }\n\n get #computedPlacement(): IndicatorPosition | undefined {\n switch (this.placement) {\n case 'top': {\n return 'block-end'\n }\n case 'end': {\n return 'inline-start'\n }\n case 'bottom': {\n return 'block-start'\n }\n case 'start': {\n return 'inline-end'\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computeDividerVisible(): boolean {\n if (this.layer === 'panel') return false\n if (\n this.layer === 'main' &&\n this.level === 'subsection' &&\n (this.orientation === 'horizontal' || this.#isVerticalPlacement())\n )\n return false\n return this.showDivider === true\n }\n\n get #computedAriaOrientation(): Orientation {\n return this.orientation === 'vertical' || this.#isVerticalPlacement()\n ? 'vertical'\n : 'horizontal'\n }\n\n @Watch('importance')\n protected settingChanged(): void {\n this.#setTabSettings()\n }\n\n @Watch('orientation')\n @Watch('placement')\n @Watch('tablistDescription')\n protected accessibilityChanged(): void {\n this.#syncInternalsAccessibility()\n }\n\n @Listen('resize', { target: 'window' })\n protected windowResize(): void {\n this.#onViewportCrop()\n }\n\n @Watch('active')\n protected activeChanged(): void {\n if (this.#isInternallySettingActive) return\n if (this.active === undefined || this.active === '') return\n\n const tabs = this.#getTabItems()\n const nextTab = tabs.find((tab) => {\n const panelId = getPanelId(tab)\n return panelId === this.active\n })\n\n if (!nextTab || nextTab.disabled === true) return\n\n const previousTab = this.activeTab\n if (previousTab === nextTab && this.active === getPanelId(nextTab)) return\n\n this.activeTab = nextTab\n\n if (previousTab && previousTab !== nextTab) {\n this.hideEmitter.emit(previousTab)\n }\n if (previousTab !== nextTab) {\n this.showEmitter.emit(nextTab)\n }\n\n // Update tab states without triggering mutation observer\n this.#isInternallySettingActive = true\n for (const t of tabs) {\n const target = getTabTrigger(t)\n const isSelected = t === nextTab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n\n this.#switchTabPanel(nextTab)\n }\n\n public componentWillLoad(): void {\n this.settingChanged()\n this.internals.role = 'tablist'\n this.#syncInternalsAccessibility()\n const tabs = this.#getTabItems()\n const preselectedTab = tabs.find((tab) => isTabActive(tab))\n if (preselectedTab) this.#setActiveTab(preselectedTab)\n else if (tabs.length > 0) this.#setActiveTab(tabs[0])\n }\n\n public componentDidRender(): void {\n if (this.activeTab) this.#switchTabPanel(this.activeTab)\n if (this.#pendingArrowFocus === 'start' && this.disableEndArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollStartButton?.focus()\n } else if (this.#pendingArrowFocus === 'end' && this.disableStartArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollEndButton?.focus()\n }\n this.settingChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#tabbar)\n\n this.#ro = new ResizeObserver(this.#onScroll)\n this.#ro.observe(this.#tabbar)\n\n this.#mutationObserver = new MutationObserver((mutations) => {\n this.#handleTabMutation(mutations)\n })\n this.#mutationObserver.observe(this.host, {\n attributes: true,\n attributeFilter: ['active'],\n childList: true,\n subtree: true,\n })\n }\n\n public disconnectedCallback(): void {\n this.#ro?.disconnect()\n this.#mutationObserver?.disconnect()\n }\n\n public render() {\n return (\n <div\n class={{\n 'qds-vertical-divider':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n }}\n data-layer={this.layer}\n data-level={this.level}\n data-importance={this.#computedImportance}\n >\n <span class=\"qds-sr-only\" aria-live=\"polite\">\n {this.scrollAnnouncement}\n </span>\n {this.#computeDividerVisible && this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n <div class=\"qds-tabbar\">\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show previous tab\"\n importance=\"subdued\"\n iconName=\"next\"\n iconLibrary=\"core\"\n class=\"qds-arrow-start\"\n onClick={this.#scrollToStart}\n disabled={this.disableStartArrow}\n ref={this.#scrollStartButtonRef}\n />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n class={{\n 'qds-tabs': true,\n 'qds-vertical':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n 'qds-centered':\n this.alignment === 'center' &&\n (this.orientation === 'horizontal' ||\n this.#isHorizontalPlacement()) &&\n this.disableEndArrow &&\n this.disableStartArrow,\n }}\n ref={(element) => {\n this.#tabbar = element\n }}\n onClick={this.#onClick}\n onKeyDown={this.#onKeyDown}\n onMouseDown={this.#onMouseDown}\n onScroll={this.#onScroll}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </div>\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show next tab\"\n iconName=\"next\"\n iconLibrary=\"core\"\n importance=\"subdued\"\n onClick={this.#scrollToEnd}\n disabled={this.disableEndArrow}\n ref={this.#scrollEndButtonRef}\n />\n </div>\n </div>\n {this.#computeDividerVisible && !this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n </div>\n )\n }\n\n #getTabItems(): TabItemElement[] {\n return [\n ...this.host.querySelectorAll<HTMLElement>(TAB_ITEM_SELECTOR),\n ].filter((element): element is TabItemElement => isTabItem(element))\n }\n\n #announceScroll(direction: 'next' | 'previous'): void {\n const text =\n direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed'\n this.#toggleAnnouncement = !this.#toggleAnnouncement\n this.scrollAnnouncement = text + (this.#toggleAnnouncement ? '' : '.')\n }\n\n readonly #scrollToStart = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'end'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft + this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft - this.#tabbar.clientWidth,\n })\n this.#announceScroll('previous')\n }\n\n readonly #scrollToEnd = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'start'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft - this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft + this.#tabbar.clientWidth,\n })\n this.#announceScroll('next')\n }\n\n #setActiveTab(tab: TabItemElement): void {\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n this.#isInternallySettingActive = true\n this.active = panelId\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n }\n\n #handleTabMutation(mutations: MutationRecord[]): void {\n if (this.#isInternallySettingActive) return\n\n const activeTab = mutations\n .map((m) => m.target)\n .find(\n (target): target is TabItemElement =>\n target instanceof HTMLElement && isTabItem(target) && target.selected,\n )\n\n if (activeTab) {\n this.#setActiveTab(activeTab)\n }\n }\n\n #activateTab(tab: TabItemElement): void {\n const previousTab = this.activeTab\n if (previousTab === tab) return\n\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n if (previousTab) {\n this.hideEmitter.emit(previousTab)\n }\n this.showEmitter.emit(tab)\n this.#setCurrentTab(tab)\n this.#switchTabPanel(tab)\n\n // Set active property without triggering watcher events again\n this.#isInternallySettingActive = true\n this.active = panelId\n this.#isInternallySettingActive = false\n\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: TabItemElement): void {\n for (const tab of this.#tabs) {\n const panel = resolvePanelElement(tab)\n if (panel) {\n panel.hidden = tab !== activeTab\n }\n }\n }\n\n #getCurrentTab(): TabItemElement | undefined {\n return this.#tabs.find(\n (tab) => getTabTrigger(tab).getAttribute('tabindex') === '0',\n )\n }\n\n #setCurrentTab(tab: TabItemElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: TabItemElement | undefined) => {\n const target = element ? getTabTrigger(element) : undefined\n if (target === undefined) return\n const isDisabled = target.getAttribute('aria-disabled') === 'true'\n const shouldActivateTab = isCurrent && !isDisabled\n const tabindex = shouldActivateTab ? '0' : '-1'\n target.setAttribute('tabindex', tabindex)\n if (shouldActivateTab) this.#activateTab(t)\n })\n }\n }\n\n readonly #isVerticalPlacement = (): boolean =>\n this.placement === 'start' || this.placement === 'end'\n\n readonly #isHorizontalPlacement = (): boolean =>\n this.placement === 'top' || this.placement === 'bottom'\n\n readonly #isEndOrBottomPlacement = (): boolean =>\n this.placement === 'end' || this.placement === 'bottom'\n\n readonly #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (!isEnabledTabItem(tab)) return\n\n this.#activateTab(tab)\n }\n\n readonly #onKeyDown = (event: KeyboardEvent): void => {\n const isVertical =\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n const MOVE_SELECTION_KEYS = isVertical\n ? VERTICAL_MOVE_KEYS\n : HORIZONTAL_MOVE_KEYS\n if (!MOVE_SELECTION_KEYS.has(event.key)) return\n\n const tabs = this.#tabs\n if (tabs.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const activeTab = this.#getCurrentTab()\n let index = activeTab ? tabs.indexOf(activeTab) : 0\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n\n let nextTab: TabItemElement | undefined\n do {\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n index = (isRTL ? index < tabs.length - 1 : index > 0)\n ? index - (isRTL ? -1 : 1)\n : isRTL\n ? 0\n : tabs.length - 1\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n index = (isRTL ? index > 0 : index < tabs.length - 1)\n ? index + (isRTL ? -1 : 1)\n : isRTL\n ? tabs.length - 1\n : 0\n break\n }\n case 'Home': {\n index = isRTL ? tabs.length - 1 : 0\n break\n }\n case 'End': {\n index = isRTL ? 0 : tabs.length - 1\n break\n }\n default:\n }\n nextTab = tabs[index]\n } while (nextTab.disabled === true)\n\n this.#setCurrentTab(nextTab)\n\n const target = getTabTrigger(nextTab)\n target.focus({ preventScroll: true })\n if (!isVertical) target.scrollIntoView()\n this.#activateTab(nextTab)\n }\n\n readonly #onMouseDown = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (isEnabledTabItem(tab)) this.#setCurrentTab(tab)\n }\n\n readonly #onScroll = (): void => {\n if (!this.#tabbar) return\n\n const { clientWidth, scrollWidth, scrollLeft } = this.#tabbar\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.disableStartArrow = scrollLeft === 0\n this.disableEndArrow = isRTL\n ? scrollWidth + scrollLeft <= clientWidth\n : scrollWidth - clientWidth - scrollLeft <= 1\n }\n\n readonly #onViewportCrop = (): void => {\n if (!this.#tabbar) return\n\n const { scrollWidth, clientWidth } = this.#tabbar\n\n if (scrollWidth > clientWidth) {\n this.#onScroll()\n }\n }\n\n #syncInternalsAccessibility(): void {\n this.internals.ariaOrientation = this.#computedAriaOrientation\n this.internals.ariaLabel = this.tablistDescription ?? ''\n }\n\n #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter(\n (element): element is TabItemElement => isEnabledTabItem(element),\n )\n : []\n }\n\n #setTabSettings(): void {\n const settings = TAB_SETTINGS[`${this.layer}-${this.level}`]\n if (!settings) return\n\n for (const tab of this.#getTabItems()) {\n tab.importance = this.#computedImportance ?? settings.importance\n tab.size = this.#computedSize ?? settings.size\n\n tab.indicatorPosition =\n this.orientation === 'vertical'\n ? 'inline-end'\n : (this.#computedPlacement ?? settings.indicatorPosition)\n }\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateTabsCache()\n\n if (this.#tabs.length > 0) this.#setCurrentTab(this.#tabs[0])\n\n this.#onViewportCrop()\n }\n\n readonly #scrollEndButtonRef = (button?: HTMLElement): void => {\n this.#scrollEndButton = button\n }\n\n readonly #scrollStartButtonRef = (button?: HTMLElement): void => {\n this.#scrollStartButton = button\n }\n}\n"],"version":3}
@@ -58,9 +58,9 @@ const TableCell = /*@__PURE__*/ proxyCustomElement(class TableCell extends H {
58
58
  render() {
59
59
  return (
60
60
  // eslint-disable-next-line jsx-a11y/control-has-associated-label
61
- h("td", { key: '37d4bfd12e7fcdfe89a73ba5a3250ec56c380066', class: "qds-table-cell", "data-size": __classPrivateFieldGet(this, _TableCell_instances, "a", _TableCell_computedSize_get), colSpan: this.colSpan, rowSpan: this.rowSpan,
61
+ h("td", { key: 'cb5ee2fddcd3d67a0b5cca3f0bad0b72c2c4b52f', class: "qds-table-cell", "data-size": __classPrivateFieldGet(this, _TableCell_instances, "a", _TableCell_computedSize_get), colSpan: this.colSpan, rowSpan: this.rowSpan,
62
62
  // eslint-disable-next-line jsx-a11y/no-interactive-element-to-noninteractive-role
63
- role: "none" }, h("slot", { key: 'fbbc89f293b0ba49afd24298549491e23abf6a22' })));
63
+ role: "none" }, h("slot", { key: '9eadd555f40f5e2a658dd639c07d895c358c3aeb' })));
64
64
  }
65
65
  static get watchers() { return {
66
66
  "colSpan": ["colSpanChanged"],
@@ -61,9 +61,9 @@ const TableHeadCell = /*@__PURE__*/ proxyCustomElement(class TableHeadCell exten
61
61
  render() {
62
62
  return (
63
63
  // eslint-disable-next-line jsx-a11y/control-has-associated-label
64
- h("th", { key: 'c2eb95970e235225d73a5c398268ce58fa5a9215', class: "qds-table-head-cell", "data-size": __classPrivateFieldGet(this, _TableHeadCell_instances, "a", _TableHeadCell_computedSize_get), colSpan: this.colSpan, rowSpan: this.rowSpan, scope: this.scope,
64
+ h("th", { key: '16fe39b4b5a08bc7ec90ec9d32930f9163e12b07', class: "qds-table-head-cell", "data-size": __classPrivateFieldGet(this, _TableHeadCell_instances, "a", _TableHeadCell_computedSize_get), colSpan: this.colSpan, rowSpan: this.rowSpan, scope: this.scope,
65
65
  // eslint-disable-next-line jsx-a11y/no-interactive-element-to-noninteractive-role
66
- role: "none" }, h("slot", { key: '9ea7125c2c1cf938c39c0254f45e49f1d96ad194' })));
66
+ role: "none" }, h("slot", { key: '9830dc68cec377ecf68fe362f304b5a561a580d9' })));
67
67
  }
68
68
  static get watchers() { return {
69
69
  "colSpan": ["colSpanChanged"],
@@ -21,7 +21,7 @@ const TableRow = /*@__PURE__*/ proxyCustomElement(class TableRow extends H {
21
21
  }
22
22
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
23
23
  render() {
24
- return (h("tr", { key: '542bde42dd840b1a145ef8b6748674ef00d4a5df', class: "qds-table-row", role: "none" }, h("slot", { key: 'ed6c95bea51d17fc397c4b1a99c058392e421890' })));
24
+ return (h("tr", { key: '988d1db82e7b871e1c88bbc01b014d987437662a', class: "qds-table-row", role: "none" }, h("slot", { key: 'da3ff80b8a80cf7f8a6a3b372f5af39df73e52bf' })));
25
25
  }
26
26
  static get style() { return tableRowCss; }
27
27
  }, [257, "qds-table-row"]);
@@ -21,7 +21,7 @@ const Table = /*@__PURE__*/ proxyCustomElement(class Table extends H {
21
21
  }
22
22
  // eslint-disable-next-line @typescript-eslint/class-methods-use-this
23
23
  render() {
24
- return h("slot", { key: '4411e9f247be226224d9b95f8d38d8314a7bad4a' });
24
+ return h("slot", { key: '2812013b2d640825e7777765d7682f1ab21f1764' });
25
25
  }
26
26
  static get style() { return tableCss; }
27
27
  }, [257, "qds-table"]);
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { T as Tag, d as defineCustomElement$1 } from './p-WIHZZjmJ.js';
6
+ import { T as Tag, d as defineCustomElement$1 } from './p-cw45QxUT.js';
7
7
 
8
8
  const QdsTag = Tag;
9
9
  const defineCustomElement = defineCustomElement$1;