@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,233 +1,233 @@
1
1
  import { r as registerInstance, c as createEvent, h, g as getElement } from './index-a2605a62.js';
2
- import { s as scrollIntoView, g as getOffset } from './scroll-99b214c2.js';
3
- import { f as focusVisible } from './focus-visible-4b7946aa.js';
2
+ import { s as scrollIntoView, g as getOffset } from './scroll-180b53fd.js';
3
+ import { f as focusVisible } from './focus-visible-97933ea9.js';
4
4
 
5
5
  const sixTabGroupCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{--tabs-border-color:var(--six-tab-border-color);display:block}.tab-group{display:flex;border:solid 1px transparent;border-radius:0}.tab-group .tab-group__tabs{display:flex;position:relative}.tab-group .tab-group__active-tab-indicator{position:absolute;transition:var(--six-transition-fast) transform ease, var(--six-transition-fast) width ease}.tab-group:not(.focus-visible) ::slotted(six-tab){--focus-ring:none}.tab-group--has-scroll-controls .tab-group__nav-container{position:relative;padding:0 var(--six-spacing-x-large)}.tab-group__scroll-button{display:flex;align-items:center;justify-content:center;position:absolute;top:0;bottom:0;width:var(--six-spacing-x-large)}.tab-group__scroll-button--left{left:0}.tab-group__scroll-button--right{right:0}.tab-group--top{flex-direction:column}.tab-group--top .tab-group__nav-container{order:1}.tab-group--top .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--top .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--top .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row;border-bottom:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--top .tab-group__active-tab-indicator{bottom:-2px;border-bottom:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--top .tab-group__body{order:2}.tab-group--bottom{flex-direction:column}.tab-group--bottom .tab-group__nav-container{order:2}.tab-group--bottom .tab-group__nav{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-group--bottom .tab-group__nav::-webkit-scrollbar{width:0;height:0}.tab-group--bottom .tab-group__tabs{flex:1 1 auto;position:relative;flex-direction:row;border-top:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--bottom .tab-group__active-tab-indicator{top:-2px;border-top:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--bottom .tab-group__body{order:1}.tab-group--left{flex-direction:row}.tab-group--left .tab-group__nav-container{order:1}.tab-group--left .tab-group__tabs{flex:0 0 auto;flex-direction:column;border-right:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--left .tab-group__active-tab-indicator{right:-2px;border-right:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--left .tab-group__body{flex:1 1 auto;order:2}.tab-group--right{flex-direction:row}.tab-group--right .tab-group__nav-container{order:2}.tab-group--right .tab-group__tabs{flex:0 0 auto;flex-direction:column;border-left:solid var(--six-tab-border-width) var(--tabs-border-color)}.tab-group--right .tab-group__active-tab-indicator{left:-2px;border-left:solid var(--six-tab-border-width-active) var(--six-tab-border-color-active)}.tab-group--right .tab-group__body{flex:1 1 auto;order:1}";
6
6
 
7
- let SixTabGroup = class {
8
- constructor(hostRef) {
9
- registerInstance(this, hostRef);
10
- this.sixTabShow = createEvent(this, "six-tab-show", 7);
11
- this.sixTabHide = createEvent(this, "six-tab-hide", 7);
12
- this.hasScrollControls = false;
13
- /** The placement of the tabs. */
14
- this.placement = 'top';
15
- /** Disables the scroll arrows that appear when tabs overflow. */
16
- this.noScrollControls = false;
17
- }
18
- handlePlacementChange() {
19
- this.syncActiveTabIndicator();
20
- }
21
- handleNoScrollControlsChange() {
22
- this.updateScrollControls();
23
- }
24
- connectedCallback() {
25
- this.handleClick = this.handleClick.bind(this);
26
- this.handleKeyDown = this.handleKeyDown.bind(this);
27
- this.handleScrollLeft = this.handleScrollLeft.bind(this);
28
- this.handleScrollRight = this.handleScrollRight.bind(this);
29
- this.syncActiveTabIndicator = this.syncActiveTabIndicator.bind(this);
30
- }
31
- componentDidLoad() {
32
- // Set initial tab state when the tabs first become visible
33
- const observer = new IntersectionObserver((entries, observer) => {
34
- if (entries[0].intersectionRatio > 0) {
35
- this.setAriaLabels();
36
- this.setActiveTab(this.getActiveTab() || this.getAllTabs()[0], false);
37
- observer.unobserve(entries[0].target);
38
- }
39
- });
40
- observer.observe(this.host);
41
- focusVisible.observe(this.tabGroup);
42
- this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());
43
- this.resizeObserver.observe(this.nav);
44
- requestAnimationFrame(() => this.updateScrollControls());
45
- // Update aria labels if the DOM changes
46
- this.mutationObserver = new MutationObserver((mutations) => {
47
- if (mutations.some((mutation) => {
48
- return !['aria-labelledby', 'aria-controls'].includes(mutation.attributeName);
49
- })) {
50
- setTimeout(() => this.setAriaLabels());
51
- }
52
- });
53
- this.mutationObserver.observe(this.host, { attributes: true, childList: true, subtree: true });
54
- }
55
- disconnectedCallback() {
56
- this.mutationObserver.disconnect();
57
- focusVisible.unobserve(this.tabGroup);
58
- this.resizeObserver.unobserve(this.nav);
59
- }
60
- /** Shows the specified tab panel. */
61
- async show(panel) {
62
- const tabs = this.getAllTabs();
63
- const tab = tabs.find((el) => el.panel === panel);
64
- if (tab) {
65
- this.setActiveTab(tab);
66
- }
67
- }
68
- getAllTabs(includeDisabled = false) {
69
- const slot = this.tabs.querySelector('slot');
70
- return [...slot.assignedElements()].filter((el) => {
71
- return includeDisabled
72
- ? el.tagName.toLowerCase() === 'six-tab'
73
- : el.tagName.toLowerCase() === 'six-tab' && !el.disabled;
74
- });
75
- }
76
- getAllPanels() {
77
- const slot = this.body.querySelector('slot');
78
- return [...slot.assignedElements()].filter((el) => el.tagName.toLowerCase() === 'six-tab-panel');
79
- }
80
- getActiveTab() {
81
- return this.getAllTabs().find((el) => el.active);
82
- }
83
- handleClick(event) {
84
- const target = event.target;
85
- const tab = target.closest('six-tab');
86
- const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
87
- // Ensure the target tab is in this tab group
88
- if (tabGroup !== this.host) {
89
- return false;
90
- }
91
- if (tab) {
92
- this.setActiveTab(tab);
93
- }
94
- }
95
- handleKeyDown(event) {
96
- const target = event.target;
97
- const tab = target.closest('six-tab');
98
- const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
99
- // Ensure the target tab is in this tab group
100
- if (tabGroup !== this.host) {
101
- return false;
102
- }
103
- // Activate a tab
104
- if (['Enter', ' '].includes(event.key)) {
105
- if (tab) {
106
- this.setActiveTab(tab);
107
- event.preventDefault();
108
- }
109
- }
110
- // Move focus left or right
111
- if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
112
- const activeEl = document.activeElement;
113
- if (activeEl && activeEl.tagName.toLowerCase() === 'six-tab') {
114
- const tabs = this.getAllTabs();
115
- let index = tabs.indexOf(activeEl);
116
- if (event.key === 'Home') {
117
- index = 0;
118
- }
119
- else if (event.key === 'End') {
120
- index = tabs.length - 1;
121
- }
122
- else if (event.key === 'ArrowLeft') {
123
- index = Math.max(0, index - 1);
124
- }
125
- else if (event.key === 'ArrowRight') {
126
- index = Math.min(tabs.length - 1, index + 1);
127
- }
128
- tabs[index].setFocus({ preventScroll: true });
129
- if (['top', 'bottom'].includes(this.placement)) {
130
- scrollIntoView(tabs[index], this.nav, 'horizontal');
131
- }
132
- event.preventDefault();
133
- }
134
- }
135
- }
136
- handleScrollLeft() {
137
- this.nav.scroll({
138
- left: this.nav.scrollLeft - this.nav.clientWidth,
139
- behavior: 'smooth',
140
- });
141
- }
142
- handleScrollRight() {
143
- this.nav.scroll({
144
- left: this.nav.scrollLeft + this.nav.clientWidth,
145
- behavior: 'smooth',
146
- });
147
- }
148
- updateScrollControls() {
149
- this.hasScrollControls = this.noScrollControls
150
- ? false
151
- : ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;
152
- }
153
- setActiveTab(tab, emitEvents = true) {
154
- if (tab && tab !== this.activeTab && !tab.disabled) {
155
- const previousTab = this.activeTab;
156
- this.activeTab = tab;
157
- // Sync tabs and panels
158
- this.getAllTabs().map((el) => (el.active = el === this.activeTab));
159
- this.getAllPanels().map((el) => (el.active = el.name === this.activeTab.panel));
160
- this.syncActiveTabIndicator();
161
- if (['top', 'bottom'].includes(this.placement)) {
162
- scrollIntoView(this.activeTab, this.nav, 'horizontal');
163
- }
164
- // Emit events
165
- if (emitEvents) {
166
- if (previousTab) {
167
- this.sixTabHide.emit({ name: previousTab.panel });
168
- }
169
- this.sixTabShow.emit({ name: this.activeTab.panel });
170
- }
171
- }
172
- }
173
- setAriaLabels() {
174
- const tabs = this.getAllTabs();
175
- const panels = this.getAllPanels();
176
- // Link each tab with its corresponding panel
177
- tabs.map((tab) => {
178
- const panel = panels.find((el) => el.name === tab.panel);
179
- if (panel) {
180
- tab.setAttribute('aria-controls', panel.getAttribute('id'));
181
- panel.setAttribute('aria-labelledby', tab.getAttribute('id'));
182
- }
183
- });
184
- }
185
- syncActiveTabIndicator() {
186
- const tab = this.getActiveTab();
187
- if (tab) {
188
- this.activeTabIndicator.style.display = 'block';
189
- }
190
- else {
191
- this.activeTabIndicator.style.display = 'none';
192
- return;
193
- }
194
- const width = tab.clientWidth;
195
- const height = tab.clientHeight;
196
- const offset = getOffset(tab, this.nav);
197
- const offsetTop = offset.top + this.nav.scrollTop;
198
- const offsetLeft = offset.left + this.nav.scrollLeft;
199
- switch (this.placement) {
200
- case 'top':
201
- case 'bottom':
202
- this.activeTabIndicator.style.width = `${width}px`;
203
- this.activeTabIndicator.style.height = null;
204
- this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;
205
- break;
206
- case 'left':
207
- case 'right':
208
- this.activeTabIndicator.style.width = null;
209
- this.activeTabIndicator.style.height = `${height}px`;
210
- this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;
211
- break;
212
- }
213
- }
214
- render() {
215
- return (h("div", { part: "base", ref: (el) => (this.tabGroup = el), class: {
216
- 'tab-group': true,
217
- // Placements
218
- 'tab-group--top': this.placement === 'top',
219
- 'tab-group--bottom': this.placement === 'bottom',
220
- 'tab-group--left': this.placement === 'left',
221
- 'tab-group--right': this.placement === 'right',
222
- 'tab-group--has-scroll-controls': this.hasScrollControls,
223
- }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "tab-group__nav-container" }, 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 })), h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" }, h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" }, h("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "tab-group__active-tab-indicator" }), h("slot", { name: "nav", onSlotchange: this.syncActiveTabIndicator }))), 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 }))), h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" }, h("slot", { onSlotchange: this.syncActiveTabIndicator }))));
224
- }
225
- get host() { return getElement(this); }
226
- static get watchers() { return {
227
- "placement": ["handlePlacementChange"],
228
- "noScrollControls": ["handleNoScrollControlsChange"]
229
- }; }
230
- };
7
+ let SixTabGroup = class {
8
+ constructor(hostRef) {
9
+ registerInstance(this, hostRef);
10
+ this.sixTabShow = createEvent(this, "six-tab-show", 7);
11
+ this.sixTabHide = createEvent(this, "six-tab-hide", 7);
12
+ this.hasScrollControls = false;
13
+ /** The placement of the tabs. */
14
+ this.placement = 'top';
15
+ /** Disables the scroll arrows that appear when tabs overflow. */
16
+ this.noScrollControls = false;
17
+ }
18
+ handlePlacementChange() {
19
+ this.syncActiveTabIndicator();
20
+ }
21
+ handleNoScrollControlsChange() {
22
+ this.updateScrollControls();
23
+ }
24
+ connectedCallback() {
25
+ this.handleClick = this.handleClick.bind(this);
26
+ this.handleKeyDown = this.handleKeyDown.bind(this);
27
+ this.handleScrollLeft = this.handleScrollLeft.bind(this);
28
+ this.handleScrollRight = this.handleScrollRight.bind(this);
29
+ this.syncActiveTabIndicator = this.syncActiveTabIndicator.bind(this);
30
+ }
31
+ componentDidLoad() {
32
+ // Set initial tab state when the tabs first become visible
33
+ const observer = new IntersectionObserver((entries, observer) => {
34
+ if (entries[0].intersectionRatio > 0) {
35
+ this.setAriaLabels();
36
+ this.setActiveTab(this.getActiveTab() || this.getAllTabs()[0], false);
37
+ observer.unobserve(entries[0].target);
38
+ }
39
+ });
40
+ observer.observe(this.host);
41
+ focusVisible.observe(this.tabGroup);
42
+ this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());
43
+ this.resizeObserver.observe(this.nav);
44
+ requestAnimationFrame(() => this.updateScrollControls());
45
+ // Update aria labels if the DOM changes
46
+ this.mutationObserver = new MutationObserver((mutations) => {
47
+ if (mutations.some((mutation) => {
48
+ return !['aria-labelledby', 'aria-controls'].includes(mutation.attributeName);
49
+ })) {
50
+ setTimeout(() => this.setAriaLabels());
51
+ }
52
+ });
53
+ this.mutationObserver.observe(this.host, { attributes: true, childList: true, subtree: true });
54
+ }
55
+ disconnectedCallback() {
56
+ this.mutationObserver.disconnect();
57
+ focusVisible.unobserve(this.tabGroup);
58
+ this.resizeObserver.unobserve(this.nav);
59
+ }
60
+ /** Shows the specified tab panel. */
61
+ async show(panel) {
62
+ const tabs = this.getAllTabs();
63
+ const tab = tabs.find((el) => el.panel === panel);
64
+ if (tab) {
65
+ this.setActiveTab(tab);
66
+ }
67
+ }
68
+ getAllTabs(includeDisabled = false) {
69
+ const slot = this.tabs.querySelector('slot');
70
+ return [...slot.assignedElements()].filter((el) => {
71
+ return includeDisabled
72
+ ? el.tagName.toLowerCase() === 'six-tab'
73
+ : el.tagName.toLowerCase() === 'six-tab' && !el.disabled;
74
+ });
75
+ }
76
+ getAllPanels() {
77
+ const slot = this.body.querySelector('slot');
78
+ return [...slot.assignedElements()].filter((el) => el.tagName.toLowerCase() === 'six-tab-panel');
79
+ }
80
+ getActiveTab() {
81
+ return this.getAllTabs().find((el) => el.active);
82
+ }
83
+ handleClick(event) {
84
+ const target = event.target;
85
+ const tab = target.closest('six-tab');
86
+ const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
87
+ // Ensure the target tab is in this tab group
88
+ if (tabGroup !== this.host) {
89
+ return false;
90
+ }
91
+ if (tab) {
92
+ this.setActiveTab(tab);
93
+ }
94
+ }
95
+ handleKeyDown(event) {
96
+ const target = event.target;
97
+ const tab = target.closest('six-tab');
98
+ const tabGroup = tab === null || tab === void 0 ? void 0 : tab.closest('six-tab-group');
99
+ // Ensure the target tab is in this tab group
100
+ if (tabGroup !== this.host) {
101
+ return false;
102
+ }
103
+ // Activate a tab
104
+ if (['Enter', ' '].includes(event.key)) {
105
+ if (tab) {
106
+ this.setActiveTab(tab);
107
+ event.preventDefault();
108
+ }
109
+ }
110
+ // Move focus left or right
111
+ if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {
112
+ const activeEl = document.activeElement;
113
+ if (activeEl && activeEl.tagName.toLowerCase() === 'six-tab') {
114
+ const tabs = this.getAllTabs();
115
+ let index = tabs.indexOf(activeEl);
116
+ if (event.key === 'Home') {
117
+ index = 0;
118
+ }
119
+ else if (event.key === 'End') {
120
+ index = tabs.length - 1;
121
+ }
122
+ else if (event.key === 'ArrowLeft') {
123
+ index = Math.max(0, index - 1);
124
+ }
125
+ else if (event.key === 'ArrowRight') {
126
+ index = Math.min(tabs.length - 1, index + 1);
127
+ }
128
+ tabs[index].setFocus({ preventScroll: true });
129
+ if (['top', 'bottom'].includes(this.placement)) {
130
+ scrollIntoView(tabs[index], this.nav, 'horizontal');
131
+ }
132
+ event.preventDefault();
133
+ }
134
+ }
135
+ }
136
+ handleScrollLeft() {
137
+ this.nav.scroll({
138
+ left: this.nav.scrollLeft - this.nav.clientWidth,
139
+ behavior: 'smooth',
140
+ });
141
+ }
142
+ handleScrollRight() {
143
+ this.nav.scroll({
144
+ left: this.nav.scrollLeft + this.nav.clientWidth,
145
+ behavior: 'smooth',
146
+ });
147
+ }
148
+ updateScrollControls() {
149
+ this.hasScrollControls = this.noScrollControls
150
+ ? false
151
+ : ['top', 'bottom'].includes(this.placement) && this.nav.scrollWidth > this.nav.clientWidth;
152
+ }
153
+ setActiveTab(tab, emitEvents = true) {
154
+ if (tab && tab !== this.activeTab && !tab.disabled) {
155
+ const previousTab = this.activeTab;
156
+ this.activeTab = tab;
157
+ // Sync tabs and panels
158
+ this.getAllTabs().map((el) => (el.active = el === this.activeTab));
159
+ this.getAllPanels().map((el) => (el.active = el.name === this.activeTab.panel));
160
+ this.syncActiveTabIndicator();
161
+ if (['top', 'bottom'].includes(this.placement)) {
162
+ scrollIntoView(this.activeTab, this.nav, 'horizontal');
163
+ }
164
+ // Emit events
165
+ if (emitEvents) {
166
+ if (previousTab) {
167
+ this.sixTabHide.emit({ name: previousTab.panel });
168
+ }
169
+ this.sixTabShow.emit({ name: this.activeTab.panel });
170
+ }
171
+ }
172
+ }
173
+ setAriaLabels() {
174
+ const tabs = this.getAllTabs();
175
+ const panels = this.getAllPanels();
176
+ // Link each tab with its corresponding panel
177
+ tabs.map((tab) => {
178
+ const panel = panels.find((el) => el.name === tab.panel);
179
+ if (panel) {
180
+ tab.setAttribute('aria-controls', panel.getAttribute('id'));
181
+ panel.setAttribute('aria-labelledby', tab.getAttribute('id'));
182
+ }
183
+ });
184
+ }
185
+ syncActiveTabIndicator() {
186
+ const tab = this.getActiveTab();
187
+ if (tab) {
188
+ this.activeTabIndicator.style.display = 'block';
189
+ }
190
+ else {
191
+ this.activeTabIndicator.style.display = 'none';
192
+ return;
193
+ }
194
+ const width = tab.clientWidth;
195
+ const height = tab.clientHeight;
196
+ const offset = getOffset(tab, this.nav);
197
+ const offsetTop = offset.top + this.nav.scrollTop;
198
+ const offsetLeft = offset.left + this.nav.scrollLeft;
199
+ switch (this.placement) {
200
+ case 'top':
201
+ case 'bottom':
202
+ this.activeTabIndicator.style.width = `${width}px`;
203
+ this.activeTabIndicator.style.height = null;
204
+ this.activeTabIndicator.style.transform = `translateX(${offsetLeft}px)`;
205
+ break;
206
+ case 'left':
207
+ case 'right':
208
+ this.activeTabIndicator.style.width = null;
209
+ this.activeTabIndicator.style.height = `${height}px`;
210
+ this.activeTabIndicator.style.transform = `translateY(${offsetTop}px)`;
211
+ break;
212
+ }
213
+ }
214
+ render() {
215
+ return (h("div", { part: "base", ref: (el) => (this.tabGroup = el), class: {
216
+ 'tab-group': true,
217
+ // Placements
218
+ 'tab-group--top': this.placement === 'top',
219
+ 'tab-group--bottom': this.placement === 'bottom',
220
+ 'tab-group--left': this.placement === 'left',
221
+ 'tab-group--right': this.placement === 'right',
222
+ 'tab-group--has-scroll-controls': this.hasScrollControls,
223
+ }, onClick: this.handleClick, onKeyDown: this.handleKeyDown }, h("div", { class: "tab-group__nav-container" }, 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 })), h("div", { ref: (el) => (this.nav = el), key: "nav", part: "nav", class: "tab-group__nav" }, h("div", { ref: (el) => (this.tabs = el), part: "tabs", class: "tab-group__tabs", role: "tablist" }, h("div", { ref: (el) => (this.activeTabIndicator = el), part: "active-tab-indicator", class: "tab-group__active-tab-indicator" }), h("slot", { name: "nav", onSlotchange: this.syncActiveTabIndicator }))), 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 }))), h("div", { ref: (el) => (this.body = el), part: "body", class: "tab-group__body" }, h("slot", { onSlotchange: this.syncActiveTabIndicator }))));
224
+ }
225
+ get host() { return getElement(this); }
226
+ static get watchers() { return {
227
+ "placement": ["handlePlacementChange"],
228
+ "noScrollControls": ["handleNoScrollControlsChange"]
229
+ }; }
230
+ };
231
231
  SixTabGroup.style = sixTabGroupCss;
