@quartzds/core 1.0.0-beta.120 → 1.0.0-beta.122

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 (241) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/components/index.js +1 -1
  3. package/components/{p-CXP6q9Mr.js → p-BalM52S_.js} +12 -7
  4. package/components/p-BalM52S_.js.map +1 -0
  5. package/components/{p-CFVg7I9T.js → p-C0VgKX4J.js} +9 -9
  6. package/components/p-C0VgKX4J.js.map +1 -0
  7. package/components/{p-BkgfW_tl.js → p-C9R8N06B.js} +6 -32
  8. package/components/p-C9R8N06B.js.map +1 -0
  9. package/components/{p-DnZdwX0l.js → p-CKp062X8.js} +6 -6
  10. package/components/p-CKp062X8.js.map +1 -0
  11. package/components/{p-DwxIJEUj.js → p-CVuTVnQo.js} +3 -3
  12. package/components/{p-DwxIJEUj.js.map → p-CVuTVnQo.js.map} +1 -1
  13. package/components/{p-DeRqCYmp.js → p-Ck9w5WIb.js} +6 -6
  14. package/components/p-Ck9w5WIb.js.map +1 -0
  15. package/components/p-DCAlWquR.js +200 -0
  16. package/components/p-DCAlWquR.js.map +1 -0
  17. package/components/{p-BkBJDD6Y.js → p-DRcxeXWE.js} +58 -22
  18. package/components/p-DRcxeXWE.js.map +1 -0
  19. package/components/{p-Dsc0-aXK.js → p-DgYrfIr_.js} +4 -4
  20. package/components/{p-Dsc0-aXK.js.map → p-DgYrfIr_.js.map} +1 -1
  21. package/components/{p-CDRwHAIT.js → p-XP2CY_fo.js} +3 -3
  22. package/components/p-XP2CY_fo.js.map +1 -0
  23. package/components/{p-5RFBIepu.js → p-io1iVgY1.js} +47 -28
  24. package/components/p-io1iVgY1.js.map +1 -0
  25. package/components/{p-B03FWheS.js → p-oqmnh-8P.js} +4 -4
  26. package/components/{p-B03FWheS.js.map → p-oqmnh-8P.js.map} +1 -1
  27. package/components/{p-eFhV8w2l.js → p-yb0Kv4Y6.js} +24 -6
  28. package/components/p-yb0Kv4Y6.js.map +1 -0
  29. package/components/qds-action-item.js +5 -5
  30. package/components/qds-action-item.js.map +1 -1
  31. package/components/qds-avatar-media.js +1 -1
  32. package/components/qds-badge-counter.js +1 -1
  33. package/components/qds-breadcrumb-item.js +6 -6
  34. package/components/qds-breadcrumb-item.js.map +1 -1
  35. package/components/qds-button.js +5 -5
  36. package/components/qds-button.js.map +1 -1
  37. package/components/qds-checkbox.js +1 -1
  38. package/components/qds-chip.js +10 -10
  39. package/components/qds-chip.js.map +1 -1
  40. package/components/qds-dialog.js +7 -7
  41. package/components/qds-dialog.js.map +1 -1
  42. package/components/qds-divider.js +1 -1
  43. package/components/qds-dropdown.js +1 -1
  44. package/components/qds-form-message.js +4 -4
  45. package/components/qds-form-message.js.map +1 -1
  46. package/components/qds-icon-button.js +1 -1
  47. package/components/qds-icon-tab.js +9 -9
  48. package/components/qds-icon-tab.js.map +1 -1
  49. package/components/qds-icon.js +1 -1
  50. package/components/qds-inline-link.js +3 -3
  51. package/components/qds-inline-link.js.map +1 -1
  52. package/components/qds-input.js +49 -18
  53. package/components/qds-input.js.map +1 -1
  54. package/components/qds-label.js +153 -1
  55. package/components/qds-label.js.map +1 -1
  56. package/components/qds-list-item.js +25 -29
  57. package/components/qds-list-item.js.map +1 -1
  58. package/components/qds-loader.js +3 -3
  59. package/components/qds-loader.js.map +1 -1
  60. package/components/qds-menu-item.js +6 -6
  61. package/components/qds-mini-button.js +1 -1
  62. package/components/qds-progress-bar.js +1 -1
  63. package/components/qds-radio.js +1 -1
  64. package/components/qds-select.js +27 -9
  65. package/components/qds-select.js.map +1 -1
  66. package/components/qds-standalone-link.js +5 -5
  67. package/components/qds-standalone-link.js.map +1 -1
  68. package/components/qds-switch.js +5 -5
  69. package/components/qds-tab.js +20 -15
  70. package/components/qds-tab.js.map +1 -1
  71. package/components/qds-tabbar.js +95 -34
  72. package/components/qds-tabbar.js.map +1 -1
  73. package/components/qds-table-cell.js +32 -4
  74. package/components/qds-table-cell.js.map +1 -1
  75. package/components/qds-table-head-cell.js +32 -4
  76. package/components/qds-table-head-cell.js.map +1 -1
  77. package/components/qds-table-row.js +2 -2
  78. package/components/qds-table-row.js.map +1 -1
  79. package/components/qds-table.js +1 -1
  80. package/components/qds-tag.js +1 -1
  81. package/components/qds-textarea.js +4 -4
  82. package/components/qds-textarea.js.map +1 -1
  83. package/components/qds-title.js +1 -1
  84. package/components/qds-tooltip.js +1 -1
  85. package/dist/cjs/{helpers-BIL8yXqA.js → helpers-Qs3cpKiI.js} +11 -6
  86. package/dist/cjs/{helpers-BIL8yXqA.js.map → helpers-Qs3cpKiI.js.map} +1 -1
  87. package/dist/cjs/loader.cjs.js +1 -1
  88. package/dist/cjs/qds-action-item.cjs.entry.js +3 -3
  89. package/dist/cjs/qds-action-item.entry.cjs.js.map +1 -1
  90. package/dist/cjs/qds-avatar-media.qds-checkbox.qds-radio.entry.cjs.js.map +1 -1
  91. package/dist/cjs/qds-avatar-media_3.cjs.entry.js +145 -42
  92. package/dist/cjs/qds-badge-counter.qds-badge-indicator.entry.cjs.js.map +1 -1
  93. package/dist/cjs/qds-badge-counter_2.cjs.entry.js +1 -1
  94. package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +4 -4
  95. package/dist/cjs/qds-breadcrumb-item.entry.cjs.js.map +1 -1
  96. package/dist/cjs/qds-button.cjs.entry.js +2 -2
  97. package/dist/cjs/qds-button.entry.cjs.js.map +1 -1
  98. package/dist/cjs/qds-chip.cjs.entry.js +7 -7
  99. package/dist/cjs/qds-chip.entry.cjs.js.map +1 -1
  100. package/dist/cjs/qds-dialog.cjs.entry.js +3 -3
  101. package/dist/cjs/qds-dialog.entry.cjs.js.map +1 -1
  102. package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -1
  103. package/dist/cjs/qds-divider_2.cjs.entry.js +5 -5
  104. package/dist/cjs/qds-dropdown.cjs.entry.js +22 -4
  105. package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -1
  106. package/dist/cjs/qds-form-message.cjs.entry.js +3 -3
  107. package/dist/cjs/qds-form-message.entry.cjs.js.map +1 -1
  108. package/dist/cjs/qds-icon-tab.cjs.entry.js +5 -5
  109. package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -1
  110. package/dist/cjs/qds-icon.cjs.entry.js +10 -30
  111. package/dist/cjs/qds-icon.entry.cjs.js.map +1 -1
  112. package/dist/cjs/qds-inline-link.cjs.entry.js +2 -2
  113. package/dist/cjs/qds-inline-link.entry.cjs.js.map +1 -1
  114. package/dist/cjs/qds-input.cjs.entry.js +46 -16
  115. package/dist/cjs/qds-input.entry.cjs.js.map +1 -1
  116. package/dist/cjs/qds-label.cjs.entry.js +3 -3
  117. package/dist/cjs/qds-list-item.cjs.entry.js +7 -5
  118. package/dist/cjs/qds-list-item.entry.cjs.js.map +1 -1
  119. package/dist/cjs/qds-loader.cjs.entry.js +2 -2
  120. package/dist/cjs/qds-loader.entry.cjs.js.map +1 -1
  121. package/dist/cjs/qds-menu-item.cjs.entry.js +3 -3
  122. package/dist/cjs/qds-mini-button.cjs.entry.js +1 -1
  123. package/dist/cjs/qds-progress-bar.cjs.entry.js +1 -1
  124. package/dist/cjs/qds-select.cjs.entry.js +23 -7
  125. package/dist/cjs/qds-select.entry.cjs.js.map +1 -1
  126. package/dist/cjs/qds-standalone-link.cjs.entry.js +4 -4
  127. package/dist/cjs/qds-standalone-link.entry.cjs.js.map +1 -1
  128. package/dist/cjs/qds-switch.cjs.entry.js +4 -4
  129. package/dist/cjs/qds-tab.cjs.entry.js +16 -11
  130. package/dist/cjs/qds-tab.entry.cjs.js.map +1 -1
  131. package/dist/cjs/qds-tabbar.cjs.entry.js +84 -28
  132. package/dist/cjs/qds-tabbar.entry.cjs.js.map +1 -1
  133. package/dist/cjs/qds-table-cell.cjs.entry.js +30 -3
  134. package/dist/cjs/qds-table-cell.entry.cjs.js.map +1 -1
  135. package/dist/cjs/qds-table-head-cell.cjs.entry.js +30 -3
  136. package/dist/cjs/qds-table-head-cell.entry.cjs.js.map +1 -1
  137. package/dist/cjs/qds-table-row.cjs.entry.js +2 -2
  138. package/dist/cjs/qds-table-row.entry.cjs.js.map +1 -1
  139. package/dist/cjs/qds-table.cjs.entry.js +1 -1
  140. package/dist/cjs/qds-tag.cjs.entry.js +3 -3
  141. package/dist/cjs/qds-tag.entry.cjs.js.map +1 -1
  142. package/dist/cjs/qds-textarea.cjs.entry.js +4 -4
  143. package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -1
  144. package/dist/cjs/qds-title.cjs.entry.js +3 -3
  145. package/dist/cjs/qds-title.entry.cjs.js.map +1 -1
  146. package/dist/cjs/qds-tooltip.cjs.entry.js +2 -2
  147. package/dist/cjs/qds.cjs.js +1 -1
  148. package/dist/custom-elements.json +460 -33
  149. package/dist/docs.json +403 -64
  150. package/dist/esm/{helpers-BgaJNF9u.js → helpers-Fe2AA6uo.js} +12 -7
  151. package/dist/esm/{helpers-BgaJNF9u.js.map → helpers-Fe2AA6uo.js.map} +1 -1
  152. package/dist/esm/loader.js +1 -1
  153. package/dist/esm/qds-action-item.entry.js +3 -3
  154. package/dist/esm/qds-action-item.entry.js.map +1 -1
  155. package/dist/esm/qds-avatar-media.qds-checkbox.qds-radio.entry.js.map +1 -1
  156. package/dist/esm/qds-avatar-media_3.entry.js +146 -43
  157. package/dist/esm/qds-badge-counter.qds-badge-indicator.entry.js.map +1 -1
  158. package/dist/esm/qds-badge-counter_2.entry.js +1 -1
  159. package/dist/esm/qds-breadcrumb-item.entry.js +4 -4
  160. package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -1
  161. package/dist/esm/qds-button.entry.js +2 -2
  162. package/dist/esm/qds-button.entry.js.map +1 -1
  163. package/dist/esm/qds-chip.entry.js +7 -7
  164. package/dist/esm/qds-chip.entry.js.map +1 -1
  165. package/dist/esm/qds-dialog.entry.js +3 -3
  166. package/dist/esm/qds-dialog.entry.js.map +1 -1
  167. package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -1
  168. package/dist/esm/qds-divider_2.entry.js +5 -5
  169. package/dist/esm/qds-dropdown.entry.js +22 -4
  170. package/dist/esm/qds-dropdown.entry.js.map +1 -1
  171. package/dist/esm/qds-form-message.entry.js +3 -3
  172. package/dist/esm/qds-form-message.entry.js.map +1 -1
  173. package/dist/esm/qds-icon-tab.entry.js +5 -5
  174. package/dist/esm/qds-icon-tab.entry.js.map +1 -1
  175. package/dist/esm/qds-icon.entry.js +11 -31
  176. package/dist/esm/qds-icon.entry.js.map +1 -1
  177. package/dist/esm/qds-inline-link.entry.js +2 -2
  178. package/dist/esm/qds-inline-link.entry.js.map +1 -1
  179. package/dist/esm/qds-input.entry.js +46 -16
  180. package/dist/esm/qds-input.entry.js.map +1 -1
  181. package/dist/esm/qds-label.entry.js +3 -3
  182. package/dist/esm/qds-list-item.entry.js +7 -5
  183. package/dist/esm/qds-list-item.entry.js.map +1 -1
  184. package/dist/esm/qds-loader.entry.js +2 -2
  185. package/dist/esm/qds-loader.entry.js.map +1 -1
  186. package/dist/esm/qds-menu-item.entry.js +3 -3
  187. package/dist/esm/qds-mini-button.entry.js +1 -1
  188. package/dist/esm/qds-progress-bar.entry.js +1 -1
  189. package/dist/esm/qds-select.entry.js +23 -7
  190. package/dist/esm/qds-select.entry.js.map +1 -1
  191. package/dist/esm/qds-standalone-link.entry.js +4 -4
  192. package/dist/esm/qds-standalone-link.entry.js.map +1 -1
  193. package/dist/esm/qds-switch.entry.js +4 -4
  194. package/dist/esm/qds-tab.entry.js +16 -11
  195. package/dist/esm/qds-tab.entry.js.map +1 -1
  196. package/dist/esm/qds-tabbar.entry.js +84 -28
  197. package/dist/esm/qds-tabbar.entry.js.map +1 -1
  198. package/dist/esm/qds-table-cell.entry.js +30 -3
  199. package/dist/esm/qds-table-cell.entry.js.map +1 -1
  200. package/dist/esm/qds-table-head-cell.entry.js +30 -3
  201. package/dist/esm/qds-table-head-cell.entry.js.map +1 -1
  202. package/dist/esm/qds-table-row.entry.js +2 -2
  203. package/dist/esm/qds-table-row.entry.js.map +1 -1
  204. package/dist/esm/qds-table.entry.js +1 -1
  205. package/dist/esm/qds-tag.entry.js +3 -3
  206. package/dist/esm/qds-tag.entry.js.map +1 -1
  207. package/dist/esm/qds-textarea.entry.js +4 -4
  208. package/dist/esm/qds-textarea.entry.js.map +1 -1
  209. package/dist/esm/qds-title.entry.js +3 -3
  210. package/dist/esm/qds-title.entry.js.map +1 -1
  211. package/dist/esm/qds-tooltip.entry.js +2 -2
  212. package/dist/esm/qds.js +1 -1
  213. package/dist/types/components/avatar-media/avatar-media.d.ts +14 -5
  214. package/dist/types/components/checkbox/checkbox.d.ts +4 -0
  215. package/dist/types/components/icon/icon.d.ts +1 -2
  216. package/dist/types/components/input/input.d.ts +10 -0
  217. package/dist/types/components/radio/radio.d.ts +4 -0
  218. package/dist/types/components/select/select.d.ts +7 -1
  219. package/dist/types/components/tab/tab.d.ts +1 -1
  220. package/dist/types/components/tabbar/tabbar.d.ts +27 -1
  221. package/dist/types/components/table-cell/table-cell.d.ts +6 -0
  222. package/dist/types/components/table-head-cell/table-head-cell.d.ts +6 -0
  223. package/dist/types/components.d.ts +94 -19
  224. package/dist/vscode.html-custom-data.json +99 -5
  225. package/hydrate/index.js +1021 -742
  226. package/hydrate/index.mjs +1021 -742
  227. package/package.json +1 -1
  228. package/styles/core.css +24 -22
  229. package/components/p-5RFBIepu.js.map +0 -1
  230. package/components/p-BkBJDD6Y.js.map +0 -1
  231. package/components/p-BkgfW_tl.js.map +0 -1
  232. package/components/p-Bnc7Puxx.js +0 -164
  233. package/components/p-Bnc7Puxx.js.map +0 -1
  234. package/components/p-CDRwHAIT.js.map +0 -1
  235. package/components/p-CFVg7I9T.js.map +0 -1
  236. package/components/p-CRVPDKfO.js +0 -163
  237. package/components/p-CRVPDKfO.js.map +0 -1
  238. package/components/p-CXP6q9Mr.js.map +0 -1
  239. package/components/p-DeRqCYmp.js.map +0 -1
  240. package/components/p-DnZdwX0l.js.map +0 -1
  241. package/components/p-eFhV8w2l.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"qds-tab.entry.js","sources":["src/components/tab/tab.css?tag=qds-tab&encapsulation=shadow","src/components/tab/tab.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: inline-block;\n line-height: 0;\n}\n\n[aria-disabled='true'] {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n:host(:focus-visible) {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n outline-offset: calc(\n -1 * var(--qds-focus-border-width) - var(--qds-focus-border-offset)\n );\n}\n\n.qds-target-icon {\n color: var(--qds-theme-control-text-standard);\n}\n\n.qds-icon,\n.qds-target-icon {\n flex-shrink: 0;\n}\n\n.qds-chevron {\n transform: rotate(180deg);\n}\n\n.qds-selected {\n &:hover {\n background-color: var(--qds-theme-interactive-background-selected-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-selected-pressed);\n }\n}\n\n.qds-closable-wrapper,\n.qds-tab,\n.qds-closable-tab,\n.qds-texts {\n display: flex;\n}\n\n.qds-texts {\n flex: 1 0;\n flex-direction: column;\n}\n\n.qds-icon,\n.qds-text {\n color: var(--qds-theme-title);\n}\n\n.qds-subtitle {\n color: var(--qds-theme-subtitle);\n font: var(--qds-nav-element-standard-subtitle);\n}\n\n[data-size='small'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-small-height);\n gap: var(--qds-nav-element-small-gap-internal);\n padding-inline: var(--qds-nav-element-small-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-small-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-small-icon-size);\n width: var(--qds-nav-element-small-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-small-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-small-title);\n }\n\n & .qds-subtitle {\n font: var(--qds-nav-element-small-subtitle);\n }\n\n &.qds-target-icon {\n --qds-experimental-icon-click-target-size: var(--qds-control-small-height);\n\n height: var(--qds-control-small-icon-size);\n width: var(--qds-control-small-icon-size);\n }\n}\n\n[data-size='standard'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-standard-height);\n gap: var(--qds-nav-element-standard-gap-internal);\n padding-inline: var(--qds-nav-element-standard-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-standard-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-standard-icon-size);\n width: var(--qds-nav-element-standard-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-standard-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-standard-title);\n }\n\n & .qds-subtitle {\n font: var(--qds-nav-element-standard-subtitle);\n }\n\n &.qds-target-icon {\n --qds-experimental-icon-click-target-size: var(\n --qds-control-standard-height\n );\n\n height: var(--qds-control-standard-icon-size);\n width: var(--qds-control-standard-icon-size);\n }\n}\n\n[data-size='large'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-large-height);\n gap: var(--qds-nav-element-large-gap-internal);\n padding-inline: var(--qds-nav-element-large-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-large-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-large-icon-size);\n width: var(--qds-nav-element-large-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-large-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-large-title);\n }\n\n & .qds-subtext {\n font: var(--qds-nav-element-large-subtitle);\n }\n\n &.qds-target-icon {\n --qds-experimental-icon-click-target-size: var(--qds-control-large-height);\n\n height: var(--qds-control-large-icon-size);\n width: var(--qds-control-large-icon-size);\n }\n}\n\n[data-importance='subdued'],\n[data-importance='standard'] {\n &.qds-selected,\n &.qds-closable-wrapper,\n .qds-tab:hover {\n &::after {\n border-radius: var(--qds-signature-line-connection-cap-radius);\n content: '';\n display: block;\n position: absolute;\n }\n\n &.qds-indicator-inline-end::after,\n &.qds-indicator-inline-start::after {\n width: var(--qds-signature-line-connection-width);\n height: 100%;\n }\n\n &.qds-indicator-inline-end::after {\n inset-inline-end: 0;\n }\n\n &.qds-indicator-inline-start::after {\n inset-inline-start: 0;\n }\n\n &.qds-indicator-block-end::after,\n &.qds-indicator-block-start::after {\n width: 100%;\n height: var(--qds-signature-line-connection-width);\n }\n\n &.qds-indicator-block-end::after {\n bottom: 0;\n }\n\n &.qds-indicator-block-start::after {\n top: 0;\n }\n }\n\n &.qds-selected {\n &[data-size='standard'] .qds-text {\n font: var(--qds-nav-element-standard-title-emphasized);\n }\n\n &[data-size='small'] .qds-text {\n font: var(--qds-nav-element-small-title-emphasized);\n }\n\n &[data-size='large'] .qds-text {\n font: var(--qds-nav-element-large-title-emphasized);\n }\n }\n}\n\n[data-importance='standard'] {\n .qds-selected .qds-icon {\n color: var(--qds-theme-title);\n }\n\n &:hover {\n &::after {\n background-color: var(--qds-theme-signature-color-hover);\n }\n }\n\n &:active {\n &::after {\n background-color: var(--qds-theme-signature-color-pressed);\n }\n }\n\n &.qds-selected {\n &::after {\n background-color: var(--qds-theme-signature-color-default);\n }\n }\n}\n\n[data-importance='subdued'] {\n &.qds-selected,\n :active {\n &::after {\n background-color: var(--qds-theme-link-subdued-pressed);\n }\n }\n\n &:hover {\n &::after {\n background-color: var(--qds-theme-link-subdued-hover);\n }\n }\n\n &.qds-selected::after {\n background-color: var(\n --qds-theme-nav-element-selection-indicator-background-subdued\n );\n }\n}\n\n.qds-tab {\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n outline-offset: calc(\n -1 * var(--qds-focus-border-width) - var(--qds-focus-border-offset)\n );\n }\n}\n\n.qds-closable-tab {\n width: 100%;\n\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n }\n}\n\n.qds-closable-wrapper {\n align-items: center;\n justify-content: center;\n}\n\n.qds-tab,\n.qds-closable-tab {\n align-items: center;\n justify-content: center;\n border: none;\n background-color: transparent;\n cursor: pointer;\n text-align: initial;\n\n &:any-link {\n text-decoration: none;\n }\n}\n\n.qds-tab,\n.qds-closable-wrapper {\n position: relative;\n\n &:not(.qds-selected):hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:not(.qds-selected):active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter, JSX } 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 type { QdsFocusEventDetail } from '../../helpers'\nimport { pickFocusEventAttributes, resolveTarget } from '../../helpers'\nimport type { Importance, Size, Status } from '../shared'\n\nexport type Action = 'closable' | 'expandable'\n\nexport type TabImportance = Exclude<Importance, 'emphasized'>\n\nexport type TagStatus = Status | 'neutral'\n\nexport type IndicatorPosition =\n | 'block-end'\n | 'block-start'\n | 'inline-end'\n | 'inline-start'\n\nconst isCounter = (value: unknown): value is number =>\n typeof value === 'string'\n ? !Number.isNaN(Number.parseFloat(value))\n : typeof value === 'number'\n\nconst isIndicator = (value: unknown): value is '' | true =>\n value === '' || value === true\n\nlet autoIncrementingId = 1\n\n/**\n * <qds-tab> is a navigational element that is used in different horizontal or vertical navigation bars\n * (Main Navigation, secondary navigation, Tab bar, etc.)\n * as trigger points for opening a menu list or switching content in Tab bar.\n *\n * @see https://quartz.se.com/build/components/tab\n */\n@Component({\n tag: 'qds-tab',\n shadow: true,\n styleUrl: 'tab.css',\n})\nexport class Tab implements ComponentInterface {\n /**\n * The name of the action icon to render.\n */\n @Prop() public readonly action?: Action\n\n /**\n * Displays an indicator if `true` or the empty string. Otherwise, displays a\n * counter badge if a number or string representing a number is used.\n */\n @Prop() public readonly badge?: number | string | true\n\n /**\n * The tab's counter importance.\n */\n @Prop()\n public readonly badgeCounterImportance?: HTMLQdsBadgeCounterElement['importance'] =\n 'standard'\n\n /**\n * The indicator or counter badge's accessible text that will be used by\n * screen readers.\n */\n @Prop() public readonly badgeDescription?: string\n\n /**\n * The indicator's status.\n */\n @Prop()\n public readonly badgeIndicatorStatus?: HTMLQdsBadgeIndicatorElement['status'] =\n 'neutral'\n\n /**\n * Prevents the tab from being interacted with: it cannot be\n * selected or focused.\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly iconLibrary: string = 'default'\n\n /**\n * The name of the icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly iconName?: string\n\n /**\n * The tab's importance.\n */\n @Prop() public readonly importance?: TabImportance = 'standard'\n\n /**\n * The tab's indicator position.\n */\n @Prop() public readonly indicatorPosition?: IndicatorPosition = 'block-end'\n\n /**\n * The tab panel element associated with this tab. The `panel` specified\n * can be any of the following:\n *\n * - A CSS selector string\n * - A reference to an [`Element`][]\n * - A function returning a reference to an [`Element`][] or a CSS selector\n * string\n *\n * [`Element`]: https://developer.mozilla.org/docs/Web/API/Element\n */\n @Prop() public readonly panel!: Element | string | (() => Element | string)\n\n /**\n * The tag icon's accessible text that will be used by\n * screen readers.\n */\n @Prop() public readonly tagIconDescription?: string\n\n /**\n * The name of the tab's tag icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly tagIconName?: string\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly tagIconLibrary: string = 'default'\n\n /**\n * The tab's tag importance.\n */\n @Prop() public readonly tagImportance?: HTMLQdsTagElement['importance'] =\n 'emphasized'\n\n /**\n * The tab's tag size.\n */\n @Prop() public readonly tagSize?: Size = 'small'\n\n /**\n * The tab's tag status.\n */\n @Prop() public readonly tagStatus?: Status = 'info'\n\n /**\n * The tab's tag text.\n */\n @Prop() public readonly tagText?: string\n\n /**\n * Whether or not the tab is selected.\n */\n @Prop() public selected = false\n\n /**\n * The tab's size.\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * Text to display for the subtitle.\n */\n @Prop() public readonly subtitle?: string\n\n /**\n * Primary text to display.\n */\n @Prop() public readonly text!: string\n\n /**\n * When set, the underlying tab will be rendered as an `<a>` with this\n * `href` instead of a `<button>`.\n *\n * This property has no effect if the tab has an `action`.\n *\n * @webnative\n */\n @Prop() public readonly href?: string\n\n /**\n * Emitted when the tab is closed.\n */\n @Event({ eventName: 'qdsClose', cancelable: false })\n private readonly closeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the tab loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the tab gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private tabIndex?: number\n\n @State() private isIndicatorOnTop = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #panel?: Element\n\n #tab?: HTMLElement\n\n get #computedAction(): Action | undefined {\n switch (this.action) {\n case 'closable':\n case 'expandable': {\n return this.action\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computedSize(): Size {\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedImportance(): TabImportance {\n switch (this.importance) {\n case 'subdued':\n case 'standard': {\n return this.importance\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #parentLayer(): string {\n return this.host.closest('qds-tabbar')?.layer ?? 'main'\n }\n\n get #parentLevel(): string {\n return this.host.closest('qds-tabbar')?.level ?? 'root'\n }\n\n get #ariaLabel(): string {\n return `Close ${this.text}`\n }\n\n get #computedDisabled(): boolean {\n return this.disabled ?? false\n }\n\n get #computeCloseButtonTabIndex(): number | undefined {\n if (this.selected) {\n return this.#computedDisabled ? undefined : this.tabIndex\n }\n return -1\n }\n\n @Watch('panel')\n protected panelChanged(): void {\n this.disconnectedCallback()\n\n const panel = resolveTarget(this.panel)\n if (!(panel instanceof globalThis.Element)) return\n this.#panel = panel\n\n const tab = this.host.shadowRoot?.querySelector('[role=\"tab\"]')\n if (tab) tab.setAttribute('aria-controls', this.#panel.id)\n\n if (this.#panel.role === null) this.#panel.role = 'tabpanel'\n if (this.#panel.getAttribute('aria-labelledby') === null)\n this.#panel.setAttribute('aria-labelledby', this.host.id)\n this.#panel.setAttribute(\n 'tabindex',\n this.#panel.getAttribute('tabindex') ?? '0',\n )\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.#computedDisabled) event.stopImmediatePropagation()\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('action')\n protected actionChanged(): void {\n this.#defineTab()\n }\n\n public componentWillLoad(): void {\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n this.host.id ||= `qds-tab-${autoIncrementingId}`\n autoIncrementingId += 1\n\n this.#defineTab()\n }\n\n public componentWillRender(): void {\n const isPanelRoot =\n this.#parentLayer === 'panel' && this.#parentLevel === 'root'\n const isMainSubsection =\n this.#parentLayer === 'main' && this.#parentLevel === 'subsection'\n\n this.isIndicatorOnTop = isPanelRoot || isMainSubsection\n }\n\n public componentDidLoad(): void {\n this.panelChanged()\n }\n\n public disconnectedCallback(): void {\n if (!this.#panel) return\n\n const tab = this.host.shadowRoot?.querySelector('[role=\"tab\"]')\n if (tab) tab.removeAttribute('aria-controls')\n\n if (this.#panel.role === 'tabpanel')\n // eslint-disable-next-line unicorn/no-null\n this.#panel.role = null\n if (this.#panel.getAttribute('aria-labelledby') === this.host.id)\n this.#panel.removeAttribute('aria-labelledby')\n this.#panel.removeAttribute('tabindex')\n }\n\n public render() {\n const isLink = this.href !== undefined && this.#computedAction === undefined\n const indicatorPosition = this.isIndicatorOnTop\n ? 'block-start'\n : this.indicatorPosition\n const Tag = isLink\n ? 'a'\n : this.#computedAction === 'expandable'\n ? 'button'\n : 'div'\n return (\n <div\n aria-disabled={this.#computedDisabled ? 'true' : undefined}\n class={{\n 'qds-closable-wrapper': this.#computedAction === 'closable',\n 'qds-selected': this.selected,\n [`qds-indicator-${indicatorPosition}`]:\n this.#computedAction === 'closable',\n }}\n data-size={this.#computedSize}\n data-importance={this.#computedImportance}\n >\n <Tag\n ref={this.#tabRef}\n aria-disabled={this.#computedDisabled ? 'true' : undefined}\n disabled={isLink ? undefined : this.disabled}\n onBlur={this.#onBlur}\n onFocus={this.#onFocus}\n class={{\n 'qds-tab': this.#computedAction !== 'closable',\n 'qds-closable-tab': this.#computedAction === 'closable',\n 'qds-selected': this.selected,\n [`qds-indicator-${this.indicatorPosition}`]:\n this.#computedAction !== 'closable',\n }}\n role={\n !isLink && this.#computedAction !== 'expandable' ? 'tab' : undefined\n }\n aria-current={isLink && this.selected ? 'true' : undefined}\n aria-expanded={\n this.#computedAction === 'expandable' && !isLink\n ? this.selected\n ? 'true'\n : 'false'\n : undefined\n }\n data-importance={this.#computedImportance}\n data-action={this.#computedAction}\n data-size={this.#computedSize}\n href={isLink ? this.href : undefined}\n >\n {((this.tagText !== undefined && this.tagText !== '') ||\n (this.tagIconName !== undefined && this.tagIconName !== '')) && (\n <qds-tag\n text={this.tagText}\n status={this.tagStatus}\n size={this.#computedSize}\n importance={this.tagImportance}\n icon-library={this.tagIconLibrary}\n icon-name={this.tagIconName}\n icon-description={this.tagIconDescription}\n />\n )}\n\n {this.iconName !== undefined && this.iconName !== '' && (\n <qds-icon\n aria-hidden=\"true\"\n class=\"qds-icon\"\n library={this.iconLibrary}\n name={this.iconName}\n />\n )}\n {this.text && this.#renderText()}\n {isIndicator(this.badge) && (\n <qds-badge-indicator\n status={this.badgeIndicatorStatus}\n description={this.badgeDescription}\n size={this.#computedSize}\n strokeRing\n />\n )}\n {isCounter(this.badge) && (\n <qds-badge-counter\n description={this.badgeDescription}\n importance={this.badgeCounterImportance}\n size={this.#computedSize}\n strokeRing\n value={this.badge}\n />\n )}\n {this.#computedAction === 'expandable' && (\n <qds-icon\n aria-hidden=\"true\"\n class={{ 'qds-target-icon': true, 'qds-chevron': this.selected }}\n data-size={this.#computedSize}\n library=\"core\"\n name=\"dropdown\"\n />\n )}\n </Tag>\n {this.#computedAction === 'closable' && (\n <qds-mini-button\n name=\"close\"\n library=\"core\"\n text={this.#ariaLabel}\n data-size={this.#computedSize}\n disabled={this.#computedDisabled}\n onClick={this.#onIconClick}\n tabIndex={this.#computeCloseButtonTabIndex}\n />\n )}\n </div>\n )\n }\n\n #renderText(): JSX.Element {\n return (\n <div class=\"qds-texts\">\n <div class=\"qds-text\">{this.text}</div>\n {this.subtitle !== undefined && this.subtitle !== '' && (\n <div class=\"qds-subtitle\">{this.subtitle}</div>\n )}\n </div>\n )\n }\n\n readonly #tabRef = (tab?: HTMLElement): void => {\n this.#tab = tab\n }\n\n readonly #close = (): void => {\n this.closeEmitter.emit()\n }\n\n readonly #onIconClick = (event: MouseEvent): void => {\n event.stopPropagation()\n this.#close()\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #defineTab = (): void => {\n if (this.#computedAction === 'closable') {\n this.#defineGetter('tab', () => this.#tab)\n } else {\n this.internals.role = 'tab'\n this.#defineGetter('tab', () => this.host)\n }\n }\n\n #defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.host, p, { enumerable: true, get })\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"qds-tab.entry.js","sources":["src/components/tab/tab.css?tag=qds-tab&encapsulation=shadow","src/components/tab/tab.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: inline-block;\n line-height: 0;\n}\n\n[aria-disabled='true'] {\n opacity: var(--qds-theme-disabled);\n pointer-events: none;\n}\n\n:host(:focus-visible) {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n outline-offset: calc(\n -1 * var(--qds-focus-border-width) - var(--qds-focus-border-offset)\n );\n}\n\n.qds-target-icon {\n color: var(--qds-theme-control-text-standard);\n}\n\n.qds-icon,\n.qds-target-icon {\n flex-shrink: 0;\n}\n\n.qds-chevron {\n transform: rotate(180deg);\n}\n\n.qds-selected {\n &:hover {\n background-color: var(--qds-theme-interactive-background-selected-hover);\n }\n\n &:active {\n background-color: var(--qds-theme-interactive-background-selected-pressed);\n }\n}\n\n.qds-closable-wrapper,\n.qds-tab,\n.qds-closable-tab,\n.qds-texts {\n display: flex;\n}\n\n.qds-texts {\n flex: 1 0;\n flex-direction: column;\n}\n\n.qds-icon,\n.qds-text {\n color: var(--qds-theme-title);\n}\n\n.qds-subtitle {\n color: var(--qds-theme-subtitle);\n font: var(--qds-nav-element-standard-subtitle);\n}\n\n[data-size='small'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-small-height);\n gap: var(--qds-nav-element-small-gap-internal);\n padding-inline: var(--qds-nav-element-small-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-small-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-small-icon-size);\n width: var(--qds-nav-element-small-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-small-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-small-title);\n }\n\n & .qds-subtitle {\n font: var(--qds-nav-element-small-subtitle);\n }\n\n &.qds-target-icon {\n height: var(--qds-control-small-icon-size);\n width: var(--qds-control-small-icon-size);\n }\n}\n\n[data-size='standard'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-standard-height);\n gap: var(--qds-nav-element-standard-gap-internal);\n padding-inline: var(--qds-nav-element-standard-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-standard-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-standard-icon-size);\n width: var(--qds-nav-element-standard-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-standard-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-standard-title);\n }\n\n & .qds-subtitle {\n font: var(--qds-nav-element-standard-subtitle);\n }\n\n &.qds-target-icon {\n height: var(--qds-control-standard-icon-size);\n width: var(--qds-control-standard-icon-size);\n }\n}\n\n[data-size='large'] {\n &.qds-tab,\n &.qds-closable-wrapper {\n min-height: var(--qds-nav-element-large-height);\n gap: var(--qds-nav-element-large-gap-internal);\n padding-inline: var(--qds-nav-element-large-padding-horizontal);\n }\n\n &.qds-closable-tab {\n gap: var(--qds-nav-element-large-gap-internal);\n }\n\n & > .qds-icon {\n height: var(--qds-nav-element-large-icon-size);\n width: var(--qds-nav-element-large-icon-size);\n }\n\n & > .qds-texts {\n gap: var(--qds-nav-element-large-titles-gap);\n }\n\n & .qds-text {\n font: var(--qds-nav-element-large-title);\n }\n\n & .qds-subtext {\n font: var(--qds-nav-element-large-subtitle);\n }\n\n &.qds-target-icon {\n height: var(--qds-control-large-icon-size);\n width: var(--qds-control-large-icon-size);\n }\n}\n\n[data-importance='standard'] {\n .qds-selected .qds-icon {\n color: var(--qds-theme-title);\n }\n\n &.qds-selected {\n &::after {\n background-color: var(--qds-theme-signature-color-default);\n }\n }\n}\n\n[data-importance='subdued'] {\n &.qds-selected {\n &::after {\n background-color: var(\n --qds-theme-nav-element-selection-indicator-background-subdued\n );\n }\n }\n}\n\n[data-importance='subdued'],\n[data-importance='standard'] {\n &.qds-selected {\n &::after {\n border-radius: var(--qds-signature-line-connection-cap-radius);\n content: '';\n display: block;\n position: absolute;\n }\n\n &.qds-indicator-inline-end::after,\n &.qds-indicator-inline-start::after {\n width: var(--qds-signature-line-connection-width);\n height: 100%;\n }\n\n &.qds-indicator-inline-end::after {\n inset-inline-end: 0;\n }\n\n &.qds-indicator-inline-start::after {\n inset-inline-start: 0;\n }\n\n &.qds-indicator-block-end::after,\n &.qds-indicator-block-start::after {\n width: 100%;\n height: var(--qds-signature-line-connection-width);\n }\n\n &.qds-indicator-block-end::after {\n bottom: 0;\n }\n\n &.qds-indicator-block-start::after {\n top: 0;\n }\n\n &[data-size='standard'] .qds-text {\n font: var(--qds-nav-element-standard-title-emphasized);\n }\n\n &[data-size='small'] .qds-text {\n font: var(--qds-nav-element-small-title-emphasized);\n }\n\n &[data-size='large'] .qds-text {\n font: var(--qds-nav-element-large-title-emphasized);\n }\n }\n}\n\n.qds-tab {\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n outline-offset: calc(\n -1 * var(--qds-focus-border-width) - var(--qds-focus-border-offset)\n );\n }\n}\n\n.qds-closable-tab {\n width: 100%;\n\n &:focus-visible {\n outline: var(--qds-theme-focus-border) solid var(--qds-focus-border-width);\n border-radius: var(--qds-focus-border-radius);\n }\n}\n\n.qds-closable-wrapper {\n align-items: center;\n justify-content: center;\n}\n\n.qds-tab,\n.qds-closable-tab {\n align-items: center;\n justify-content: center;\n border: none;\n background-color: transparent;\n cursor: pointer;\n text-align: initial;\n\n &:any-link {\n text-decoration: none;\n }\n}\n\n.qds-tab,\n.qds-closable-wrapper {\n position: relative;\n\n &:not(.qds-selected):hover {\n background-color: var(--qds-theme-interactive-background-hover);\n }\n\n &:not(.qds-selected):active {\n background-color: var(--qds-theme-interactive-background-pressed);\n }\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter, JSX } 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 type { QdsFocusEventDetail } from '../../helpers'\nimport { pickFocusEventAttributes, resolveTarget } from '../../helpers'\nimport type { Importance, Size, Status } from '../shared'\nimport type { TabbarImportance, TabbarSize } from '../tabbar/tabbar'\n\nexport type Action = 'closable' | 'expandable'\n\nexport type TabImportance = Exclude<Importance, 'emphasized'> | undefined\n\nexport type TagStatus = Status | 'neutral'\n\nexport type IndicatorPosition =\n | 'block-end'\n | 'block-start'\n | 'inline-end'\n | 'inline-start'\n\nconst isCounter = (value: unknown): value is number =>\n typeof value === 'string'\n ? !Number.isNaN(Number.parseFloat(value))\n : typeof value === 'number'\n\nconst isIndicator = (value: unknown): value is '' | true =>\n value === '' || value === true\n\nlet autoIncrementingId = 1\n\n/**\n * <qds-tab> is a navigational element that is used in different horizontal or vertical navigation bars\n * (Main Navigation, secondary navigation, Tab bar, etc.)\n * as trigger points for opening a menu list or switching content in Tab bar.\n *\n * @see https://quartz.se.com/build/components/tab\n */\n@Component({\n tag: 'qds-tab',\n shadow: true,\n styleUrl: 'tab.css',\n})\nexport class Tab implements ComponentInterface {\n /**\n * The name of the action icon to render.\n */\n @Prop() public readonly action?: Action\n\n /**\n * Displays an indicator if `true` or the empty string. Otherwise, displays a\n * counter badge if a number or string representing a number is used.\n */\n @Prop() public readonly badge?: number | string | true\n\n /**\n * The tab's counter importance.\n */\n @Prop()\n public readonly badgeCounterImportance?: HTMLQdsBadgeCounterElement['importance'] =\n 'standard'\n\n /**\n * The indicator or counter badge's accessible text that will be used by\n * screen readers.\n */\n @Prop() public readonly badgeDescription?: string\n\n /**\n * The indicator's status.\n */\n @Prop()\n public readonly badgeIndicatorStatus?: HTMLQdsBadgeIndicatorElement['status'] =\n 'neutral'\n\n /**\n * Prevents the tab from being interacted with: it cannot be\n * selected or focused.\n */\n @Prop() public readonly disabled?: boolean\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly iconLibrary: string = 'default'\n\n /**\n * The name of the icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly iconName?: string\n\n /**\n * The tab's importance.\n */\n @Prop() public readonly importance?: TabImportance = 'standard'\n\n /**\n * The tab's indicator position.\n */\n @Prop() public readonly indicatorPosition?: IndicatorPosition = 'block-start'\n\n /**\n * The tab panel element associated with this tab. The `panel` specified\n * can be any of the following:\n *\n * - A CSS selector string\n * - A reference to an [`Element`][]\n * - A function returning a reference to an [`Element`][] or a CSS selector\n * string\n *\n * [`Element`]: https://developer.mozilla.org/docs/Web/API/Element\n */\n @Prop() public readonly panel!: Element | string | (() => Element | string)\n\n /**\n * The tag icon's accessible text that will be used by\n * screen readers.\n */\n @Prop() public readonly tagIconDescription?: string\n\n /**\n * The name of the tab's tag icon to render.\n *\n * Available names depend on the icon library being used.\n */\n @Prop() public readonly tagIconName?: string\n\n /**\n * The name of a registered icon library.\n */\n @Prop() public readonly tagIconLibrary: string = 'default'\n\n /**\n * The tab's tag importance.\n */\n @Prop() public readonly tagImportance?: HTMLQdsTagElement['importance'] =\n 'emphasized'\n\n /**\n * The tab's tag size.\n */\n @Prop() public readonly tagSize?: Size = 'small'\n\n /**\n * The tab's tag status.\n */\n @Prop() public readonly tagStatus?: Status = 'info'\n\n /**\n * The tab's tag text.\n */\n @Prop() public readonly tagText?: string\n\n /**\n * Whether or not the tab is selected.\n */\n @Prop() public selected = false\n\n /**\n * The tab's size.\n */\n @Prop() public readonly size?: Size = 'standard'\n\n /**\n * Text to display for the subtitle.\n */\n @Prop() public readonly subtitle?: string\n\n /**\n * Primary text to display.\n */\n @Prop() public readonly text!: string\n\n /**\n * When set, the underlying tab will be rendered as an `<a>` with this\n * `href` instead of a `<button>`.\n *\n * This property has no effect if the tab has an `action`.\n *\n * @webnative\n */\n @Prop() public readonly href?: string\n\n /**\n * Emitted when the tab is closed.\n */\n @Event({ eventName: 'qdsClose', cancelable: false })\n private readonly closeEmitter!: EventEmitter<void>\n\n /**\n * Emitted when the tab loses focus.\n */\n @Event({ eventName: 'qdsBlur', bubbles: false, cancelable: false })\n private readonly blurEmitter!: EventEmitter<QdsFocusEventDetail>\n\n /**\n * Emitted when the tab gains focus.\n */\n @Event({ eventName: 'qdsFocus', bubbles: false, cancelable: false })\n private readonly focusEmitter!: EventEmitter<QdsFocusEventDetail>\n\n @Element() private readonly host!: HTMLElement\n\n @State() private tabIndex?: number\n\n @State() private isIndicatorOnTop = false\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n #panel?: Element\n\n #tab?: HTMLElement\n\n get #computedAction(): Action | undefined {\n switch (this.action) {\n case 'closable':\n case 'expandable': {\n return this.action\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computedSize(): Size {\n if (this.#parentSize !== undefined) return this.#parentSize\n switch (this.size) {\n case 'standard':\n case 'small':\n case 'large': {\n return this.size\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #computedImportance(): TabImportance {\n if (this.#parentImportance !== undefined) return this.#parentImportance\n switch (this.importance) {\n case 'subdued':\n case 'standard': {\n return this.importance\n }\n default: {\n return 'standard'\n }\n }\n }\n\n get #parentImportance(): TabbarImportance {\n return this.host.closest('qds-tabbar')?.importance ?? undefined\n }\n\n get #parentSize(): TabbarSize {\n return this.host.closest('qds-tabbar')?.size ?? undefined\n }\n\n get #parentLayer(): string {\n return this.host.closest('qds-tabbar')?.layer ?? 'main'\n }\n\n get #parentLevel(): string {\n return this.host.closest('qds-tabbar')?.level ?? 'root'\n }\n\n get #ariaLabel(): string {\n return `Close ${this.text}`\n }\n\n get #computedDisabled(): boolean {\n return this.disabled ?? false\n }\n\n get #computeCloseButtonTabIndex(): number | undefined {\n if (this.selected) {\n return this.#computedDisabled ? undefined : this.tabIndex\n }\n return -1\n }\n\n @Watch('panel')\n protected panelChanged(): void {\n this.disconnectedCallback()\n\n const panel = resolveTarget(this.panel)\n if (!(panel instanceof globalThis.Element)) return\n this.#panel = panel\n\n const tab = this.host.shadowRoot?.querySelector('[role=\"tab\"]')\n if (tab) tab.setAttribute('aria-controls', this.#panel.id)\n\n if (this.#panel.role === null) this.#panel.role = 'tabpanel'\n if (this.#panel.getAttribute('aria-labelledby') === null)\n this.#panel.setAttribute('aria-labelledby', this.host.id)\n this.#panel.setAttribute(\n 'tabindex',\n this.#panel.getAttribute('tabindex') ?? '0',\n )\n }\n\n @Listen('click')\n protected onClick(event: MouseEvent): void {\n if (this.#computedDisabled) event.stopImmediatePropagation()\n }\n\n @Watch('tabindex')\n protected tabindexChanged(newValue: string): void {\n const parsedValue = Number.parseInt(newValue, 10)\n this.tabIndex =\n parsedValue === 0 || Number.isNaN(parsedValue) ? undefined : parsedValue\n }\n\n @Watch('action')\n protected actionChanged(): void {\n this.#defineTab()\n }\n\n public componentWillLoad(): void {\n this.tabindexChanged(this.host.getAttribute('tabindex') ?? '0')\n this.host.id ||= `qds-tab-${autoIncrementingId}`\n autoIncrementingId += 1\n\n this.#defineTab()\n }\n\n public componentWillRender(): void {\n const isPanelRoot =\n this.#parentLayer === 'panel' && this.#parentLevel === 'root'\n const isMainSubsection =\n this.#parentLayer === 'main' && this.#parentLevel === 'subsection'\n\n this.isIndicatorOnTop = isPanelRoot || isMainSubsection\n }\n\n public componentDidLoad(): void {\n this.panelChanged()\n }\n\n public disconnectedCallback(): void {\n if (!this.#panel) return\n\n const tab = this.host.shadowRoot?.querySelector('[role=\"tab\"]')\n if (tab) tab.removeAttribute('aria-controls')\n\n if (this.#panel.role === 'tabpanel')\n // eslint-disable-next-line unicorn/no-null\n this.#panel.role = null\n if (this.#panel.getAttribute('aria-labelledby') === this.host.id)\n this.#panel.removeAttribute('aria-labelledby')\n this.#panel.removeAttribute('tabindex')\n }\n\n public render() {\n const isLink = this.href !== undefined && this.#computedAction === undefined\n const Tag = isLink\n ? 'a'\n : this.#computedAction === 'expandable'\n ? 'button'\n : 'div'\n return (\n <div\n aria-disabled={this.#computedDisabled ? 'true' : undefined}\n class={{\n 'qds-closable-wrapper': this.#computedAction === 'closable',\n 'qds-selected': this.selected,\n [`qds-indicator-${this.indicatorPosition}`]:\n this.#computedAction === 'closable',\n }}\n data-size={this.#computedSize}\n data-importance={this.#computedImportance}\n >\n <Tag\n ref={this.#tabRef}\n aria-disabled={this.#computedDisabled ? 'true' : undefined}\n disabled={isLink ? undefined : this.disabled}\n onBlur={this.#onBlur}\n onFocus={this.#onFocus}\n class={{\n 'qds-tab': this.#computedAction !== 'closable',\n 'qds-closable-tab': this.#computedAction === 'closable',\n 'qds-selected': this.selected,\n [`qds-indicator-${this.indicatorPosition}`]:\n this.#computedAction !== 'closable',\n }}\n role={\n !isLink && this.#computedAction !== 'expandable' ? 'tab' : undefined\n }\n aria-current={isLink && this.selected ? 'true' : undefined}\n aria-expanded={\n this.#computedAction === 'expandable' && !isLink\n ? this.selected\n ? 'true'\n : 'false'\n : undefined\n }\n data-importance={this.#computedImportance}\n data-action={this.#computedAction}\n data-size={this.#computedSize}\n href={isLink ? this.href : undefined}\n >\n {((this.tagText !== undefined && this.tagText !== '') ||\n (this.tagIconName !== undefined && this.tagIconName !== '')) && (\n <qds-tag\n text={this.tagText}\n status={this.tagStatus}\n size={this.#computedSize}\n importance={this.tagImportance}\n icon-library={this.tagIconLibrary}\n icon-name={this.tagIconName}\n icon-description={this.tagIconDescription}\n />\n )}\n\n {this.iconName !== undefined && this.iconName !== '' && (\n <qds-icon\n aria-hidden=\"true\"\n class=\"qds-icon\"\n library={this.iconLibrary}\n name={this.iconName}\n />\n )}\n {this.text && this.#renderText()}\n {isIndicator(this.badge) && (\n <qds-badge-indicator\n status={this.badgeIndicatorStatus}\n description={this.badgeDescription}\n size={this.#computedSize}\n strokeRing\n />\n )}\n {isCounter(this.badge) && (\n <qds-badge-counter\n description={this.badgeDescription}\n importance={this.badgeCounterImportance}\n size={this.#computedSize}\n strokeRing\n value={this.badge}\n />\n )}\n {this.#computedAction === 'expandable' && (\n <qds-icon\n class={{ 'qds-target-icon': true, 'qds-chevron': this.selected }}\n data-size={this.#computedSize}\n library=\"core\"\n name=\"dropdown\"\n />\n )}\n </Tag>\n {this.#computedAction === 'closable' && (\n <qds-mini-button\n name=\"close\"\n library=\"core\"\n text={this.#ariaLabel}\n data-size={this.#computedSize}\n disabled={this.#computedDisabled}\n onClick={this.#onIconClick}\n tabIndex={this.#computeCloseButtonTabIndex}\n />\n )}\n </div>\n )\n }\n\n #renderText(): JSX.Element {\n return (\n <div class=\"qds-texts\">\n <div class=\"qds-text\">{this.text}</div>\n {this.subtitle !== undefined && this.subtitle !== '' && (\n <div class=\"qds-subtitle\">{this.subtitle}</div>\n )}\n </div>\n )\n }\n\n readonly #tabRef = (tab?: HTMLElement): void => {\n this.#tab = tab\n }\n\n readonly #close = (): void => {\n this.closeEmitter.emit()\n }\n\n readonly #onIconClick = (event: MouseEvent): void => {\n event.stopPropagation()\n this.#close()\n }\n\n readonly #onBlur = (event: FocusEvent): void => {\n this.blurEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #onFocus = (event: FocusEvent): void => {\n this.focusEmitter.emit(pickFocusEventAttributes(event))\n }\n\n readonly #defineTab = (): void => {\n if (this.#computedAction === 'closable') {\n this.#defineGetter('tab', () => this.#tab)\n } else {\n this.internals.role = 'tab'\n this.#defineGetter('tab', () => this.host)\n }\n }\n\n #defineGetter(p: PropertyKey, get: () => unknown): void {\n Object.defineProperty(this.host, p, { enumerable: true, get })\n }\n}\n"],"names":[],"mappings":"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"}
@@ -4,9 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-Hg1Liloy.js';
7
- import { i as invariant, V as VERTICAL_MOVE_KEYS, H as HORIZONTAL_MOVE_KEYS, c as inheritAriaAttributes, f as resolvePanelElement, g as componentOnReady } from './helpers-BgaJNF9u.js';
7
+ import { i as invariant, V as VERTICAL_MOVE_KEYS, H as HORIZONTAL_MOVE_KEYS, c as inheritAriaAttributes, f as resolvePanelElement, g as componentOnReady } from './helpers-Fe2AA6uo.js';
8
8
 
9
- 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}.qds-vertical{flex-direction:column}.qds-vertical-divider{flex-direction:row}[data-layer=main][data-level=root] .qds-tabs{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)}";
9
+ 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}.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)}";
10
10
 
