@quartzds/core 1.0.0-beta.13 → 1.0.0-beta.130

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 (444) hide show
  1. package/CHANGELOG.md +2145 -0
  2. package/README.md +23 -23
  3. package/components/index.d.ts +52 -0
  4. package/components/index.js +63 -28
  5. package/components/index.js.map +1 -1
  6. package/components/p-B9xuNEzc.js +438 -0
  7. package/components/p-B9xuNEzc.js.map +1 -0
  8. package/components/p-BHBodFuD.js +200 -0
  9. package/components/p-BHBodFuD.js.map +1 -0
  10. package/components/p-BLA62eFO.js +513 -0
  11. package/components/p-BLA62eFO.js.map +1 -0
  12. package/components/p-Bn9o5Um2.js +91 -0
  13. package/components/p-Bn9o5Um2.js.map +1 -0
  14. package/components/{floating-ui.dom.esm.js → p-Bv2vPjgL.js} +557 -345
  15. package/components/p-Bv2vPjgL.js.map +1 -0
  16. package/components/p-C-pZcrGt.js +357 -0
  17. package/components/p-C-pZcrGt.js.map +1 -0
  18. package/components/p-CZRW1LV_.js +28 -0
  19. package/components/p-CZRW1LV_.js.map +1 -0
  20. package/components/p-Cb4tcewD.js +281 -0
  21. package/components/p-Cb4tcewD.js.map +1 -0
  22. package/components/p-Cb5Tgh-o.js +102 -0
  23. package/components/p-Cb5Tgh-o.js.map +1 -0
  24. package/components/p-D2489VzR.js +2133 -0
  25. package/components/p-D2489VzR.js.map +1 -0
  26. package/components/p-D2BuSQre.js +160 -0
  27. package/components/p-D2BuSQre.js.map +1 -0
  28. package/components/p-DL21f4D7.js +149 -0
  29. package/components/p-DL21f4D7.js.map +1 -0
  30. package/components/p-DOqfdgQA.js +124 -0
  31. package/components/p-DOqfdgQA.js.map +1 -0
  32. package/components/p-Do46q_Gd.js +135 -0
  33. package/components/p-Do46q_Gd.js.map +1 -0
  34. package/components/p-XP2CY_fo.js +105 -0
  35. package/components/p-XP2CY_fo.js.map +1 -0
  36. package/components/p-eUDNu0SE.js +3561 -0
  37. package/components/p-eUDNu0SE.js.map +1 -0
  38. package/components/p-fKK7EmM2.js +256 -0
  39. package/components/p-fKK7EmM2.js.map +1 -0
  40. package/components/qds-action-item.d.ts +11 -0
  41. package/components/qds-action-item.js +204 -0
  42. package/components/qds-action-item.js.map +1 -0
  43. package/components/qds-avatar-media.d.ts +11 -0
  44. package/components/qds-avatar-media.js +14 -0
  45. package/components/qds-avatar-media.js.map +1 -0
  46. package/components/qds-avatar.d.ts +11 -0
  47. package/components/qds-avatar.js +120 -0
  48. package/components/qds-avatar.js.map +1 -0
  49. package/components/qds-badge-counter.d.ts +11 -0
  50. package/components/qds-badge-counter.js +14 -0
  51. package/components/qds-badge-counter.js.map +1 -0
  52. package/components/qds-badge-indicator.d.ts +11 -0
  53. package/components/qds-badge-indicator.js +14 -0
  54. package/components/qds-badge-indicator.js.map +1 -0
  55. package/components/qds-breadcrumb-item.d.ts +11 -0
  56. package/components/qds-breadcrumb-item.js +174 -0
  57. package/components/qds-breadcrumb-item.js.map +1 -0
  58. package/components/qds-button.d.ts +2 -2
  59. package/components/qds-button.js +475 -129
  60. package/components/qds-button.js.map +1 -1
  61. package/components/qds-checkbox.d.ts +2 -2
  62. package/components/qds-checkbox.js +4 -146
  63. package/components/qds-checkbox.js.map +1 -1
  64. package/components/qds-chip.d.ts +11 -0
  65. package/components/qds-chip.js +337 -0
  66. package/components/qds-chip.js.map +1 -0
  67. package/components/qds-dialog.d.ts +2 -2
  68. package/components/qds-dialog.js +179 -93
  69. package/components/qds-dialog.js.map +1 -1
  70. package/components/qds-divider.d.ts +2 -2
  71. package/components/qds-divider.js +4 -39
  72. package/components/qds-divider.js.map +1 -1
  73. package/components/qds-dropdown.d.ts +2 -2
  74. package/components/qds-dropdown.js +4 -249
  75. package/components/qds-dropdown.js.map +1 -1
  76. package/components/qds-form-message.d.ts +2 -2
  77. package/components/qds-form-message.js +106 -50
  78. package/components/qds-form-message.js.map +1 -1
  79. package/components/qds-icon-button.d.ts +11 -0
  80. package/components/qds-icon-button.js +14 -0
  81. package/components/qds-icon-button.js.map +1 -0
  82. package/components/qds-icon-tab.d.ts +11 -0
  83. package/components/qds-icon-tab.js +312 -0
  84. package/components/qds-icon-tab.js.map +1 -0
  85. package/components/qds-icon.d.ts +2 -2
  86. package/components/qds-icon.js +4 -3
  87. package/components/qds-inline-link.d.ts +2 -2
  88. package/components/qds-inline-link.js +173 -74
  89. package/components/qds-inline-link.js.map +1 -1
  90. package/components/qds-input.d.ts +2 -2
  91. package/components/qds-input.js +579 -230
  92. package/components/qds-input.js.map +1 -1
  93. package/components/qds-label.d.ts +2 -2
  94. package/components/qds-label.js +156 -3
  95. package/components/qds-label.js.map +1 -1
  96. package/components/qds-list-item.d.ts +11 -0
  97. package/components/qds-list-item.js +430 -0
  98. package/components/qds-list-item.js.map +1 -0
  99. package/components/qds-loader.d.ts +11 -0
  100. package/components/qds-loader.js +152 -0
  101. package/components/qds-loader.js.map +1 -0
  102. package/components/qds-menu-item.d.ts +11 -0
  103. package/components/qds-menu-item.js +263 -0
  104. package/components/qds-menu-item.js.map +1 -0
  105. package/components/qds-mini-button.d.ts +11 -0
  106. package/components/qds-mini-button.js +14 -0
  107. package/components/qds-mini-button.js.map +1 -0
  108. package/components/qds-progress-bar.d.ts +11 -0
  109. package/components/qds-progress-bar.js +155 -0
  110. package/components/qds-progress-bar.js.map +1 -0
  111. package/components/qds-radio.d.ts +2 -2
  112. package/components/qds-radio.js +4 -99
  113. package/components/qds-radio.js.map +1 -1
  114. package/components/qds-select.d.ts +11 -0
  115. package/components/qds-select.js +377 -0
  116. package/components/qds-select.js.map +1 -0
  117. package/components/qds-standalone-link.d.ts +11 -0
  118. package/components/qds-standalone-link.js +210 -0
  119. package/components/qds-standalone-link.js.map +1 -0
  120. package/components/qds-switch.d.ts +2 -2
  121. package/components/qds-switch.js +257 -105
  122. package/components/qds-switch.js.map +1 -1
  123. package/components/qds-tab.d.ts +11 -0
  124. package/components/qds-tab.js +354 -0
  125. package/components/qds-tab.js.map +1 -0
  126. package/components/qds-tabbar.d.ts +11 -0
  127. package/components/qds-tabbar.js +599 -0
  128. package/components/qds-tabbar.js.map +1 -0
  129. package/components/qds-table-cell.d.ts +11 -0
  130. package/components/qds-table-cell.js +109 -0
  131. package/components/qds-table-cell.js.map +1 -0
  132. package/components/qds-table-head-cell.d.ts +11 -0
  133. package/components/qds-table-head-cell.js +115 -0
  134. package/components/qds-table-head-cell.js.map +1 -0
  135. package/components/qds-table-row.d.ts +11 -0
  136. package/components/qds-table-row.js +48 -0
  137. package/components/qds-table-row.js.map +1 -0
  138. package/components/qds-table.d.ts +11 -0
  139. package/components/qds-table.js +48 -0
  140. package/components/qds-table.js.map +1 -0
  141. package/components/qds-tag.d.ts +11 -0
  142. package/components/qds-tag.js +14 -0
  143. package/components/qds-tag.js.map +1 -0
  144. package/components/qds-textarea.d.ts +2 -2
  145. package/components/qds-textarea.js +352 -193
  146. package/components/qds-textarea.js.map +1 -1
  147. package/components/qds-title.d.ts +2 -2
  148. package/components/qds-title.js +4 -84
  149. package/components/qds-title.js.map +1 -1
  150. package/components/qds-tooltip.d.ts +2 -2
  151. package/components/qds-tooltip.js +4 -315
  152. package/components/qds-tooltip.js.map +1 -1
  153. package/dist/cjs/app-globals-CLoao1by.js +13 -0
  154. package/dist/cjs/app-globals-CLoao1by.js.map +1 -0
  155. package/dist/cjs/controls-DKGeNyr5.js +32 -0
  156. package/dist/cjs/controls-DKGeNyr5.js.map +1 -0
  157. package/dist/cjs/{floating-ui.dom.esm-7f1cac3e.js → floating-ui.dom-Bvzubd50.js} +557 -345
  158. package/dist/cjs/floating-ui.dom-Bvzubd50.js.map +1 -0
  159. package/dist/cjs/helpers-D6srVOLt.js +3584 -0
  160. package/dist/cjs/helpers-D6srVOLt.js.map +1 -0
  161. package/dist/cjs/index-DIY7gpXM.js +2376 -0
  162. package/dist/cjs/index-DIY7gpXM.js.map +1 -0
  163. package/dist/cjs/index.cjs.js +40 -31
  164. package/dist/cjs/index.cjs.js.map +1 -1
  165. package/dist/cjs/library-CeKRI2f2.js +142 -0
  166. package/dist/cjs/library-CeKRI2f2.js.map +1 -0
  167. package/dist/cjs/loader.cjs.js +9 -10
  168. package/dist/cjs/loader.cjs.js.map +1 -1
  169. package/dist/cjs/qds-action-item.cjs.entry.js +165 -0
  170. package/dist/cjs/qds-action-item.entry.cjs.js.map +1 -0
  171. package/dist/cjs/qds-avatar-media.cjs.entry.js +105 -0
  172. package/dist/cjs/qds-avatar-media.entry.cjs.js.map +1 -0
  173. package/dist/cjs/qds-avatar.cjs.entry.js +70 -0
  174. package/dist/cjs/qds-avatar.entry.cjs.js.map +1 -0
  175. package/dist/cjs/qds-badge-counter.qds-badge-indicator.entry.cjs.js.map +1 -0
  176. package/dist/cjs/qds-badge-counter_2.cjs.entry.js +168 -0
  177. package/dist/cjs/qds-breadcrumb-item.cjs.entry.js +134 -0
  178. package/dist/cjs/qds-breadcrumb-item.entry.cjs.js.map +1 -0
  179. package/dist/cjs/qds-button.cjs.entry.js +402 -93
  180. package/dist/cjs/qds-button.entry.cjs.js.map +1 -0
  181. package/dist/cjs/qds-checkbox.qds-radio.entry.cjs.js.map +1 -0
  182. package/dist/cjs/qds-checkbox_2.cjs.entry.js +456 -0
  183. package/dist/cjs/qds-chip.cjs.entry.js +285 -0
  184. package/dist/cjs/qds-chip.entry.cjs.js.map +1 -0
  185. package/dist/cjs/qds-dialog.cjs.entry.js +124 -77
  186. package/dist/cjs/qds-dialog.entry.cjs.js.map +1 -0
  187. package/dist/cjs/qds-divider.qds-icon-button.entry.cjs.js.map +1 -0
  188. package/dist/cjs/qds-divider_2.cjs.entry.js +291 -0
  189. package/dist/cjs/qds-dropdown.cjs.entry.js +461 -213
  190. package/dist/cjs/qds-dropdown.entry.cjs.js.map +1 -0
  191. package/dist/cjs/qds-form-message.cjs.entry.js +80 -27
  192. package/dist/cjs/qds-form-message.entry.cjs.js.map +1 -0
  193. package/dist/cjs/qds-icon-tab.cjs.entry.js +244 -0
  194. package/dist/cjs/qds-icon-tab.entry.cjs.js.map +1 -0
  195. package/dist/cjs/qds-icon.cjs.entry.js +92 -93
  196. package/dist/cjs/qds-icon.entry.cjs.js.map +1 -0
  197. package/dist/cjs/qds-inline-link.cjs.entry.js +139 -49
  198. package/dist/cjs/qds-inline-link.entry.cjs.js.map +1 -0
  199. package/dist/cjs/qds-input.cjs.entry.js +503 -188
  200. package/dist/cjs/qds-input.entry.cjs.js.map +1 -0
  201. package/dist/cjs/qds-label.cjs.entry.js +118 -27
  202. package/dist/cjs/qds-label.entry.cjs.js.map +1 -0
  203. package/dist/cjs/qds-list-item.cjs.entry.js +328 -0
  204. package/dist/cjs/qds-list-item.entry.cjs.js.map +1 -0
  205. package/dist/cjs/qds-loader.cjs.entry.js +126 -0
  206. package/dist/cjs/qds-loader.entry.cjs.js.map +1 -0
  207. package/dist/cjs/qds-menu-item.cjs.entry.js +214 -0
  208. package/dist/cjs/qds-menu-item.entry.cjs.js.map +1 -0
  209. package/dist/cjs/qds-mini-button.cjs.entry.js +130 -0
  210. package/dist/cjs/qds-mini-button.entry.cjs.js.map +1 -0
  211. package/dist/cjs/qds-progress-bar.cjs.entry.js +131 -0
  212. package/dist/cjs/qds-progress-bar.entry.cjs.js.map +1 -0
  213. package/dist/cjs/qds-select.cjs.entry.js +331 -0
  214. package/dist/cjs/qds-select.entry.cjs.js.map +1 -0
  215. package/dist/cjs/qds-standalone-link.cjs.entry.js +171 -0
  216. package/dist/cjs/qds-standalone-link.entry.cjs.js.map +1 -0
  217. package/dist/cjs/qds-switch.cjs.entry.js +221 -67
  218. package/dist/cjs/qds-switch.entry.cjs.js.map +1 -0
  219. package/dist/cjs/qds-tab.cjs.entry.js +280 -0
  220. package/dist/cjs/qds-tab.entry.cjs.js.map +1 -0
  221. package/dist/cjs/qds-tabbar.cjs.entry.js +528 -0
  222. package/dist/cjs/qds-tabbar.entry.cjs.js.map +1 -0
  223. package/dist/cjs/qds-table-cell.cjs.entry.js +88 -0
  224. package/dist/cjs/qds-table-cell.entry.cjs.js.map +1 -0
  225. package/dist/cjs/qds-table-head-cell.cjs.entry.js +92 -0
  226. package/dist/cjs/qds-table-head-cell.entry.cjs.js.map +1 -0
  227. package/dist/cjs/qds-table-row.cjs.entry.js +34 -0
  228. package/dist/cjs/qds-table-row.entry.cjs.js.map +1 -0
  229. package/dist/cjs/qds-table.cjs.entry.js +34 -0
  230. package/dist/cjs/qds-table.entry.cjs.js.map +1 -0
  231. package/dist/cjs/qds-tag.cjs.entry.js +110 -0
  232. package/dist/cjs/qds-tag.entry.cjs.js.map +1 -0
  233. package/dist/cjs/qds-textarea.cjs.entry.js +303 -156
  234. package/dist/cjs/qds-textarea.entry.cjs.js.map +1 -0
  235. package/dist/cjs/qds-title.cjs.entry.js +61 -52
  236. package/dist/cjs/qds-title.entry.cjs.js.map +1 -0
  237. package/dist/cjs/qds-tooltip.cjs.entry.js +380 -264
  238. package/dist/cjs/qds-tooltip.entry.cjs.js.map +1 -0
  239. package/dist/cjs/qds.cjs.js +18 -17
  240. package/dist/cjs/qds.cjs.js.map +1 -1
  241. package/dist/custom-elements.json +13254 -2143
  242. package/dist/docs.d.ts +344 -240
  243. package/dist/docs.json +13958 -3308
  244. package/dist/esm/app-globals-WylVyaRG.js +11 -0
  245. package/dist/esm/app-globals-WylVyaRG.js.map +1 -0
  246. package/dist/esm/controls-CZRW1LV_.js +28 -0
  247. package/dist/esm/controls-CZRW1LV_.js.map +1 -0
  248. package/dist/esm/{floating-ui.dom.esm-c2f3e549.js → floating-ui.dom-Bv2vPjgL.js} +557 -345
  249. package/dist/esm/floating-ui.dom-Bv2vPjgL.js.map +1 -0
  250. package/dist/esm/helpers-BIo9VDPx.js +3561 -0
  251. package/dist/esm/helpers-BIo9VDPx.js.map +1 -0
  252. package/dist/esm/index-Hg1Liloy.js +2364 -0
  253. package/dist/esm/index-Hg1Liloy.js.map +1 -0
  254. package/dist/esm/index.js +40 -30
  255. package/dist/esm/index.js.map +1 -1
  256. package/dist/esm/library-CBfntPWH.js +138 -0
  257. package/dist/esm/library-CBfntPWH.js.map +1 -0
  258. package/dist/esm/loader.js +10 -9
  259. package/dist/esm/loader.js.map +1 -1
  260. package/dist/esm/qds-action-item.entry.js +163 -0
  261. package/dist/esm/qds-action-item.entry.js.map +1 -0
  262. package/dist/esm/qds-avatar-media.entry.js +103 -0
  263. package/dist/esm/qds-avatar-media.entry.js.map +1 -0
  264. package/dist/esm/qds-avatar.entry.js +68 -0
  265. package/dist/esm/qds-avatar.entry.js.map +1 -0
  266. package/dist/esm/qds-badge-counter.qds-badge-indicator.entry.js.map +1 -0
  267. package/dist/esm/qds-badge-counter_2.entry.js +165 -0
  268. package/dist/esm/qds-breadcrumb-item.entry.js +132 -0
  269. package/dist/esm/qds-breadcrumb-item.entry.js.map +1 -0
  270. package/dist/esm/qds-button.entry.js +402 -91
  271. package/dist/esm/qds-button.entry.js.map +1 -1
  272. package/dist/esm/qds-checkbox.qds-radio.entry.js.map +1 -0
  273. package/dist/esm/qds-checkbox_2.entry.js +453 -0
  274. package/dist/esm/qds-chip.entry.js +283 -0
  275. package/dist/esm/qds-chip.entry.js.map +1 -0
  276. package/dist/esm/qds-dialog.entry.js +124 -75
  277. package/dist/esm/qds-dialog.entry.js.map +1 -1
  278. package/dist/esm/qds-divider.qds-icon-button.entry.js.map +1 -0
  279. package/dist/esm/qds-divider_2.entry.js +288 -0
  280. package/dist/esm/qds-dropdown.entry.js +461 -211
  281. package/dist/esm/qds-dropdown.entry.js.map +1 -1
  282. package/dist/esm/qds-form-message.entry.js +80 -25
  283. package/dist/esm/qds-form-message.entry.js.map +1 -1
  284. package/dist/esm/qds-icon-tab.entry.js +242 -0
  285. package/dist/esm/qds-icon-tab.entry.js.map +1 -0
  286. package/dist/esm/qds-icon.entry.js +92 -91
  287. package/dist/esm/qds-icon.entry.js.map +1 -1
  288. package/dist/esm/qds-inline-link.entry.js +139 -47
  289. package/dist/esm/qds-inline-link.entry.js.map +1 -1
  290. package/dist/esm/qds-input.entry.js +503 -186
  291. package/dist/esm/qds-input.entry.js.map +1 -1
  292. package/dist/esm/qds-label.entry.js +118 -25
  293. package/dist/esm/qds-label.entry.js.map +1 -1
  294. package/dist/esm/qds-list-item.entry.js +326 -0
  295. package/dist/esm/qds-list-item.entry.js.map +1 -0
  296. package/dist/esm/qds-loader.entry.js +124 -0
  297. package/dist/esm/qds-loader.entry.js.map +1 -0
  298. package/dist/esm/qds-menu-item.entry.js +212 -0
  299. package/dist/esm/qds-menu-item.entry.js.map +1 -0
  300. package/dist/esm/qds-mini-button.entry.js +128 -0
  301. package/dist/esm/qds-mini-button.entry.js.map +1 -0
  302. package/dist/esm/qds-progress-bar.entry.js +129 -0
  303. package/dist/esm/qds-progress-bar.entry.js.map +1 -0
  304. package/dist/esm/qds-select.entry.js +329 -0
  305. package/dist/esm/qds-select.entry.js.map +1 -0
  306. package/dist/esm/qds-standalone-link.entry.js +169 -0
  307. package/dist/esm/qds-standalone-link.entry.js.map +1 -0
  308. package/dist/esm/qds-switch.entry.js +221 -65
  309. package/dist/esm/qds-switch.entry.js.map +1 -1
  310. package/dist/esm/qds-tab.entry.js +278 -0
  311. package/dist/esm/qds-tab.entry.js.map +1 -0
  312. package/dist/esm/qds-tabbar.entry.js +526 -0
  313. package/dist/esm/qds-tabbar.entry.js.map +1 -0
  314. package/dist/esm/qds-table-cell.entry.js +86 -0
  315. package/dist/esm/qds-table-cell.entry.js.map +1 -0
  316. package/dist/esm/qds-table-head-cell.entry.js +90 -0
  317. package/dist/esm/qds-table-head-cell.entry.js.map +1 -0
  318. package/dist/esm/qds-table-row.entry.js +32 -0
  319. package/dist/esm/qds-table-row.entry.js.map +1 -0
  320. package/dist/esm/qds-table.entry.js +32 -0
  321. package/dist/esm/qds-table.entry.js.map +1 -0
  322. package/dist/esm/qds-tag.entry.js +108 -0
  323. package/dist/esm/qds-tag.entry.js.map +1 -0
  324. package/dist/esm/qds-textarea.entry.js +303 -154
  325. package/dist/esm/qds-textarea.entry.js.map +1 -1
  326. package/dist/esm/qds-title.entry.js +61 -50
  327. package/dist/esm/qds-title.entry.js.map +1 -1
  328. package/dist/esm/qds-tooltip.entry.js +380 -262
  329. package/dist/esm/qds-tooltip.entry.js.map +1 -1
  330. package/dist/esm/qds.js +18 -16
  331. package/dist/esm/qds.js.map +1 -1
  332. package/dist/types/components/action-item/action-item.d.ts +70 -0
  333. package/dist/types/components/avatar/avatar.d.ts +61 -0
  334. package/dist/types/components/avatar-media/avatar-media.d.ts +47 -0
  335. package/dist/types/components/badge-counter/badge-counter.d.ts +40 -0
  336. package/dist/types/components/badge-indicator/badge-indicator.d.ts +36 -0
  337. package/dist/types/components/breadcrumb-item/breadcrumb-item.d.ts +178 -0
  338. package/dist/types/components/button/button.d.ts +283 -198
  339. package/dist/types/components/checkbox/checkbox.d.ts +142 -124
  340. package/dist/types/components/chip/chip.d.ts +111 -0
  341. package/dist/types/components/controls.d.ts +4 -1
  342. package/dist/types/components/dialog/dialog.d.ts +32 -41
  343. package/dist/types/components/divider/divider.d.ts +14 -9
  344. package/dist/types/components/dropdown/dropdown.d.ts +117 -125
  345. package/dist/types/components/form-message/form-message.d.ts +35 -25
  346. package/dist/types/components/icon/icon.d.ts +23 -24
  347. package/dist/types/components/icon/library.d.ts +3 -3
  348. package/dist/types/components/icon/request.d.ts +5 -9
  349. package/dist/types/components/icon-button/icon-button.d.ts +122 -0
  350. package/dist/types/components/icon-tab/icon-tab.d.ts +112 -0
  351. package/dist/types/components/inline-link/inline-link.d.ts +209 -191
  352. package/dist/types/components/input/input.d.ts +441 -368
  353. package/dist/types/components/label/label.d.ts +37 -24
  354. package/dist/types/components/list-item/list-item.d.ts +122 -0
  355. package/dist/types/components/loader/loader.d.ts +32 -0
  356. package/dist/types/components/menu-item/menu-item.d.ts +75 -0
  357. package/dist/types/components/mini-button/mini-button.d.ts +82 -0
  358. package/dist/types/components/progress-bar/progress-bar.d.ts +60 -0
  359. package/dist/types/components/radio/radio.d.ts +94 -95
  360. package/dist/types/components/select/select.d.ts +209 -0
  361. package/dist/types/components/shared.d.ts +6 -0
  362. package/dist/types/components/standalone-link/standalone-link.d.ts +234 -0
  363. package/dist/types/components/switch/switch.d.ts +122 -107
  364. package/dist/types/components/tab/tab.d.ts +157 -0
  365. package/dist/types/components/tabbar/tabbar.d.ts +91 -0
  366. package/dist/types/components/table/table.d.ts +14 -0
  367. package/dist/types/components/table-cell/table-cell.d.ts +39 -0
  368. package/dist/types/components/table-head-cell/table-head-cell.d.ts +56 -0
  369. package/dist/types/components/table-row/table-row.d.ts +14 -0
  370. package/dist/types/components/tag/tag.d.ts +55 -0
  371. package/dist/types/components/textarea/textarea.d.ts +295 -300
  372. package/dist/types/components/title/title.d.ts +39 -32
  373. package/dist/types/components/tooltip/tooltip.d.ts +111 -136
  374. package/dist/types/components.d.ts +4590 -929
  375. package/dist/types/helpers.d.ts +46 -19
  376. package/dist/types/index.d.ts +2 -1
  377. package/dist/types/interface-overrides.d.ts +215 -0
  378. package/dist/types/qds-test.d.ts +22 -11
  379. package/dist/types/stencil-public-runtime.d.ts +109 -17
  380. package/dist/types/utils.d.ts +11 -4
  381. package/dist/vscode.html-custom-data.json +2543 -426
  382. package/hydrate/index.d.ts +73 -18
  383. package/hydrate/index.js +32000 -9062
  384. package/hydrate/index.mjs +33081 -0
  385. package/hydrate/package.json +7 -1
  386. package/loader/cdn.js +3 -4
  387. package/loader/index.cjs.js +3 -4
  388. package/loader/index.d.ts +4 -1
  389. package/loader/index.es2017.js +3 -4
  390. package/loader/index.js +3 -4
  391. package/package.json +23 -180
  392. package/styles/core.css +156 -38
  393. package/components/floating-ui.dom.esm.js.map +0 -1
  394. package/components/helpers.js +0 -175
  395. package/components/helpers.js.map +0 -1
  396. package/components/icon.js +0 -185
  397. package/components/icon.js.map +0 -1
  398. package/components/label.js +0 -55
  399. package/components/label.js.map +0 -1
  400. package/dist/cjs/floating-ui.dom.esm-7f1cac3e.js.map +0 -1
  401. package/dist/cjs/helpers-452256e8.js +0 -185
  402. package/dist/cjs/helpers-452256e8.js.map +0 -1
  403. package/dist/cjs/index-d181f952.js +0 -2039
  404. package/dist/cjs/index-d181f952.js.map +0 -1
  405. package/dist/cjs/library-ad8d9466.js +0 -72
  406. package/dist/cjs/library-ad8d9466.js.map +0 -1
  407. package/dist/cjs/qds-button.cjs.entry.js.map +0 -1
  408. package/dist/cjs/qds-checkbox.cjs.entry.js +0 -116
  409. package/dist/cjs/qds-checkbox.cjs.entry.js.map +0 -1
  410. package/dist/cjs/qds-dialog.cjs.entry.js.map +0 -1
  411. package/dist/cjs/qds-divider.cjs.entry.js +0 -33
  412. package/dist/cjs/qds-divider.cjs.entry.js.map +0 -1
  413. package/dist/cjs/qds-dropdown.cjs.entry.js.map +0 -1
  414. package/dist/cjs/qds-form-message.cjs.entry.js.map +0 -1
  415. package/dist/cjs/qds-icon.cjs.entry.js.map +0 -1
  416. package/dist/cjs/qds-inline-link.cjs.entry.js.map +0 -1
  417. package/dist/cjs/qds-input.cjs.entry.js.map +0 -1
  418. package/dist/cjs/qds-label.cjs.entry.js.map +0 -1
  419. package/dist/cjs/qds-radio.cjs.entry.js +0 -74
  420. package/dist/cjs/qds-radio.cjs.entry.js.map +0 -1
  421. package/dist/cjs/qds-switch.cjs.entry.js.map +0 -1
  422. package/dist/cjs/qds-textarea.cjs.entry.js.map +0 -1
  423. package/dist/cjs/qds-title.cjs.entry.js.map +0 -1
  424. package/dist/cjs/qds-tooltip.cjs.entry.js.map +0 -1
  425. package/dist/esm/floating-ui.dom.esm-c2f3e549.js.map +0 -1
  426. package/dist/esm/helpers-76b84f45.js +0 -175
  427. package/dist/esm/helpers-76b84f45.js.map +0 -1
  428. package/dist/esm/index-d7183092.js +0 -2009
  429. package/dist/esm/index-d7183092.js.map +0 -1
  430. package/dist/esm/library-f36d7d09.js +0 -68
  431. package/dist/esm/library-f36d7d09.js.map +0 -1
  432. package/dist/esm/polyfills/core-js.js +0 -11
  433. package/dist/esm/polyfills/dom.js +0 -79
  434. package/dist/esm/polyfills/es5-html-element.js +0 -1
  435. package/dist/esm/polyfills/index.js +0 -34
  436. package/dist/esm/polyfills/system.js +0 -6
  437. package/dist/esm/qds-checkbox.entry.js +0 -112
  438. package/dist/esm/qds-checkbox.entry.js.map +0 -1
  439. package/dist/esm/qds-divider.entry.js +0 -29
  440. package/dist/esm/qds-divider.entry.js.map +0 -1
  441. package/dist/esm/qds-radio.entry.js +0 -70
  442. package/dist/esm/qds-radio.entry.js.map +0 -1
  443. package/dist/types/components/create-story.d.ts +0 -5
  444. package/loader/package.json +0 -11