232
232
 
233
233
  export { SixTabGroup as six_tab_group };
@@ -2,23 +2,23 @@ import { r as registerInstance, h, H as Host, g as getElement } from './index-a2
2
2
 
3
3
  const sixTabPanelCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:block;font-family:var(--six-font-family)}.tab-panel{border:solid 1px transparent;padding:20px 20px}";
4
4
 
5
- let id = 0;
6
- let SixTabPanel = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.componentId = `tab-panel-${++id}`;
10
- /** The tab panel's name. */
11
- this.name = '';
12
- /** When true, the tab panel will be shown. */
13
- this.active = false;
14
- }
15
- render() {
16
- return (
17
- // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels
18
- h(Host, { id: this.host.id || this.componentId, style: { display: this.active ? 'block' : 'none' } }, h("div", { part: "base", class: "tab-panel", role: "tabpanel", "aria-selected": this.active ? 'true' : 'false', "aria-hidden": this.active ? 'false' : 'true' }, h("slot", null))));
19
- }
20
- get host() { return getElement(this); }
21
- };
5
+ let id = 0;
6
+ let SixTabPanel = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.componentId = `tab-panel-${++id}`;
10
+ /** The tab panel's name. */
11
+ this.name = '';
12
+ /** When true, the tab panel will be shown. */
13
+ this.active = false;
14
+ }
15
+ render() {
16
+ return (
17
+ // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels
18
+ h(Host, { id: this.host.id || this.componentId, style: { display: this.active ? 'block' : 'none' } }, h("div", { part: "base", class: "tab-panel", role: "tabpanel", "aria-selected": this.active ? 'true' : 'false', "aria-hidden": this.active ? 'false' : 'true' }, h("slot", null))));
19
+ }
20
+ get host() { return getElement(this); }
21
+ };
22
22
  SixTabPanel.style = sixTabPanelCss;
