@six-group/ui-library 3.0.0-beta.1.7 → 3.0.0-beta.1.8

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 (367) hide show
  1. package/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +38 -38
  2. package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +35 -35
  3. package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +40 -40
  4. package/dist/cjs/{form-control-9e4dffd1.js → form-control-866bbece.js} +25 -25
  5. package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +41 -41
  6. package/dist/cjs/{popover-e3781f5a.js → popover-1d2a037c.js} +95 -95
  7. package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +57 -57
  8. package/dist/cjs/set-attributes_2.cjs.entry.js +57 -57
  9. package/dist/cjs/six-alert.cjs.entry.js +131 -131
  10. package/dist/cjs/six-avatar.cjs.entry.js +28 -28
  11. package/dist/cjs/six-badge.cjs.entry.js +26 -26
  12. package/dist/cjs/six-button.cjs.entry.js +97 -97
  13. package/dist/cjs/six-card.cjs.entry.js +8 -8
  14. package/dist/cjs/six-checkbox.cjs.entry.js +152 -152
  15. package/dist/cjs/six-datepicker.cjs.entry.js +1189 -1189
  16. package/dist/cjs/six-details.cjs.entry.js +139 -139
  17. package/dist/cjs/six-dialog.cjs.entry.js +152 -152
  18. package/dist/cjs/six-drawer.cjs.entry.js +174 -174
  19. package/dist/cjs/six-dropdown_3.cjs.entry.js +728 -728
  20. package/dist/cjs/six-error-page.cjs.entry.js +94 -94
  21. package/dist/cjs/six-file-list-item.cjs.entry.js +38 -38
  22. package/dist/cjs/six-file-list.cjs.entry.js +8 -8
  23. package/dist/cjs/six-file-upload.cjs.entry.js +96 -96
  24. package/dist/cjs/six-footer.cjs.entry.js +8 -8
  25. package/dist/cjs/six-form.cjs.entry.js +219 -219
  26. package/dist/cjs/six-group-label.cjs.entry.js +46 -46
  27. package/dist/cjs/six-header.cjs.entry.js +149 -149
  28. package/dist/cjs/six-icon-button.cjs.entry.js +33 -33
  29. package/dist/cjs/six-icon.cjs.entry.js +24 -24
  30. package/dist/cjs/six-input.cjs.entry.js +230 -230
  31. package/dist/cjs/six-item-picker.cjs.entry.js +361 -361
  32. package/dist/cjs/six-language-switcher.cjs.entry.js +52 -52
  33. package/dist/cjs/six-layout-grid.cjs.entry.js +19 -19
  34. package/dist/cjs/six-main-container.cjs.entry.js +11 -11
  35. package/dist/cjs/six-menu-divider.cjs.entry.js +8 -8
  36. package/dist/cjs/six-menu-label.cjs.entry.js +8 -8
  37. package/dist/cjs/six-picto.cjs.entry.js +15 -15
  38. package/dist/cjs/six-progress-bar.cjs.entry.js +17 -17
  39. package/dist/cjs/six-progress-ring.cjs.entry.js +31 -31
  40. package/dist/cjs/six-radio.cjs.entry.js +121 -121
  41. package/dist/cjs/six-range.cjs.entry.js +198 -198
  42. package/dist/cjs/six-root.cjs.entry.js +34 -34
  43. package/dist/cjs/six-search-field.cjs.entry.js +43 -43
  44. package/dist/cjs/six-select.cjs.entry.js +447 -447
  45. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +42 -42
  46. package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -18
  47. package/dist/cjs/six-sidebar.cjs.entry.js +171 -171
  48. package/dist/cjs/six-spinner.cjs.entry.js +16 -16
  49. package/dist/cjs/six-switch.cjs.entry.js +100 -100
  50. package/dist/cjs/six-tab-group.cjs.entry.js +226 -226
  51. package/dist/cjs/six-tab-panel.cjs.entry.js +17 -17
  52. package/dist/cjs/six-tab.cjs.entry.js +42 -42
  53. package/dist/cjs/six-table-cell_4.cjs.entry.js +70 -70
  54. package/dist/cjs/six-table.cjs.entry.js +145 -145
  55. package/dist/cjs/six-tag.cjs.entry.js +40 -40
  56. package/dist/cjs/six-textarea.cjs.entry.js +211 -211
  57. package/dist/cjs/six-tile.cjs.entry.js +89 -89
  58. package/dist/cjs/six-timepicker.cjs.entry.js +489 -489
  59. package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +43 -43
  60. package/dist/cjs/six-tooltip.cjs.entry.js +172 -172
  61. package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +42 -42
  62. package/dist/cjs/{types-65e5c95b.js → types-581e8ff0.js} +12 -12
  63. package/dist/cjs/{types-0c28e484.js → types-64878648.js} +12 -12
  64. package/dist/collection/components/six-alert/six-alert.js +366 -366
  65. package/dist/collection/components/six-avatar/six-avatar.js +131 -131
  66. package/dist/collection/components/six-badge/six-badge.js +101 -101
  67. package/dist/collection/components/six-button/six-button.js +466 -466
  68. package/dist/collection/components/six-card/six-card.js +21 -21
  69. package/dist/collection/components/six-checkbox/six-checkbox.js +550 -550
  70. package/dist/collection/components/six-datepicker/components/day-selection.js +13 -13
  71. package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
  72. package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
  73. package/dist/collection/components/six-datepicker/six-date-formats.js +23 -23
  74. package/dist/collection/components/six-datepicker/six-datepicker.js +1343 -1343
  75. package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +16 -16
  76. package/dist/collection/components/six-details/six-details.js +432 -432
  77. package/dist/collection/components/six-dialog/six-dialog.js +401 -401
  78. package/dist/collection/components/six-drawer/six-drawer.js +458 -458
  79. package/dist/collection/components/six-dropdown/six-dropdown.js +939 -939
  80. package/dist/collection/components/six-error-page/six-error-page.js +199 -199
  81. package/dist/collection/components/six-file-list/six-file-list.js +20 -20
  82. package/dist/collection/components/six-file-list-item/six-file-list-item.js +203 -203
  83. package/dist/collection/components/six-file-upload/six-file-upload.js +272 -272
  84. package/dist/collection/components/six-footer/six-footer.js +21 -21
  85. package/dist/collection/components/six-form/six-form.js +408 -408
  86. package/dist/collection/components/six-group-label/six-group-label.js +166 -166
  87. package/dist/collection/components/six-header/six-header.js +420 -420
  88. package/dist/collection/components/six-icon/six-icon.js +77 -77
  89. package/dist/collection/components/six-icon-button/six-icon-button.js +142 -142
  90. package/dist/collection/components/six-input/six-input.js +1141 -1141
  91. package/dist/collection/components/six-item-picker/six-item-picker.js +688 -688
  92. package/dist/collection/components/six-item-picker/types.js +13 -13
  93. package/dist/collection/components/six-language-switcher/six-language-switcher.js +128 -128
  94. package/dist/collection/components/six-layout-grid/six-layout-grid.js +52 -52
  95. package/dist/collection/components/six-main-container/six-main-container.js +53 -53
  96. package/dist/collection/components/six-menu/six-menu.js +406 -406
  97. package/dist/collection/components/six-menu-divider/six-menu-divider.js +22 -22
  98. package/dist/collection/components/six-menu-item/six-menu-item.js +177 -177
  99. package/dist/collection/components/six-menu-label/six-menu-label.js +25 -25
  100. package/dist/collection/components/six-picto/six-picto.js +50 -50
  101. package/dist/collection/components/six-progress-bar/six-progress-bar.js +77 -77
  102. package/dist/collection/components/six-progress-ring/six-progress-ring.js +111 -111
  103. package/dist/collection/components/six-radio/six-radio.js +410 -410
  104. package/dist/collection/components/six-range/six-range.js +620 -620
  105. package/dist/collection/components/six-root/six-root.js +167 -167
  106. package/dist/collection/components/six-search-field/six-search-field.js +171 -171
  107. package/dist/collection/components/six-select/six-select.js +1105 -1105
  108. package/dist/collection/components/six-sidebar/six-sidebar.js +455 -455
  109. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +89 -89
  110. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +158 -158
  111. package/dist/collection/components/six-spinner/six-spinner.js +55 -55
  112. package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +46 -46
  113. package/dist/collection/components/six-switch/six-switch.js +393 -393
  114. package/dist/collection/components/six-tab/six-tab.js +198 -198
  115. package/dist/collection/components/six-tab-group/six-tab-group.js +362 -362
  116. package/dist/collection/components/six-tab-panel/six-tab-panel.js +75 -75
  117. package/dist/collection/components/six-table/six-table.js +209 -209
  118. package/dist/collection/components/six-table/test/helpers.js +13 -13
  119. package/dist/collection/components/six-table/types.js +8 -8
  120. package/dist/collection/components/six-table/util/filter-by.js +34 -34
  121. package/dist/collection/components/six-table/util/from-data.js +33 -33
  122. package/dist/collection/components/six-table/util/is.js +3 -3
  123. package/dist/collection/components/six-table/util/quick-filter-by.js +13 -13
  124. package/dist/collection/components/six-table/util/sort-by.js +25 -25
  125. package/dist/collection/components/six-table-cell/six-table-cell.js +21 -21
  126. package/dist/collection/components/six-table-header/six-table-header.js +21 -21
  127. package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
  128. package/dist/collection/components/six-table-header-cell/icons.js +12 -12
  129. package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +174 -174
  130. package/dist/collection/components/six-table-header-cell/types.js +13 -13
  131. package/dist/collection/components/six-table-header-cell/util/create-model.js +6 -6
  132. package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
  133. package/dist/collection/components/six-table-row/six-table-row.js +21 -21
  134. package/dist/collection/components/six-tag/six-tag.js +157 -157
  135. package/dist/collection/components/six-textarea/six-textarea.js +912 -912
  136. package/dist/collection/components/six-tile/six-tile.js +315 -315
  137. package/dist/collection/components/six-timepicker/six-time-format.js +14 -14
  138. package/dist/collection/components/six-timepicker/six-timepicker.js +980 -980
  139. package/dist/collection/components/six-timepicker/six-timepicker.types.js +40 -40
  140. package/dist/collection/components/six-tooltip/six-tooltip.js +435 -435
  141. package/dist/collection/functional-components/form-control/form-control.js +28 -28
  142. package/dist/collection/index.js +1 -1
  143. package/dist/collection/testUtil/delay.js +3 -3
  144. package/dist/collection/utils/as-array.js +1 -1
  145. package/dist/collection/utils/date-util.js +712 -712
  146. package/dist/collection/utils/event-listeners.js +39 -39
  147. package/dist/collection/utils/execution-control.js +38 -38
  148. package/dist/collection/utils/focus-visible.js +41 -41
  149. package/dist/collection/utils/matchers.js +2 -2
  150. package/dist/collection/utils/modal.js +28 -28
  151. package/dist/collection/utils/offset.js +13 -13
  152. package/dist/collection/utils/popover.js +113 -113
  153. package/dist/collection/utils/scroll.js +47 -47
  154. package/dist/collection/utils/slot.js +59 -59
  155. package/dist/collection/utils/support.js +15 -15
  156. package/dist/collection/utils/tabbable.js +22 -22
  157. package/dist/collection/utils/testing.js +38 -38
  158. package/dist/collection/utils/time.util.js +74 -74
  159. package/dist/collection/utils/type-check.js +5 -5
  160. package/dist/collection/utils/types.js +1 -1
  161. package/dist/collection/wrappers/set-attributes/set-attributes.js +68 -68
  162. package/dist/components.json +1 -1
  163. package/dist/custom-elements/index.js +7595 -7595
  164. package/dist/esm/{event-listeners-1bef934e.js → event-listeners-570a24ea.js} +38 -38
  165. package/dist/esm/{execution-control-235f5126.js → execution-control-1a60d709.js} +35 -35
  166. package/dist/esm/{focus-visible-4b7946aa.js → focus-visible-97933ea9.js} +40 -40
  167. package/dist/esm/{form-control-17478ad2.js → form-control-24f446af.js} +25 -25
  168. package/dist/esm/{modal-e5709f6b.js → modal-5ebdc320.js} +41 -41
  169. package/dist/esm/polyfills/core-js.js +0 -0
  170. package/dist/esm/polyfills/dom.js +0 -0
  171. package/dist/esm/polyfills/es5-html-element.js +0 -0
  172. package/dist/esm/polyfills/index.js +0 -0
  173. package/dist/esm/polyfills/system.js +0 -0
  174. package/dist/esm/{popover-5a51f84d.js → popover-1c7a1139.js} +95 -95
  175. package/dist/esm/{scroll-99b214c2.js → scroll-180b53fd.js} +57 -57
  176. package/dist/esm/set-attributes_2.entry.js +57 -57
  177. package/dist/esm/six-alert.entry.js +131 -131
  178. package/dist/esm/six-avatar.entry.js +28 -28
  179. package/dist/esm/six-badge.entry.js +26 -26
  180. package/dist/esm/six-button.entry.js +97 -97
  181. package/dist/esm/six-card.entry.js +8 -8
  182. package/dist/esm/six-checkbox.entry.js +152 -152
  183. package/dist/esm/six-datepicker.entry.js +1189 -1189
  184. package/dist/esm/six-details.entry.js +139 -139
  185. package/dist/esm/six-dialog.entry.js +152 -152
  186. package/dist/esm/six-drawer.entry.js +174 -174
  187. package/dist/esm/six-dropdown_3.entry.js +728 -728
  188. package/dist/esm/six-error-page.entry.js +94 -94
  189. package/dist/esm/six-file-list-item.entry.js +38 -38
  190. package/dist/esm/six-file-list.entry.js +8 -8
  191. package/dist/esm/six-file-upload.entry.js +96 -96
  192. package/dist/esm/six-footer.entry.js +8 -8
  193. package/dist/esm/six-form.entry.js +219 -219
  194. package/dist/esm/six-group-label.entry.js +46 -46
  195. package/dist/esm/six-header.entry.js +149 -149
  196. package/dist/esm/six-icon-button.entry.js +33 -33
  197. package/dist/esm/six-icon.entry.js +24 -24
  198. package/dist/esm/six-input.entry.js +230 -230
  199. package/dist/esm/six-item-picker.entry.js +361 -361
  200. package/dist/esm/six-language-switcher.entry.js +52 -52
  201. package/dist/esm/six-layout-grid.entry.js +19 -19
  202. package/dist/esm/six-main-container.entry.js +11 -11
  203. package/dist/esm/six-menu-divider.entry.js +8 -8
  204. package/dist/esm/six-menu-label.entry.js +8 -8
  205. package/dist/esm/six-picto.entry.js +15 -15
  206. package/dist/esm/six-progress-bar.entry.js +17 -17
  207. package/dist/esm/six-progress-ring.entry.js +31 -31
  208. package/dist/esm/six-radio.entry.js +121 -121
  209. package/dist/esm/six-range.entry.js +198 -198
  210. package/dist/esm/six-root.entry.js +34 -34
  211. package/dist/esm/six-search-field.entry.js +43 -43
  212. package/dist/esm/six-select.entry.js +447 -447
  213. package/dist/esm/six-sidebar-item-group.entry.js +42 -42
  214. package/dist/esm/six-sidebar-item.entry.js +18 -18
  215. package/dist/esm/six-sidebar.entry.js +171 -171
  216. package/dist/esm/six-spinner.entry.js +16 -16
  217. package/dist/esm/six-switch.entry.js +100 -100
  218. package/dist/esm/six-tab-group.entry.js +226 -226
  219. package/dist/esm/six-tab-panel.entry.js +17 -17
  220. package/dist/esm/six-tab.entry.js +42 -42
  221. package/dist/esm/six-table-cell_4.entry.js +70 -70
  222. package/dist/esm/six-table.entry.js +145 -145
  223. package/dist/esm/six-tag.entry.js +40 -40
  224. package/dist/esm/six-textarea.entry.js +211 -211
  225. package/dist/esm/six-tile.entry.js +89 -89
  226. package/dist/esm/six-timepicker.entry.js +489 -489
  227. package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +43 -43
  228. package/dist/esm/six-tooltip.entry.js +172 -172
  229. package/dist/esm/{slot-5253e199.js → slot-6f3984c7.js} +42 -42
  230. package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +12 -12
  231. package/dist/esm/{types-33d15673.js → types-ed860f7c.js} +12 -12
  232. package/dist/types/components/six-alert/six-alert.d.ts +60 -60
  233. package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
  234. package/dist/types/components/six-badge/six-badge.d.ts +20 -20
  235. package/dist/types/components/six-button/six-button.d.ts +69 -69
  236. package/dist/types/components/six-card/six-card.d.ts +9 -9
  237. package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
  238. package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
  239. package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
  240. package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
  241. package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
  242. package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
  243. package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
  244. package/dist/types/components/six-details/six-details.d.ts +61 -61
  245. package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
  246. package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
  247. package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
  248. package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
  249. package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
  250. package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
  251. package/dist/types/components/six-file-upload/six-file-upload.d.ts +42 -42
  252. package/dist/types/components/six-footer/six-footer.d.ts +9 -9
  253. package/dist/types/components/six-form/six-form.d.ts +69 -69
  254. package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
  255. package/dist/types/components/six-header/six-header.d.ts +90 -90
  256. package/dist/types/components/six-icon/six-icon.d.ts +13 -13
  257. package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
  258. package/dist/types/components/six-input/six-input.d.ts +165 -165
  259. package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
  260. package/dist/types/components/six-item-picker/types.d.ts +11 -11
  261. package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
  262. package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
  263. package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
  264. package/dist/types/components/six-menu/six-menu.d.ts +81 -81
  265. package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
  266. package/dist/types/components/six-menu-item/six-menu-item.d.ts +36 -36
  267. package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
  268. package/dist/types/components/six-picto/six-picto.d.ts +14 -14
  269. package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
  270. package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
  271. package/dist/types/components/six-radio/six-radio.d.ts +66 -66
  272. package/dist/types/components/six-range/six-range.d.ts +101 -101
  273. package/dist/types/components/six-root/six-root.d.ts +34 -34
  274. package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
  275. package/dist/types/components/six-select/six-select.d.ts +163 -163
  276. package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
  277. package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
  278. package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
  279. package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
  280. package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
  281. package/dist/types/components/six-switch/six-switch.d.ts +62 -62
  282. package/dist/types/components/six-tab/six-tab.d.ts +35 -35
  283. package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
  284. package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
  285. package/dist/types/components/six-table/six-table.d.ts +30 -30
  286. package/dist/types/components/six-table/test/helpers.d.ts +2 -2
  287. package/dist/types/components/six-table/types.d.ts +33 -33
  288. package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
  289. package/dist/types/components/six-table/util/from-data.d.ts +8 -8
  290. package/dist/types/components/six-table/util/is.d.ts +3 -3
  291. package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
  292. package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
  293. package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
  294. package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
  295. package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
  296. package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
  297. package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
  298. package/dist/types/components/six-table-header-cell/types.d.ts +11 -11
  299. package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
  300. package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
  301. package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
  302. package/dist/types/components/six-tag/six-tag.d.ts +30 -30
  303. package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
  304. package/dist/types/components/six-tile/six-tile.d.ts +40 -40
  305. package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
  306. package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
  307. package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
  308. package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
  309. package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
  310. package/dist/types/index.d.ts +1 -1
  311. package/dist/types/testUtil/delay.d.ts +1 -1
  312. package/dist/types/utils/as-array.d.ts +1 -1
  313. package/dist/types/utils/date-util.d.ts +194 -194
  314. package/dist/types/utils/event-listeners.d.ts +15 -15
  315. package/dist/types/utils/execution-control.d.ts +26 -26
  316. package/dist/types/utils/focus-visible.d.ts +6 -6
  317. package/dist/types/utils/matchers.d.ts +2 -2
  318. package/dist/types/utils/modal.d.ts +13 -13
  319. package/dist/types/utils/offset.d.ts +4 -4
  320. package/dist/types/utils/popover.d.ts +27 -27
  321. package/dist/types/utils/scroll.d.ts +3 -3
  322. package/dist/types/utils/slot.d.ts +9 -9
  323. package/dist/types/utils/support.d.ts +1 -1
  324. package/dist/types/utils/tabbable.d.ts +2 -2
  325. package/dist/types/utils/testing.d.ts +2 -2
  326. package/dist/types/utils/time.util.d.ts +10 -10
  327. package/dist/types/utils/type-check.d.ts +4 -4
  328. package/dist/types/utils/types.d.ts +4 -4
  329. package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
  330. package/dist/ui-library/{p-a8c225f2.entry.js → p-007bc8e8.entry.js} +1 -1
  331. package/dist/ui-library/{p-f9c0cfb7.entry.js → p-044b784e.entry.js} +1 -1
  332. package/dist/ui-library/{p-c733dead.js → p-0786fa7c.js} +0 -0
  333. package/dist/ui-library/{p-12cc24c3.js → p-07d1e830.js} +0 -0
  334. package/dist/ui-library/{p-48ea4419.entry.js → p-09cb13fa.entry.js} +1 -1
  335. package/dist/ui-library/{p-e96dcf96.entry.js → p-0c596054.entry.js} +1 -1
  336. package/dist/ui-library/{p-a77a6442.entry.js → p-1b8dc7b7.entry.js} +1 -1
  337. package/dist/ui-library/{p-68d31736.js → p-25a3bf57.js} +0 -0
  338. package/dist/ui-library/{p-ebaea182.entry.js → p-281e8c2d.entry.js} +1 -1
  339. package/dist/ui-library/{p-9f2dc381.entry.js → p-2924f82f.entry.js} +1 -1
  340. package/dist/ui-library/{p-ea1fcff2.entry.js → p-2d7ed407.entry.js} +1 -1
  341. package/dist/ui-library/{p-89f68e76.entry.js → p-4162dcdd.entry.js} +1 -1
  342. package/dist/ui-library/{p-6f67f986.entry.js → p-4d3a4e93.entry.js} +1 -1
  343. package/dist/ui-library/{p-8bd0873f.entry.js → p-4ed023b8.entry.js} +1 -1
  344. package/dist/ui-library/{p-af3d757c.js → p-4f8394d7.js} +0 -0
  345. package/dist/ui-library/{p-1b92cc7a.entry.js → p-530ea6ec.entry.js} +1 -1
  346. package/dist/ui-library/{p-19543c96.entry.js → p-531ab886.entry.js} +1 -1
  347. package/dist/ui-library/{p-fdb455d7.entry.js → p-54c48654.entry.js} +1 -1
  348. package/dist/ui-library/{p-c948d3db.entry.js → p-55c64cbc.entry.js} +1 -1
  349. package/dist/ui-library/{p-1c9f0dc6.js → p-5f1c6a5f.js} +0 -0
  350. package/dist/ui-library/{p-60491176.entry.js → p-675a8243.entry.js} +1 -1
  351. package/dist/ui-library/{p-b9fb8455.entry.js → p-6d622ed0.entry.js} +1 -1
  352. package/dist/ui-library/{p-572e3690.js → p-75297ad7.js} +0 -0
  353. package/dist/ui-library/{p-2ff97cdf.entry.js → p-90b26447.entry.js} +1 -1
  354. package/dist/ui-library/{p-fcd2356c.entry.js → p-93945629.entry.js} +1 -1
  355. package/dist/ui-library/{p-7735d99f.js → p-9a860acc.js} +0 -0
  356. package/dist/ui-library/{p-4cc01afc.entry.js → p-aa37e45a.entry.js} +1 -1
  357. package/dist/ui-library/{p-191f958b.js → p-b1e66136.js} +0 -0
  358. package/dist/ui-library/{p-c09dc3a9.js → p-b4dfb7cf.js} +0 -0
  359. package/dist/ui-library/{p-968c5169.entry.js → p-c24292b3.entry.js} +1 -1
  360. package/dist/ui-library/{p-ed21cc57.entry.js → p-cd79de73.entry.js} +1 -1
  361. package/dist/ui-library/{p-34e6d8e8.js → p-d12c6092.js} +0 -0
  362. package/dist/ui-library/{p-f0e91e17.entry.js → p-d28ac80a.entry.js} +1 -1
  363. package/dist/ui-library/{p-5ead7b2f.entry.js → p-d837e5a8.entry.js} +1 -1
  364. package/dist/ui-library/{p-ec1ecc2a.entry.js → p-dd3cae68.entry.js} +1 -1
  365. package/dist/ui-library/{p-044c6bf9.js → p-eb8f05a9.js} +0 -0
  366. package/dist/ui-library/ui-library.esm.js +1 -1
  367. package/package.json +1 -1