@@ -0,0 +1,526 @@
1
+ /*!
2
+ * SPDX-FileCopyrightText: © 2026 Schneider Electric
3
+ *
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { r as registerInstance, c as createEvent, h, g as getElement } from './index-Hg1Liloy.js';
7
+ import { a as invariant, V as VERTICAL_MOVE_KEYS, H as HORIZONTAL_MOVE_KEYS, m as resolvePanelElement, n as componentOnReady } from './helpers-BIo9VDPx.js';
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;scrollbar-width:none}.qds-vertical{flex-direction:column}.qds-vertical-divider{flex-direction:row}[data-size=small]{gap:var(--qds-control-small-gap-siblings-related)}[data-size=standard]{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=root] .qds-tabs,[data-size=large]{gap:var(--qds-control-large-gap-siblings-related)}[data-layer=main][data-level=section] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=main][data-level=subsection] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}[data-layer=popup][data-level=root] .qds-tabs{gap:var(--qds-control-standard-gap-siblings-related)}[data-layer=popup][data-level=section] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}:is([data-layer=panel],[data-layer=accessory])[data-level=root] .qds-tabs{gap:var(--qds-control-small-gap-siblings-related)}.qds-sr-only{clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}";
10
+
11
+ // SPDX-FileCopyrightText: © 2024 Schneider Electric
12
+ //
13
+ // SPDX-License-Identifier: Apache-2.0
14
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
15
+ if (kind === "a" && !f)
16
+ throw new TypeError("Private accessor was defined without a getter");
17
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
18
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
19
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
20
+ };
21
+ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
22
+ if (kind === "m")
23
+ throw new TypeError("Private method is not writable");
24
+ if (kind === "a" && !f)
25
+ throw new TypeError("Private accessor was defined without a setter");
26
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
27
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
28
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
29
+ };
30
+ var _Tabbar_instances, _Tabbar_tabs, _Tabbar_ro, _Tabbar_mutationObserver, _Tabbar_tabbar, _Tabbar_toggleAnnouncement, _Tabbar_scrollStartButton, _Tabbar_scrollEndButton, _Tabbar_pendingArrowFocus, _Tabbar_isInternallySettingActive, _Tabbar_computedImportance_get, _Tabbar_computedSize_get, _Tabbar_computedPlacement_get, _Tabbar_computeDividerVisible_get, _Tabbar_computedAriaOrientation_get, _Tabbar_getTabItems, _Tabbar_announceScroll, _Tabbar_scrollToStart, _Tabbar_scrollToEnd, _Tabbar_setActiveTab, _Tabbar_handleTabMutation, _Tabbar_activateTab, _Tabbar_switchTabPanel, _Tabbar_getCurrentTab, _Tabbar_setCurrentTab, _Tabbar_isVerticalPlacement, _Tabbar_isHorizontalPlacement, _Tabbar_isEndOrBottomPlacement, _Tabbar_onClick, _Tabbar_onKeyDown, _Tabbar_onMouseDown, _Tabbar_onScroll, _Tabbar_onViewportCrop, _Tabbar_syncInternalsAccessibility, _Tabbar_updateTabsCache, _Tabbar_setTabSettings, _Tabbar_onSlotchange, _Tabbar_scrollEndButtonRef, _Tabbar_scrollStartButtonRef;
31
+ const TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab';
32
+ const TAB_SETTINGS = {
33
+ 'main-root': {
34
+ importance: 'standard',
35
+ size: 'large',
36
+ indicatorPosition: 'block-end',
37
+ },
38
+ 'main-section': {
39
+ importance: 'standard',
40
+ size: 'standard',
41
+ indicatorPosition: 'block-end',
42
+ },
43
+ 'popup-root': {
44
+ importance: 'standard',
45
+ size: 'standard',
46
+ indicatorPosition: 'block-end',
47
+ },
48
+ 'main-subsection': {
49
+ importance: 'subdued',
50
+ size: 'small',
51
+ indicatorPosition: 'block-start',
52
+ },
53
+ 'popup-section': {
54
+ importance: 'subdued',
55
+ size: 'small',
56
+ indicatorPosition: 'inline-start',
57
+ },
58
+ 'panel-root': {
59
+ importance: 'standard',
60
+ size: 'small',
61
+ indicatorPosition: 'block-start',
62
+ },
63
+ 'accessory-root': {
64
+ importance: 'subdued',
65
+ size: 'small',
66
+ indicatorPosition: 'block-end',
67
+ },
68
+ };
69
+ const isTabItem = (item) => {
70
+ if (!(item instanceof HTMLElement))
71
+ return false;
72
+ const tagName = item.tagName.toLowerCase();
73
+ return tagName === 'qds-tab' || tagName === 'qds-icon-tab';
74
+ };
75
+ const isEnabledTabItem = (item) => isTabItem(item) && !item.inert && item.disabled !== true;
76
+ const isTabActive = (tab) => tab.selected;
77
+ const getTabTrigger = (tab) => tab.tab;
78
+ const getPanelId = (tab) => {
79
+ const panelElement = resolvePanelElement(tab);
80
+ return panelElement?.id ?? '';
81
+ };
82
+ const Tabbar = class {
83
+ constructor(hostRef) {
84
+ registerInstance(this, hostRef);
85
+ this.showEmitter = createEvent(this, "qdsTabShow", 6);
86
+ this.hideEmitter = createEvent(this, "qdsTabHide", 6);
87
+ if (hostRef.$hostElement$["s-ei"]) {
88
+ this.internals = hostRef.$hostElement$["s-ei"];
89
+ }
90
+ else {
91
+ this.internals = hostRef.$hostElement$.attachInternals();
92
+ hostRef.$hostElement$["s-ei"] = this.internals;
93
+ }
94
+ _Tabbar_instances.add(this);
95
+ /**
96
+ * The tabbar's layer.
97
+ *
98
+ * @deprecated The property layer is deprecated. Please use `size` property instead.
99
+ * Please do not use `layer` and `size` at the same time.
100
+ */
101
+ this.layer = 'main';
102
+ /**
103
+ * The tabbar's level.
104
+ *
105
+ * @deprecated The property level is deprecated. Please use `size` property instead.
106
+ * Please do not use `level` and `size` at the same time.
107
+ */
108
+ this.level = 'root';
109
+ /**
110
+ * The tabbar's size. This controls the size of the tabs within the tabbar.
111
+ */
112
+ this.size = 'standard';
113
+ /**
114
+ * The tabbar's orientation.
115
+ *
116
+ * @deprecated Please use the `placement` property instead. Do not use
117
+ * `orientation` and `placement` at the same time.
118
+ */
119
+ this.orientation = 'horizontal';
120
+ /**
121
+ * The tabbar's placement.
122
+ */
123
+ this.placement = 'top';
124
+ /**
125
+ * Displays a divider line.
126
+ */
127
+ this.showDivider = false;
128
+ /**
129
+ * The alignment of tabs. Only applicable for horizontal orientation.
130
+ */
131
+ this.alignment = 'start';
132
+ this.disableEndArrow = false;
133
+ this.disableStartArrow = false;
134
+ this.scrollAnnouncement = '';
135
+ _Tabbar_tabs.set(this, []);
136
+ _Tabbar_ro.set(this, void 0);
137
+ _Tabbar_mutationObserver.set(this, void 0);
138
+ _Tabbar_tabbar.set(this, void 0);
139
+ _Tabbar_toggleAnnouncement.set(this, false);
140
+ _Tabbar_scrollStartButton.set(this, void 0);
141
+ _Tabbar_scrollEndButton.set(this, void 0);
142
+ _Tabbar_pendingArrowFocus.set(this, void 0);
143
+ _Tabbar_isInternallySettingActive.set(this, false);
144
+ _Tabbar_scrollToStart.set(this, () => {
145
+ invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
146
+ const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
147
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'end', "f");
148
+ __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
149
+ left: isRTL
150
+ ? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
151
+ : __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
152
+ });
153
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'previous');
154
+ });
155
+ _Tabbar_scrollToEnd.set(this, () => {
156
+ invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
157
+ const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
158
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, 'start', "f");
159
+ __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scroll({
160
+ left: isRTL
161
+ ? __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft - __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth
162
+ : __classPrivateFieldGet(this, _Tabbar_tabbar, "f").scrollLeft + __classPrivateFieldGet(this, _Tabbar_tabbar, "f").clientWidth,
163
+ });
164
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_announceScroll).call(this, 'next');
165
+ });
166
+ _Tabbar_isVerticalPlacement.set(this, () => this.placement === 'start' || this.placement === 'end');
167
+ _Tabbar_isHorizontalPlacement.set(this, () => this.placement === 'top' || this.placement === 'bottom');
168
+ _Tabbar_isEndOrBottomPlacement.set(this, () => this.placement === 'end' || this.placement === 'bottom');
169
+ _Tabbar_onClick.set(this, (event) => {
170
+ const { target } = event;
171
+ if (!(target instanceof HTMLElement))
172
+ return;
173
+ const tab = target.closest(TAB_ITEM_SELECTOR);
174
+ if (!isEnabledTabItem(tab))
175
+ return;
176
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, tab);
177
+ });
178
+ _Tabbar_onKeyDown.set(this, (event) => {
179
+ const isVertical = this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this);
180
+ const MOVE_SELECTION_KEYS = isVertical
181
+ ? VERTICAL_MOVE_KEYS
182
+ : HORIZONTAL_MOVE_KEYS;
183
+ if (!MOVE_SELECTION_KEYS.has(event.key))
184
+ return;
185
+ const tabs = __classPrivateFieldGet(this, _Tabbar_tabs, "f");
186
+ if (tabs.length === 0)
187
+ return;
188
+ event.preventDefault();
189
+ event.stopPropagation();
190
+ const activeTab = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getCurrentTab).call(this);
191
+ let index = activeTab ? tabs.indexOf(activeTab) : 0;
192
+ const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
193
+ let nextTab;
194
+ do {
195
+ switch (event.key) {
196
+ case 'ArrowLeft':
197
+ case 'ArrowUp': {
198
+ index = (isRTL ? index < tabs.length - 1 : index > 0)
199
+ ? index - (isRTL ? -1 : 1)
200
+ : isRTL
201
+ ? 0
202
+ : tabs.length - 1;
203
+ break;
204
+ }
205
+ case 'ArrowRight':
206
+ case 'ArrowDown': {
207
+ index = (isRTL ? index > 0 : index < tabs.length - 1)
208
+ ? index + (isRTL ? -1 : 1)
209
+ : isRTL
210
+ ? tabs.length - 1
211
+ : 0;
212
+ break;
213
+ }
214
+ case 'Home': {
215
+ index = isRTL ? tabs.length - 1 : 0;
216
+ break;
217
+ }
218
+ case 'End': {
219
+ index = isRTL ? 0 : tabs.length - 1;
220
+ break;
221
+ }
222
+ }
223
+ nextTab = tabs[index];
224
+ } while (nextTab.disabled === true);
225
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, nextTab);
226
+ const target = getTabTrigger(nextTab);
227
+ target.focus({ preventScroll: true });
228
+ if (!isVertical)
229
+ target.scrollIntoView();
230
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, nextTab);
231
+ });
232
+ _Tabbar_onMouseDown.set(this, (event) => {
233
+ const { target } = event;
234
+ if (!(target instanceof HTMLElement))
235
+ return;
236
+ const tab = target.closest(TAB_ITEM_SELECTOR);
237
+ if (isEnabledTabItem(tab))
238
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, tab);
239
+ });
240
+ _Tabbar_onScroll.set(this, () => {
241
+ if (!__classPrivateFieldGet(this, _Tabbar_tabbar, "f"))
242
+ return;
243
+ const { clientWidth, scrollWidth, scrollLeft } = __classPrivateFieldGet(this, _Tabbar_tabbar, "f");
244
+ const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl';
245
+ this.disableStartArrow = scrollLeft === 0;
246
+ this.disableEndArrow = isRTL
247
+ ? scrollWidth + scrollLeft <= clientWidth
248
+ : scrollWidth - clientWidth - scrollLeft <= 1;
249
+ });
250
+ _Tabbar_onViewportCrop.set(this, () => {
251
+ if (!__classPrivateFieldGet(this, _Tabbar_tabbar, "f"))
252
+ return;
253
+ const { scrollWidth, clientWidth } = __classPrivateFieldGet(this, _Tabbar_tabbar, "f");
254
+ if (scrollWidth > clientWidth) {
255
+ __classPrivateFieldGet(this, _Tabbar_onScroll, "f").call(this);
256
+ }
257
+ });
258
+ _Tabbar_onSlotchange.set(this, () => {
259
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_updateTabsCache).call(this);
260
+ if (__classPrivateFieldGet(this, _Tabbar_tabs, "f").length > 0)
261
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, __classPrivateFieldGet(this, _Tabbar_tabs, "f")[0]);
262
+ __classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
263
+ });
264
+ _Tabbar_scrollEndButtonRef.set(this, (button) => {
265
+ __classPrivateFieldSet(this, _Tabbar_scrollEndButton, button, "f");
266
+ });
267
+ _Tabbar_scrollStartButtonRef.set(this, (button) => {
268
+ __classPrivateFieldSet(this, _Tabbar_scrollStartButton, button, "f");
269
+ });
270
+ }
271
+ settingChanged() {
272
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setTabSettings).call(this);
273
+ }
274
+ accessibilityChanged() {
275
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_syncInternalsAccessibility).call(this);
276
+ }
277
+ windowResize() {
278
+ __classPrivateFieldGet(this, _Tabbar_onViewportCrop, "f").call(this);
279
+ }
280
+ activeChanged() {
281
+ if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
282
+ return;
283
+ if (this.active === undefined || this.active === '')
284
+ return;
285
+ const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
286
+ const nextTab = tabs.find((tab) => {
287
+ const panelId = getPanelId(tab);
288
+ return panelId === this.active;
289
+ });
290
+ if (!nextTab || nextTab.disabled === true)
291
+ return;
292
+ const previousTab = this.activeTab;
293
+ if (previousTab === nextTab && this.active === getPanelId(nextTab))
294
+ return;
295
+ this.activeTab = nextTab;
296
+ if (previousTab && previousTab !== nextTab) {
297
+ this.hideEmitter.emit(previousTab);
298
+ }
299
+ if (previousTab !== nextTab) {
300
+ this.showEmitter.emit(nextTab);
301
+ }
302
+ // Update tab states without triggering mutation observer
303
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
304
+ for (const t of tabs) {
305
+ const target = getTabTrigger(t);
306
+ const isSelected = t === nextTab;
307
+ t.selected = isSelected;
308
+ if (target instanceof globalThis.Element)
309
+ target.ariaSelected = isSelected.toString();
310
+ }
311
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
312
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, nextTab);
313
+ }
314
+ componentWillLoad() {
315
+ this.settingChanged();
316
+ this.internals.role = 'tablist';
317
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_syncInternalsAccessibility).call(this);
318
+ const tabs = __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this);
319
+ const preselectedTab = tabs.find((tab) => isTabActive(tab));
320
+ if (preselectedTab)
321
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, preselectedTab);
322
+ else if (tabs.length > 0)
323
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, tabs[0]);
324
+ }
325
+ componentDidRender() {
326
+ if (this.activeTab)
327
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, this.activeTab);
328
+ if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'start' && this.disableEndArrow) {
329
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
330
+ __classPrivateFieldGet(this, _Tabbar_scrollStartButton, "f")?.focus();
331
+ }
332
+ else if (__classPrivateFieldGet(this, _Tabbar_pendingArrowFocus, "f") === 'end' && this.disableStartArrow) {
333
+ __classPrivateFieldSet(this, _Tabbar_pendingArrowFocus, undefined, "f");
334
+ __classPrivateFieldGet(this, _Tabbar_scrollEndButton, "f")?.focus();
335
+ }
336
+ this.settingChanged();
337
+ }
338
+ componentDidLoad() {
339
+ invariant(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
340
+ __classPrivateFieldSet(this, _Tabbar_ro, new ResizeObserver(__classPrivateFieldGet(this, _Tabbar_onScroll, "f")), "f");
341
+ __classPrivateFieldGet(this, _Tabbar_ro, "f").observe(__classPrivateFieldGet(this, _Tabbar_tabbar, "f"));
342
+ __classPrivateFieldSet(this, _Tabbar_mutationObserver, new MutationObserver((mutations) => {
343
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_handleTabMutation).call(this, mutations);
344
+ }), "f");
345
+ __classPrivateFieldGet(this, _Tabbar_mutationObserver, "f").observe(this.host, {
346
+ attributes: true,
347
+ attributeFilter: ['active'],
348
+ childList: true,
349
+ subtree: true,
350
+ });
351
+ }
352
+ disconnectedCallback() {
353
+ __classPrivateFieldGet(this, _Tabbar_ro, "f")?.disconnect();
354
+ __classPrivateFieldGet(this, _Tabbar_mutationObserver, "f")?.disconnect();
355
+ }
356
+ render() {
357
+ return (h("div", { key: '43a1bae6bd980854ec8cbc786be30d3c4dae4ae9', class: {
358
+ 'qds-vertical-divider': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
359
+ }, "data-layer": this.layer, "data-level": this.level, "data-importance": __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) }, h("span", { key: '6c81132bbb30f3c5813186bd9a2e6c4715b208c5', class: "qds-sr-only", "aria-live": "polite" }, this.scrollAnnouncement), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && __classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '147475632fc9fd2d8f859240dfa71e45058c4d78', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) })), h("div", { key: '51a0179675663618453b54d25bda6054e3f91321', class: "qds-tabbar" }, h("div", { key: '44f0167da0d5b5d682f86c57a0a7b347e51e0fca', class: {
360
+ 'qds-align-center': true,
361
+ 'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
362
+ this.orientation === 'vertical' ||
363
+ __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
364
+ } }, h("qds-icon-button", { key: '22a512257855b48e1b50f9b48d06017c756a58ea', "aria-label": "show previous tab", importance: "subdued", iconName: "next", iconLibrary: "core", class: "qds-arrow-start", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToStart, "f"), disabled: this.disableStartArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollStartButtonRef, "f") })), h("div", { key: '4e1a36aaf66917a57bf64618fa675e91db34e555', class: {
365
+ 'qds-tabs': true,
366
+ 'qds-vertical': this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
367
+ 'qds-centered': this.alignment === 'center' &&
368
+ (this.orientation === 'horizontal' ||
369
+ __classPrivateFieldGet(this, _Tabbar_isHorizontalPlacement, "f").call(this)) &&
370
+ this.disableEndArrow &&
371
+ this.disableStartArrow,
372
+ }, ref: (element) => {
373
+ __classPrivateFieldSet(this, _Tabbar_tabbar, element, "f");
374
+ }, onClick: __classPrivateFieldGet(this, _Tabbar_onClick, "f"), onKeyDown: __classPrivateFieldGet(this, _Tabbar_onKeyDown, "f"), onMouseDown: __classPrivateFieldGet(this, _Tabbar_onMouseDown, "f"), onScroll: __classPrivateFieldGet(this, _Tabbar_onScroll, "f") }, h("slot", { key: '0ae4c49fd815426bd78962526f5fce946d0688a1', onSlotchange: __classPrivateFieldGet(this, _Tabbar_onSlotchange, "f") })), h("div", { key: 'c4fc6997f1430efe4975c8ed1ad723fa6d906d79', class: {
375
+ 'qds-align-center': true,
376
+ 'qds-hidden': (this.disableEndArrow && this.disableStartArrow) ||
377
+ this.orientation === 'vertical' ||
378
+ __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this),
379
+ } }, h("qds-icon-button", { key: '87973e92e8ad9e40a2ba6a2a7ade1040c6e46fde', "aria-label": "show next tab", iconName: "next", iconLibrary: "core", importance: "subdued", onClick: __classPrivateFieldGet(this, _Tabbar_scrollToEnd, "f"), disabled: this.disableEndArrow, ref: __classPrivateFieldGet(this, _Tabbar_scrollEndButtonRef, "f") }))), __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computeDividerVisible_get) && !__classPrivateFieldGet(this, _Tabbar_isEndOrBottomPlacement, "f").call(this) && (h("qds-divider", { key: '9c7748c515f2f86c4065b90929dbe7d8f19b377b', vertical: this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this) }))));
380
+ }
381
+ static get delegatesFocus() { return true; }
382
+ get host() { return getElement(this); }
383
+ static get watchers() { return {
384
+ "importance": ["settingChanged"],
385
+ "orientation": ["accessibilityChanged"],
386
+ "placement": ["accessibilityChanged"],
387
+ "tablistDescription": ["accessibilityChanged"],
388
+ "active": ["activeChanged"]
389
+ }; }
390
+ };
391
+ _Tabbar_tabs = new WeakMap(), _Tabbar_ro = new WeakMap(), _Tabbar_mutationObserver = new WeakMap(), _Tabbar_tabbar = new WeakMap(), _Tabbar_toggleAnnouncement = new WeakMap(), _Tabbar_scrollStartButton = new WeakMap(), _Tabbar_scrollEndButton = new WeakMap(), _Tabbar_pendingArrowFocus = new WeakMap(), _Tabbar_isInternallySettingActive = new WeakMap(), _Tabbar_scrollToStart = new WeakMap(), _Tabbar_scrollToEnd = new WeakMap(), _Tabbar_isVerticalPlacement = new WeakMap(), _Tabbar_isHorizontalPlacement = new WeakMap(), _Tabbar_isEndOrBottomPlacement = new WeakMap(), _Tabbar_onClick = new WeakMap(), _Tabbar_onKeyDown = new WeakMap(), _Tabbar_onMouseDown = new WeakMap(), _Tabbar_onScroll = new WeakMap(), _Tabbar_onViewportCrop = new WeakMap(), _Tabbar_onSlotchange = new WeakMap(), _Tabbar_scrollEndButtonRef = new WeakMap(), _Tabbar_scrollStartButtonRef = new WeakMap(), _Tabbar_instances = new WeakSet(), _Tabbar_computedImportance_get = function _Tabbar_computedImportance_get() {
392
+ return this.importance;
393
+ }, _Tabbar_computedSize_get = function _Tabbar_computedSize_get() {
394
+ return this.size ?? undefined;
395
+ }, _Tabbar_computedPlacement_get = function _Tabbar_computedPlacement_get() {
396
+ switch (this.placement) {
397
+ case 'top': {
398
+ return 'block-end';
399
+ }
400
+ case 'end': {
401
+ return 'inline-start';
402
+ }
403
+ case 'bottom': {
404
+ return 'block-start';
405
+ }
406
+ case 'start': {
407
+ return 'inline-end';
408
+ }
409
+ default: {
410
+ return undefined;
411
+ }
412
+ }
413
+ }, _Tabbar_computeDividerVisible_get = function _Tabbar_computeDividerVisible_get() {
414
+ if (this.layer === 'panel')
415
+ return false;
416
+ if (this.layer === 'main' &&
417
+ this.level === 'subsection' &&
418
+ (this.orientation === 'horizontal' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this)))
419
+ return false;
420
+ return this.showDivider === true;
421
+ }, _Tabbar_computedAriaOrientation_get = function _Tabbar_computedAriaOrientation_get() {
422
+ return this.orientation === 'vertical' || __classPrivateFieldGet(this, _Tabbar_isVerticalPlacement, "f").call(this)
423
+ ? 'vertical'
424
+ : 'horizontal';
425
+ }, _Tabbar_getTabItems = function _Tabbar_getTabItems() {
426
+ return [
427
+ ...this.host.querySelectorAll(TAB_ITEM_SELECTOR),
428
+ ].filter((element) => isTabItem(element));
429
+ }, _Tabbar_announceScroll = function _Tabbar_announceScroll(direction) {
430
+ const text = direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed';
431
+ __classPrivateFieldSet(this, _Tabbar_toggleAnnouncement, !__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f"), "f");
432
+ this.scrollAnnouncement = text + (__classPrivateFieldGet(this, _Tabbar_toggleAnnouncement, "f") ? '' : '.');
433
+ }, _Tabbar_setActiveTab = function _Tabbar_setActiveTab(tab) {
434
+ this.activeTab = tab;
435
+ const panelId = getPanelId(tab);
436
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
437
+ this.active = panelId;
438
+ for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
439
+ const target = getTabTrigger(t);
440
+ const isSelected = t === tab;
441
+ t.selected = isSelected;
442
+ if (target instanceof globalThis.Element)
443
+ target.ariaSelected = isSelected.toString();
444
+ }
445
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
446
+ }, _Tabbar_handleTabMutation = function _Tabbar_handleTabMutation(mutations) {
447
+ if (__classPrivateFieldGet(this, _Tabbar_isInternallySettingActive, "f"))
448
+ return;
449
+ const activeTab = mutations
450
+ .map((m) => m.target)
451
+ .find((target) => target instanceof HTMLElement && isTabItem(target) && target.selected);
452
+ if (activeTab) {
453
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setActiveTab).call(this, activeTab);
454
+ }
455
+ }, _Tabbar_activateTab = function _Tabbar_activateTab(tab) {
456
+ const previousTab = this.activeTab;
457
+ if (previousTab === tab)
458
+ return;
459
+ this.activeTab = tab;
460
+ const panelId = getPanelId(tab);
461
+ if (previousTab) {
462
+ this.hideEmitter.emit(previousTab);
463
+ }
464
+ this.showEmitter.emit(tab);
465
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_setCurrentTab).call(this, tab);
466
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_switchTabPanel).call(this, tab);
467
+ // Set active property without triggering watcher events again
468
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, true, "f");
469
+ this.active = panelId;
470
+ __classPrivateFieldSet(this, _Tabbar_isInternallySettingActive, false, "f");
471
+ for (const t of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
472
+ const target = getTabTrigger(t);
473
+ const isSelected = t === tab;
474
+ t.selected = isSelected;
475
+ if (target instanceof globalThis.Element)
476
+ target.ariaSelected = isSelected.toString();
477
+ }
478
+ }, _Tabbar_switchTabPanel = function _Tabbar_switchTabPanel(activeTab) {
479
+ for (const tab of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
480
+ const panel = resolvePanelElement(tab);
481
+ if (panel) {
482
+ panel.hidden = tab !== activeTab;
483
+ }
484
+ }
485
+ }, _Tabbar_getCurrentTab = function _Tabbar_getCurrentTab() {
486
+ return __classPrivateFieldGet(this, _Tabbar_tabs, "f").find((tab) => getTabTrigger(tab).getAttribute('tabindex') === '0');
487
+ }, _Tabbar_setCurrentTab = function _Tabbar_setCurrentTab(tab) {
488
+ for (const t of __classPrivateFieldGet(this, _Tabbar_tabs, "f")) {
489
+ const isCurrent = t === tab;
490
+ componentOnReady(t, (element) => {
491
+ const target = element ? getTabTrigger(element) : undefined;
492
+ if (target === undefined)
493
+ return;
494
+ const isDisabled = target.getAttribute('aria-disabled') === 'true';
495
+ const shouldActivateTab = isCurrent && !isDisabled;
496
+ const tabindex = shouldActivateTab ? '0' : '-1';
497
+ target.setAttribute('tabindex', tabindex);
498
+ if (shouldActivateTab)
499
+ __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_activateTab).call(this, t);
500
+ });
501
+ }
502
+ }, _Tabbar_syncInternalsAccessibility = function _Tabbar_syncInternalsAccessibility() {
503
+ this.internals.ariaOrientation = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedAriaOrientation_get);
504
+ this.internals.ariaLabel = this.tablistDescription ?? '';
505
+ }, _Tabbar_updateTabsCache = function _Tabbar_updateTabsCache() {
506
+ const slot = this.host.shadowRoot?.querySelector('slot');
507
+ __classPrivateFieldSet(this, _Tabbar_tabs, slot
508
+ ? [...slot.assignedElements({ flatten: true })].filter((element) => isEnabledTabItem(element))
509
+ : [], "f");
510
+ }, _Tabbar_setTabSettings = function _Tabbar_setTabSettings() {
511
+ const settings = TAB_SETTINGS[`${this.layer}-${this.level}`];
512
+ if (!settings)
513
+ return;
514
+ for (const tab of __classPrivateFieldGet(this, _Tabbar_instances, "m", _Tabbar_getTabItems).call(this)) {
515
+ tab.importance = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedImportance_get) ?? settings.importance;
516
+ tab.size = __classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedSize_get) ?? settings.size;
517
+ tab.indicatorPosition =
518
+ this.orientation === 'vertical'
519
+ ? 'inline-end'
520
+ : (__classPrivateFieldGet(this, _Tabbar_instances, "a", _Tabbar_computedPlacement_get) ?? settings.indicatorPosition);
521
+ }
522
+ };
523
+ Tabbar.style = tabbarCss;
524
+
525
+ export { Tabbar as qds_tabbar };
526
+ //# sourceMappingURL=qds-tabbar.entry.js.map
@@ -0,0 +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 scrollbar-width: none;\n}\n\n.qds-vertical {\n flex-direction: column;\n}\n\n.qds-vertical-divider {\n flex-direction: row;\n}\n\n[data-size='small'] {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n[data-size='standard'] {\n gap: var(--qds-control-standard-gap-siblings-related);\n}\n\n[data-size='large'] {\n gap: var(--qds-control-large-gap-siblings-related);\n}\n\n[data-layer='main'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-large-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='subsection'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n[data-layer='popup'] {\n &[data-level='root'] .qds-tabs {\n gap: var(--qds-control-standard-gap-siblings-related);\n }\n\n &[data-level='section'] .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n }\n}\n\n:is([data-layer='panel'], [data-layer='accessory'])[data-level='root']\n .qds-tabs {\n gap: var(--qds-control-small-gap-siblings-related);\n}\n\n.qds-sr-only {\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n}\n","// SPDX-FileCopyrightText: © 2024 Schneider Electric\n//\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ComponentInterface, EventEmitter } from '@stencil/core'\nimport {\n AttachInternals,\n Component,\n Element,\n Event,\n h,\n Listen,\n Prop,\n State,\n Watch,\n} from '@stencil/core'\n\nimport {\n componentOnReady,\n HORIZONTAL_MOVE_KEYS,\n invariant,\n resolvePanelElement,\n VERTICAL_MOVE_KEYS,\n} from '../../helpers'\nimport type { IndicatorPosition } from '../icon-tab/icon-tab'\nimport type { Importance, Size } from '../shared'\nimport type { Tab } from '../tab/tab'\n\nexport type Layer = 'accessory' | 'main' | 'panel' | 'popup'\nexport type Level = 'root' | 'section' | 'subsection'\nexport type TabbarSize = Size | undefined\nexport type TabbarImportance = Exclude<Importance, 'emphasized'> | undefined\nexport type Orientation = 'horizontal' | 'vertical'\nexport type Placement = 'bottom' | 'end' | 'start' | 'top'\nexport type Alignment = 'center' | 'start'\n\ntype TabItemElement = HTMLQdsIconTabElement | HTMLQdsTabElement\n\nconst TAB_ITEM_SELECTOR = 'qds-icon-tab, qds-tab'\n\nconst TAB_SETTINGS: Record<\n string,\n Pick<Tab, 'importance' | 'indicatorPosition' | 'size'> | undefined\n> = {\n 'main-root': {\n importance: 'standard',\n size: 'large',\n indicatorPosition: 'block-end',\n },\n 'main-section': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'popup-root': {\n importance: 'standard',\n size: 'standard',\n indicatorPosition: 'block-end',\n },\n 'main-subsection': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'popup-section': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'inline-start',\n },\n 'panel-root': {\n importance: 'standard',\n size: 'small',\n indicatorPosition: 'block-start',\n },\n 'accessory-root': {\n importance: 'subdued',\n size: 'small',\n indicatorPosition: 'block-end',\n },\n}\n\nconst isTabItem = (item: unknown): item is TabItemElement => {\n if (!(item instanceof HTMLElement)) return false\n\n const tagName = item.tagName.toLowerCase()\n return tagName === 'qds-tab' || tagName === 'qds-icon-tab'\n}\n\nconst isEnabledTabItem = (item: unknown): item is TabItemElement =>\n isTabItem(item) && !item.inert && item.disabled !== true\n\nconst isTabActive = (tab: TabItemElement): boolean => tab.selected\n\nconst getTabTrigger = (tab: TabItemElement): HTMLElement =>\n (tab as TabItemElement & { tab: HTMLElement }).tab\n\nconst getPanelId = (tab: TabItemElement): string => {\n const panelElement = resolvePanelElement(tab)\n return panelElement?.id ?? ''\n}\n\n/**\n * `<qds-tabbar>` is the component that facilitates navigation between the groups\n * of related content within the page.\n * It allows users to switch between groups by clicking on Tabs without going to another page.\n */\n@Component({\n tag: 'qds-tabbar',\n shadow: { delegatesFocus: true },\n styleUrl: 'tabbar.css',\n})\nexport class Tabbar implements ComponentInterface {\n /**\n * The tabbar's layer.\n *\n * @deprecated The property layer is deprecated. Please use `size` property instead.\n * Please do not use `layer` and `size` at the same time.\n */\n @Prop() public layer?: Layer = 'main'\n\n /**\n * The tabbar's level.\n *\n * @deprecated The property level is deprecated. Please use `size` property instead.\n * Please do not use `level` and `size` at the same time.\n */\n @Prop() public level?: Level = 'root'\n\n /**\n * The tabbar's size. This controls the size of the tabs within the tabbar.\n */\n @Prop() public size?: Size = 'standard'\n\n /**\n * The tabbar's orientation.\n *\n * @deprecated Please use the `placement` property instead. Do not use\n * `orientation` and `placement` at the same time.\n */\n @Prop() public orientation?: Orientation = 'horizontal'\n\n /**\n * The tabbar's placement.\n */\n @Prop() public placement?: Placement = 'top'\n\n /**\n * the tablist Description\n */\n @Prop() public readonly tablistDescription?: string\n\n /**\n * Displays a divider line.\n */\n @Prop() public showDivider?: boolean = false\n\n /**\n * The alignment of tabs. Only applicable for horizontal orientation.\n */\n @Prop() public readonly alignment?: Alignment = 'start'\n\n /**\n * The importance of the tabbar. This controls the visual emphasis of the tabs within the tabbar.\n */\n @Prop() public importance?: TabbarImportance\n\n /**\n * Sets the active tab by panel identifier.\n * When set, navigates to the tab with the matching panel.\n */\n @Prop() public active?: string\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabShow', cancelable: false })\n private readonly showEmitter!: EventEmitter<HTMLElement>\n\n /**\n * Emitted when the user selects the tab.\n */\n @Event({ eventName: 'qdsTabHide', cancelable: false })\n private readonly hideEmitter!: EventEmitter<HTMLElement>\n\n @Element() private readonly host!: HTMLElement\n\n @AttachInternals() private readonly internals!: ElementInternals\n\n @State() private disableEndArrow = false\n\n @State() private disableStartArrow = false\n\n @State() private activeTab?: TabItemElement\n\n @State() private scrollAnnouncement = ''\n\n #tabs: TabItemElement[] = []\n\n #ro: ResizeObserver | undefined\n\n #mutationObserver?: MutationObserver\n\n #tabbar?: HTMLElement\n\n #toggleAnnouncement = false\n\n #scrollStartButton?: HTMLElement\n\n #scrollEndButton?: HTMLElement\n\n #pendingArrowFocus?: 'end' | 'start'\n\n #isInternallySettingActive = false\n\n get #computedImportance(): TabbarImportance {\n return this.importance\n }\n\n get #computedSize(): Size | undefined {\n return this.size ?? undefined\n }\n\n get #computedPlacement(): IndicatorPosition | undefined {\n switch (this.placement) {\n case 'top': {\n return 'block-end'\n }\n case 'end': {\n return 'inline-start'\n }\n case 'bottom': {\n return 'block-start'\n }\n case 'start': {\n return 'inline-end'\n }\n default: {\n return undefined\n }\n }\n }\n\n get #computeDividerVisible(): boolean {\n if (this.layer === 'panel') return false\n if (\n this.layer === 'main' &&\n this.level === 'subsection' &&\n (this.orientation === 'horizontal' || this.#isVerticalPlacement())\n )\n return false\n return this.showDivider === true\n }\n\n get #computedAriaOrientation(): Orientation {\n return this.orientation === 'vertical' || this.#isVerticalPlacement()\n ? 'vertical'\n : 'horizontal'\n }\n\n @Watch('importance')\n protected settingChanged(): void {\n this.#setTabSettings()\n }\n\n @Watch('orientation')\n @Watch('placement')\n @Watch('tablistDescription')\n protected accessibilityChanged(): void {\n this.#syncInternalsAccessibility()\n }\n\n @Listen('resize', { target: 'window' })\n protected windowResize(): void {\n this.#onViewportCrop()\n }\n\n @Watch('active')\n protected activeChanged(): void {\n if (this.#isInternallySettingActive) return\n if (this.active === undefined || this.active === '') return\n\n const tabs = this.#getTabItems()\n const nextTab = tabs.find((tab) => {\n const panelId = getPanelId(tab)\n return panelId === this.active\n })\n\n if (!nextTab || nextTab.disabled === true) return\n\n const previousTab = this.activeTab\n if (previousTab === nextTab && this.active === getPanelId(nextTab)) return\n\n this.activeTab = nextTab\n\n if (previousTab && previousTab !== nextTab) {\n this.hideEmitter.emit(previousTab)\n }\n if (previousTab !== nextTab) {\n this.showEmitter.emit(nextTab)\n }\n\n // Update tab states without triggering mutation observer\n this.#isInternallySettingActive = true\n for (const t of tabs) {\n const target = getTabTrigger(t)\n const isSelected = t === nextTab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n\n this.#switchTabPanel(nextTab)\n }\n\n public componentWillLoad(): void {\n this.settingChanged()\n this.internals.role = 'tablist'\n this.#syncInternalsAccessibility()\n const tabs = this.#getTabItems()\n const preselectedTab = tabs.find((tab) => isTabActive(tab))\n if (preselectedTab) this.#setActiveTab(preselectedTab)\n else if (tabs.length > 0) this.#setActiveTab(tabs[0])\n }\n\n public componentDidRender(): void {\n if (this.activeTab) this.#switchTabPanel(this.activeTab)\n if (this.#pendingArrowFocus === 'start' && this.disableEndArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollStartButton?.focus()\n } else if (this.#pendingArrowFocus === 'end' && this.disableStartArrow) {\n this.#pendingArrowFocus = undefined\n this.#scrollEndButton?.focus()\n }\n this.settingChanged()\n }\n\n public componentDidLoad(): void {\n invariant(this.#tabbar)\n\n this.#ro = new ResizeObserver(this.#onScroll)\n this.#ro.observe(this.#tabbar)\n\n this.#mutationObserver = new MutationObserver((mutations) => {\n this.#handleTabMutation(mutations)\n })\n this.#mutationObserver.observe(this.host, {\n attributes: true,\n attributeFilter: ['active'],\n childList: true,\n subtree: true,\n })\n }\n\n public disconnectedCallback(): void {\n this.#ro?.disconnect()\n this.#mutationObserver?.disconnect()\n }\n\n public render() {\n return (\n <div\n class={{\n 'qds-vertical-divider':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n }}\n data-layer={this.layer}\n data-level={this.level}\n data-importance={this.#computedImportance}\n >\n <span class=\"qds-sr-only\" aria-live=\"polite\">\n {this.scrollAnnouncement}\n </span>\n {this.#computeDividerVisible && this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n <div class=\"qds-tabbar\">\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show previous tab\"\n importance=\"subdued\"\n iconName=\"next\"\n iconLibrary=\"core\"\n class=\"qds-arrow-start\"\n onClick={this.#scrollToStart}\n disabled={this.disableStartArrow}\n ref={this.#scrollStartButtonRef}\n />\n </div>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n class={{\n 'qds-tabs': true,\n 'qds-vertical':\n this.orientation === 'vertical' || this.#isVerticalPlacement(),\n 'qds-centered':\n this.alignment === 'center' &&\n (this.orientation === 'horizontal' ||\n this.#isHorizontalPlacement()) &&\n this.disableEndArrow &&\n this.disableStartArrow,\n }}\n ref={(element) => {\n this.#tabbar = element\n }}\n onClick={this.#onClick}\n onKeyDown={this.#onKeyDown}\n onMouseDown={this.#onMouseDown}\n onScroll={this.#onScroll}\n >\n <slot onSlotchange={this.#onSlotchange} />\n </div>\n <div\n class={{\n 'qds-align-center': true,\n 'qds-hidden':\n (this.disableEndArrow && this.disableStartArrow) ||\n this.orientation === 'vertical' ||\n this.#isVerticalPlacement(),\n }}\n >\n <qds-icon-button\n aria-label=\"show next tab\"\n iconName=\"next\"\n iconLibrary=\"core\"\n importance=\"subdued\"\n onClick={this.#scrollToEnd}\n disabled={this.disableEndArrow}\n ref={this.#scrollEndButtonRef}\n />\n </div>\n </div>\n {this.#computeDividerVisible && !this.#isEndOrBottomPlacement() && (\n <qds-divider\n vertical={\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n }\n />\n )}\n </div>\n )\n }\n\n #getTabItems(): TabItemElement[] {\n return [\n ...this.host.querySelectorAll<HTMLElement>(TAB_ITEM_SELECTOR),\n ].filter((element): element is TabItemElement => isTabItem(element))\n }\n\n #announceScroll(direction: 'next' | 'previous'): void {\n const text =\n direction === 'next' ? 'Next tabs showed' : 'Previous tabs showed'\n this.#toggleAnnouncement = !this.#toggleAnnouncement\n this.scrollAnnouncement = text + (this.#toggleAnnouncement ? '' : '.')\n }\n\n readonly #scrollToStart = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'end'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft + this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft - this.#tabbar.clientWidth,\n })\n this.#announceScroll('previous')\n }\n\n readonly #scrollToEnd = (): void => {\n invariant(this.#tabbar)\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.#pendingArrowFocus = 'start'\n this.#tabbar.scroll({\n left: isRTL\n ? this.#tabbar.scrollLeft - this.#tabbar.clientWidth\n : this.#tabbar.scrollLeft + this.#tabbar.clientWidth,\n })\n this.#announceScroll('next')\n }\n\n #setActiveTab(tab: TabItemElement): void {\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n this.#isInternallySettingActive = true\n this.active = panelId\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n this.#isInternallySettingActive = false\n }\n\n #handleTabMutation(mutations: MutationRecord[]): void {\n if (this.#isInternallySettingActive) return\n\n const activeTab = mutations\n .map((m) => m.target)\n .find(\n (target): target is TabItemElement =>\n target instanceof HTMLElement && isTabItem(target) && target.selected,\n )\n\n if (activeTab) {\n this.#setActiveTab(activeTab)\n }\n }\n\n #activateTab(tab: TabItemElement): void {\n const previousTab = this.activeTab\n if (previousTab === tab) return\n\n this.activeTab = tab\n const panelId = getPanelId(tab)\n\n if (previousTab) {\n this.hideEmitter.emit(previousTab)\n }\n this.showEmitter.emit(tab)\n this.#setCurrentTab(tab)\n this.#switchTabPanel(tab)\n\n // Set active property without triggering watcher events again\n this.#isInternallySettingActive = true\n this.active = panelId\n this.#isInternallySettingActive = false\n\n for (const t of this.#getTabItems()) {\n const target = getTabTrigger(t)\n const isSelected = t === tab\n t.selected = isSelected\n if (target instanceof globalThis.Element)\n target.ariaSelected = isSelected.toString()\n }\n }\n\n #switchTabPanel(activeTab: TabItemElement): void {\n for (const tab of this.#tabs) {\n const panel = resolvePanelElement(tab)\n if (panel) {\n panel.hidden = tab !== activeTab\n }\n }\n }\n\n #getCurrentTab(): TabItemElement | undefined {\n return this.#tabs.find(\n (tab) => getTabTrigger(tab).getAttribute('tabindex') === '0',\n )\n }\n\n #setCurrentTab(tab: TabItemElement): void {\n for (const t of this.#tabs) {\n const isCurrent = t === tab\n\n componentOnReady(t, (element: TabItemElement | undefined) => {\n const target = element ? getTabTrigger(element) : undefined\n if (target === undefined) return\n const isDisabled = target.getAttribute('aria-disabled') === 'true'\n const shouldActivateTab = isCurrent && !isDisabled\n const tabindex = shouldActivateTab ? '0' : '-1'\n target.setAttribute('tabindex', tabindex)\n if (shouldActivateTab) this.#activateTab(t)\n })\n }\n }\n\n readonly #isVerticalPlacement = (): boolean =>\n this.placement === 'start' || this.placement === 'end'\n\n readonly #isHorizontalPlacement = (): boolean =>\n this.placement === 'top' || this.placement === 'bottom'\n\n readonly #isEndOrBottomPlacement = (): boolean =>\n this.placement === 'end' || this.placement === 'bottom'\n\n readonly #onClick = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (!isEnabledTabItem(tab)) return\n\n this.#activateTab(tab)\n }\n\n readonly #onKeyDown = (event: KeyboardEvent): void => {\n const isVertical =\n this.orientation === 'vertical' || this.#isVerticalPlacement()\n const MOVE_SELECTION_KEYS = isVertical\n ? VERTICAL_MOVE_KEYS\n : HORIZONTAL_MOVE_KEYS\n if (!MOVE_SELECTION_KEYS.has(event.key)) return\n\n const tabs = this.#tabs\n if (tabs.length === 0) return\n\n event.preventDefault()\n event.stopPropagation()\n\n const activeTab = this.#getCurrentTab()\n let index = activeTab ? tabs.indexOf(activeTab) : 0\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n\n let nextTab: TabItemElement | undefined\n do {\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp': {\n index = (isRTL ? index < tabs.length - 1 : index > 0)\n ? index - (isRTL ? -1 : 1)\n : isRTL\n ? 0\n : tabs.length - 1\n break\n }\n case 'ArrowRight':\n case 'ArrowDown': {\n index = (isRTL ? index > 0 : index < tabs.length - 1)\n ? index + (isRTL ? -1 : 1)\n : isRTL\n ? tabs.length - 1\n : 0\n break\n }\n case 'Home': {\n index = isRTL ? tabs.length - 1 : 0\n break\n }\n case 'End': {\n index = isRTL ? 0 : tabs.length - 1\n break\n }\n default:\n }\n nextTab = tabs[index]\n } while (nextTab.disabled === true)\n\n this.#setCurrentTab(nextTab)\n\n const target = getTabTrigger(nextTab)\n target.focus({ preventScroll: true })\n if (!isVertical) target.scrollIntoView()\n this.#activateTab(nextTab)\n }\n\n readonly #onMouseDown = (event: MouseEvent): void => {\n const { target } = event\n if (!(target instanceof HTMLElement)) return\n\n const tab = target.closest(TAB_ITEM_SELECTOR)\n if (isEnabledTabItem(tab)) this.#setCurrentTab(tab)\n }\n\n readonly #onScroll = (): void => {\n if (!this.#tabbar) return\n\n const { clientWidth, scrollWidth, scrollLeft } = this.#tabbar\n\n const isRTL = globalThis.getComputedStyle(this.host).direction === 'rtl'\n this.disableStartArrow = scrollLeft === 0\n this.disableEndArrow = isRTL\n ? scrollWidth + scrollLeft <= clientWidth\n : scrollWidth - clientWidth - scrollLeft <= 1\n }\n\n readonly #onViewportCrop = (): void => {\n if (!this.#tabbar) return\n\n const { scrollWidth, clientWidth } = this.#tabbar\n\n if (scrollWidth > clientWidth) {\n this.#onScroll()\n }\n }\n\n #syncInternalsAccessibility(): void {\n this.internals.ariaOrientation = this.#computedAriaOrientation\n this.internals.ariaLabel = this.tablistDescription ?? ''\n }\n\n #updateTabsCache(): void {\n const slot = this.host.shadowRoot?.querySelector('slot')\n this.#tabs = slot\n ? [...slot.assignedElements({ flatten: true })].filter(\n (element): element is TabItemElement => isEnabledTabItem(element),\n )\n : []\n }\n\n #setTabSettings(): void {\n const settings = TAB_SETTINGS[`${this.layer}-${this.level}`]\n if (!settings) return\n\n for (const tab of this.#getTabItems()) {\n tab.importance = this.#computedImportance ?? settings.importance\n tab.size = this.#computedSize ?? settings.size\n\n tab.indicatorPosition =\n this.orientation === 'vertical'\n ? 'inline-end'\n : (this.#computedPlacement ?? settings.indicatorPosition)\n }\n }\n\n readonly #onSlotchange = (): void => {\n this.#updateTabsCache()\n\n if (this.#tabs.length > 0) this.#setCurrentTab(this.#tabs[0])\n\n this.#onViewportCrop()\n }\n\n readonly #scrollEndButtonRef = (button?: HTMLElement): void => {\n this.#scrollEndButton = button\n }\n\n readonly #scrollStartButtonRef = (button?: HTMLElement): void => {\n this.#scrollStartButton = button\n }\n}\n"],"names":[],"mappings":"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"}