23
23
 
24
24
  export { SixTabPanel as six_tab_panel };
@@ -2,48 +2,48 @@ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement
2
2
 
3
3
  const sixTabCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}:host{display:inline-block}.tab{display:inline-flex;align-items:center;font-family:var(--six-font-family);font-size:var(--six-font-size-small);font-weight:var(--six-font-weight-semibold);border-radius:4px;color:var(--six-tab-color);padding:var(--six-spacing-medium) var(--six-spacing-large);white-space:nowrap;user-select:none;cursor:pointer;transition:var(--six-transition-fast) box-shadow, var(--six-transition-fast) color}.tab:focus{outline:none}.tab:focus:not(.tab--disabled){color:var(--six-tab-color-active)}.tab.tab--active:not(.tab--disabled){color:var(--six-tab-color-active);font-weight:var(--six-font-weight-bold)}.tab.tab--closable{padding-right:var(--six-spacing-small)}.tab.tab--disabled{color:var(--six-tab-color-disabled);cursor:not-allowed}.tab:hover:not(.tab--disabled){color:var(--six-tab-color-hover)}.tab__close-button{font-size:var(--six-font-size-large);margin-left:var(--six-spacing-xx-small)}.tab__close-button::part(base){padding:var(--six-spacing-xxx-small)}";