11
11
  // SPDX-FileCopyrightText: © 2024 Schneider Electric
12
12
  //
@@ -27,7 +27,7 @@ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) ||
27
27
  throw new TypeError("Cannot write private member to an object whose class did not declare it");
28
28
  return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
29
29
  };
30
- var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_tabbar, _Tabbar_inheritedAttributes, _Tabbar_computeDividerVisible_get, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_switchTabPanel, _Tabbar_handleTabActivation, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_updateTabsCache, _Tabbar_onSlotchange;
30
+ var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_tabbar, _Tabbar_inheritedAttributes, _Tabbar_computedImportance_get, _Tabbar_computedSize_get, _Tabbar_computedPlacement_get, _Tabbar_computeDividerVisible_get, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_switchTabPanel, _Tabbar_handleTabActivation, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_isVerticalPlacement, _Tabbar_isHorizontalPlacement, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_updateTabsCache, _Tabbar_setTabSettings, _Tabbar_onSlotchange;
31
31
  const TAB_SETTINGS = {
32
32
  'main-root': {
33
33
  importance: 'standard',
@@ -80,16 +80,33 @@ const Tabbar = class {
80
80
  _Tabbar_instances.add(this);
81
81
  /**
82
82
  * The tabbar's layer.
83
+ *
84
+ * @deprecated The property layer is deprecated. Please use `size` property instead.
85
+ * Please do not use `layer` and `size` at the same time.
83
86
  */
84
87
  this.layer = 'main';
85
88
  /**
86
89
  * The tabbar's level.
90
+ *
91
+ * @deprecated The property level is deprecated. Please use `size` property instead.
92
+ * Please do not use `level` and `size` at the same time.
87
93
  */
88
94
  this.level = 'root';
95
+ /**
96
+ * The tabbar's size. This controls the size of the tabs within the tabbar.
97
+ */
98
+ this.size = 'standard';
89
99
  /**
90
100
  * The tabbar's orientation.
101
+ *
102
+ * @deprecated Please use the `placement` property instead. Do not use
103
+ * `orientation` and `placement` at the same time.
91
104
  */
92
105
  this.orientation = 'horizontal';
106
+ /**
107
+ * The tabbar's placement.
108
+ */
109
+ this.placement = 'top';
93
110
  /**
94
111
  * Displays a divider line.
95
112
  */
@@ -97,7 +114,7 @@ const Tabbar = class {
97
114
  /**
98
115
  * The alignment of tabs. Only applicable for horizontal orientation.
99
116
  */
100
- this.alignment = 'left';
117
+ this.alignment = 'start';
101
118
  this.disableEndArrow = false;
102
119
  this.disableStartArrow = false;
103
120
  _Tabbar_tabs.set(this, []);
@@ -122,6 +139,8 @@ const Tabbar = class {
122
139
  : __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
123
140
  });
124
141
  });
142
+ _Tabbar_isVerticalPlacement.set(this, () => this.placement === 'start' || this.placement === 'end');
143
+ _Tabbar_isHorizontalPlacement.set(this, () => this.placement === 'top' || this.placement === 'bottom');
125
144
  _Tabbar_onClick.set(this, (event) => {
126
145
  const { target } = event;
127
146
  if (!(target instanceof HTMLElement))
@@ -133,7 +152,7 @@ const Tabbar = class {
133
152
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, tab);
134
153
  });
135
154
  _Tabbar_onKeyDown.set(this, (event) => {
136
- const isVertical = this.orientation === 'vertical';
155
+ const isVertical = this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this);
137
156
  const MOVE_SELECTION_KEYS = isVertical
138
157
  ? VERTICAL_MOVE_KEYS
139
158
  : HORIZONTAL_MOVE_KEYS;
@@ -216,10 +235,14 @@ const Tabbar = class {
216
235
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, __classPrivateFieldGet(this, _Tabbar_tabs, "f")[0]);
217
236
  });