@@ -1,362 +1,362 @@
1
- import { Component, Element, Event, Method, Prop, State, Watch, h } from '@stencil/core';
2
- import { getOffset } from '../../utils/offset';
3
- import { scrollIntoView } from '../../utils/scroll';
4
- import { focusVisible } from '../../utils/focus-visible';
5
- /**
6
- * @since 1.0
7
- * @status stable
8
- *
9
- * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
10
- *
11
- * @slot nav - Used for grouping tabs in the tab group.
12
- * @slot - Used for grouping tab panels in the tab group.
13
- *
14
- * @part base - The component's base wrapper.
15
- * @part nav - The tab group navigation container.
16
- * @part tabs - The container that wraps the slotted tabs.
17
- * @part active-tab-indicator - An element that displays the currently selected tab. This is a child of the tabs container.
18
- * @part body - The tab group body where tab panels are slotted in.
19
- * @part scroll-button - The previous and next scroll buttons that appear when tabs are scrollable.
20
- */
21
- export class SixTabGroup {
22
- constructor() {
23
- this.hasScrollControls = false;
24
- /** The placement of the tabs. */
25
- this.placement = 'top';
26
- /** Disables the scroll arrows that appear when tabs overflow. */
27
- this.noScrollControls = false;
28
- }
29
- handlePlacementChange() {
30
- this.syncActiveTabIndicator();
31
- }
32
- handleNoScrollControlsChange() {
33
- this.updateScrollControls();
34
- }
35
- connectedCallback() {
36
- this.handleClick = this.handleClick.bind(this);
37
- this.handleKeyDown = this.handleKeyDown.bind(this);
38
- this.handleScrollLeft = this.handleScrollLeft.bind(this);
39
- this.handleScrollRight = this.handleScrollRight.bind(this);
40
- this.syncActiveTabIndicator = this.syncActiveTabIndicator.bind(this);
41
- }
42
- componentDidLoad() {
43
- // Set initial tab state when the tabs first become visible
44
- const observer = new IntersectionObserver((entries, observer) => {
45
- if (entries[0].intersectionRatio > 0) {
46
- this.setAriaLabels();
47
- this.setActiveTab(this.getActiveTab() || this.getAllTabs()[0], false);
48
- observer.unobserve(entries[0].target);
49
- }
50
- });
51
- observer.observe(this.host);
52
- focusVisible.observe(this.tabGroup);
53
- this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());
54
- this.resizeObserver.observe(this.nav);
55
- requestAnimationFrame(() => this.updateScrollControls());
56
- // Update aria labels if the DOM changes
57
- this.mutationObserver = new MutationObserver((mutations) => {
58
- if (mutations.some((mutation) => {
59
- return !['aria-labelledby', 'aria-controls'].includes(mutation.attributeName);
60
- })) {
61
- setTimeout(() => this.setAriaLabels());
62
- }
63
- });
64
- this.mutationObserver.observe(this.host, { attributes: true, childList: true, subtree: true });
65
- }
66
- disconnectedCallback() {
67
- this.mutationObserver.disconnect();
68
- focusVisible.unobserve(this.tabGroup);
69
- this.resizeObserver.unobserve(this.nav);
70
- }
71
- /** Shows the specified tab panel. */
72
- async show(panel) {
73
- const tabs = this.getAllTabs();
74
- const tab = tabs.find((el) => el.panel === panel);
75
- if (tab) {
76
- this.setActiveTab(tab);
77
- }
78
- }
79
- getAllTabs(includeDisabled = false) {
80
- const slot = this.tabs.querySelector('slot');
81
- return [...slot.assignedElements()].filter((el) => {
82
- return includeDisabled
83
- ? el.tagName.toLowerCase() === 'six-tab'
84
- : el.tagName.toLowerCase() === 'six-tab' && !el.disabled;
85
- });
86
- }
87
- getAllPanels() {
88
- const slot = this.body.querySelector('slot');
89
- return [...slot.assignedElements()].filter((el) => el.tagName.toLowerCase() === 'six-tab-panel');
90
- }
91
- getActiveTab() {
92
- return this.getAllTabs().find((el) => el.active);
93
- }
94
- handleClick(event) {
95
- const target = event.target;
96
- const tab = target.closest('six-tab');
97
- const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
98
- // Ensure the target tab is in this tab group
99
- if (tabGroup !== this.host) {
100
- return false;
101
- }
102
- if (tab) {
103
- this.setActiveTab(tab);
104
- }
105
- }
106
- handleKeyDown(event) {
107
- const target = event.target;
108
- const tab = target.closest('six-tab');
109
- const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
110
- // Ensure the target tab is in this tab group
111
- if (tabGroup !== this.host) {
112
- return false;
113
- }
114
- // Activate a tab
115
- if (['Enter', ' '].includes(event.key)) {
116
- if (tab) {
117
- this.setActiveTab(tab);
118
- event.preventDefault();
119
- }
120
- }
121
- // Move focus left or right
122
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
123
- const activeEl = document.activeElement;
124
- if (activeEl && activeEl.tagName.toLowerCase() === 'six-tab') {
125
- const tabs = this.getAllTabs();
126
- let index = tabs.indexOf(activeEl);
127
- if (event.key === 'Home') {
128
- index = 0;
129
- }
130
- else if (event.key === 'End') {
131
- index = tabs.length - 1;
132
- }
133
- else if (event.key === 'ArrowLeft') {
134
- index = Math.max(0, index - 1);
135
- }
136
- else if (event.key === 'ArrowRight') {
137
- index = Math.min(tabs.length - 1, index + 1);
138
- }
139
- tabs[index].setFocus({ preventScroll: true });
140
- if (['top', 'bottom'].includes(this.placement)) {
141
- scrollIntoView(tabs[index], this.nav, 'horizontal');
142
- }
143
- event.preventDefault();
144
- }
145
- }
146
- }
147
- handleScrollLeft() {
148
- this.nav.scroll({
149
- left: this.nav.scrollLeft - this.nav.clientWidth,
150
- behavior: 'smooth',
151
- });
152
- }
153
- handleScrollRight() {
154
- this.nav.scroll({
155
- left: this.nav.scrollLeft + this.nav.clientWidth,
156
- behavior: 'smooth',
157
- });
158
- }
159
- updateScrollControls() {
160
- this.hasScrollControls = this.noScrollControls
161
- ? false
162
- : ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;
163
- }
164
- setActiveTab(tab, emitEvents = true) {
165
- if (tab && tab !== this.activeTab && !tab.disabled) {
166
- const previousTab = this.activeTab;
167
- this.activeTab = tab;
168
- // Sync tabs and panels
169
- this.getAllTabs().map((el) => (el.active = el === this.activeTab));
170
- this.getAllPanels().map((el) => (el.active = el.name === this.activeTab.panel));
171
- this.syncActiveTabIndicator();
172
- if (['top', 'bottom'].includes(this.placement)) {
173
- scrollIntoView(this.activeTab, this.nav, 'horizontal');
174
- }
175
- // Emit events
176
- if (emitEvents) {
177
- if (previousTab) {
178
- this.sixTabHide.emit({ name: previousTab.panel });
179
- }
180
- this.sixTabShow.emit({ name: this.activeTab.panel });
181
- }
182
- }
183
- }
184
- setAriaLabels() {
185
- const tabs = this.getAllTabs();
186
- const panels = this.getAllPanels();
187
- // Link each tab with its corresponding panel
188
- tabs.map((tab) => {
189
- const panel = panels.find((el) => el.name === tab.panel);
190
- if (panel) {
191
- tab.setAttribute('aria-controls', panel.getAttribute('id'));
192
- panel.setAttribute('aria-labelledby', tab.getAttribute('id'));
193
- }
194
- });
195
- }
196
- syncActiveTabIndicator() {
197
- const tab = this.getActiveTab();
198
- if (tab) {
199
- this.activeTabIndicator.style.display = 'block';
200
- }
201
- else {
202
- this.activeTabIndicator.style.display = 'none';
203
- return;
204
- }
205
- const width = tab.clientWidth;
206
- const height = tab.clientHeight;
207
- const offset = getOffset(tab, this.nav);
208
- const offsetTop = offset.top + this.nav.scrollTop;
209
- const offsetLeft = offset.left + this.nav.scrollLeft;
210
- switch (this.placement) {
211
- case 'top':
212
- case 'bottom':
213
- this.activeTabIndicator.style.width = `${width}px`;
214
- this.activeTabIndicator.style.height = null;
215
- this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;
216
- break;
217
- case 'left':
218
- case 'right':
219
- this.activeTabIndicator.style.width = null;
220
- this.activeTabIndicator.style.height = `${height}px`;
221
- this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;
222
- break;
223
- }
224
- }
225
- render() {
226
- return (h("div", { part: "base", ref: (el) => (this.tabGroup = el), class: {
227
- 'tab-group': true,
228
- // Placements
229
- 'tab-group--top': this.placement === 'top',
230
- 'tab-group--bottom': this.placement === 'bottom',
231
- 'tab-group--left': this.placement === 'left',
232
- 'tab-group--right': this.placement === 'right',
233
- 'tab-group--has-scroll-controls': this.hasScrollControls,
234
- }, onClick: this.handleClick, onKeyDown: this.handleKeyDown },
235
- h("div", { class: "tab-group__nav-container" },
236
- this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--left", exportparts: "base:scroll-button", name: "chevron_left", onClick: this.handleScrollLeft })),
237
- h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" },
238
- h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" },
239
- h("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "tab-group__active-tab-indicator" }),
240
- h("slot", { name: "nav", onSlotchange: this.syncActiveTabIndicator }))),
241
- this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--right", exportparts: "base:scroll-button", name: "chevron_right", onClick: this.handleScrollRight }))),
242
- h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" },
243
- h("slot", { onSlotchange: this.syncActiveTabIndicator }))));
244
- }
245
- static get is() { return "six-tab-group"; }
246
- static get encapsulation() { return "shadow"; }
247
- static get originalStyleUrls() { return {
248
- "$": ["six-tab-group.scss"]
249
- }; }
250
- static get styleUrls() { return {
251
- "$": ["six-tab-group.css"]
252
- }; }
253
- static get properties() { return {
254
- "placement": {
255
- "type": "string",
256
- "mutable": false,
257
- "complexType": {
258
- "original": "'top' | 'bottom' | 'left' | 'right'",
259
- "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"",
260
- "references": {}
261
- },
262
- "required": false,
263
- "optional": false,
264
- "docs": {
265
- "tags": [],
266
- "text": "The placement of the tabs."
267
- },
268
- "attribute": "placement",
269
- "reflect": false,
270
- "defaultValue": "'top'"
271
- },
272
- "noScrollControls": {
273
- "type": "boolean",
274
- "mutable": false,
275
- "complexType": {
276
- "original": "boolean",
277
- "resolved": "boolean",
278
- "references": {}
279
- },
280
- "required": false,
281
- "optional": false,
282
- "docs": {
283
- "tags": [],
284
- "text": "Disables the scroll arrows that appear when tabs overflow."
285
- },
286
- "attribute": "no-scroll-controls",
287
- "reflect": false,
288
- "defaultValue": "false"
289
- }
290
- }; }
291
- static get states() { return {
292
- "hasScrollControls": {}
293
- }; }
294
- static get events() { return [{
295
- "method": "sixTabShow",
296
- "name": "six-tab-show",
297
- "bubbles": true,
298
- "cancelable": true,
299
- "composed": true,
300
- "docs": {
301
- "tags": [],
302
- "text": "Emitted when a tab is shown."
303
- },
304
- "complexType": {
305
- "original": "SixTabShowPayload",
306
- "resolved": "SixTabShowPayload",
307
- "references": {
308
- "SixTabShowPayload": {
309
- "location": "local"
310
- }
311
- }
312
- }
313
- }, {
314
- "method": "sixTabHide",
315
- "name": "six-tab-hide",
316
- "bubbles": true,
317
- "cancelable": true,
318
- "composed": true,
319
- "docs": {
320
- "tags": [],
321
- "text": "Emitted when a tab is hidden."
322
- },
323
- "complexType": {
324
- "original": "SixTabHidePayload",
325
- "resolved": "SixTabHidePayload",
326
- "references": {
327
- "SixTabHidePayload": {
328
- "location": "local"
329
- }
330
- }
331
- }
332
- }]; }
333
- static get methods() { return {
334
- "show": {
335
- "complexType": {
336
- "signature": "(panel: string) => Promise<void>",
337
- "parameters": [{
338
- "tags": [],
339
- "text": ""
340
- }],
341
- "references": {
342
- "Promise": {
343
- "location": "global"
344
- }
345
- },
346
- "return": "Promise<void>"
347
- },
348
- "docs": {
349
- "text": "Shows the specified tab panel.",
350
- "tags": []
351
- }
352
- }
353
- }; }
354
- static get elementRef() { return "host"; }
355
- static get watchers() { return [{
356
- "propName": "placement",
357
- "methodName": "handlePlacementChange"
358
- }, {
359
- "propName": "noScrollControls",
360
- "methodName": "handleNoScrollControlsChange"
361
- }]; }
362
- }
1
+ import { Component, Element, Event, Method, Prop, State, Watch, h } from '@stencil/core';
2
+ import { getOffset } from '../../utils/offset';
3
+ import { scrollIntoView } from '../../utils/scroll';
4
+ import { focusVisible } from '../../utils/focus-visible';
5
+ /**
6
+ * @since 1.0
7
+ * @status stable
8
+ *
9
+ * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.
10
+ *
11
+ * @slot nav - Used for grouping tabs in the tab group.
12
+ * @slot - Used for grouping tab panels in the tab group.
13
+ *
14
+ * @part base - The component's base wrapper.
15
+ * @part nav - The tab group navigation container.
16
+ * @part tabs - The container that wraps the slotted tabs.
17
+ * @part active-tab-indicator - An element that displays the currently selected tab. This is a child of the tabs container.
18
+ * @part body - The tab group body where tab panels are slotted in.
19
+ * @part scroll-button - The previous and next scroll buttons that appear when tabs are scrollable.
20
+ */
21
+ export class SixTabGroup {
22
+ constructor() {
23
+ this.hasScrollControls = false;
24
+ /** The placement of the tabs. */
25
+ this.placement = 'top';
26
+ /** Disables the scroll arrows that appear when tabs overflow. */
27
+ this.noScrollControls = false;
28
+ }
29
+ handlePlacementChange() {
30
+ this.syncActiveTabIndicator();
31
+ }
32
+ handleNoScrollControlsChange() {
33
+ this.updateScrollControls();
34
+ }
35
+ connectedCallback() {
36
+ this.handleClick = this.handleClick.bind(this);
37
+ this.handleKeyDown = this.handleKeyDown.bind(this);
38
+ this.handleScrollLeft = this.handleScrollLeft.bind(this);
39
+ this.handleScrollRight = this.handleScrollRight.bind(this);
40
+ this.syncActiveTabIndicator = this.syncActiveTabIndicator.bind(this);
41
+ }
42
+ componentDidLoad() {
43
+ // Set initial tab state when the tabs first become visible
44
+ const observer = new IntersectionObserver((entries, observer) => {
45
+ if (entries[0].intersectionRatio > 0) {
46
+ this.setAriaLabels();
47
+ this.setActiveTab(this.getActiveTab() || this.getAllTabs()[0], false);
48
+ observer.unobserve(entries[0].target);
49
+ }
50
+ });
51
+ observer.observe(this.host);
52
+ focusVisible.observe(this.tabGroup);
53
+ this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());
54
+ this.resizeObserver.observe(this.nav);
55
+ requestAnimationFrame(() => this.updateScrollControls());
56
+ // Update aria labels if the DOM changes
57
+ this.mutationObserver = new MutationObserver((mutations) => {
58
+ if (mutations.some((mutation) => {
59
+ return !['aria-labelledby', 'aria-controls'].includes(mutation.attributeName);
60
+ })) {
61
+ setTimeout(() => this.setAriaLabels());
62
+ }
63
+ });
64
+ this.mutationObserver.observe(this.host, { attributes: true, childList: true, subtree: true });
65
+ }
66
+ disconnectedCallback() {
67
+ this.mutationObserver.disconnect();
68
+ focusVisible.unobserve(this.tabGroup);
69
+ this.resizeObserver.unobserve(this.nav);
70
+ }
71
+ /** Shows the specified tab panel. */
72
+ async show(panel) {
73
+ const tabs = this.getAllTabs();
74
+ const tab = tabs.find((el) => el.panel === panel);
75
+ if (tab) {
76
+ this.setActiveTab(tab);
77
+ }
78
+ }
79
+ getAllTabs(includeDisabled = false) {
80
+ const slot = this.tabs.querySelector('slot');
81
+ return [...slot.assignedElements()].filter((el) => {
82
+ return includeDisabled
83
+ ? el.tagName.toLowerCase() === 'six-tab'
84
+ : el.tagName.toLowerCase() === 'six-tab' && !el.disabled;
85
+ });
86
+ }
87
+ getAllPanels() {
88
+ const slot = this.body.querySelector('slot');
89
+ return [...slot.assignedElements()].filter((el) => el.tagName.toLowerCase() === 'six-tab-panel');
90
+ }
91
+ getActiveTab() {
92
+ return this.getAllTabs().find((el) => el.active);
93
+ }
94
+ handleClick(event) {
95
+ const target = event.target;
96
+ const tab = target.closest('six-tab');
97
+ const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
98
+ // Ensure the target tab is in this tab group
99
+ if (tabGroup !== this.host) {
100
+ return false;
101
+ }
102
+ if (tab) {
103
+ this.setActiveTab(tab);
104
+ }
105
+ }
106
+ handleKeyDown(event) {
107
+ const target = event.target;
108
+ const tab = target.closest('six-tab');
109
+ const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
110
+ // Ensure the target tab is in this tab group
111
+ if (tabGroup !== this.host) {
112
+ return false;
113
+ }
114
+ // Activate a tab
115
+ if (['Enter', ' '].includes(event.key)) {
116
+ if (tab) {
117
+ this.setActiveTab(tab);
118
+ event.preventDefault();
119
+ }
120
+ }
121
+ // Move focus left or right
122
+ if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
123
+ const activeEl = document.activeElement;
124
+ if (activeEl && activeEl.tagName.toLowerCase() === 'six-tab') {
125
+ const tabs = this.getAllTabs();
126
+ let index = tabs.indexOf(activeEl);
127
+ if (event.key === 'Home') {
128
+ index = 0;
129
+ }
130
+ else if (event.key === 'End') {
131
+ index = tabs.length - 1;
132
+ }
133
+ else if (event.key === 'ArrowLeft') {
134
+ index = Math.max(0, index - 1);
135
+ }
136
+ else if (event.key === 'ArrowRight') {
137
+ index = Math.min(tabs.length - 1, index + 1);
138
+ }
139
+ tabs[index].setFocus({ preventScroll: true });
140
+ if (['top', 'bottom'].includes(this.placement)) {
141
+ scrollIntoView(tabs[index], this.nav, 'horizontal');
142
+ }
143
+ event.preventDefault();
144
+ }
145
+ }
146
+ }
147
+ handleScrollLeft() {
148
+ this.nav.scroll({
149
+ left: this.nav.scrollLeft - this.nav.clientWidth,
150
+ behavior: 'smooth',
151
+ });
152
+ }
153
+ handleScrollRight() {
154
+ this.nav.scroll({
155
+ left: this.nav.scrollLeft + this.nav.clientWidth,
156
+ behavior: 'smooth',
157
+ });
158
+ }
159
+ updateScrollControls() {
160
+ this.hasScrollControls = this.noScrollControls
161
+ ? false
162
+ : ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;
163
+ }
164
+ setActiveTab(tab, emitEvents = true) {
165
+ if (tab && tab !== this.activeTab && !tab.disabled) {
166
+ const previousTab = this.activeTab;
167
+ this.activeTab = tab;
168
+ // Sync tabs and panels
169
+ this.getAllTabs().map((el) => (el.active = el === this.activeTab));
170
+ this.getAllPanels().map((el) => (el.active = el.name === this.activeTab.panel));
171
+ this.syncActiveTabIndicator();
172
+ if (['top', 'bottom'].includes(this.placement)) {
173
+ scrollIntoView(this.activeTab, this.nav, 'horizontal');
174
+ }
175
+ // Emit events
176
+ if (emitEvents) {
177
+ if (previousTab) {
178
+ this.sixTabHide.emit({ name: previousTab.panel });
179
+ }
180
+ this.sixTabShow.emit({ name: this.activeTab.panel });
181
+ }
182
+ }
183
+ }
184
+ setAriaLabels() {
185
+ const tabs = this.getAllTabs();
186
+ const panels = this.getAllPanels();
187
+ // Link each tab with its corresponding panel
188
+ tabs.map((tab) => {
189
+ const panel = panels.find((el) => el.name === tab.panel);
190
+ if (panel) {
191
+ tab.setAttribute('aria-controls', panel.getAttribute('id'));
192
+ panel.setAttribute('aria-labelledby', tab.getAttribute('id'));
193
+ }
194
+ });
195
+ }
196
+ syncActiveTabIndicator() {
197
+ const tab = this.getActiveTab();
198
+ if (tab) {
199
+ this.activeTabIndicator.style.display = 'block';
200
+ }
201
+ else {
202
+ this.activeTabIndicator.style.display = 'none';
203
+ return;
204
+ }
205
+ const width = tab.clientWidth;
206
+ const height = tab.clientHeight;
207
+ const offset = getOffset(tab, this.nav);
208
+ const offsetTop = offset.top + this.nav.scrollTop;
209
+ const offsetLeft = offset.left + this.nav.scrollLeft;
210
+ switch (this.placement) {
211
+ case 'top':
212
+ case 'bottom':
213
+ this.activeTabIndicator.style.width = `${width}px`;
214
+ this.activeTabIndicator.style.height = null;
215
+ this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;
216
+ break;
217
+ case 'left':
218
+ case 'right':
219
+ this.activeTabIndicator.style.width = null;
220
+ this.activeTabIndicator.style.height = `${height}px`;
221
+ this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;
222
+ break;
223
+ }
224
+ }
225
+ render() {
226
+ return (h("div", { part: "base", ref: (el) => (this.tabGroup = el), class: {
227
+ 'tab-group': true,
228
+ // Placements
229
+ 'tab-group--top': this.placement === 'top',
230
+ 'tab-group--bottom': this.placement === 'bottom',
231
+ 'tab-group--left': this.placement === 'left',
232
+ 'tab-group--right': this.placement === 'right',
233
+ 'tab-group--has-scroll-controls': this.hasScrollControls,
234
+ }, onClick: this.handleClick, onKeyDown: this.handleKeyDown },
235
+ h("div", { class: "tab-group__nav-container" },
236
+ this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--left", exportparts: "base:scroll-button", name: "chevron_left", onClick: this.handleScrollLeft })),
237
+ h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" },
238
+ h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" },
239
+ h("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "tab-group__active-tab-indicator" }),
240
+ h("slot", { name: "nav", onSlotchange: this.syncActiveTabIndicator }))),
241
+ this.hasScrollControls && (h("six-icon-button", { class: "tab-group__scroll-button tab-group__scroll-button--right", exportparts: "base:scroll-button", name: "chevron_right", onClick: this.handleScrollRight }))),
242
+ h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" },
243
+ h("slot", { onSlotchange: this.syncActiveTabIndicator }))));
244
+ }
245
+ static get is() { return "six-tab-group"; }
246
+ static get encapsulation() { return "shadow"; }
247
+ static get originalStyleUrls() { return {
248
+ "$": ["six-tab-group.scss"]
249
+ }; }
250
+ static get styleUrls() { return {
251
+ "$": ["six-tab-group.css"]
252
+ }; }
253
+ static get properties() { return {
254
+ "placement": {
255
+ "type": "string",
256
+ "mutable": false,
257
+ "complexType": {
258
+ "original": "'top' | 'bottom' | 'left' | 'right'",
259
+ "resolved": "\"bottom\" | \"left\" | \"right\" | \"top\"",
260
+ "references": {}
261
+ },
262
+ "required": false,
263
+ "optional": false,
264
+ "docs": {
265
+ "tags": [],
266
+ "text": "The placement of the tabs."
267
+ },
268
+ "attribute": "placement",
269
+ "reflect": false,
270
+ "defaultValue": "'top'"
271
+ },
272
+ "noScrollControls": {
273
+ "type": "boolean",
274
+ "mutable": false,
275
+ "complexType": {
276
+ "original": "boolean",
277
+ "resolved": "boolean",
278
+ "references": {}
279
+ },
280
+ "required": false,
281
+ "optional": false,
282
+ "docs": {
283
+ "tags": [],
284
+ "text": "Disables the scroll arrows that appear when tabs overflow."
285
+ },
286
+ "attribute": "no-scroll-controls",
287
+ "reflect": false,
288
+ "defaultValue": "false"
289
+ }
290
+ }; }
291
+ static get states() { return {
292
+ "hasScrollControls": {}
293
+ }; }
294
+ static get events() { return [{
295
+ "method": "sixTabShow",
296
+ "name": "six-tab-show",
297
+ "bubbles": true,
298
+ "cancelable": true,
299
+ "composed": true,
300
+ "docs": {
301
+ "tags": [],
302
+ "text": "Emitted when a tab is shown."
303
+ },
304
+ "complexType": {
305
+ "original": "SixTabShowPayload",
306
+ "resolved": "SixTabShowPayload",
307
+ "references": {
308
+ "SixTabShowPayload": {
309
+ "location": "local"
310
+ }
311
+ }
312
+ }
313
+ }, {
314
+ "method": "sixTabHide",
315
+ "name": "six-tab-hide",
316
+ "bubbles": true,
317
+ "cancelable": true,
318
+ "composed": true,
319
+ "docs": {
320
+ "tags": [],
321
+ "text": "Emitted when a tab is hidden."
322
+ },
323
+ "complexType": {
324
+ "original": "SixTabHidePayload",
325
+ "resolved": "SixTabHidePayload",
326
+ "references": {
327
+ "SixTabHidePayload": {
328
+ "location": "local"
329
+ }
330
+ }
331
+ }
332
+ }]; }
333
+ static get methods() { return {
334
+ "show": {
335
+ "complexType": {
336
+ "signature": "(panel: string) => Promise<void>",
337
+ "parameters": [{
338
+ "tags": [],
339
+ "text": ""
340
+ }],
341
+ "references": {
342
+ "Promise": {
343
+ "location": "global"
344
+ }
345
+ },
346
+ "return": "Promise<void>"
347
+ },
348
+ "docs": {
349
+ "text": "Shows the specified tab panel.",
350
+ "tags": []
351
+ }
352
+ }
353
+ }; }
354
+ static get elementRef() { return "host"; }
355
+ static get watchers() { return [{
356
+ "propName": "placement",
357
+ "methodName": "handlePlacementChange"
358
+ }, {
359
+ "propName": "noScrollControls",
360
+ "methodName": "handleNoScrollControlsChange"
361
+ }]; }
362
+ }