4
4
 
5
- let id = 0;
6
- let SixTab = class {
7
- constructor(hostRef) {
8
- registerInstance(this, hostRef);
9
- this.sixClose = createEvent(this, "six-tab-close", 7);
10
- this.componentId = `tab-${++id}`;
11
- /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */
12
- this.panel = '';
13
- /** Set to true to draw the tab in an active state. */
14
- this.active = false;
15
- /** When true, the tab will be rendered with a close icon. */
16
- this.closable = false;
17
- /** Set to true to draw the tab in a disabled state. */
18
- this.disabled = false;
19
- }
20
- connectedCallback() {
21
- this.handleCloseClick = this.handleCloseClick.bind(this);
22
- }
23
- /** Sets focus to the tab. */
24
- async setFocus(options) {
25
- this.tab.focus(options);
26
- }
27
- /** Removes focus from the tab. */
28
- async removeFocus() {
29
- this.tab.blur();
30
- }
31
- handleCloseClick() {
32
- this.sixClose.emit();
33
- }
34
- render() {
35
- return (
36
- // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels
37
- h(Host, { id: this.host.id || this.componentId }, h("div", { part: "base", ref: (el) => (this.tab = el), class: {
38
- tab: true,
39
- // States
40
- 'tab--active': this.active,
41
- 'tab--closable': this.closable,
42
- 'tab--disabled': this.disabled,
43
- }, role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', tabindex: this.disabled || !this.active ? '-1' : '0' }, h("slot", null), this.closable && (h("six-icon-button", { name: "close", size: "xSmall", exportparts: "base:close-button", class: "tab__close-button", onClick: this.handleCloseClick, tabIndex: -1, "aria-hidden": "true" })))));
44
- }
45
- get host() { return getElement(this); }
46
- };
5
+ let id = 0;
6
+ let SixTab = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ this.sixClose = createEvent(this, "six-tab-close", 7);
10
+ this.componentId = `tab-${++id}`;
11
+ /** The name of the tab panel the tab will control. The panel must be located in the same tab group. */
12
+ this.panel = '';
13
+ /** Set to true to draw the tab in an active state. */
14
+ this.active = false;
15
+ /** When true, the tab will be rendered with a close icon. */
16
+ this.closable = false;
17
+ /** Set to true to draw the tab in a disabled state. */
18
+ this.disabled = false;
19
+ }
20
+ connectedCallback() {
21
+ this.handleCloseClick = this.handleCloseClick.bind(this);
22
+ }
23
+ /** Sets focus to the tab. */
24
+ async setFocus(options) {
25
+ this.tab.focus(options);
26
+ }
27
+ /** Removes focus from the tab. */
28
+ async removeFocus() {
29
+ this.tab.blur();
30
+ }
31
+ handleCloseClick() {
32
+ this.sixClose.emit();
33
+ }
34
+ render() {
35
+ return (
36
+ // If the user didn't provide an ID, we'll set one so we can link tabs and tab panels with aria labels
37
+ h(Host, { id: this.host.id || this.componentId }, h("div", { part: "base", ref: (el) => (this.tab = el), class: {
38
+ tab: true,
39
+ // States
40
+ 'tab--active': this.active,
41
+ 'tab--closable': this.closable,
42
+ 'tab--disabled': this.disabled,
43
+ }, role: "tab", "aria-disabled": this.disabled ? 'true' : 'false', "aria-selected": this.active ? 'true' : 'false', tabindex: this.disabled || !this.active ? '-1' : '0' }, h("slot", null), this.closable && (h("six-icon-button", { name: "close", size: "xSmall", exportparts: "base:close-button", class: "tab__close-button", onClick: this.handleCloseClick, tabIndex: -1, "aria-hidden": "true" })))));
44
+ }
45
+ get host() { return getElement(this); }
46
+ };
47
47
  SixTab.style = sixTabCss;
48
48
 
49
49
  export { SixTab as six_tab };