218
237
  }
238
+ settingChanged() {
239
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setTabSettings).call(this);
240
+ }
219
241
  windowResize() {
220
242
  __classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
221
243
  }
222
244
  componentWillLoad() {
245
+ this.settingChanged();
223
246
  __classPrivateFieldSet(this, _Tabbar_inheritedAttributes, inheritAriaAttributes(this.host), "f");
224
247
  const tabs = [
225
248
  ...this.host.querySelectorAll('qds-tab'),
@@ -233,18 +256,7 @@ const Tabbar = class {
233
256
  componentDidRender() {
234
257
  if (this.activeTab)
235
258
  __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, this.activeTab);
236
- const settings = TAB_SETTINGS[`${this.layer}-${this.level}`];
237
- if (!settings)
238
- return;
239
- for (const tab of this.host.querySelectorAll('qds-tab')) {
240
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
241
- tab.importance = settings.importance;
242
- tab.size = settings.size;
243
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
244
- tab.indicatorPosition =
245
- this.orientation === 'vertical' ? 'inline-end' : tab.indicatorPosition;
246
- /* eslint-enable @typescript-eslint/no-unsafe-member-access */
247
- }
259
+ this.settingChanged();
248
260
  }
249
261
  componentDidLoad() {
250
262
  invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
@@ -256,34 +268,64 @@ const Tabbar = class {
256
268
  __classPrivateFieldGet(this, _Tabbar_ro, "f").disconnect();
257
269
  }
258
270
  render() {
259
- return (h("div", { key: 'dbae5f300427dbaeb563eefee8861dc6453e9af8', class: { 'qds-vertical-divider': this.orientation === 'vertical' }, "data-layer": this.layer, "data-level": this.level }, h("div", { key: 'a2ebf55faeaccd30a52d1cb5769574e8f18dfc57', class: "qds-tabbar" }, h("div", { key: '7ddc9b7f553da79b357ab7a1ba193d6fe0ad3d6d', class: {
271
+ return (h("div", { key: '47ac9cd0bc096758c6c2797393010c0a9693fa88', class: {
272
+ 'qds-vertical-divider': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
273
+ }, "data-layer": this.layer, "data-level": this.level, "data-importance": __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) }, h("div", { key: '2421469125db014dfa6be6012daaf06a354e1466', class: "qds-tabbar" }, h("div", { key: '1def1f43dc9ecc8680634fa2d5f330c803c82054', class: {
260
274
  'qds-align-center': true,
261
275
  'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
262
- this.orientation === 'vertical',
263
- } }, h("qds-icon-button", { key: '77e21e5a713c6f4703301951b599035082a7fecc', text: "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow })), h("ul", { key: '1dcb2e83e1e493347dbcc6ed59dba9fcba9bf60b', class: {
276
+ this.orientation === 'vertical' ||
277
+ __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
278
+ } }, h("qds-icon-button", { key: '539fe2ec4cd5a91cf1a35ead239eebd2eda981e4', text: "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow })), h("ul", { key: '05ff03b99f92f9e85f4703dcc6eca96220d6e1ee', class: {
264
279
  'qds-tabs': true,
265
- 'qds-vertical': this.orientation === 'vertical',
266
- 'qds-centered': this.alignment === 'centered' &&
267
- this.orientation === 'horizontal' &&
280
+ 'qds-vertical': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
281
+ 'qds-centered': this.alignment === 'center' &&
282
+ (this.orientation === 'horizontal' ||
283
+ __classPrivateFieldGet(this, _Tabbar_isHorizontalPlacement, "f").call(this)) &&
268
284
  this.disableEndArrow &&
269
285
  this.disableStartArrow,
270
286
  }, role: "tablist", "aria-label": this.tablistDescription, ref: (element) => {
271
287
  __classPrivateFieldSet(this, _Tabbar_tabbar, element, "f");
272
- }, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f"), ...__classPrivateFieldGet(this, _Tabbar_inheritedAttributes, "f") }, h("slot", { key: '264bdf5fa1c99ead75ad7ccb96eff791f5b0d85a', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), h("div", { key: '9b0d013ea65ccd8b0548b2d70031e0bd29798081', class: {
288
+ }, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f"), ...__classPrivateFieldGet(this, _Tabbar_inheritedAttributes, "f") }, h("slot", { key: '4ccd64f11587556c7af2b0d4c571ee8162dbba70', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), h("div", { key: 'c5b64348ca4c65bb4894ec0dec6b6b89c411f958', class: {
273
289
  'qds-align-center': true,
274
290
  'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
275
- this.orientation === 'vertical',
276
- } }, h("qds-icon-button", { key: 'def7674888c88bb34f7fef6921784b2cdafbee8c', text: "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) && (h("qds-divider", { key: '87f1bcf19e2d60fccd4473ef3a91e35e3b77e955', vertical: this.orientation === 'vertical' }))));
291
+ this.orientation === 'vertical' ||
292
+ __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
293
+ } }, h("qds-icon-button", { key: 'edcb7e2054454edb2f949332ad62998a2e34a368', text: "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) && (h("qds-divider", { key: 'bfafcfbcaaa50341778498e9887b71a548209178', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) }))));
277
294
  }
278
295
  static get delegatesFocus() { return true; }
279
296
  get host() { return getElement(this); }
297
+ static get watchers() { return {
298
+ "importance": ["settingChanged"]
299
+ }; }
280
300
  };
281
- _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_inheritedAttributes = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = 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_computeDividerVisible_get = function _Tabbar_computeDividerVisible_get() {
301
+ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_inheritedAttributes = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = new WeakMap(), _Tabbar_isVerticalPlacement = new WeakMap(), _Tabbar_isHorizontalPlacement = 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() {
302
+ return this.importance;
303
+ }, _Tabbar_computedSize_get = function _Tabbar_computedSize_get() {
304
+ return this.size ?? undefined;
305
+ }, _Tabbar_computedPlacement_get = function _Tabbar_computedPlacement_get() {
306
+ switch (this.placement) {
307
+ case 'top': {
308
+ return 'block-end';
309
+ }
310
+ case 'end': {
311
+ return 'inline-start';
312
+ }
313
+ case 'bottom': {
314
+ return 'block-start';
315
+ }
316
+ case 'start': {
317
+ return 'inline-end';
318
+ }
319
+ default: {
320
+ return undefined;
321
+ }
322
+ }
323
+ }, _Tabbar_computeDividerVisible_get = function _Tabbar_computeDividerVisible_get() {
282
324
  if (this.layer === 'panel')
283
325
  return false;
284
326
  if (this.layer === 'main' &&
285
327
  this.level === 'subsection' &&
286
- this.orientation === 'horizontal')
328
+ (this.orientation === 'horizontal' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this)))
287
329
  return false;
288
330
  return this.showDivider === true;
289
331
  }, _Tabbar_setActiveTab = function _Tabbar_setActiveTab(tab) {
@@ -335,6 +377,20 @@ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_tabbar = new W
335
377
  __classPrivateFieldSet(this, _Tabbar_tabs, slot
336
378
  ? [...slot.assignedElements({ flatten: true })].filter((element) => isEnabledTabItem(element))
337
379
  : [], "f");
380
+ }, _Tabbar_setTabSettings = function _Tabbar_setTabSettings() {
381
+ const settings = TAB_SETTINGS[`${this.layer}-${this.level}`];
382
+ if (!settings)
383
+ return;
384
+ for (const tab of this.host.querySelectorAll('qds-tab')) {
385
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
386
+ tab.importance = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) ?? settings.importance;
387
+ tab.size = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedSize_get) ?? settings.size;
388
+ tab.indicatorPosition =
389
+ this.orientation === 'vertical'
390
+ ? 'inline-end'
391
+ : (__classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedPlacement_get) ?? settings.indicatorPosition);
392
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access */
393
+ }
338
394
  };
339
395
  Tabbar.style = tabbarCss;
340
396
 
@@ -1 +1 @@
1
- {"version":3,"file":"qds-tabbar.entry.js","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}\n\n.qds-vertical {\n flex-direction: column;\n}\n\n.qds-vertical-divider {\n flex-direction: row;\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 Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n} from '@stencil/core'\n\nimport type { Attributes } from '../../helpers'\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n inheritAriaAttributes,\n invariant,\n resolvePanelElement,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\nimport type { Tab } from '../tab/tab'\n\nexport type Layer = 'accessory' | 'main' | 'panel' | 'popup'\nexport type Level = 'root' | 'section' | 'subsection'\nexport type Orientation = 'horizontal' | 'vertical'\nexport type Alignment = 'centered' | 'left'\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 isEnabledTabItem = (item: unknown): item is HTMLQdsTabElement => {\n if (!(item instanceof HTMLElement)) return false\n const tagName = item.tagName.toLowerCase()\n\n return (\n (!item.inert && tagName === 'qds-tab') ||\n (item as HTMLQdsTabElement).disabled !== true\n )\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 @Prop() public layer?: Layer = 'main'\n\n /**\n * The tabbar's level.\n */\n @Prop() public level?: Level = 'root'\n\n /**\n * The tabbar's orientation.\n */\n @Prop() public orientation?: Orientation = 'horizontal'\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 = 'left'\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 @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: HTMLQdsTabElement\n\n #tabs: HTMLQdsTabElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #tabbar?: HTMLElement\n\n #inheritedAttributes: Attributes = {}\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'\n )\n return false\n return this.showDivider === true\n }\n\n @Listen('resize', { target: 'window' })\n protected windowResize(): void {\n this.#onViewportCrop()\n }\n\n public componentWillLoad(): void {\n this.#inheritedAttributes = inheritAriaAttributes(this.host)\n\n const tabs = [\n ...this.host.querySelectorAll('qds-tab'),\n ] as HTMLQdsTabElement[]\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\n const settings = TAB_SETTINGS[`${this.layer}-${this.level}`]\n if (!settings) return\n\n for (const tab of this.host.querySelectorAll('qds-tab')) {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n tab.importance = settings.importance\n tab.size = settings.size\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n tab.indicatorPosition =\n this.orientation === 'vertical' ? 'inline-end' : tab.indicatorPosition\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n }\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={{ 'qds-vertical-divider': this.orientation === 'vertical' }}\n data-layer={this.layer}\n data-level={this.level}\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 }}\n >\n <qds-icon-button\n text=\"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 <ul\n class={{\n 'qds-tabs': true,\n 'qds-vertical': this.orientation === 'vertical',\n 'qds-centered':\n this.alignment === 'centered' &&\n this.orientation === 'horizontal' &&\n this.disableEndArrow &&\n this.disableStartArrow,\n }}\n role=\"tablist\"\n aria-label={this.tablistDescription}\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 // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.#inheritedAttributes}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </ul>\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical',\n }}\n >\n <qds-icon-button\n text=\"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 && (\n <qds-divider vertical={this.orientation === 'vertical'} />\n )}\n </div>\n )\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: HTMLQdsTabElement): void {\n this.activeTab = tab\n\n for (const t of this.host.querySelectorAll('qds-tab')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const target = t.tab\n const isSelected = t === tab\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: HTMLQdsTabElement): 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: HTMLQdsTabElement): 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(): HTMLQdsTabElement | undefined {\n return this.#tabs.find((tab) => tab.tab.getAttribute('tabindex') === '0')\n }\n\n #setCurrentTab(tab: HTMLQdsTabElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: HTMLQdsTabElement | undefined) => {\n const target = element?.tab\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 #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest('qds-tab')\n if (!tab || tab.disabled === true || tab.inert) return\n\n this.#handleTabActivation(tab)\n this.#setActiveTab(tab)\n }\n\n readonly #onKeyDown = (event: KeyboardEvent): void => {\n const isVertical = this.orientation === 'vertical'\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: HTMLQdsTabElement | 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 = nextTab.tab\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\n if (isEnabledTabItem(target)) this.#setCurrentTab(target)\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 #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter<HTMLQdsTabElement>(\n (element) => isEnabledTabItem(element),\n )\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"],"names":[],"mappings":";;;;;;;;AAAA,MAAM,SAAS,GAAG,6nCAA6nC;;ACA/oC;AACA;AACA;;;;;;;;;;;;;;;;;;AA6BA,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,gBAAgB,GAAG,CAAC,IAAa,KAA+B;AACpE,IAAA,IAAI,EAAE,IAAI,YAAY,WAAW,CAAC;AAAE,QAAA,OAAO,KAAK;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;IAE1C,QACE,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,SAAS;AACpC,QAAA,IAA0B,CAAC,QAAQ,KAAK,IAAI;AAEjD,CAAC;MAYY,MAAM,GAAA,MAAA;AALnB,IAAA,WAAA,CAAA,OAAA,EAAA;;;;;AAME;;AAEG;AACY,QAAA,IAAK,CAAA,KAAA,GAAW,MAAM;AAErC;;AAEG;AACY,QAAA,IAAK,CAAA,KAAA,GAAW,MAAM;AAErC;;AAEG;AACY,QAAA,IAAW,CAAA,WAAA,GAAiB,YAAY;AAOvD;;AAEG;AACY,QAAA,IAAW,CAAA,WAAA,GAAa,KAAK;AAE5C;;AAEG;AACqB,QAAA,IAAS,CAAA,SAAA,GAAe,MAAM;AAgBrC,QAAA,IAAe,CAAA,eAAA,GAAG,KAAK;AAEvB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK;AAI1C,QAAA,YAAA,CAAA,GAAA,CAAA,IAAA,EAA6B,EAAE,CAAA;QAE/B,UAA+B,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;QAE/B,cAAqB,CAAA,GAAA,CAAA,IAAA,EAAA,MAAA,CAAA;AAErB,QAAA,2BAAA,CAAA,GAAA,CAAA,IAAA,EAAmC,EAAE,CAAA;AAoI5B,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,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;AACJ,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,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;AACJ,SAAC,CAAA;QA0DQ,eAAW,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAiB,KAAU;AAC9C,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;AACxB,YAAA,IAAI,EAAE,MAAM,YAAY,WAAW,CAAC;gBAAE;YACtC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;YACrC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,KAAK;gBAAE;AAEhD,YAAA,sBAAA,CAAA,IAAI,EAAqB,iBAAA,EAAA,GAAA,EAAA,2BAAA,CAAA,CAAA,IAAA,CAAzB,IAAI,EAAsB,GAAG,CAAC;AAC9B,YAAA,sBAAA,CAAA,IAAI,EAAc,iBAAA,EAAA,GAAA,EAAA,oBAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,GAAG,CAAC;AACzB,SAAC,CAAA;QAEQ,iBAAa,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAoB,KAAU;AACnD,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,KAAK,UAAU;YAClD,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,OAAsC;AAC1C,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,OAAO,CAAC,GAAG;YAC1B,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,EAAqB,iBAAA,EAAA,GAAA,EAAA,2BAAA,CAAA,CAAA,IAAA,CAAzB,IAAI,EAAsB,OAAO,CAAC;AAClC,YAAA,sBAAA,CAAA,IAAI,EAAc,iBAAA,EAAA,GAAA,EAAA,oBAAA,CAAA,CAAA,IAAA,CAAlB,IAAI,EAAe,OAAO,CAAC;AAC7B,SAAC,CAAA;QAEQ,mBAAe,CAAA,GAAA,CAAA,IAAA,EAAA,CAAC,KAAiB,KAAU;AAClD,YAAA,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK;YAExB,IAAI,gBAAgB,CAAC,MAAM,CAAC;AAAE,gBAAA,sBAAA,CAAA,IAAI,EAAe,iBAAA,EAAA,GAAA,EAAA,qBAAA,CAAA,CAAA,IAAA,CAAnB,IAAI,EAAgB,MAAM,CAAC;AAC3D,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;AAWQ,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;AAC/D,SAAC,CAAA;AACF;IArTW,YAAY,GAAA;AACpB,QAAA,sBAAA,CAAA,IAAI,EAAA,sBAAA,EAAA,GAAA,CAAgB,CAApB,IAAA,CAAA,IAAI,CAAkB;;IAGjB,iBAAiB,GAAA;AACtB,QAAA,sBAAA,CAAA,IAAI,+BAAwB,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAA,GAAA,CAAA;AAE5D,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;SAClB;AACxB,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC;AACvD,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;AAExD,QAAA,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC;AAC5D,QAAA,IAAI,CAAC,QAAQ;YAAE;AAEf,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;;AAEvD,YAAA,GAAG,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU;AACpC,YAAA,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;;AAExB,YAAA,GAAG,CAAC,iBAAiB;AACnB,gBAAA,IAAI,CAAC,WAAW,KAAK,UAAU,GAAG,YAAY,GAAG,GAAG,CAAC,iBAAiB;;;;IAKrE,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;;IAGzB,oBAAoB,GAAA;AACzB,QAAA,IAAI,sBAAA,CAAA,IAAI,EAAI,UAAA,EAAA,GAAA,CAAA;YAAE,sBAAA,CAAA,IAAI,EAAA,UAAA,EAAA,GAAA,CAAI,CAAC,UAAU,EAAE;;IAG9B,MAAM,GAAA;QACX,QACE,4DACE,KAAK,EAAE,EAAE,sBAAsB,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,gBACtD,IAAI,CAAC,KAAK,EACV,YAAA,EAAA,IAAI,CAAC,KAAK,EAAA,EAEtB,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;AAClC,aAAA,EAAA,EAED,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,mBAAmB,EACxB,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,GAChC,CACE,EACN,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE;AACL,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,cAAc,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU;AAC/C,gBAAA,cAAc,EACZ,IAAI,CAAC,SAAS,KAAK,UAAU;oBAC7B,IAAI,CAAC,WAAW,KAAK,YAAY;AACjC,oBAAA,IAAI,CAAC,eAAe;AACpB,oBAAA,IAAI,CAAC,iBAAiB;AACzB,aAAA,EACD,IAAI,EAAC,SAAS,EAAA,YAAA,EACF,IAAI,CAAC,kBAAkB,EACnC,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,EAAW,iBAAA,EAAA,GAAA,CAAA,EAC1B,WAAW,EAAE,sBAAA,CAAA,IAAI,EAAa,mBAAA,EAAA,GAAA,CAAA,EAC9B,QAAQ,EAAE,sBAAA,CAAA,IAAI,EAAU,gBAAA,EAAA,GAAA,CAAA,EAAA,GAEpB,sBAAA,CAAA,IAAI,EAAqB,2BAAA,EAAA,GAAA,CAAA,EAAA,EAE7B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,YAAY,EAAE,sBAAA,CAAA,IAAI,EAAA,oBAAA,EAAA,GAAA,CAAc,GAAI,CACvC,EACL,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;AAClC,aAAA,EAAA,EAED,CAAA,CAAA,iBAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,IAAI,EAAC,eAAe,EACpB,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,EAAA,CAC9B,CACE,CACF,EACL,sBAAA,CAAA,IAAI,EAAuB,iBAAA,EAAA,GAAA,EAAA,iCAAA,CAAA,KAC1B,CAAA,CAAA,aAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAa,QAAQ,EAAE,IAAI,CAAC,WAAW,KAAK,UAAU,EAAA,CAAI,CAC3D,CACG;;;;;;AA7HR,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;QAC3B,IAAI,CAAC,WAAW,KAAK,YAAY;AAEjC,QAAA,OAAO,KAAK;AACd,IAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI;AAClC,CAAC,uDA+Ia,GAAsB,EAAA;AAClC,IAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AAEpB,IAAA,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;;AAErD,QAAA,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG;AACpB,QAAA,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG;;AAE5B,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,SAA4B,EAAA;AAC1C,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,qEAEoB,GAAsB,EAAA;AACzC,IAAA,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS;IAClC,IAAI,WAAW,KAAK,GAAG;QAAE;AAEzB,IAAA,IAAI,CAAC,SAAS,GAAG,GAAG;AAEpB,IAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;AAElC,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;AAC3B,CAAC,EAAA,qBAAA,GAAA,SAAA,qBAAA,GAAA;IAGC,OAAO,sBAAA,CAAA,IAAI,EAAM,YAAA,EAAA,GAAA,CAAA,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;AAC3E,CAAC,yDAEc,GAAsB,EAAA;AACnC,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,OAAsC,KAAI;AAC7D,YAAA,MAAM,MAAM,GAAG,OAAO,EAAE,GAAG;YAC3B,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,EAAqB,iBAAA,EAAA,GAAA,EAAA,2BAAA,CAAA,CAAA,IAAA,CAAzB,IAAI,EAAsB,CAAC,CAAC;AACrD,SAAC,CAAC;;AAEN,CAAC,EAAA,uBAAA,GAAA,SAAA,uBAAA,GAAA;AAsGC,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,KAAK,gBAAgB,CAAC,OAAO,CAAC;AAE1C,UAAE,EAAE,EAAA,GAAA,CAAA;AACR,CAAC;;;;;"}
1
+ {"version":3,"file":"qds-tabbar.entry.js","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}\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 Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport type { Attributes } from '../../helpers'\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n inheritAriaAttributes,\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\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 isEnabledTabItem = (item: unknown): item is HTMLQdsTabElement => {\n if (!(item instanceof HTMLElement)) return false\n const tagName = item.tagName.toLowerCase()\n\n return (\n (!item.inert && tagName === 'qds-tab') ||\n (item as HTMLQdsTabElement).disabled !== true\n )\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 * 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 @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: HTMLQdsTabElement\n\n #tabs: HTMLQdsTabElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #tabbar?: HTMLElement\n\n #inheritedAttributes: Attributes = {}\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 @Watch('importance')\n protected settingChanged(): void {\n this.#setTabSettings()\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.#inheritedAttributes = inheritAriaAttributes(this.host)\n const tabs = [\n ...this.host.querySelectorAll('qds-tab'),\n ] as HTMLQdsTabElement[]\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 <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 text=\"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 <ul\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 role=\"tablist\"\n aria-label={this.tablistDescription}\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 // eslint-disable-next-line react/jsx-props-no-spreading\n {...this.#inheritedAttributes}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </ul>\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 text=\"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 && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n </div>\n )\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: HTMLQdsTabElement): void {\n this.activeTab = tab\n\n for (const t of this.host.querySelectorAll('qds-tab')) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n const target = t.tab\n const isSelected = t === tab\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: HTMLQdsTabElement): 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: HTMLQdsTabElement): 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(): HTMLQdsTabElement | undefined {\n return this.#tabs.find((tab) => tab.tab.getAttribute('tabindex') === '0')\n }\n\n #setCurrentTab(tab: HTMLQdsTabElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: HTMLQdsTabElement | undefined) => {\n const target = element?.tab\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 #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest('qds-tab')\n if (!tab || tab.disabled === true || tab.inert) 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: HTMLQdsTabElement | 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 = nextTab.tab\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\n if (isEnabledTabItem(target)) this.#setCurrentTab(target)\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 #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter<HTMLQdsTabElement>(\n (element) => 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.host.querySelectorAll('qds-tab')) {\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\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 /* eslint-enable @typescript-eslint/no-unsafe-member-access */\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"],"names":[],"mappings":"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"}
@@ -5,8 +5,19 @@
5
5
  */
6
6
  import { r as registerInstance, h } from './index-Hg1Liloy.js';
7
7
 
8
- const tableCellCss = ":host([hidden]){display:none!important}:host{display:contents}.qds-table-cell{box-sizing:border-box;color:var(--qds-theme-title);font:var(--qds-list-item-standard-title);padding-block:0;padding-inline:var(--qds-list-item-standard-padding-horizontal);text-align:inherit;vertical-align:middle;width:inherit}";
8
+ const tableCellCss = ":host([hidden]){display:none!important}:host{display:contents}.qds-table-cell{box-sizing:border-box;color:var(--qds-theme-text-standard);padding-block:0;text-align:inherit;vertical-align:middle;width:inherit}[data-size=small]{font:var(--qds-table-cell-small-title);min-height:var(--qds-table-cell-small-height);padding-inline:var(--qds-table-cell-small-padding-horizontal)}[data-size=standard]{font:var(--qds-table-cell-standard-title);min-height:var(--qds-table-cell-standard-height);padding-inline:var(--qds-table-cell-standard-padding-horizontal)}[data-size=large]{font:var(--qds-table-cell-large-title);min-height:var(--qds-table-cell-large-height);padding-inline:var(--qds-table-cell-large-padding-horizontal)}";
9
9
 
10
+ // SPDX-FileCopyrightText: © 2024 Schneider Electric
11
+ //
12
+ // SPDX-License-Identifier: Apache-2.0
13
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
+ if (kind === "a" && !f)
15
+ throw new TypeError("Private accessor was defined without a getter");
16
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
17
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
18
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
19
+ };
20
+ var _TableCell_instances, _TableCell_computedSize_get;
10
21
  const TableCell = class {
11
22
  constructor(hostRef) {
12
23
  registerInstance(this, hostRef);
@@ -17,6 +28,11 @@ const TableCell = class {
17
28
  this.internals = hostRef.$hostElement$.attachInternals();
18
29
  hostRef.$hostElement$["s-ei"] = this.internals;
19
30
  }
31
+ _TableCell_instances.add(this);
32
+ /**
33
+ * The table cell's size.
34
+ */
35
+ this.size = 'standard';
20
36
  }
21
37
  colSpanChanged(newValue) {
22
38
  this.internals.ariaColSpan =
@@ -44,15 +60,26 @@ const TableCell = class {
44
60
  render() {
45
61
  return (
46
62
  // eslint-disable-next-line jsx-a11y/control-has-associated-label
47
- h("td", { key: '1c90aa486ee26c73cade143b8b281f0d8f93dee7', class: "qds-table-cell", colSpan: this.colSpan, rowSpan: this.rowSpan,
63
+ h("td", { key: '92bc078c48ec5f41e1751a19bdbf2f95eb33d996', class: "qds-table-cell", "data-size": __classPrivateFieldGet(this, _TableCell_instances, "a", _TableCell_computedSize_get), colSpan: this.colSpan, rowSpan: this.rowSpan,
48
64
  // eslint-disable-next-line jsx-a11y/no-interactive-element-to-noninteractive-role
49
- role: "none" }, h("slot", { key: '02b3051cba1bfdc7d1d0be004691eaeb4387c446' })));
65
+ role: "none" }, h("slot", { key: 'cf016b76dd2a13a2768180d3f7f8cb22d9189876' })));
50
66
  }
51
67
  static get watchers() { return {
52
68
  "colSpan": ["colSpanChanged"],
53
69
  "rowSpan": ["rowSpanChanged"]
54
70
  }; }
55
71
  };
72
+ _TableCell_instances = new WeakSet(), _TableCell_computedSize_get = function _TableCell_computedSize_get() {
73
+ switch (this.size) {
74
+ case 'large':
75
+ case 'small': {
76
+ return this.size;
77
+ }
78
+ default: {
79
+ return 'standard';
80
+ }
81
+ }
82
+ };
56
83
  TableCell.style = tableCellCss;
57
84
 
58
85
  export { TableCell as qds_table_cell };