@six-group/ui-library 4.1.2 → 4.2.0

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 (670) hide show
  1. package/dist/cjs/app-globals-3a1e7e63.js +7 -0
  2. package/dist/cjs/app-globals-3a1e7e63.js.map +1 -0
  3. package/dist/cjs/{form-control-8d64e974.js → form-control-b6ca8224.js} +2 -2
  4. package/dist/cjs/{form-control-8d64e974.js.map → form-control-b6ca8224.js.map} +1 -1
  5. package/dist/cjs/{index-d7748d51.js → index-5bfcf88b.js} +60 -27
  6. package/dist/cjs/index-5bfcf88b.js.map +1 -0
  7. package/dist/cjs/loader.cjs.js +5 -3
  8. package/dist/cjs/loader.cjs.js.map +1 -1
  9. package/dist/cjs/{modal-3ce015be.js → modal-bd7fc5bc.js} +1 -18
  10. package/dist/cjs/modal-bd7fc5bc.js.map +1 -0
  11. package/dist/cjs/six-alert.cjs.entry.js +5 -4
  12. package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
  13. package/dist/cjs/six-avatar.cjs.entry.js +4 -3
  14. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
  15. package/dist/cjs/six-badge.cjs.entry.js +5 -4
  16. package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
  17. package/dist/cjs/six-button.cjs.entry.js +5 -4
  18. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  19. package/dist/cjs/six-card.cjs.entry.js +4 -3
  20. package/dist/cjs/six-card.cjs.entry.js.map +1 -1
  21. package/dist/cjs/six-checkbox_2.cjs.entry.js +10 -8
  22. package/dist/cjs/six-checkbox_2.cjs.entry.js.map +1 -1
  23. package/dist/cjs/six-datepicker.cjs.entry.js +4 -3
  24. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  25. package/dist/cjs/six-details.cjs.entry.js +6 -5
  26. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  27. package/dist/cjs/six-dialog.cjs.entry.js +12 -30
  28. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
  29. package/dist/cjs/six-drawer.cjs.entry.js +13 -30
  30. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  31. package/dist/cjs/six-dropdown_2.cjs.entry.js +12 -10
  32. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  33. package/dist/cjs/six-error-page.cjs.entry.js +4 -3
  34. package/dist/cjs/six-error-page.cjs.entry.js.map +1 -1
  35. package/dist/cjs/six-error.cjs.entry.js +4 -3
  36. package/dist/cjs/six-error.cjs.entry.js.map +1 -1
  37. package/dist/cjs/six-file-list-item.cjs.entry.js +5 -4
  38. package/dist/cjs/six-file-list-item.cjs.entry.js.map +1 -1
  39. package/dist/cjs/six-file-list.cjs.entry.js +4 -3
  40. package/dist/cjs/six-file-list.cjs.entry.js.map +1 -1
  41. package/dist/cjs/six-file-upload.cjs.entry.js +11 -9
  42. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  43. package/dist/cjs/six-footer.cjs.entry.js +4 -3
  44. package/dist/cjs/six-footer.cjs.entry.js.map +1 -1
  45. package/dist/cjs/six-group-label.cjs.entry.js +5 -4
  46. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  47. package/dist/cjs/six-header.cjs.entry.js +13 -12
  48. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  49. package/dist/cjs/six-icon-button.cjs.entry.js +6 -5
  50. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  51. package/dist/cjs/six-icon.cjs.entry.js +5 -4
  52. package/dist/cjs/six-icon.cjs.entry.js.map +1 -1
  53. package/dist/cjs/six-input.cjs.entry.js +7 -6
  54. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  55. package/dist/cjs/six-item-picker.cjs.entry.js +6 -5
  56. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
  57. package/dist/cjs/six-language-switcher.cjs.entry.js +6 -5
  58. package/dist/cjs/six-language-switcher.cjs.entry.js.map +1 -1
  59. package/dist/cjs/six-layout-grid.cjs.entry.js +4 -3
  60. package/dist/cjs/six-layout-grid.cjs.entry.js.map +1 -1
  61. package/dist/cjs/six-main-container.cjs.entry.js +4 -3
  62. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
  63. package/dist/cjs/six-menu-divider.cjs.entry.js +4 -3
  64. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -1
  65. package/dist/cjs/six-menu-label.cjs.entry.js +4 -3
  66. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -1
  67. package/dist/cjs/six-picto.cjs.entry.js +4 -3
  68. package/dist/cjs/six-picto.cjs.entry.js.map +1 -1
  69. package/dist/cjs/six-progress-bar.cjs.entry.js +5 -4
  70. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -1
  71. package/dist/cjs/six-progress-ring.cjs.entry.js +4 -3
  72. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
  73. package/dist/cjs/six-radio.cjs.entry.js +5 -4
  74. package/dist/cjs/six-radio.cjs.entry.js.map +1 -1
  75. package/dist/cjs/six-range.cjs.entry.js +17 -6
  76. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  77. package/dist/cjs/six-root.cjs.entry.js +4 -3
  78. package/dist/cjs/six-root.cjs.entry.js.map +1 -1
  79. package/dist/cjs/six-search-field.cjs.entry.js +4 -3
  80. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
  81. package/dist/cjs/six-select.cjs.entry.js +10 -9
  82. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  83. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +3 -2
  84. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  85. package/dist/cjs/six-sidebar-item.cjs.entry.js +5 -4
  86. package/dist/cjs/six-sidebar-item.cjs.entry.js.map +1 -1
  87. package/dist/cjs/six-sidebar.cjs.entry.js +5 -4
  88. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
  89. package/dist/cjs/six-spinner.cjs.entry.js +3 -2
  90. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
  91. package/dist/cjs/six-stage-indicator.cjs.entry.js +3 -2
  92. package/dist/cjs/six-stage-indicator.cjs.entry.js.map +1 -1
  93. package/dist/cjs/six-switch.cjs.entry.js +6 -5
  94. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  95. package/dist/cjs/six-tab-group.cjs.entry.js +34 -8
  96. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  97. package/dist/cjs/six-tab-panel.cjs.entry.js +4 -3
  98. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
  99. package/dist/cjs/six-tab.cjs.entry.js +5 -4
  100. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  101. package/dist/cjs/six-tag.cjs.entry.js +5 -4
  102. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  103. package/dist/cjs/six-textarea.cjs.entry.js +6 -5
  104. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  105. package/dist/cjs/six-tile.cjs.entry.js +6 -5
  106. package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
  107. package/dist/cjs/six-timepicker.cjs.entry.js +4 -3
  108. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  109. package/dist/cjs/six-tooltip.cjs.entry.js +5 -4
  110. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  111. package/dist/cjs/ui-library.cjs.js +6 -4
  112. package/dist/cjs/ui-library.cjs.js.map +1 -1
  113. package/dist/collection/collection-manifest.json +2 -2
  114. package/dist/collection/components/six-alert/six-alert.js +2 -2
  115. package/dist/collection/components/six-alert/six-alert.js.map +1 -1
  116. package/dist/collection/components/six-avatar/six-avatar.js +1 -1
  117. package/dist/collection/components/six-avatar/six-avatar.js.map +1 -1
  118. package/dist/collection/components/six-badge/six-badge.js +2 -2
  119. package/dist/collection/components/six-badge/six-badge.js.map +1 -1
  120. package/dist/collection/components/six-button/six-button.js +2 -2
  121. package/dist/collection/components/six-button/six-button.js.map +1 -1
  122. package/dist/collection/components/six-button/test/six-button.spec.js.map +1 -1
  123. package/dist/collection/components/six-card/six-card.js +1 -1
  124. package/dist/collection/components/six-card/six-card.js.map +1 -1
  125. package/dist/collection/components/six-checkbox/six-checkbox.js +2 -2
  126. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  127. package/dist/collection/components/six-datepicker/six-datepicker.js +1 -1
  128. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  129. package/dist/collection/components/six-details/six-details.js +3 -3
  130. package/dist/collection/components/six-details/six-details.js.map +1 -1
  131. package/dist/collection/components/six-dialog/six-dialog.js +8 -28
  132. package/dist/collection/components/six-dialog/six-dialog.js.map +1 -1
  133. package/dist/collection/components/six-drawer/six-drawer.js +9 -28
  134. package/dist/collection/components/six-drawer/six-drawer.js.map +1 -1
  135. package/dist/collection/components/six-dropdown/six-dropdown.js +5 -5
  136. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
  137. package/dist/collection/components/six-error/six-error.js +1 -1
  138. package/dist/collection/components/six-error/six-error.js.map +1 -1
  139. package/dist/collection/components/six-error-page/six-error-page.js +1 -1
  140. package/dist/collection/components/six-error-page/six-error-page.js.map +1 -1
  141. package/dist/collection/components/six-file-list/six-file-list.js +1 -1
  142. package/dist/collection/components/six-file-list/six-file-list.js.map +1 -1
  143. package/dist/collection/components/six-file-list-item/six-file-list-item.js +2 -2
  144. package/dist/collection/components/six-file-list-item/six-file-list-item.js.map +1 -1
  145. package/dist/collection/components/six-file-upload/six-file-upload.css +8 -0
  146. package/dist/collection/components/six-file-upload/six-file-upload.js +25 -6
  147. package/dist/collection/components/six-file-upload/six-file-upload.js.map +1 -1
  148. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js +76 -21
  149. package/dist/collection/components/six-file-upload/test/six-file-upload.spec.js.map +1 -1
  150. package/dist/collection/components/six-footer/six-footer.js +1 -1
  151. package/dist/collection/components/six-footer/six-footer.js.map +1 -1
  152. package/dist/collection/components/six-group-label/six-group-label.js +1 -1
  153. package/dist/collection/components/six-group-label/six-group-label.js.map +1 -1
  154. package/dist/collection/components/six-header/six-header.js +10 -10
  155. package/dist/collection/components/six-header/six-header.js.map +1 -1
  156. package/dist/collection/components/six-icon/six-icon.js +2 -2
  157. package/dist/collection/components/six-icon/six-icon.js.map +1 -1
  158. package/dist/collection/components/six-icon-button/six-icon-button.js +3 -3
  159. package/dist/collection/components/six-icon-button/six-icon-button.js.map +1 -1
  160. package/dist/collection/components/six-input/six-input.js +3 -3
  161. package/dist/collection/components/six-input/six-input.js.map +1 -1
  162. package/dist/collection/components/six-item-picker/six-item-picker.js +3 -3
  163. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
  164. package/dist/collection/components/six-language-switcher/six-language-switcher.css +3 -2
  165. package/dist/collection/components/six-language-switcher/six-language-switcher.js +2 -2
  166. package/dist/collection/components/six-language-switcher/six-language-switcher.js.map +1 -1
  167. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js +8 -8
  168. package/dist/collection/components/six-language-switcher/test/six-language-switcher.spec.js.map +1 -1
  169. package/dist/collection/components/six-layout-grid/six-layout-grid.js +1 -1
  170. package/dist/collection/components/six-layout-grid/six-layout-grid.js.map +1 -1
  171. package/dist/collection/components/six-main-container/six-main-container.js +1 -1
  172. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -1
  173. package/dist/collection/components/six-menu/six-menu.js +2 -2
  174. package/dist/collection/components/six-menu/six-menu.js.map +1 -1
  175. package/dist/collection/components/six-menu/test/six-menu.spec.js.map +1 -1
  176. package/dist/collection/components/six-menu-divider/six-menu-divider.js +1 -1
  177. package/dist/collection/components/six-menu-divider/six-menu-divider.js.map +1 -1
  178. package/dist/collection/components/six-menu-item/six-menu-item.js +2 -2
  179. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
  180. package/dist/collection/components/six-menu-label/six-menu-label.js +1 -1
  181. package/dist/collection/components/six-menu-label/six-menu-label.js.map +1 -1
  182. package/dist/collection/components/six-picto/six-picto.js +1 -1
  183. package/dist/collection/components/six-picto/six-picto.js.map +1 -1
  184. package/dist/collection/components/six-progress-bar/six-progress-bar.js +2 -2
  185. package/dist/collection/components/six-progress-bar/six-progress-bar.js.map +1 -1
  186. package/dist/collection/components/six-progress-ring/six-progress-ring.js +1 -1
  187. package/dist/collection/components/six-progress-ring/six-progress-ring.js.map +1 -1
  188. package/dist/collection/components/six-radio/six-radio.js +2 -2
  189. package/dist/collection/components/six-radio/six-radio.js.map +1 -1
  190. package/dist/collection/components/six-range/six-range.css +1 -1
  191. package/dist/collection/components/six-range/six-range.js +12 -2
  192. package/dist/collection/components/six-range/six-range.js.map +1 -1
  193. package/dist/collection/components/six-root/six-root.js +1 -1
  194. package/dist/collection/components/six-root/six-root.js.map +1 -1
  195. package/dist/collection/components/six-search-field/six-search-field.js +1 -1
  196. package/dist/collection/components/six-search-field/six-search-field.js.map +1 -1
  197. package/dist/collection/components/six-select/six-select.js +6 -6
  198. package/dist/collection/components/six-select/six-select.js.map +1 -1
  199. package/dist/collection/components/six-select/util.js.map +1 -1
  200. package/dist/collection/components/six-sidebar/six-sidebar.js +2 -2
  201. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
  202. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +2 -2
  203. package/dist/collection/components/six-sidebar-item/six-sidebar-item.js.map +1 -1
  204. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js.map +1 -1
  205. package/dist/collection/components/six-switch/six-switch.js +2 -2
  206. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  207. package/dist/collection/components/six-tab/six-tab.js +2 -2
  208. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  209. package/dist/collection/components/six-tab-group/six-tab-group.js +33 -7
  210. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  211. package/dist/collection/components/six-tab-panel/six-tab-panel.js +1 -1
  212. package/dist/collection/components/six-tab-panel/six-tab-panel.js.map +1 -1
  213. package/dist/collection/components/six-tag/six-tag.js +2 -2
  214. package/dist/collection/components/six-tag/six-tag.js.map +1 -1
  215. package/dist/collection/components/six-textarea/six-textarea.js +2 -2
  216. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
  217. package/dist/collection/components/six-textarea/test/six-textarea.spec.js.map +1 -1
  218. package/dist/collection/components/six-tile/six-tile.js +3 -3
  219. package/dist/collection/components/six-tile/six-tile.js.map +1 -1
  220. package/dist/collection/components/six-timepicker/six-timepicker.js +1 -1
  221. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  222. package/dist/collection/components/six-timepicker/test/six-timepicker.spec.js.map +1 -1
  223. package/dist/collection/components/six-tooltip/six-tooltip.js +2 -2
  224. package/dist/collection/components/six-tooltip/six-tooltip.js.map +1 -1
  225. package/dist/collection/utils/alert.js.map +1 -1
  226. package/dist/collection/utils/date-util.js.map +1 -1
  227. package/dist/collection/utils/date-util.spec.js.map +1 -1
  228. package/dist/collection/utils/error-messages.js.map +1 -1
  229. package/dist/collection/utils/event-listeners.js.map +1 -1
  230. package/dist/collection/utils/focus-visible.js.map +1 -1
  231. package/dist/collection/utils/form.js.map +1 -1
  232. package/dist/collection/utils/modal.js.map +1 -1
  233. package/dist/collection/utils/popover.js.map +1 -1
  234. package/dist/collection/utils/popup.js.map +1 -1
  235. package/dist/collection/utils/scroll.js.map +1 -1
  236. package/dist/collection/utils/slot.js.map +1 -1
  237. package/dist/collection/utils/tabbable.js.map +1 -1
  238. package/dist/collection/utils/time.util.js.map +1 -1
  239. package/dist/collection/utils/time.util.spec.js.map +1 -1
  240. package/dist/components/modal.js +1 -17
  241. package/dist/components/modal.js.map +1 -1
  242. package/dist/components/six-alert.js +4 -3
  243. package/dist/components/six-alert.js.map +1 -1
  244. package/dist/components/six-avatar.js +3 -2
  245. package/dist/components/six-avatar.js.map +1 -1
  246. package/dist/components/six-badge.js +4 -3
  247. package/dist/components/six-badge.js.map +1 -1
  248. package/dist/components/six-button2.js +4 -3
  249. package/dist/components/six-button2.js.map +1 -1
  250. package/dist/components/six-card.js +3 -2
  251. package/dist/components/six-card.js.map +1 -1
  252. package/dist/components/six-checkbox2.js +4 -3
  253. package/dist/components/six-checkbox2.js.map +1 -1
  254. package/dist/components/six-datepicker.js +3 -2
  255. package/dist/components/six-datepicker.js.map +1 -1
  256. package/dist/components/six-details2.js +5 -4
  257. package/dist/components/six-details2.js.map +1 -1
  258. package/dist/components/six-dialog.js +11 -29
  259. package/dist/components/six-dialog.js.map +1 -1
  260. package/dist/components/six-drawer.js +12 -29
  261. package/dist/components/six-drawer.js.map +1 -1
  262. package/dist/components/six-dropdown2.js +7 -6
  263. package/dist/components/six-dropdown2.js.map +1 -1
  264. package/dist/components/six-error-page.js +3 -2
  265. package/dist/components/six-error-page.js.map +1 -1
  266. package/dist/components/six-error2.js +3 -2
  267. package/dist/components/six-error2.js.map +1 -1
  268. package/dist/components/six-file-list-item.js +4 -3
  269. package/dist/components/six-file-list-item.js.map +1 -1
  270. package/dist/components/six-file-list.js +3 -2
  271. package/dist/components/six-file-list.js.map +1 -1
  272. package/dist/components/six-file-upload.js +19 -10
  273. package/dist/components/six-file-upload.js.map +1 -1
  274. package/dist/components/six-footer.js +3 -2
  275. package/dist/components/six-footer.js.map +1 -1
  276. package/dist/components/six-group-label.js +3 -2
  277. package/dist/components/six-group-label.js.map +1 -1
  278. package/dist/components/six-header.js +12 -11
  279. package/dist/components/six-header.js.map +1 -1
  280. package/dist/components/six-icon-button2.js +5 -4
  281. package/dist/components/six-icon-button2.js.map +1 -1
  282. package/dist/components/six-icon2.js +4 -3
  283. package/dist/components/six-icon2.js.map +1 -1
  284. package/dist/components/six-input2.js +5 -4
  285. package/dist/components/six-input2.js.map +1 -1
  286. package/dist/components/six-item-picker2.js +5 -4
  287. package/dist/components/six-item-picker2.js.map +1 -1
  288. package/dist/components/six-language-switcher.js +5 -4
  289. package/dist/components/six-language-switcher.js.map +1 -1
  290. package/dist/components/six-layout-grid.js +3 -2
  291. package/dist/components/six-layout-grid.js.map +1 -1
  292. package/dist/components/six-main-container.js +3 -2
  293. package/dist/components/six-main-container.js.map +1 -1
  294. package/dist/components/six-menu-divider.js +3 -2
  295. package/dist/components/six-menu-divider.js.map +1 -1
  296. package/dist/components/six-menu-item2.js +4 -3
  297. package/dist/components/six-menu-item2.js.map +1 -1
  298. package/dist/components/six-menu-label.js +3 -2
  299. package/dist/components/six-menu-label.js.map +1 -1
  300. package/dist/components/six-menu2.js +4 -3
  301. package/dist/components/six-menu2.js.map +1 -1
  302. package/dist/components/six-picto2.js +3 -2
  303. package/dist/components/six-picto2.js.map +1 -1
  304. package/dist/components/six-progress-bar.js +4 -3
  305. package/dist/components/six-progress-bar.js.map +1 -1
  306. package/dist/components/six-progress-ring.js +3 -2
  307. package/dist/components/six-progress-ring.js.map +1 -1
  308. package/dist/components/six-radio.js +4 -3
  309. package/dist/components/six-radio.js.map +1 -1
  310. package/dist/components/six-range.js +15 -4
  311. package/dist/components/six-range.js.map +1 -1
  312. package/dist/components/six-root.js +3 -2
  313. package/dist/components/six-root.js.map +1 -1
  314. package/dist/components/six-search-field.js +3 -2
  315. package/dist/components/six-search-field.js.map +1 -1
  316. package/dist/components/six-select.js +8 -7
  317. package/dist/components/six-select.js.map +1 -1
  318. package/dist/components/six-sidebar-item-group.js +2 -1
  319. package/dist/components/six-sidebar-item-group.js.map +1 -1
  320. package/dist/components/six-sidebar-item.js +4 -3
  321. package/dist/components/six-sidebar-item.js.map +1 -1
  322. package/dist/components/six-sidebar.js +4 -3
  323. package/dist/components/six-sidebar.js.map +1 -1
  324. package/dist/components/six-spinner2.js +2 -1
  325. package/dist/components/six-spinner2.js.map +1 -1
  326. package/dist/components/six-stage-indicator2.js +2 -1
  327. package/dist/components/six-stage-indicator2.js.map +1 -1
  328. package/dist/components/six-switch.js +4 -3
  329. package/dist/components/six-switch.js.map +1 -1
  330. package/dist/components/six-tab-group.js +35 -8
  331. package/dist/components/six-tab-group.js.map +1 -1
  332. package/dist/components/six-tab-panel.js +3 -2
  333. package/dist/components/six-tab-panel.js.map +1 -1
  334. package/dist/components/six-tab.js +4 -3
  335. package/dist/components/six-tab.js.map +1 -1
  336. package/dist/components/six-tag.js +4 -3
  337. package/dist/components/six-tag.js.map +1 -1
  338. package/dist/components/six-textarea.js +4 -3
  339. package/dist/components/six-textarea.js.map +1 -1
  340. package/dist/components/six-tile.js +5 -4
  341. package/dist/components/six-tile.js.map +1 -1
  342. package/dist/components/six-timepicker2.js +3 -2
  343. package/dist/components/six-timepicker2.js.map +1 -1
  344. package/dist/components/six-tooltip2.js +4 -3
  345. package/dist/components/six-tooltip2.js.map +1 -1
  346. package/dist/components.json +34 -6
  347. package/dist/esm/app-globals-0f993ce5.js +5 -0
  348. package/dist/esm/app-globals-0f993ce5.js.map +1 -0
  349. package/dist/esm/{form-control-d403a9cf.js → form-control-5d3cf9d4.js} +2 -2
  350. package/dist/esm/{form-control-d403a9cf.js.map → form-control-5d3cf9d4.js.map} +1 -1
  351. package/dist/esm/{index-79d4ef67.js → index-d415464d.js} +60 -27
  352. package/dist/esm/index-d415464d.js.map +1 -0
  353. package/dist/esm/loader.js +6 -4
  354. package/dist/esm/loader.js.map +1 -1
  355. package/dist/esm/{modal-96526245.js → modal-6c1288e3.js} +2 -18
  356. package/dist/esm/modal-6c1288e3.js.map +1 -0
  357. package/dist/esm/six-alert.entry.js +5 -4
  358. package/dist/esm/six-alert.entry.js.map +1 -1
  359. package/dist/esm/six-avatar.entry.js +4 -3
  360. package/dist/esm/six-avatar.entry.js.map +1 -1
  361. package/dist/esm/six-badge.entry.js +5 -4
  362. package/dist/esm/six-badge.entry.js.map +1 -1
  363. package/dist/esm/six-button.entry.js +5 -4
  364. package/dist/esm/six-button.entry.js.map +1 -1
  365. package/dist/esm/six-card.entry.js +4 -3
  366. package/dist/esm/six-card.entry.js.map +1 -1
  367. package/dist/esm/six-checkbox_2.entry.js +10 -8
  368. package/dist/esm/six-checkbox_2.entry.js.map +1 -1
  369. package/dist/esm/six-datepicker.entry.js +4 -3
  370. package/dist/esm/six-datepicker.entry.js.map +1 -1
  371. package/dist/esm/six-details.entry.js +6 -5
  372. package/dist/esm/six-details.entry.js.map +1 -1
  373. package/dist/esm/six-dialog.entry.js +12 -30
  374. package/dist/esm/six-dialog.entry.js.map +1 -1
  375. package/dist/esm/six-drawer.entry.js +13 -30
  376. package/dist/esm/six-drawer.entry.js.map +1 -1
  377. package/dist/esm/six-dropdown_2.entry.js +12 -10
  378. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  379. package/dist/esm/six-error-page.entry.js +4 -3
  380. package/dist/esm/six-error-page.entry.js.map +1 -1
  381. package/dist/esm/six-error.entry.js +4 -3
  382. package/dist/esm/six-error.entry.js.map +1 -1
  383. package/dist/esm/six-file-list-item.entry.js +5 -4
  384. package/dist/esm/six-file-list-item.entry.js.map +1 -1
  385. package/dist/esm/six-file-list.entry.js +4 -3
  386. package/dist/esm/six-file-list.entry.js.map +1 -1
  387. package/dist/esm/six-file-upload.entry.js +11 -9
  388. package/dist/esm/six-file-upload.entry.js.map +1 -1
  389. package/dist/esm/six-footer.entry.js +4 -3
  390. package/dist/esm/six-footer.entry.js.map +1 -1
  391. package/dist/esm/six-group-label.entry.js +5 -4
  392. package/dist/esm/six-group-label.entry.js.map +1 -1
  393. package/dist/esm/six-header.entry.js +13 -12
  394. package/dist/esm/six-header.entry.js.map +1 -1
  395. package/dist/esm/six-icon-button.entry.js +6 -5
  396. package/dist/esm/six-icon-button.entry.js.map +1 -1
  397. package/dist/esm/six-icon.entry.js +5 -4
  398. package/dist/esm/six-icon.entry.js.map +1 -1
  399. package/dist/esm/six-input.entry.js +7 -6
  400. package/dist/esm/six-input.entry.js.map +1 -1
  401. package/dist/esm/six-item-picker.entry.js +6 -5
  402. package/dist/esm/six-item-picker.entry.js.map +1 -1
  403. package/dist/esm/six-language-switcher.entry.js +6 -5
  404. package/dist/esm/six-language-switcher.entry.js.map +1 -1
  405. package/dist/esm/six-layout-grid.entry.js +4 -3
  406. package/dist/esm/six-layout-grid.entry.js.map +1 -1
  407. package/dist/esm/six-main-container.entry.js +4 -3
  408. package/dist/esm/six-main-container.entry.js.map +1 -1
  409. package/dist/esm/six-menu-divider.entry.js +4 -3
  410. package/dist/esm/six-menu-divider.entry.js.map +1 -1
  411. package/dist/esm/six-menu-label.entry.js +4 -3
  412. package/dist/esm/six-menu-label.entry.js.map +1 -1
  413. package/dist/esm/six-picto.entry.js +4 -3
  414. package/dist/esm/six-picto.entry.js.map +1 -1
  415. package/dist/esm/six-progress-bar.entry.js +5 -4
  416. package/dist/esm/six-progress-bar.entry.js.map +1 -1
  417. package/dist/esm/six-progress-ring.entry.js +4 -3
  418. package/dist/esm/six-progress-ring.entry.js.map +1 -1
  419. package/dist/esm/six-radio.entry.js +5 -4
  420. package/dist/esm/six-radio.entry.js.map +1 -1
  421. package/dist/esm/six-range.entry.js +17 -6
  422. package/dist/esm/six-range.entry.js.map +1 -1
  423. package/dist/esm/six-root.entry.js +4 -3
  424. package/dist/esm/six-root.entry.js.map +1 -1
  425. package/dist/esm/six-search-field.entry.js +4 -3
  426. package/dist/esm/six-search-field.entry.js.map +1 -1
  427. package/dist/esm/six-select.entry.js +10 -9
  428. package/dist/esm/six-select.entry.js.map +1 -1
  429. package/dist/esm/six-sidebar-item-group.entry.js +3 -2
  430. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  431. package/dist/esm/six-sidebar-item.entry.js +5 -4
  432. package/dist/esm/six-sidebar-item.entry.js.map +1 -1
  433. package/dist/esm/six-sidebar.entry.js +5 -4
  434. package/dist/esm/six-sidebar.entry.js.map +1 -1
  435. package/dist/esm/six-spinner.entry.js +3 -2
  436. package/dist/esm/six-spinner.entry.js.map +1 -1
  437. package/dist/esm/six-stage-indicator.entry.js +3 -2
  438. package/dist/esm/six-stage-indicator.entry.js.map +1 -1
  439. package/dist/esm/six-switch.entry.js +6 -5
  440. package/dist/esm/six-switch.entry.js.map +1 -1
  441. package/dist/esm/six-tab-group.entry.js +34 -8
  442. package/dist/esm/six-tab-group.entry.js.map +1 -1
  443. package/dist/esm/six-tab-panel.entry.js +4 -3
  444. package/dist/esm/six-tab-panel.entry.js.map +1 -1
  445. package/dist/esm/six-tab.entry.js +5 -4
  446. package/dist/esm/six-tab.entry.js.map +1 -1
  447. package/dist/esm/six-tag.entry.js +5 -4
  448. package/dist/esm/six-tag.entry.js.map +1 -1
  449. package/dist/esm/six-textarea.entry.js +6 -5
  450. package/dist/esm/six-textarea.entry.js.map +1 -1
  451. package/dist/esm/six-tile.entry.js +6 -5
  452. package/dist/esm/six-tile.entry.js.map +1 -1
  453. package/dist/esm/six-timepicker.entry.js +4 -3
  454. package/dist/esm/six-timepicker.entry.js.map +1 -1
  455. package/dist/esm/six-tooltip.entry.js +5 -4
  456. package/dist/esm/six-tooltip.entry.js.map +1 -1
  457. package/dist/esm/ui-library.js +7 -5
  458. package/dist/esm/ui-library.js.map +1 -1
  459. package/dist/types/components/six-file-upload/six-file-upload.d.ts +2 -0
  460. package/dist/types/components/six-range/six-range.d.ts +2 -0
  461. package/dist/types/components/six-tab-group/six-tab-group.d.ts +4 -1
  462. package/dist/types/components.d.ts +8 -0
  463. package/dist/ui-library/{p-ac57ba5c.entry.js → p-0054410d.entry.js} +2 -2
  464. package/dist/ui-library/p-0054410d.entry.js.map +1 -0
  465. package/dist/ui-library/{p-0440335d.entry.js → p-034b3bb1.entry.js} +2 -2
  466. package/dist/ui-library/p-034b3bb1.entry.js.map +1 -0
  467. package/dist/ui-library/{p-8888a367.entry.js → p-1903aa37.entry.js} +2 -2
  468. package/dist/ui-library/p-1903aa37.entry.js.map +1 -0
  469. package/dist/ui-library/{p-ed279165.entry.js → p-1a17a806.entry.js} +2 -2
  470. package/dist/ui-library/p-1a17a806.entry.js.map +1 -0
  471. package/dist/ui-library/p-1c5e8dec.entry.js +2 -0
  472. package/dist/ui-library/p-1c5e8dec.entry.js.map +1 -0
  473. package/dist/ui-library/p-23f5dae2.entry.js +2 -0
  474. package/dist/ui-library/p-23f5dae2.entry.js.map +1 -0
  475. package/dist/ui-library/p-24c42aab.entry.js +2 -0
  476. package/dist/ui-library/p-24c42aab.entry.js.map +1 -0
  477. package/dist/ui-library/p-2b7e2bcb.entry.js +2 -0
  478. package/dist/ui-library/p-2b7e2bcb.entry.js.map +1 -0
  479. package/dist/ui-library/{p-8ced18d8.entry.js → p-2e7312fc.entry.js} +2 -2
  480. package/dist/ui-library/p-2e7312fc.entry.js.map +1 -0
  481. package/dist/ui-library/p-380ba2b7.entry.js +2 -0
  482. package/dist/ui-library/p-380ba2b7.entry.js.map +1 -0
  483. package/dist/ui-library/{p-04cc397c.entry.js → p-38271a5e.entry.js} +2 -2
  484. package/dist/ui-library/p-38271a5e.entry.js.map +1 -0
  485. package/dist/ui-library/{p-870b988d.entry.js → p-3a879e1d.entry.js} +2 -2
  486. package/dist/ui-library/p-3a879e1d.entry.js.map +1 -0
  487. package/dist/ui-library/p-3c05fdf3.entry.js +2 -0
  488. package/dist/ui-library/p-3c05fdf3.entry.js.map +1 -0
  489. package/dist/ui-library/p-3c582981.entry.js +2 -0
  490. package/dist/ui-library/p-3c582981.entry.js.map +1 -0
  491. package/dist/ui-library/{p-961bd001.entry.js → p-3f8ed1d4.entry.js} +2 -2
  492. package/dist/ui-library/p-3f8ed1d4.entry.js.map +1 -0
  493. package/dist/ui-library/p-4272021f.entry.js +2 -0
  494. package/dist/ui-library/p-4272021f.entry.js.map +1 -0
  495. package/dist/ui-library/p-499480a2.entry.js +2 -0
  496. package/dist/ui-library/p-499480a2.entry.js.map +1 -0
  497. package/dist/ui-library/p-50d589eb.entry.js +2 -0
  498. package/dist/ui-library/p-50d589eb.entry.js.map +1 -0
  499. package/dist/ui-library/{p-884c5cf9.entry.js → p-52e2a64b.entry.js} +2 -2
  500. package/dist/ui-library/p-52e2a64b.entry.js.map +1 -0
  501. package/dist/ui-library/p-57ab8f42.entry.js +2 -0
  502. package/dist/ui-library/p-57ab8f42.entry.js.map +1 -0
  503. package/dist/ui-library/p-59744f17.entry.js +2 -0
  504. package/dist/ui-library/p-59744f17.entry.js.map +1 -0
  505. package/dist/ui-library/p-5cde0403.entry.js +2 -0
  506. package/dist/ui-library/p-5cde0403.entry.js.map +1 -0
  507. package/dist/ui-library/p-61c91764.entry.js +2 -0
  508. package/dist/ui-library/p-61c91764.entry.js.map +1 -0
  509. package/dist/ui-library/p-651293e7.js +2 -0
  510. package/dist/ui-library/p-651293e7.js.map +1 -0
  511. package/dist/ui-library/{p-61e66671.js → p-6ee48e81.js} +2 -2
  512. package/dist/ui-library/{p-50dae789.entry.js → p-716019b6.entry.js} +2 -2
  513. package/dist/ui-library/p-716019b6.entry.js.map +1 -0
  514. package/dist/ui-library/p-71ff0e72.entry.js +2 -0
  515. package/dist/ui-library/p-71ff0e72.entry.js.map +1 -0
  516. package/dist/ui-library/p-740d3c8b.entry.js +2 -0
  517. package/dist/ui-library/p-740d3c8b.entry.js.map +1 -0
  518. package/dist/ui-library/p-786148a6.entry.js +2 -0
  519. package/dist/ui-library/p-786148a6.entry.js.map +1 -0
  520. package/dist/ui-library/p-7ad67887.entry.js +2 -0
  521. package/dist/ui-library/p-7ad67887.entry.js.map +1 -0
  522. package/dist/ui-library/{p-9c79341d.entry.js → p-81390410.entry.js} +2 -2
  523. package/dist/ui-library/p-81390410.entry.js.map +1 -0
  524. package/dist/ui-library/p-9a7c45c4.entry.js +2 -0
  525. package/dist/ui-library/p-9a7c45c4.entry.js.map +1 -0
  526. package/dist/ui-library/{p-caea1eb6.entry.js → p-9e14b37a.entry.js} +2 -2
  527. package/dist/ui-library/p-9e14b37a.entry.js.map +1 -0
  528. package/dist/ui-library/p-a2dad0ab.entry.js +2 -0
  529. package/dist/ui-library/p-a2dad0ab.entry.js.map +1 -0
  530. package/dist/ui-library/p-a67b3f42.entry.js +2 -0
  531. package/dist/ui-library/p-a67b3f42.entry.js.map +1 -0
  532. package/dist/ui-library/p-a69ba529.entry.js +2 -0
  533. package/dist/ui-library/p-a69ba529.entry.js.map +1 -0
  534. package/dist/ui-library/p-ab22dafd.entry.js +2 -0
  535. package/dist/ui-library/p-ab22dafd.entry.js.map +1 -0
  536. package/dist/ui-library/p-ad244587.entry.js +2 -0
  537. package/dist/ui-library/p-ad244587.entry.js.map +1 -0
  538. package/dist/ui-library/p-b68f4556.entry.js +2 -0
  539. package/dist/ui-library/p-b68f4556.entry.js.map +1 -0
  540. package/dist/ui-library/p-b863dcc4.entry.js +2 -0
  541. package/dist/ui-library/p-b863dcc4.entry.js.map +1 -0
  542. package/dist/ui-library/p-b902eb65.entry.js +2 -0
  543. package/dist/ui-library/p-b902eb65.entry.js.map +1 -0
  544. package/dist/ui-library/p-b922e8ac.entry.js +2 -0
  545. package/dist/ui-library/p-b922e8ac.entry.js.map +1 -0
  546. package/dist/ui-library/p-c297662b.entry.js +2 -0
  547. package/dist/ui-library/p-c297662b.entry.js.map +1 -0
  548. package/dist/ui-library/p-ce59d17f.entry.js +2 -0
  549. package/dist/ui-library/p-ce59d17f.entry.js.map +1 -0
  550. package/dist/ui-library/{p-d95e292e.entry.js → p-dea8f89c.entry.js} +2 -2
  551. package/dist/ui-library/p-dea8f89c.entry.js.map +1 -0
  552. package/dist/ui-library/p-e1255160.js +2 -0
  553. package/dist/ui-library/p-e1255160.js.map +1 -0
  554. package/dist/ui-library/{p-da7f3dbd.entry.js → p-e6db01a9.entry.js} +2 -2
  555. package/dist/ui-library/p-e6db01a9.entry.js.map +1 -0
  556. package/dist/ui-library/p-e6db442b.entry.js +2 -0
  557. package/dist/ui-library/p-e6db442b.entry.js.map +1 -0
  558. package/dist/ui-library/p-e8d5a789.js +3 -0
  559. package/dist/ui-library/p-e8d5a789.js.map +1 -0
  560. package/dist/ui-library/p-e924132d.entry.js +2 -0
  561. package/dist/ui-library/p-e924132d.entry.js.map +1 -0
  562. package/dist/ui-library/p-e9726db2.entry.js +2 -0
  563. package/dist/ui-library/p-e9726db2.entry.js.map +1 -0
  564. package/dist/ui-library/p-f2320c65.entry.js +2 -0
  565. package/dist/ui-library/p-f2320c65.entry.js.map +1 -0
  566. package/dist/ui-library/p-fdf271fd.entry.js +2 -0
  567. package/dist/ui-library/p-fdf271fd.entry.js.map +1 -0
  568. package/dist/ui-library/p-fe483fc6.entry.js +2 -0
  569. package/dist/ui-library/p-fe483fc6.entry.js.map +1 -0
  570. package/dist/ui-library/ui-library.esm.js +1 -1
  571. package/dist/ui-library/ui-library.esm.js.map +1 -1
  572. package/package.json +5 -5
  573. package/dist/cjs/index-d7748d51.js.map +0 -1
  574. package/dist/cjs/modal-3ce015be.js.map +0 -1
  575. package/dist/collection/utils/support.js +0 -16
  576. package/dist/collection/utils/support.js.map +0 -1
  577. package/dist/esm/index-79d4ef67.js.map +0 -1
  578. package/dist/esm/modal-96526245.js.map +0 -1
  579. package/dist/types/utils/support.d.ts +0 -1
  580. package/dist/ui-library/p-0440335d.entry.js.map +0 -1
  581. package/dist/ui-library/p-04cc397c.entry.js.map +0 -1
  582. package/dist/ui-library/p-0edd3091.entry.js +0 -2
  583. package/dist/ui-library/p-0edd3091.entry.js.map +0 -1
  584. package/dist/ui-library/p-150b7664.entry.js +0 -2
  585. package/dist/ui-library/p-150b7664.entry.js.map +0 -1
  586. package/dist/ui-library/p-1f5840b5.entry.js +0 -2
  587. package/dist/ui-library/p-1f5840b5.entry.js.map +0 -1
  588. package/dist/ui-library/p-28cc013e.entry.js +0 -2
  589. package/dist/ui-library/p-28cc013e.entry.js.map +0 -1
  590. package/dist/ui-library/p-3424bbc0.entry.js +0 -2
  591. package/dist/ui-library/p-3424bbc0.entry.js.map +0 -1
  592. package/dist/ui-library/p-348c68a8.entry.js +0 -2
  593. package/dist/ui-library/p-348c68a8.entry.js.map +0 -1
  594. package/dist/ui-library/p-3723ca06.entry.js +0 -2
  595. package/dist/ui-library/p-3723ca06.entry.js.map +0 -1
  596. package/dist/ui-library/p-37aeac5e.entry.js +0 -2
  597. package/dist/ui-library/p-37aeac5e.entry.js.map +0 -1
  598. package/dist/ui-library/p-3d7fb086.entry.js +0 -2
  599. package/dist/ui-library/p-3d7fb086.entry.js.map +0 -1
  600. package/dist/ui-library/p-457f7373.entry.js +0 -2
  601. package/dist/ui-library/p-457f7373.entry.js.map +0 -1
  602. package/dist/ui-library/p-4a667f31.entry.js +0 -2
  603. package/dist/ui-library/p-4a667f31.entry.js.map +0 -1
  604. package/dist/ui-library/p-50dae789.entry.js.map +0 -1
  605. package/dist/ui-library/p-546e33d9.entry.js +0 -2
  606. package/dist/ui-library/p-546e33d9.entry.js.map +0 -1
  607. package/dist/ui-library/p-5db3a705.entry.js +0 -2
  608. package/dist/ui-library/p-5db3a705.entry.js.map +0 -1
  609. package/dist/ui-library/p-6296779b.entry.js +0 -2
  610. package/dist/ui-library/p-6296779b.entry.js.map +0 -1
  611. package/dist/ui-library/p-64b4755d.entry.js +0 -2
  612. package/dist/ui-library/p-64b4755d.entry.js.map +0 -1
  613. package/dist/ui-library/p-6c1b046e.entry.js +0 -2
  614. package/dist/ui-library/p-6c1b046e.entry.js.map +0 -1
  615. package/dist/ui-library/p-7115316e.entry.js +0 -2
  616. package/dist/ui-library/p-7115316e.entry.js.map +0 -1
  617. package/dist/ui-library/p-73dd493f.entry.js +0 -2
  618. package/dist/ui-library/p-73dd493f.entry.js.map +0 -1
  619. package/dist/ui-library/p-870b988d.entry.js.map +0 -1
  620. package/dist/ui-library/p-884c5cf9.entry.js.map +0 -1
  621. package/dist/ui-library/p-8888a367.entry.js.map +0 -1
  622. package/dist/ui-library/p-8ced18d8.entry.js.map +0 -1
  623. package/dist/ui-library/p-935c78a7.entry.js +0 -2
  624. package/dist/ui-library/p-935c78a7.entry.js.map +0 -1
  625. package/dist/ui-library/p-961bd001.entry.js.map +0 -1
  626. package/dist/ui-library/p-998de05d.js +0 -2
  627. package/dist/ui-library/p-998de05d.js.map +0 -1
  628. package/dist/ui-library/p-9b08068d.entry.js +0 -2
  629. package/dist/ui-library/p-9b08068d.entry.js.map +0 -1
  630. package/dist/ui-library/p-9c79341d.entry.js.map +0 -1
  631. package/dist/ui-library/p-a9c159f2.entry.js +0 -2
  632. package/dist/ui-library/p-a9c159f2.entry.js.map +0 -1
  633. package/dist/ui-library/p-ac57ba5c.entry.js.map +0 -1
  634. package/dist/ui-library/p-af15381b.js +0 -3
  635. package/dist/ui-library/p-af15381b.js.map +0 -1
  636. package/dist/ui-library/p-b1a5f3cd.entry.js +0 -2
  637. package/dist/ui-library/p-b1a5f3cd.entry.js.map +0 -1
  638. package/dist/ui-library/p-b385a241.entry.js +0 -2
  639. package/dist/ui-library/p-b385a241.entry.js.map +0 -1
  640. package/dist/ui-library/p-b74c5d6b.entry.js +0 -2
  641. package/dist/ui-library/p-b74c5d6b.entry.js.map +0 -1
  642. package/dist/ui-library/p-bf2fb53f.entry.js +0 -2
  643. package/dist/ui-library/p-bf2fb53f.entry.js.map +0 -1
  644. package/dist/ui-library/p-c2c7370b.entry.js +0 -2
  645. package/dist/ui-library/p-c2c7370b.entry.js.map +0 -1
  646. package/dist/ui-library/p-caea1eb6.entry.js.map +0 -1
  647. package/dist/ui-library/p-d3f5b9a8.entry.js +0 -2
  648. package/dist/ui-library/p-d3f5b9a8.entry.js.map +0 -1
  649. package/dist/ui-library/p-d42b18eb.entry.js +0 -2
  650. package/dist/ui-library/p-d42b18eb.entry.js.map +0 -1
  651. package/dist/ui-library/p-d95e292e.entry.js.map +0 -1
  652. package/dist/ui-library/p-da7f3dbd.entry.js.map +0 -1
  653. package/dist/ui-library/p-dfb89b6a.entry.js +0 -2
  654. package/dist/ui-library/p-dfb89b6a.entry.js.map +0 -1
  655. package/dist/ui-library/p-e6032375.entry.js +0 -2
  656. package/dist/ui-library/p-e6032375.entry.js.map +0 -1
  657. package/dist/ui-library/p-e60d2324.entry.js +0 -2
  658. package/dist/ui-library/p-e60d2324.entry.js.map +0 -1
  659. package/dist/ui-library/p-e8298c6e.entry.js +0 -2
  660. package/dist/ui-library/p-e8298c6e.entry.js.map +0 -1
  661. package/dist/ui-library/p-ed279165.entry.js.map +0 -1
  662. package/dist/ui-library/p-ed61b75c.entry.js +0 -2
  663. package/dist/ui-library/p-ed61b75c.entry.js.map +0 -1
  664. package/dist/ui-library/p-f1ab3384.entry.js +0 -2
  665. package/dist/ui-library/p-f1ab3384.entry.js.map +0 -1
  666. package/dist/ui-library/p-f4ef481c.entry.js +0 -2
  667. package/dist/ui-library/p-f4ef481c.entry.js.map +0 -1
  668. package/dist/ui-library/p-f8cbb8da.entry.js +0 -2
  669. package/dist/ui-library/p-f8cbb8da.entry.js.map +0 -1
  670. /package/dist/ui-library/{p-61e66671.js.map → p-6ee48e81.js.map} +0 -0
@@ -0,0 +1,2 @@
1
+ import{r as i,c as e,h as t,g as s}from"./p-e8d5a789.js";import{h as l,g as a}from"./p-0cebf1d2.js";const o=':host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:inline-block}.tile{min-height:var(--tile-size);width:var(--tile-size);background-color:var(--six-color-clay-50);display:inline-grid;grid-template-columns:100%;grid-template-areas:"header" "middle" "footer"}.tile--small{--tile-size:80px;--tile-padding-size:var(--six-spacing-medium)}.tile--medium{--tile-size:120px;--tile-padding-size:var(--six-spacing-large)}.tile--large{--tile-size:160px;--tile-padding-size:var(--six-spacing-x-large)}.tile:not(.tile--visible){visibility:hidden}.tile--elevated{border:0;box-shadow:var(--six-shadow-medium)}.tile__header{grid-area:header;height:5%;justify-self:right;display:flex;justify-content:right;opacity:0;transition:var(--six-transition-fast) opacity}.tile:hover>.tile__header{opacity:1}.tile__header--hidden{visibility:hidden}.tile__header six-icon-button{margin-top:-6px;margin-right:-6px;margin-bottom:-16px}.tile__body,.tile__body--large,.tile__body--medium,.tile__body--small{grid-area:middle;display:grid;place-items:center;cursor:pointer;padding-left:var(--tile-padding-size);padding-right:var(--tile-padding-size)}.tile__body six-icon::part(base),.tile__body--large six-icon::part(base),.tile__body--medium six-icon::part(base),.tile__body--small six-icon::part(base){padding:0}.tile__body--small{--tile-padding-size:var(--six-spacing-medium)}.tile__body--medium{--tile-padding-size:var(--six-spacing-large)}.tile__body--large{--tile-padding-size:var(--six-spacing-x-large)}.tile__footer,.tile__footer--large,.tile__footer--medium,.tile__footer--small{grid-area:footer;display:flex;justify-content:center;cursor:pointer;font-weight:var(--six-font-weight-normal);color:var(--six-color-web-rock-900)}.tile__footer--small{font-size:var(--six-font-size-xxx-small)}.tile__footer--medium{font-size:var(--six-font-size-xx-small)}.tile__footer--large{font-size:var(--six-font-size-small)}.tile__footer .label__footer,.tile__footer--small .label__footer,.tile__footer--medium .label__footer,.tile__footer--large .label__footer{overflow:hidden;text-overflow:ellipsis;width:calc(var(--tile-size) - 2em);text-align:center}';const r=o;const d=class{constructor(t){i(this,t);this.sixTileClose=e(this,"six-tile-closed",7);this.sixTileSelected=e(this,"six-tile-selected",7);this.handleSlotChange=()=>{this.hasIconSlot=l(this.host,"icon");this.hasLabelSlot=l(this.host,"label");if(this.hasIconSlot){const i=a(this.host,"icon");i===null||i===void 0?void 0:i.addEventListener("click",this.handleClickEvent)}if(this.hasLabelSlot){const i=a(this.host,"label");i===null||i===void 0?void 0:i.addEventListener("click",this.handleClickEvent)}};this.handleCloseClickEvent=()=>{this.visible=false;this.sixTileClose.emit()};this.handleClickEvent=()=>{this.sixTileSelected.emit()};this.label="";this.iconName=undefined;this.closeable=true;this.elevated=false;this.disableTooltip=true;this.disabled=false;this.size="medium";this.visible=true;this.hasIconSlot=false;this.hasLabelSlot=false}async hide(){this.visible=false}async show(){this.visible=true}componentWillLoad(){this.handleSlotChange()}render(){return t("six-tooltip",{key:"cab94c6d0cd1088f15d70709ffae09ab27f4c3ab",disabled:this.disableTooltip||this.label==="",content:this.label},t("div",{key:"124e2e6bec97f3c6c12a7426f22272602b71b782",part:"base",class:{tile:true,"tile--visible":this.visible,"tile--small":this.size==="small","tile--medium":this.size==="medium","tile--large":this.size==="large","tile--elevated":this.elevated}},t("div",{key:"49c9f506ca66a50e0ff2bab1da4ea66b6a9c5e8b",part:"header",class:"tile__header"},t("six-icon-button",{key:"45e2b3878f8cb844e80e0d26285b2a37d8a3356f",class:{"tile__header--hidden":!this.closeable},name:"close",size:n(this.size),onClick:this.handleCloseClickEvent})),t("div",{key:"2d030da9982efd1cd0b33c9fcd85e30764516454",part:"body",class:"tile__body"},this.iconName&&t("six-icon",{onClick:this.handleClickEvent,size:h(this.size)},this.iconName),this.hasIconSlot&&t("slot",{name:"icon"})),t("div",{key:"d0b090d95076b64f29582d7c171fb1570ade78c2",part:"footer",class:{"tile__footer--small":this.size==="small","tile__footer--medium":this.size==="medium","tile__footer--large":this.size==="large"}},this.label&&t("div",{class:{".label__footer":true},onClick:this.handleClickEvent},this.label),this.hasLabelSlot&&t("slot",{name:"label"}))))}get host(){return s(this)}};const n=i=>({small:"xxSmall",medium:"medium",large:"medium"}[i]);const h=i=>({small:"xLarge",medium:"xxLarge",large:"xxxLarge"}[i]);d.style=r;export{d as six_tile};
2
+ //# sourceMappingURL=p-57ab8f42.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sixTileCss","SixTileStyle0","SixTile","this","handleSlotChange","hasIconSlot","hasSlot","host","hasLabelSlot","slot","getSlot","addEventListener","handleClickEvent","handleCloseClickEvent","visible","sixTileClose","emit","sixTileSelected","hide","show","componentWillLoad","render","h","key","disabled","disableTooltip","label","content","part","class","tile","size","elevated","closeable","name","closeIconSize","onClick","iconName","iconSize","small","medium","large"],"sources":["src/components/six-tile/six-tile.scss?tag=six-tile&encapsulation=shadow","src/components/six-tile/six-tile.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n}\n\n.tile {\n &--small {\n --tile-size: 80px;\n --tile-padding-size: var(--six-spacing-medium);\n }\n\n &--medium {\n --tile-size: 120px;\n --tile-padding-size: var(--six-spacing-large);\n }\n\n &--large {\n --tile-size: 160px;\n --tile-padding-size: var(--six-spacing-x-large);\n }\n\n min-height: var(--tile-size);\n width: var(--tile-size);\n\n background-color: var(--six-color-clay-50);\n\n display: inline-grid;\n grid-template-columns: 100%;\n grid-template-areas:\n 'header'\n 'middle'\n 'footer';\n\n &:not(.tile--visible) {\n visibility: hidden;\n }\n\n &--elevated {\n border: 0;\n box-shadow: var(--six-shadow-medium);\n }\n}\n\n.tile__header {\n grid-area: header;\n height: 5%;\n justify-self: right;\n display: flex;\n justify-content: right;\n opacity: 0;\n transition: var(--six-transition-fast) opacity;\n\n .tile:hover > & {\n opacity: 1;\n }\n\n &--hidden {\n visibility: hidden;\n }\n\n six-icon-button {\n margin-top: -6px;\n margin-right: -6px;\n margin-bottom: -16px;\n }\n}\n\n.tile__body {\n grid-area: middle;\n display: grid;\n place-items: center;\n cursor: pointer;\n\n six-icon::part(base) {\n padding: 0;\n }\n\n &--small {\n @extend .tile__body;\n --tile-padding-size: var(--six-spacing-medium);\n }\n\n &--medium {\n @extend .tile__body;\n --tile-padding-size: var(--six-spacing-large);\n }\n\n &--large {\n @extend .tile__body;\n --tile-padding-size: var(--six-spacing-x-large);\n }\n\n padding-left: var(--tile-padding-size);\n padding-right: var(--tile-padding-size);\n}\n\n.tile__footer {\n grid-area: footer;\n display: flex;\n justify-content: center;\n cursor: pointer;\n font-weight: var(--six-font-weight-normal);\n color: var(--six-color-web-rock-900);\n\n &--small {\n @extend .tile__footer;\n font-size: var(--six-font-size-xxx-small);\n }\n\n &--medium {\n @extend .tile__footer;\n font-size: var(--six-font-size-xx-small);\n }\n\n &--large {\n @extend .tile__footer;\n font-size: var(--six-font-size-small);\n }\n\n .label__footer {\n overflow: hidden;\n text-overflow: ellipsis;\n width: calc(var(--tile-size) - 2em);\n text-align: center;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { getSlot, hasSlot } from '../../utils/slot';\n\n/**\n * @since 1.0\n * @status stable\n */\n\n@Component({\n tag: 'six-tile',\n styleUrl: 'six-tile.scss',\n shadow: true,\n})\nexport class SixTile {\n @Element() host!: HTMLSixTileElement;\n\n /** The tile's label. */\n @Prop() label = '';\n\n /** The icon's name. */\n @Prop() iconName?: string;\n\n /** Flag, whether the tile is closeable. */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop() closeable = true;\n\n /** Flag, whether the tile should cast a shadow. */\n @Prop() elevated = false;\n\n /** Enables tile tooltip for tiles */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop() disableTooltip = true;\n\n /** Set to true to disable the tile. */\n @Prop({ reflect: true }) disabled = false;\n\n /** The tile's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n @State() visible = true;\n\n /** Emitted when the tile was closed. */\n @Event({ eventName: 'six-tile-closed' }) sixTileClose!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the tile is selected. */\n @Event({ eventName: 'six-tile-selected' }) sixTileSelected!: EventEmitter<EmptyPayload>;\n\n /** Hides the tile */\n @Method()\n async hide() {\n this.visible = false;\n }\n\n /** Shows the tile */\n @Method()\n async show() {\n this.visible = true;\n }\n\n @State() hasIconSlot = false;\n\n @State() hasLabelSlot = false;\n\n componentWillLoad() {\n this.handleSlotChange();\n }\n\n private handleSlotChange = () => {\n this.hasIconSlot = hasSlot(this.host, 'icon');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n\n if (this.hasIconSlot) {\n const slot = getSlot(this.host, 'icon');\n slot?.addEventListener('click', this.handleClickEvent);\n }\n\n if (this.hasLabelSlot) {\n const slot = getSlot(this.host, 'label');\n slot?.addEventListener('click', this.handleClickEvent);\n }\n };\n\n render() {\n return (\n <six-tooltip disabled={this.disableTooltip || this.label === ''} content={this.label}>\n <div\n part=\"base\"\n class={{\n tile: true,\n 'tile--visible': this.visible,\n 'tile--small': this.size === 'small',\n 'tile--medium': this.size === 'medium',\n 'tile--large': this.size === 'large',\n 'tile--elevated': this.elevated,\n }}\n >\n <div part=\"header\" class=\"tile__header\">\n <six-icon-button\n class={{\n 'tile__header--hidden': !this.closeable,\n }}\n name=\"close\"\n size={closeIconSize(this.size)}\n onClick={this.handleCloseClickEvent}\n />\n </div>\n\n <div part=\"body\" class=\"tile__body\">\n {this.iconName && (\n <six-icon onClick={this.handleClickEvent} size={iconSize(this.size)}>\n {this.iconName}\n </six-icon>\n )}\n {this.hasIconSlot && <slot name=\"icon\"></slot>}\n </div>\n\n <div\n part=\"footer\"\n class={{\n 'tile__footer--small': this.size === 'small',\n 'tile__footer--medium': this.size === 'medium',\n 'tile__footer--large': this.size === 'large',\n }}\n >\n {this.label && (\n <div\n class={{\n '.label__footer': true,\n }}\n onClick={this.handleClickEvent}\n >\n {this.label}\n </div>\n )}\n {this.hasLabelSlot && <slot name=\"label\"></slot>}\n </div>\n </div>\n </six-tooltip>\n );\n }\n\n private handleCloseClickEvent = () => {\n this.visible = false;\n this.sixTileClose.emit();\n };\n\n private handleClickEvent = () => {\n this.sixTileSelected.emit();\n };\n}\n\nconst closeIconSize = (size: string) => {\n return {\n small: 'xxSmall',\n medium: 'medium',\n large: 'medium',\n }[size] as 'xSmall' | 'medium';\n};\n\nconst iconSize = (size: string) => {\n return {\n small: 'xLarge',\n medium: 'xxLarge',\n large: 'xxxLarge',\n }[size] as 'xLarge' | 'xxLarge' | 'xxxLarge';\n};\n"],"mappings":"oGAAA,MAAMA,EAAa,soEACnB,MAAAC,EAAeD,E,MCaFE,EAAO,M,0HAsDVC,KAAAC,iBAAmB,KACzBD,KAAKE,YAAcC,EAAQH,KAAKI,KAAM,QACtCJ,KAAKK,aAAeF,EAAQH,KAAKI,KAAM,SAEvC,GAAIJ,KAAKE,YAAa,CACpB,MAAMI,EAAOC,EAAQP,KAAKI,KAAM,QAChCE,IAAI,MAAJA,SAAI,SAAJA,EAAME,iBAAiB,QAASR,KAAKS,iB,CAGvC,GAAIT,KAAKK,aAAc,CACrB,MAAMC,EAAOC,EAAQP,KAAKI,KAAM,SAChCE,IAAI,MAAJA,SAAI,SAAJA,EAAME,iBAAiB,QAASR,KAAKS,iB,GA+DjCT,KAAAU,sBAAwB,KAC9BV,KAAKW,QAAU,MACfX,KAAKY,aAAaC,MAAM,EAGlBb,KAAAS,iBAAmB,KACzBT,KAAKc,gBAAgBD,MAAM,E,WAlIb,G,uCAOI,K,cAGD,M,oBAIM,K,cAGW,M,UAG0B,S,aAE3C,K,iBAoBI,M,kBAEC,K,CAZxB,UAAME,GACJf,KAAKW,QAAU,K,CAKjB,UAAMK,GACJhB,KAAKW,QAAU,I,CAOjB,iBAAAM,GACEjB,KAAKC,kB,CAkBP,MAAAiB,GACE,OACEC,EAAA,eAAAC,IAAA,2CAAaC,SAAUrB,KAAKsB,gBAAkBtB,KAAKuB,QAAU,GAAIC,QAASxB,KAAKuB,OAC7EJ,EAAA,OAAAC,IAAA,2CACEK,KAAK,OACLC,MAAO,CACLC,KAAM,KACN,gBAAiB3B,KAAKW,QACtB,cAAeX,KAAK4B,OAAS,QAC7B,eAAgB5B,KAAK4B,OAAS,SAC9B,cAAe5B,KAAK4B,OAAS,QAC7B,iBAAkB5B,KAAK6B,WAGzBV,EAAA,OAAAC,IAAA,2CAAKK,KAAK,SAASC,MAAM,gBACvBP,EAAA,mBAAAC,IAAA,2CACEM,MAAO,CACL,wBAAyB1B,KAAK8B,WAEhCC,KAAK,QACLH,KAAMI,EAAchC,KAAK4B,MACzBK,QAASjC,KAAKU,yBAIlBS,EAAA,OAAAC,IAAA,2CAAKK,KAAK,OAAOC,MAAM,cACpB1B,KAAKkC,UACJf,EAAA,YAAUc,QAASjC,KAAKS,iBAAkBmB,KAAMO,EAASnC,KAAK4B,OAC3D5B,KAAKkC,UAGTlC,KAAKE,aAAeiB,EAAA,QAAMY,KAAK,UAGlCZ,EAAA,OAAAC,IAAA,2CACEK,KAAK,SACLC,MAAO,CACL,sBAAuB1B,KAAK4B,OAAS,QACrC,uBAAwB5B,KAAK4B,OAAS,SACtC,sBAAuB5B,KAAK4B,OAAS,UAGtC5B,KAAKuB,OACJJ,EAAA,OACEO,MAAO,CACL,iBAAkB,MAEpBO,QAASjC,KAAKS,kBAEbT,KAAKuB,OAGTvB,KAAKK,cAAgBc,EAAA,QAAMY,KAAK,Y,6BAiB7C,MAAMC,EAAiBJ,IACd,CACLQ,MAAO,UACPC,OAAQ,SACRC,MAAO,UACPV,IAGJ,MAAMO,EAAYP,IACT,CACLQ,MAAO,SACPC,OAAQ,UACRC,MAAO,YACPV,I"}
@@ -0,0 +1,2 @@
1
+ import{r as i,c as o,h as e,g as r}from"./p-e8d5a789.js";import{E as t}from"./p-8bfb4bfc.js";const s=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:inline-block}.radio{display:inline-flex;align-items:center;font-family:var(--six-font-family);font-size:var(--six-input-font-size-medium);font-weight:var(--six-input-font-weight);color:var(--six-input-color);vertical-align:middle;cursor:pointer}.radio__icon{display:inline-flex;width:var(--six-selection-control-toggle-size);height:var(--six-selection-control-toggle-size)}.radio__icon svg{width:100%;height:100%}.radio__control{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--six-selection-control-toggle-size);height:var(--six-selection-control-toggle-size);border:solid var(--six-border-width) var(--six-input-border-color);border-radius:50%;background-color:var(--six-input-background-color);color:transparent;transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color, var(--six-transition-fast) color, var(--six-transition-fast) box-shadow}.radio__control input[type=radio]{position:absolute;opacity:0;padding:0;margin:0;pointer-events:none}.radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover{border-color:var(--six-input-border-color-hover)}.radio--checked .radio__control{color:var(--six-selection-control-color);border-color:var(--six-selection-control-color)}.radio.radio--checked:not(.radio--disabled) .radio__control:hover{color:var(--six-input-border-color-focus);border-color:var(--six-input-border-color-focus)}.radio--disabled{cursor:not-allowed;color:var(--six-input-color-disabled)}.radio--disabled .radio__control{border-color:var(--six-input-border-color-disabled)}.radio--disabled.radio--checked .radio__control{color:var(--six-selection-control-color-disabled)}.radio__label{line-height:var(--six-selection-control-toggle-size);margin-left:0.5em;user-select:none}";const a=s;let l=0;const n=class{constructor(e){i(this,e);this.sixBlur=o(this,"six-radio-blur",7);this.sixChange=o(this,"six-radio-change",7);this.sixFocus=o(this,"six-radio-focus",7);this.inputId=`radio-${++l}`;this.labelId=`radio-label-${l}`;this.eventListeners=new t;this.handleClick=()=>{if(this.nativeInput!=null){this.checked=this.nativeInput.checked;this.sixChange.emit()}};this.handleBlur=()=>{this.hasFocus=false;this.sixBlur.emit()};this.handleFocus=()=>{this.hasFocus=true;this.sixFocus.emit()};this.handleKeyDown=i=>{if(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"].includes(i.key)){const o=this.getAllRadios().filter((i=>!i.disabled));const e=["ArrowUp","ArrowLeft"].includes(i.key)?-1:1;let r=o.indexOf(this.host)+e;if(r<0)r=o.length-1;if(r>o.length-1)r=0;this.getAllRadios().forEach((i=>i.checked=false));o[r].setFocus();o[r].checked=true;o[r].dispatchEvent(new CustomEvent("six-radio-change",{bubbles:true,cancelable:true}));i.preventDefault()}};this.handleMouseDown=i=>{var o;i.preventDefault();(o=this.nativeInput)===null||o===void 0?void 0:o.focus()};this.hasFocus=false;this.name="";this.value="on";this.disabled=false;this.checked=false;this.invalid=false}handleCheckedChange(){if(this.checked){this.getSiblingRadios().forEach((i=>i.checked=false))}if(this.nativeInput!=null){this.nativeInput.checked=this.checked}}handleNameChange(i){if(this.nativeInput!=null){this.nativeInput.name=i}}connectedCallback(){this.eventListeners.forward("six-radio-change","change",this.host);this.eventListeners.forward("six-radio-blur","blur",this.host);this.eventListeners.forward("six-radio-focus","focus",this.host)}disconnectedCallback(){this.eventListeners.removeAll()}async setFocus(i){var o;(o=this.nativeInput)===null||o===void 0?void 0:o.focus(i)}async removeFocus(){var i;(i=this.nativeInput)===null||i===void 0?void 0:i.blur()}getAllRadios(){const i=this.host.closest("form")||document.body;if(this.name==="")return[];return[...i.querySelectorAll("six-radio")].filter((i=>i.name===this.name))}getSiblingRadios(){return this.getAllRadios().filter((i=>i!==this.host))}render(){return e("label",{key:"13c5201fe152b2bc57a679422219af5ae19a46a9",part:"base",class:{radio:true,"radio--checked":this.checked,"radio--disabled":this.disabled,"radio--focused":this.hasFocus},htmlFor:this.inputId,onKeyDown:this.handleKeyDown,onMouseDown:this.handleMouseDown},e("span",{key:"d32606e4ac318f0de1afb0234d2dfc7dd00546ec",part:"control",class:"radio__control"},e("span",{key:"d12e68de71d9e49dc4b68813dc036ffa4e06fc96",part:"checked-icon",class:"radio__icon"},e("svg",{key:"b942c5b3f4c817484ce4a615913a4a9c01675562",viewBox:"0 0 16 16"},e("g",{key:"316ed8598111b40d906c0b44ab7e4bfd2bf5cd1c",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},e("g",{key:"58a1547753ea79b7de3b4b90eeedfeb40ad7b6d6",fill:"currentColor"},e("circle",{key:"d225f3a06fdbb23a84eae34a6ba1b9184f55e627",cx:"8",cy:"8",r:"5"}))))),e("input",{key:"8e3adc0aaba86098d423c5a7f484a20fe0b2a0cd",ref:i=>this.nativeInput=i,id:this.inputId,type:"radio",name:this.name,value:this.value,checked:this.checked,disabled:this.disabled,role:"radio","aria-checked":this.checked?"true":"false","aria-labelledby":this.labelId,onClick:this.handleClick,onBlur:this.handleBlur,onFocus:this.handleFocus})),e("span",{key:"b72458bbd8e5ca7a8109a5e85b1b5699a843d097",part:"label",id:this.labelId,class:"radio__label"},e("slot",{key:"87652971c02c9aa7187a0f266283d9a475946f78"})))}get host(){return r(this)}static get watchers(){return{checked:["handleCheckedChange"],name:["handleNameChange"]}}};n.style=a;export{n as six_radio};
2
+ //# sourceMappingURL=p-59744f17.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sixRadioCss","SixRadioStyle0","id","SixRadio","this","inputId","labelId","eventListeners","EventListeners","handleClick","nativeInput","checked","sixChange","emit","handleBlur","hasFocus","sixBlur","handleFocus","sixFocus","handleKeyDown","keyboardEvent","includes","key","radios","getAllRadios","filter","radio","disabled","incr","index","indexOf","host","length","forEach","setFocus","dispatchEvent","CustomEvent","bubbles","cancelable","preventDefault","handleMouseDown","event","_a","focus","handleCheckedChange","getSiblingRadios","handleNameChange","name","connectedCallback","forward","disconnectedCallback","removeAll","options","removeFocus","blur","form","closest","document","body","querySelectorAll","render","h","part","class","htmlFor","onKeyDown","onMouseDown","viewBox","stroke","fill","cx","cy","r","ref","el","type","value","role","onClick","onBlur","onFocus"],"sources":["src/components/six-radio/six-radio.scss?tag=six-radio&encapsulation=shadow","src/components/six-radio/six-radio.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n}\n\n.radio {\n display: inline-flex;\n align-items: center;\n font-family: var(--six-font-family);\n font-size: var(--six-input-font-size-medium);\n font-weight: var(--six-input-font-weight);\n color: var(--six-input-color);\n vertical-align: middle;\n cursor: pointer;\n}\n\n.radio__icon {\n display: inline-flex;\n width: var(--six-selection-control-toggle-size);\n height: var(--six-selection-control-toggle-size);\n\n svg {\n width: 100%;\n height: 100%;\n }\n}\n\n.radio__control {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--six-selection-control-toggle-size);\n height: var(--six-selection-control-toggle-size);\n border: solid var(--six-border-width) var(--six-input-border-color);\n border-radius: 50%;\n background-color: var(--six-input-background-color);\n color: transparent;\n transition: var(--six-transition-fast) border-color, var(--six-transition-fast) background-color,\n var(--six-transition-fast) color, var(--six-transition-fast) box-shadow;\n\n input[type='radio'] {\n position: absolute;\n opacity: 0;\n padding: 0;\n margin: 0;\n pointer-events: none;\n }\n}\n\n// Hover\n.radio:not(.radio--checked):not(.radio--disabled) .radio__control:hover {\n border-color: var(--six-input-border-color-hover);\n}\n\n// Checked\n.radio--checked .radio__control {\n color: var(--six-selection-control-color);\n border-color: var(--six-selection-control-color);\n}\n\n// Checked + hover\n.radio.radio--checked:not(.radio--disabled) .radio__control:hover {\n color: var(--six-input-border-color-focus);\n border-color: var(--six-input-border-color-focus);\n}\n\n// Disabled\n.radio--disabled {\n cursor: not-allowed;\n color: var(--six-input-color-disabled);\n\n .radio__control {\n border-color: var(--six-input-border-color-disabled);\n }\n\n &.radio--checked .radio__control {\n color: var(--six-selection-control-color-disabled);\n }\n}\n\n.radio__label {\n line-height: var(--six-selection-control-toggle-size);\n margin-left: 0.5em;\n user-select: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The radio's label.\n *\n * @part base - The component's base wrapper.\n * @part control - The radio control.\n * @part checked-icon - The container the wraps the checked icon.\n * @part label - The radio label.\n */\n\n@Component({\n tag: 'six-radio',\n styleUrl: 'six-radio.scss',\n shadow: true,\n})\nexport class SixRadio {\n private inputId = `radio-${++id}`;\n private labelId = `radio-label-${id}`;\n private nativeInput?: HTMLInputElement;\n private eventListeners = new EventListeners();\n\n @Element() host!: HTMLSixRadioElement;\n\n @State() hasFocus = false;\n\n /** The radio's name attribute. */\n @Prop() name = '';\n\n /** The radio's value attribute. */\n @Prop({ reflect: true }) value = 'on';\n\n /** Set to true to disable the radio. */\n @Prop() disabled = false;\n\n /** Set to true to draw the radio in a checked state. */\n @Prop({ mutable: true, reflect: true }) checked = false;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n @Watch('checked')\n handleCheckedChange() {\n if (this.checked) {\n this.getSiblingRadios().forEach((radio) => (radio.checked = false));\n }\n if (this.nativeInput != null) {\n this.nativeInput.checked = this.checked;\n }\n }\n\n @Watch('name')\n handleNameChange(name: string) {\n if (this.nativeInput != null) {\n this.nativeInput.name = name;\n }\n }\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-radio-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control's checked state changes. */\n @Event({ eventName: 'six-radio-change' }) sixChange!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-radio-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n connectedCallback() {\n this.eventListeners.forward('six-radio-change', 'change', this.host);\n this.eventListeners.forward('six-radio-blur', 'blur', this.host);\n this.eventListeners.forward('six-radio-focus', 'focus', this.host);\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n /** Sets focus on the radio. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.nativeInput?.focus(options);\n }\n\n /** Removes focus from the radio. */\n @Method()\n async removeFocus() {\n this.nativeInput?.blur();\n }\n\n private getAllRadios() {\n const form = this.host.closest('form') || document.body;\n\n if (this.name === '') return [];\n\n return [...form.querySelectorAll('six-radio')].filter(\n (radio: HTMLSixRadioElement) => radio.name === this.name\n ) as HTMLSixRadioElement[];\n }\n\n private getSiblingRadios() {\n return this.getAllRadios().filter((radio) => radio !== this.host) as HTMLSixRadioElement[];\n }\n\n private handleClick = () => {\n if (this.nativeInput != null) {\n this.checked = this.nativeInput.checked;\n this.sixChange.emit();\n }\n };\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.sixBlur.emit();\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.sixFocus.emit();\n };\n\n private handleKeyDown = (keyboardEvent: KeyboardEvent) => {\n if (['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(keyboardEvent.key)) {\n const radios = this.getAllRadios().filter((radio) => !radio.disabled);\n const incr = ['ArrowUp', 'ArrowLeft'].includes(keyboardEvent.key) ? -1 : 1;\n let index = radios.indexOf(this.host) + incr;\n if (index < 0) index = radios.length - 1;\n if (index > radios.length - 1) index = 0;\n\n this.getAllRadios().forEach((radio) => (radio.checked = false));\n radios[index].setFocus();\n radios[index].checked = true;\n radios[index].dispatchEvent(new CustomEvent('six-radio-change', { bubbles: true, cancelable: true }));\n keyboardEvent.preventDefault();\n }\n };\n\n private handleMouseDown = (event: MouseEvent) => {\n // Prevent clicks on the label from briefly blurring the input\n event.preventDefault();\n this.nativeInput?.focus();\n };\n\n render() {\n return (\n <label\n part=\"base\"\n class={{\n radio: true,\n 'radio--checked': this.checked,\n 'radio--disabled': this.disabled,\n 'radio--focused': this.hasFocus,\n }}\n htmlFor={this.inputId}\n onKeyDown={this.handleKeyDown}\n onMouseDown={this.handleMouseDown}\n >\n <span part=\"control\" class=\"radio__control\">\n <span part=\"checked-icon\" class=\"radio__icon\">\n <svg viewBox=\"0 0 16 16\">\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill=\"currentColor\">\n <circle cx=\"8\" cy=\"8\" r=\"5\"></circle>\n </g>\n </g>\n </svg>\n </span>\n\n <input\n ref={(el) => (this.nativeInput = el)}\n id={this.inputId}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n disabled={this.disabled}\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-labelledby={this.labelId}\n onClick={this.handleClick}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n />\n </span>\n\n <span part=\"label\" id={this.labelId} class=\"radio__label\">\n <slot />\n </span>\n </label>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as i,h as s,g as e}from"./p-e8d5a789.js";import{P as n}from"./p-7f856f00.js";import{E as o}from"./p-8bfb4bfc.js";import{a as r,D as h}from"./p-a1502802.js";import{a as l}from"./p-0cebf1d2.js";function a(t){const i=t.tabIndex;return i>-1}function d(t){if(a(t)){return t}if(t.shadowRoot!=null){const i=[...t.shadowRoot.children].find((t=>a(t)));if(i!=null){return i}}if(t.children!=null){return[...t.children].map((t=>d(t))).at(0)}return undefined}const u=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:inline-block}.dropdown{position:relative}.dropdown__trigger{display:block}.dropdown__positioner{position:absolute;z-index:var(--six-z-index-dropdown)}.dropdown__positioner__filtered{width:100%}.dropdown__panel{font-family:var(--six-font-sans);font-size:var(--six-font-size-small);font-weight:var(--six-font-weight-normal);color:var(--color);background-color:var(--six-panel-background-color);border-radius:var(--six-border-radius-medium);border:1px solid var(--six-color-web-rock-300);box-shadow:var(--six-shadow-small);opacity:0;pointer-events:none;transform:scale(0.9);transition:var(--six-transition-fast) opacity, var(--six-transition-fast) transform;max-width:90vw}.dropdown__panel__scroll{max-height:18.75rem;overflow-y:auto;overflow-x:hidden;overscroll-behavior:none}.dropdown__panel__scroll--virtual{overflow-y:hidden;overflow-x:hidden}.filter-hidden{display:none}.dropdown__positioner[data-popper-placement^=top] .dropdown__panel{transform-origin:bottom}.dropdown__positioner[data-popper-placement^=bottom] .dropdown__panel{transform-origin:top}.dropdown__positioner[data-popper-placement^=left] .dropdown__panel{transform-origin:right}.dropdown__positioner[data-popper-placement^=right] .dropdown__panel{transform-origin:left}.dropdown__positioner.popover-visible .dropdown__panel{opacity:1;transform:none;pointer-events:all}.filter{border-bottom:1px solid var(--six-color-web-rock-300)}.filter__icon{color:var(--six-color-web-rock-600)}";const c=u;let f=0;const p=class{constructor(e){t(this,e);this.sixShow=i(this,"six-dropdown-show",7);this.sixAfterShow=i(this,"six-dropdown-after-show",7);this.sixHide=i(this,"six-dropdown-hide",7);this.sixAfterHide=i(this,"six-dropdown-after-hide",7);this.sixAutoFilter=i(this,"six-dropdown-auto-filter-fired",7);this.sixAsyncFilterFired=i(this,"six-async-filter-fired",7);this.sixScroll=i(this,"six-dropdown-scroll",7);this.componentId=`dropdown-${++f}`;this.isVisible=false;this.resizeObserver=new ResizeObserver(r((()=>this.updatePanelPosition()),100));this.eventListeners=new o;this.getMenuItems=()=>{var t,i,e,n;if(this.options.length>0){return{sixMenuItems:this.renderedOptions.map((t=>s("six-menu-item",{value:t.value},t.label))),selectionContainerItems:[]}}if(this.panel==null)return{sixMenuItems:[],selectionContainerItems:[]};const o=(t=this.panelSlot)===null||t===void 0?void 0:t.assignedElements({flatten:true}).filter(w).at(0);const r=(i=this.panelSlot)===null||i===void 0?void 0:i.assignedElements({flatten:true}).filter(v).at(0);const h=(o===null||o===void 0?void 0:o.querySelectorAll("six-menu-item"))||[];let l=((e=r===null||r===void 0?void 0:r.querySelector("slot"))===null||e===void 0?void 0:e.assignedElements().filter((t=>m(t))))||[];if(l.length===0){l=Array.from(((n=r===null||r===void 0?void 0:r.shadowRoot)===null||n===void 0?void 0:n.querySelectorAll("six-menu-item"))||[])}if(h.length>0||l.length>0){return{sixMenuItems:l,selectionContainerItems:[...h]}}else{return{sixMenuItems:r?Array.from(r.querySelectorAll("six-menu-item")):[],selectionContainerItems:[]}}};this.handleDocumentKeyDown=t=>{var i;const s=t;if(s.key==="Escape"){void this.hide();this.focusOnTrigger();return}if(this.filterInputElement===((i=this.host.shadowRoot)===null||i===void 0?void 0:i.activeElement)){if(s.key==="ArrowDown"){const{sixMenuItems:t,selectionContainerItems:i}=this.getMenuItems();const s=[...i,...t].find((t=>t.style.display!=="none"));if(s!=null){s.setFocus()}}}if(s.key==="Tab"){if(this.open&&document.activeElement!=null&&m(document.activeElement)){s.preventDefault();void this.hide();this.focusOnTrigger();return}setTimeout((()=>{var t,i;const s=this.container.getRootNode()instanceof ShadowRoot?(i=(t=document.activeElement)===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.activeElement:document.activeElement;if((s===null||s===void 0?void 0:s.closest(this.container.tagName.toLowerCase()))!==this.container){void this.hide();return}}))}};this.handleDocumentMouseDown=t=>{const i=t.composedPath();if(!i.includes(this.container)){void this.hide();return}};this.handlePanelSelect=t=>{const i=t.target;if(this.closeOnSelect&&v(i)){void this.hide();this.focusOnTrigger()}};this.handleTriggerClick=()=>{this.open?this.hide():this.show()};this.handleTriggerKeyDown=t=>{if(t.key==="Escape"){this.focusOnTrigger();void this.hide();return}if(!this.disableHideOnEnterAndSpace&&[" ","Enter"].includes(t.key)){t.preventDefault();this.open?void this.hide():void this.show();return}const i=this.getMenu();if(["ArrowDown","ArrowUp"].includes(t.key)){t.preventDefault();if(!this.open){void this.show()}if(i==null){return}const s=[...i.querySelectorAll("six-menu-item")];const e=s.at(0);const n=s.at(s.length-1);if(t.key==="ArrowDown"&&e!=null){e.setFocus();return}if(t.key==="ArrowUp"&&n!=null){n.setFocus();return}}const s=["Tab","Shift","Meta","Ctrl","Alt"];if(this.open&&i!=null&&!s.includes(t.key)){void i.typeToSelect(t.key);return}};this.handleTriggerKeyUp=t=>{if(t.key===" "){t.preventDefault()}};this.handleTriggerSlotChange=()=>{this.updateAccessibleTrigger()};this.handleDropdownScroll=()=>{if(this.scrollPanel==null)return;this.sixScroll.emit({scrollHeight:this.scrollPanel.scrollHeight,scrollTop:this.scrollPanel.scrollTop,scrollbarHeight:this.scrollPanel.offsetHeight*(this.scrollPanel.offsetHeight/this.scrollPanel.scrollHeight),scrollRatio:this.scrollPanel.scrollTop/(this.scrollPanel.scrollHeight-this.scrollPanel.clientHeight)})};this.open=false;this.placement="bottom-start";this.closeOnSelect=true;this.distance=4;this.skidding=0;this.hoist=false;this.containingElement=undefined;this.filter=false;this.asyncFilter=false;this.filterPlaceholder="Filter...";this.autofocusFilter=true;this.filterDebounce=0;this.disableHideOnEnterAndSpace=false;this.options=[];this.virtualScroll=false;this.matchTriggerWidth=false;this.renderedOptions=[]}get filterEnabled(){return this.filter||this.asyncFilter}get container(){return this.containingElement||this.host}handleOpenChange(){this.open?this.show():this.hide();this.updateAccessibleTrigger()}handlePopoverOptionsChange(){if(this.popover==null)return;this.popover.setOptions({strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding})}handleOptionsChange(){this.validateOptions()}validateOptions(){if(!Array.isArray(this.options)){this.options=[]}if(this.virtualScroll&&this.options.length===0){console.error("Options must be defined when using virtual scrolling")}this.renderedOptions=[...this.options]}componentWillLoad(){this.validateOptions();if(this.asyncFilter){this.filterDebounce=h}}componentDidLoad(){this.init();if(this.open){void this.show()}}connectedCallback(){this.init()}init(){this.initPopover();const t=this.filterInputElement;if(t!=null){this.eventListeners.add(t,"six-input-input",r((()=>{var i;const s=(i=t.value)!==null&&i!==void 0?i:"";if(this.filter){this.applyFilter(s)}this.emitFilterEvents(s)}),this.filterDebounce))}}applyFilter(t){var i;const s=((i=t.toLowerCase())===null||i===void 0?void 0:i.trim())||"";if(this.options.length>0){this.renderedOptions=this.options.filter((t=>{var i,e,n,o;return t.label&&((e=(i=String(t.label))===null||i===void 0?void 0:i.toLowerCase())===null||e===void 0?void 0:e.includes(s))||t.value&&((o=(n=String(t.value))===null||n===void 0?void 0:n.toLowerCase())===null||o===void 0?void 0:o.includes(s))}))}else{const{selectionContainerItems:t,sixMenuItems:i}=this.getMenuItems();const e=t.map((t=>t.value));t.forEach((async t=>{t.style.display=await b(t,s)?"unset":"none"}));i.forEach((async t=>{t.style.display=await b(t,s)&&!e.includes(t.value)?"unset":"none"}))}}resetFilter(){if(this.filterInputElement!=null){this.filterInputElement.value="";this.emitFilterEvents("")}if(this.options.length>0){this.renderedOptions=[...this.options]}else{const{selectionContainerItems:t,sixMenuItems:i}=this.getMenuItems();[...t,...i].forEach((t=>t.style.display="unset"))}}emitFilterEvents(t){if(this.filter){this.sixAutoFilter.emit({filterValue:t})}else if(this.asyncFilter){this.sixAsyncFilterFired.emit({filterValue:t})}}initPopover(){if(this.trigger==null||this.positioner==null)return;this.popover=new n(this.trigger,this.positioner,{strategy:this.hoist?"fixed":"absolute",placement:this.placement,distance:this.distance,skidding:this.skidding,transitionElement:this.panel,onAfterHide:()=>{if(this.filterEnabled){this.resetFilter()}this.sixAfterHide.emit()},onAfterShow:async()=>{this.sixAfterShow.emit()},onTransitionEnd:()=>{if(!this.open&&this.scrollPanel!=null){this.scrollPanel.scrollTop=0}}})}disconnectedCallback(){var t;this.resizeObserver.disconnect();this.eventListeners.removeAll();void this.hide();(t=this.popover)===null||t===void 0?void 0:t.destroy();this.popover=undefined}async show(){if(this.isVisible||this.popover==null||this.panel==null){return}const t=this.sixShow.emit();if(t.defaultPrevented){this.open=false;return}this.eventListeners.add(this.panel,"six-menu-item-selected",this.handlePanelSelect);this.eventListeners.add(document,"keydown",this.handleDocumentKeyDown);this.eventListeners.add(document,"mousedown",this.handleDocumentMouseDown);this.isVisible=true;this.open=true;if(this.trigger!=null){this.resizeObserver.observe(this.trigger)}this.updatePanelPosition();this.popover.show();if(this.filterEnabled&&this.autofocusFilter){requestAnimationFrame((()=>{var t;(t=this.filterInputElement)===null||t===void 0?void 0:t.setFocus()}))}}updatePanelPosition(){if(!this.open){return}if(this.matchTriggerWidth&&this.trigger!=null&&this.panel!=null){const t=this.trigger.getBoundingClientRect().width;this.panel.style.minWidth=`${t}px`}if(this.popover!=null){this.popover.reposition()}}async hide(){this.resizeObserver.disconnect();if(!this.isVisible||this.panel==null||this.popover==null){return}const t=this.sixHide.emit();if(t.defaultPrevented){this.open=true;return}this.eventListeners.remove(this.panel,"six-menu-item-selected",this.handlePanelSelect);this.eventListeners.remove(document,"keydown",this.handleDocumentKeyDown);this.eventListeners.remove(document,"mousedown",this.handleDocumentMouseDown);this.isVisible=false;this.open=false;this.popover.hide()}focusOnTrigger(){var t;if(this.trigger==null)return;const i=(t=this.triggerSlot)===null||t===void 0?void 0:t.assignedElements({flatten:true}).at(0);if(i!=null){if(typeof i.setFocus==="function"){i.setFocus()}else if(typeof i.focus==="function"){i.focus()}}}getMenu(){var t;return(t=this.panelSlot)===null||t===void 0?void 0:t.assignedElements({flatten:true}).filter(v).at(0)}async reposition(){if(this.open&&this.popover!=null){this.popover.reposition()}}updateAccessibleTrigger(){var t;if(this.trigger==null)return;const i=((t=this.triggerSlot)===null||t===void 0?void 0:t.assignedElements({flatten:true}))||[];const s=i.map(d).at(0);if(s!=null){s.setAttribute("aria-haspopup","true");s.setAttribute("aria-expanded",this.open?"true":"false")}}render(){return s("div",{key:"6569a6e118fd68e19f14dcae0553e25f81987923",part:"base",id:this.componentId,class:{dropdown:true,"dropdown--open":this.open}},s("span",{key:"be04c5d687eafa3c58c9fed9cf43f72d43aa45ef",part:"trigger",class:"dropdown__trigger",ref:t=>this.trigger=t,onClick:this.handleTriggerClick,onKeyDown:this.handleTriggerKeyDown,onKeyUp:this.handleTriggerKeyUp},s("slot",{key:"fba562d4fc45a0874e5cf8caad5e9710d6dd34e0",name:"trigger",ref:t=>this.triggerSlot=t,onSlotchange:this.handleTriggerSlotChange})),s("div",{key:"d37f1cb0246d47ca34004f35e3575e8433d998c8",ref:t=>this.positioner=t,class:{dropdown__positioner:true,dropdown__positioner__filtered:(this.filter||this.asyncFilter)&&!this.hoist}},s("div",{key:"e6c08b51f39a12259b4d8911770e1e1754dc4b8e",ref:t=>this.panel=t,part:"panel",class:"dropdown__panel",role:"menu","aria-hidden":this.open?"false":"true","aria-labelledby":this.componentId},this.filterEnabled&&s("six-input",{class:{filter:true,"filter-hidden":!this.open},"dropdown-search":true,"aria-hidden":this.open?"false":"true",ref:t=>this.filterInputElement=t,placeholder:this.filterPlaceholder},s("six-icon",{class:"filter__icon",slot:"suffix",size:"small"},"search")),s("div",{key:"174d0a5dd5965877e9278475112e2f14d959966d",class:{dropdown__panel__scroll:true,"dropdown__panel__scroll--virtual":this.virtualScroll},onScroll:this.handleDropdownScroll,ref:t=>this.scrollPanel=t},s("slot",{key:"fa0fc63a45e693cc6655db03b0382f028aea9473",ref:t=>this.panelSlot=t}),this.options.length>0&&s("six-menu",{part:"menu",items:this.renderedOptions,virtualScroll:this.virtualScroll})),s("slot",{key:"f24f41a9a70f0624078d43eb60b41e841ee90bf7",name:"dropdown-footer"}))))}get host(){return e(this)}static get watchers(){return{open:["handleOpenChange"],distance:["handlePopoverOptionsChange"],hoist:["handlePopoverOptionsChange"],placement:["handlePopoverOptionsChange"],skidding:["handlePopoverOptionsChange"],options:["handleOptionsChange"],virtualScroll:["handleOptionsChange"]}}};function v(t){return(t===null||t===void 0?void 0:t.tagName.toLowerCase())==="six-menu"}function m(t){return(t===null||t===void 0?void 0:t.tagName.toLowerCase())==="six-menu-item"}function w(t){var i;return((i=t===null||t===void 0?void 0:t.getAttribute("class"))===null||i===void 0?void 0:i.includes("selection-container"))||false}async function b(t,i){return t.value.toLowerCase().includes(i)||(await t.getTextLabel()).toLowerCase().includes(i)}p.style=c;const x=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:block}.menu{padding:var(--six-spacing-xx-small) 0;border:none;box-shadow:var(--six-shadow-small);overflow-y:auto;overflow-x:hidden}.menu:focus{outline:none}.no-shadow{box-shadow:none}";const g=x;const _=t=>{var i,s,e;return(e=(s=(i=t===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".menu-item"))===null||s===void 0?void 0:s.classList)===null||e===void 0?void 0:e.contains("menu-item--focused")};const y=t=>(t===null||t===void 0?void 0:t.tagName.toLowerCase())==="six-menu-item";const k=({value:t,label:i})=>s("six-menu-item",{key:t,value:t},i);const C=5;const I=64;const A=class{constructor(s){t(this,s);this.sixMenuItemSelected=i(this,"six-menu-item-selected",7);this.eventListeners=new o;this.typeToSelectString="";this.handleScrolling=()=>{if(this.menuWrapper==null)return;this.scrollingIndex=Math.floor(this.menuWrapper.scrollTop/this.sixMenuItemHeight)};this.removeBoxShadow=false;this.items=null;this.itemsShown=undefined;this.virtualScroll=false;this.itemSize=10;this.scrollingDebounce=15;this.disableKeyboardHandling=false;this.scrollingIndex=0;this.sixMenuItemHeight=I}connectedCallback(){this.handleClick=this.handleClick.bind(this);this.handleKeyDown=this.handleKeyDown.bind(this)}componentWillLoad(){if(this.items===null){return}}componentDidLoad(){this.setupForVirtualScrollingAfterRendering()}disconnectedCallback(){this.eventListeners.removeAll()}async typeToSelect(t){var i;clearTimeout(this.typeToSelectTimeout);this.typeToSelectTimeout=setTimeout((()=>this.typeToSelectString=""),750);this.typeToSelectString+=t.toLowerCase();const s=this.getItems();for(const t of s){const s=(i=t.shadowRoot)===null||i===void 0?void 0:i.querySelector("slot:not([name])");const e=l(s).toLowerCase().trim();if(e.substring(0,this.typeToSelectString.length)===this.typeToSelectString){t.setFocus();break}}}getItemsShown(){var t;const i=this.virtualScroll?C:0;return(t=this.itemsShown)!==null&&t!==void 0?t:i}setupForVirtualScrollingAfterRendering(){var t,i;if(!this.virtualScroll||this.menuWrapper==null)return;this.eventListeners.add(this.menuWrapper,"scroll",r(this.handleScrolling,this.scrollingDebounce));const s=(i=(t=this.menu)===null||t===void 0?void 0:t.querySelector("six-menu-item"))===null||i===void 0?void 0:i.clientHeight;if(s!=null&&s>0){this.sixMenuItemHeight=s}}getItems(){if(this.menu==null)return[];if(this.items!=null){return this.items.map(k)}const t=this.menu.querySelector("slot");if(t==null)return[];return[...t.assignedElements({flatten:true})].filter((t=>y(t)&&!t.disabled))}getActiveItemIndex(){const t=this.getItems();const i=this.getActiveItem();if(i!=null){const s=t.indexOf(i);if(s>-1){return s}}const s=this.extractItemsFromDOM();return s.findIndex(_)}getActiveItem(){var t;const i=this.getItems().find((t=>t===document.activeElement));if(i!=null){return i}return(t=this.extractItemsFromDOM())===null||t===void 0?void 0:t.find(_)}extractItemsFromDOM(){var t,i;return Array.from((i=(t=this.host.shadowRoot)===null||t===void 0?void 0:t.querySelectorAll("six-menu-item"))!==null&&i!==void 0?i:[])}setActiveItem(t){t===null||t===void 0?void 0:t.setFocus()}handleClick(t){const i=t.target;const s=i.closest("six-menu-item");if(s&&!s.disabled){this.sixMenuItemSelected.emit({name:s.value,item:s})}}handleKeyDown(t){if(this.disableKeyboardHandling){return}if(t.key==="Enter"){const i=this.getActiveItem();t.preventDefault();if(i!=null){this.sixMenuItemSelected.emit({name:i.value,item:i})}}if(t.key===" "){t.preventDefault()}if(["ArrowDown","ArrowUp","Home","End"].includes(t.key)){const i=this.items===null?this.getItems():this.extractItemsFromDOM();let s=this.getActiveItemIndex();if(i.length>0){t.preventDefault();if(t.key==="ArrowDown"){s++}else if(t.key==="ArrowUp"){s--}else if(t.key==="Home"){s=0}else if(t.key==="End"){s=i.length-1}if(s<0)s=0;if(s>i.length-1)s=i.length-1;this.setActiveItem(i[s]);return}}void this.typeToSelect(t.key)}getMenuWrapperStyle(){var t;const i={};if(this.getItemsShown()>0){i.height=`${((t=this.getItemsShown())!==null&&t!==void 0?t:0)*this.sixMenuItemHeight}px`}return Object.assign({},i)}getMenuContainerStyle(){const t={};if(this.virtualScroll){t.transform=`translateY(${this.sixMenuItemHeight*this.scrollingIndex}px)`}return Object.assign({},t)}getScrollbarGhostStyle(){const t={};if(this.virtualScroll&&this.items!==null){t.height=`${this.items.length*this.sixMenuItemHeight-this.itemSize*this.sixMenuItemHeight}px`}return Object.assign({},t)}renderItems(){if(this.items===undefined||this.items===null){return}if(!this.virtualScroll){return this.items.map(k)}return this.items.slice(this.scrollingIndex,Math.min(this.items.length,this.itemSize+this.scrollingIndex)).map((({value:t,label:i})=>s("six-menu-item",{checkType:"check",key:t,value:t},i)))}render(){return s("div",{key:"a8806ec6aee657eb677931fc1ba1405caec3e96e",ref:t=>this.menuWrapper=t,style:this.getMenuWrapperStyle(),part:"wrapper",class:{menu:true,".no-shadow":this.removeBoxShadow}},s("div",{key:"34b85eb38385f88e87f49a6689cf6ad082723a87",ref:t=>this.menu=t,part:"base",role:"menu",onClick:this.handleClick,onKeyDown:this.handleKeyDown,tabIndex:0,style:this.getMenuContainerStyle()},s("slot",{key:"a62dcc8bd5d97a8d479f4a4270aedcb77b729aea"}),this.renderItems()),this.virtualScroll&&s("div",{style:this.getScrollbarGhostStyle()}))}get host(){return e(this)}};A.style=g;export{p as six_dropdown,A as six_menu};
2
+ //# sourceMappingURL=p-5cde0403.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isTabbable","el","tabIndex","getNearestTabbableElement","shadowRoot","tabbableShadowChild","children","find","e","map","at","undefined","sixDropdownCss","SixDropdownStyle0","id","SixDropdown","this","componentId","isVisible","resizeObserver","ResizeObserver","debounce","updatePanelPosition","eventListeners","EventListeners","getMenuItems","options","length","sixMenuItems","renderedOptions","option","h","value","label","selectionContainerItems","panel","selectionContainer","_a","panelSlot","assignedElements","flatten","filter","isSelectionContainer","sixMenuElement","_b","isSixMenu","querySelectorAll","_c","querySelector","isSixMenuItem","Array","from","_d","handleDocumentKeyDown","event","keyboardEvent","key","hide","focusOnTrigger","filterInputElement","host","activeElement","item","style","display","setFocus","open","document","preventDefault","setTimeout","container","getRootNode","ShadowRoot","closest","tagName","toLowerCase","handleDocumentMouseDown","path","composedPath","includes","handlePanelSelect","target","closeOnSelect","handleTriggerClick","show","handleTriggerKeyDown","disableHideOnEnterAndSpace","menu","getMenu","menuItems","firstMenuItem","lastMenuItem","ignoredKeys","typeToSelect","handleTriggerKeyUp","handleTriggerSlotChange","updateAccessibleTrigger","handleDropdownScroll","scrollPanel","sixScroll","emit","scrollHeight","scrollTop","scrollbarHeight","offsetHeight","scrollRatio","clientHeight","filterEnabled","asyncFilter","containingElement","handleOpenChange","handlePopoverOptionsChange","popover","setOptions","strategy","hoist","placement","distance","skidding","handleOptionsChange","validateOptions","isArray","virtualScroll","console","error","componentWillLoad","filterDebounce","DEFAULT_DEBOUNCE_FAST","componentDidLoad","init","connectedCallback","initPopover","add","filterValue","applyFilter","emitFilterEvents","filterTerm","lowerCaseFilterTerm","trim","String","selectionContainerValues","s","forEach","async","menuItem","containsFilterTerm","resetFilter","sixAutoFilter","sixAsyncFilterFired","trigger","positioner","Popover","transitionElement","onAfterHide","sixAfterHide","onAfterShow","sixAfterShow","onTransitionEnd","disconnectedCallback","disconnect","removeAll","destroy","sixShow","defaultPrevented","observe","autofocusFilter","requestAnimationFrame","matchTriggerWidth","width","getBoundingClientRect","minWidth","reposition","sixHide","remove","triggerSlot","focus","accessibleTrigger","setAttribute","render","part","class","dropdown","ref","onClick","onKeyDown","onKeyUp","name","onSlotchange","dropdown__positioner","dropdown__positioner__filtered","role","placeholder","filterPlaceholder","slot","size","dropdown__panel__scroll","onScroll","items","getAttribute","getTextLabel","sixMenuCss","SixMenuStyle0","isFocusedMenuItem","classList","contains","isSIXMenuItemElement","mapToMenuItem","DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING","DEFAULT_SIX_MENU_ITEM_HEIGHT","SixMenu","typeToSelectString","handleScrolling","menuWrapper","scrollingIndex","Math","floor","sixMenuItemHeight","handleClick","bind","handleKeyDown","setupForVirtualScrollingAfterRendering","clearTimeout","typeToSelectTimeout","getItems","getTextContent","substring","getItemsShown","defaultItemsShown","itemsShown","scrollingDebounce","menuItemHeight","disabled","getActiveItemIndex","selectedItem","getActiveItem","itemIndex","indexOf","extractItemsFromDOM","findIndex","i","setActiveItem","clickedItem","sixMenuItemSelected","disableKeyboardHandling","activeItem","indexOfActiveItem","getMenuWrapperStyle","styles","height","Object","assign","getMenuContainerStyle","transform","getScrollbarGhostStyle","itemSize","renderItems","slice","min","checkType","removeBoxShadow"],"sources":["src/utils/tabbable.ts","src/components/six-dropdown/six-dropdown.scss?tag=six-dropdown&encapsulation=shadow","src/components/six-dropdown/six-dropdown.tsx","src/components/six-menu/six-menu.scss?tag=six-menu&encapsulation=shadow","src/components/six-menu/six-menu.tsx"],"sourcesContent":["export function isTabbable(el: HTMLElement) {\n const tabIndex = el.tabIndex;\n return tabIndex > -1;\n}\n\nexport function getNearestTabbableElement(el: HTMLElement): HTMLElement | undefined {\n // Check the element\n if (isTabbable(el)) {\n return el;\n }\n\n // Check the element's shadow root\n if (el.shadowRoot != null) {\n const tabbableShadowChild = [...el.shadowRoot.children].find((e) => isTabbable(e as HTMLElement)) as HTMLElement;\n if (tabbableShadowChild != null) {\n return tabbableShadowChild;\n }\n }\n\n // Check the element's children\n if (el.children != null) {\n return [...el.children].map((e) => getNearestTabbableElement(e as HTMLElement)).at(0);\n }\n\n return undefined;\n}\n","@import 'src/global/component';\n@import 'src/global/mixins/scrollbar';\n\n:host {\n display: inline-block;\n}\n\n.dropdown {\n position: relative;\n}\n\n.dropdown__trigger {\n display: block;\n}\n\n.dropdown__positioner {\n position: absolute;\n z-index: var(--six-z-index-dropdown);\n\n &__filtered {\n width: 100%;\n }\n}\n\n.dropdown__panel {\n font-family: var(--six-font-sans);\n font-size: var(--six-font-size-small);\n font-weight: var(--six-font-weight-normal);\n color: var(--color);\n background-color: var(--six-panel-background-color);\n border-radius: var(--six-border-radius-medium);\n border: 1px solid var(--six-color-web-rock-300);\n box-shadow: var(--six-shadow-small);\n opacity: 0;\n pointer-events: none;\n transform: scale(0.9);\n transition: var(--six-transition-fast) opacity, var(--six-transition-fast) transform;\n max-width: 90vw;\n}\n\n.dropdown__panel__scroll {\n max-height: 18.75rem;\n overflow-y: auto;\n overflow-x: hidden;\n overscroll-behavior: none;\n\n &--virtual {\n overflow-y: hidden;\n overflow-x: hidden;\n }\n}\n\n.filter-hidden {\n display: none;\n}\n\n.dropdown__positioner {\n &[data-popper-placement^='top'] .dropdown__panel {\n transform-origin: bottom;\n }\n\n &[data-popper-placement^='bottom'] .dropdown__panel {\n transform-origin: top;\n }\n\n &[data-popper-placement^='left'] .dropdown__panel {\n transform-origin: right;\n }\n\n &[data-popper-placement^='right'] .dropdown__panel {\n transform-origin: left;\n }\n\n &.popover-visible .dropdown__panel {\n opacity: 1;\n transform: none;\n pointer-events: all;\n }\n}\n\n.filter {\n border-bottom: 1px solid var(--six-color-web-rock-300);\n\n &__icon {\n color: var(--six-color-web-rock-600);\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { getNearestTabbableElement } from '../../utils/tabbable';\nimport Popover from '../../utils/popover';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce, DEFAULT_DEBOUNCE_FAST } from '../../utils/execution-control';\nimport { EmptyPayload } from '../../utils/types';\nimport { SixMenuItemData } from '../six-menu/six-menu';\n\nexport interface SixDropdownAutoFilterPayload {\n filterValue: string;\n}\n\nexport interface SixDropdownAsyncFilterPayload {\n filterValue: string;\n}\n\nexport interface SixDropdownScrollPayload {\n scrollHeight: number;\n scrollTop: number;\n scrollbarHeight: number;\n scrollRatio: number;\n}\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot trigger - The dropdown's trigger, usually a `<six-button>` element.\n * @slot dropdown-footer - The dropdown's footer area.\n * @slot - The dropdown's content.\n *\n * @part base - The component's base wrapper.\n * @part trigger - The container that wraps the trigger.\n * @part panel - The panel that gets shown when the dropdown is open.\n */\n\n@Component({\n tag: 'six-dropdown',\n styleUrl: 'six-dropdown.scss',\n shadow: true,\n})\nexport class SixDropdown {\n private componentId = `dropdown-${++id}`;\n private isVisible = false;\n private panel?: HTMLElement;\n private scrollPanel?: HTMLElement;\n private panelSlot?: HTMLSlotElement;\n private positioner?: HTMLElement;\n private popover?: Popover;\n private trigger?: HTMLElement;\n private triggerSlot?: HTMLSlotElement;\n private resizeObserver = new ResizeObserver(debounce(() => this.updatePanelPosition(), 100));\n\n // the input element shown in the dropdown when filter is set to true\n private filterInputElement?: HTMLSixInputElement;\n\n @Element() host!: HTMLSixDropdownElement;\n\n /** Indicates whether the dropdown is open. You can use this in lieu of the show/hide methods. */\n @Prop({ mutable: true, reflect: true }) open = false;\n\n /**\n * The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\n * inside the viewport.\n */\n @Prop() placement:\n | 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end' = 'bottom-start';\n\n /** Determines whether the dropdown should hide when a menu item is selected. */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop() closeOnSelect = true;\n\n /** The distance in pixels from which to offset the panel away from its trigger. */\n @Prop() distance = 4;\n\n /** The distance in pixels from which to offset the panel along its trigger. */\n @Prop() skidding = 0;\n\n /**\n * Enable this option to prevent the panel from being clipped when the component is placed inside a container with\n * `overflow: auto|scroll`.\n */\n @Prop() hoist = false;\n\n /** The dropdown will close when the user interacts outside of this element (e.g. clicking). */\n @Prop() containingElement?: HTMLElement;\n\n /**\n * Set to true to allow auto filtering for entries in the dropdown.\n * With this flag the dropdown will automatically filter itsel.\n * If you need to coordinate the shown elements yourself,\n * e.g. because you need to call an endpoint use asyncFilter instead\n */\n @Prop() filter = false;\n\n /**\n * Set to true to allow async filtering.\n * When you enter something in the search field the component will only emit an event but not filter any elements itself.\n * You can then simply listen to the 'six-async-filter-fired' event to manage the shown menu-items yourself\n */\n @Prop() asyncFilter = false;\n\n /** The filter's placeholder text. */\n @Prop() filterPlaceholder = 'Filter...';\n\n /** By default the search field will be focused when opening a dropdown with filtering enabled. */\n // eslint-disable-next-line @stencil-community/ban-default-true\n @Prop() autofocusFilter = true;\n\n get filterEnabled() {\n return this.filter || this.asyncFilter;\n }\n\n /** The debounce for the filter callbacks. */\n @Prop({ mutable: true }) filterDebounce = 0;\n\n /** The panel can be opend/closed by pressing the spacebar or the enter key. In some cases you might want to avoid this */\n @Prop() disableHideOnEnterAndSpace = false;\n\n /** Set the options to be shown in the dropdown (alternative to setting the elements via html)*/\n @Prop({ mutable: true }) options: SixMenuItemData[] = [];\n\n /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\n * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */\n @Prop() virtualScroll = false;\n\n /**\n * Determines if the dropdown panel's width should match the width of the trigger element.\n *\n * If set to `true`, the panel will resize its width to align with the trigger's width.\n * If `false` or omitted, the panel will maintain its default width.\n */\n @Prop() matchTriggerWidth = false;\n\n get container() {\n return this.containingElement || this.host;\n }\n\n /** Emitted when the dropdown opens. Calling `event.preventDefault()` will prevent it from being opened. */\n @Event({ eventName: 'six-dropdown-show' }) sixShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the dropdown opens and all transitions are complete. */\n @Event({ eventName: 'six-dropdown-after-show' }) sixAfterShow!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the dropdown closes. Calling `event.preventDefault()` will prevent it from being closed. */\n @Event({ eventName: 'six-dropdown-hide' }) sixHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted after the dropdown closes and all transitions are complete. */\n @Event({ eventName: 'six-dropdown-after-hide' }) sixAfterHide!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the auto filter is triggered */\n @Event({ eventName: 'six-dropdown-auto-filter-fired' }) sixAutoFilter!: EventEmitter<SixDropdownAutoFilterPayload>;\n\n /** Emitted when the async filter is triggered */\n @Event({ eventName: 'six-async-filter-fired' }) sixAsyncFilterFired!: EventEmitter<SixDropdownAsyncFilterPayload>;\n\n /** Emitted when the user scrolls inside dropdown panel.*/\n @Event({ eventName: 'six-dropdown-scroll' }) sixScroll!: EventEmitter<SixDropdownScrollPayload>;\n\n private eventListeners = new EventListeners();\n\n // internal representation of options, so we don't have to make options mutable\n @State() renderedOptions: SixMenuItemData[] = [];\n\n @Watch('open')\n handleOpenChange() {\n this.open ? this.show() : this.hide();\n this.updateAccessibleTrigger();\n }\n\n @Watch('distance')\n @Watch('hoist')\n @Watch('placement')\n @Watch('skidding')\n handlePopoverOptionsChange() {\n if (this.popover == null) return;\n\n this.popover.setOptions({\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n });\n }\n\n @Watch('options')\n @Watch('virtualScroll')\n handleOptionsChange() {\n this.validateOptions();\n }\n\n private validateOptions() {\n if (!Array.isArray(this.options)) {\n this.options = [];\n }\n if (this.virtualScroll && this.options.length === 0) {\n console.error('Options must be defined when using virtual scrolling');\n }\n this.renderedOptions = [...this.options];\n }\n\n componentWillLoad() {\n this.validateOptions();\n if (this.asyncFilter) {\n this.filterDebounce = DEFAULT_DEBOUNCE_FAST;\n }\n }\n\n componentDidLoad() {\n this.init();\n if (this.open) {\n void this.show();\n }\n }\n\n connectedCallback() {\n this.init();\n }\n\n private init() {\n this.initPopover();\n\n // listen to filter\n const filterInputElement = this.filterInputElement;\n if (filterInputElement != null) {\n this.eventListeners.add(\n filterInputElement,\n 'six-input-input',\n debounce(() => {\n const filterValue = filterInputElement.value ?? '';\n if (this.filter) {\n this.applyFilter(filterValue);\n }\n this.emitFilterEvents(filterValue);\n }, this.filterDebounce)\n );\n }\n }\n\n private applyFilter(filterTerm: string) {\n const lowerCaseFilterTerm = filterTerm.toLowerCase()?.trim() || '';\n if (this.options.length > 0) {\n this.renderedOptions = this.options.filter(\n (option) =>\n (option.label && String(option.label)?.toLowerCase()?.includes(lowerCaseFilterTerm)) ||\n (option.value && String(option.value)?.toLowerCase()?.includes(lowerCaseFilterTerm))\n );\n } else {\n const { selectionContainerItems, sixMenuItems } = this.getMenuItems();\n const selectionContainerValues = selectionContainerItems.map((s) => s.value);\n\n // Filter items in selection container\n selectionContainerItems.forEach(async (menuItem) => {\n menuItem.style.display = (await containsFilterTerm(menuItem, lowerCaseFilterTerm)) ? 'unset' : 'none';\n });\n\n // Filter other items. Always hide items which contained in the selection container.\n sixMenuItems.forEach(async (menuItem) => {\n menuItem.style.display =\n (await containsFilterTerm(menuItem, lowerCaseFilterTerm)) &&\n !selectionContainerValues.includes(menuItem.value)\n ? 'unset'\n : 'none';\n });\n }\n }\n\n private resetFilter() {\n if (this.filterInputElement != null) {\n this.filterInputElement.value = '';\n this.emitFilterEvents('');\n }\n if (this.options.length > 0) {\n this.renderedOptions = [...this.options];\n } else {\n const { selectionContainerItems, sixMenuItems } = this.getMenuItems();\n [...selectionContainerItems, ...sixMenuItems].forEach((item) => (item.style.display = 'unset'));\n }\n }\n\n private emitFilterEvents(filterValue: string) {\n if (this.filter) {\n this.sixAutoFilter.emit({ filterValue });\n } else if (this.asyncFilter) {\n this.sixAsyncFilterFired.emit({ filterValue });\n }\n }\n\n private initPopover() {\n if (this.trigger == null || this.positioner == null) return;\n this.popover = new Popover(this.trigger, this.positioner, {\n strategy: this.hoist ? 'fixed' : 'absolute',\n placement: this.placement,\n distance: this.distance,\n skidding: this.skidding,\n transitionElement: this.panel,\n onAfterHide: () => {\n if (this.filterEnabled) {\n this.resetFilter();\n }\n this.sixAfterHide.emit();\n },\n onAfterShow: async () => {\n this.sixAfterShow.emit();\n },\n onTransitionEnd: () => {\n if (!this.open && this.scrollPanel != null) {\n this.scrollPanel.scrollTop = 0;\n }\n },\n });\n }\n\n private getMenuItems = (): {\n selectionContainerItems: HTMLSixMenuItemElement[];\n sixMenuItems: HTMLSixMenuItemElement[];\n } => {\n if (this.options.length > 0) {\n return {\n sixMenuItems: this.renderedOptions.map((option) => (\n <six-menu-item value={option.value}>{option.label}</six-menu-item>\n )),\n selectionContainerItems: [],\n };\n }\n if (this.panel == null) return { sixMenuItems: [], selectionContainerItems: [] };\n\n // Relies on the implementation of six-select. Its dropdown slot contains two elements,\n // one for the selected menu items, and one for the other items.\n const selectionContainer = this.panelSlot?.assignedElements({ flatten: true }).filter(isSelectionContainer).at(0);\n const sixMenuElement = this.panelSlot?.assignedElements({ flatten: true }).filter(isSixMenu).at(0) as\n | HTMLSixMenuElement\n | undefined;\n const selectionContainerItems = selectionContainer?.querySelectorAll('six-menu-item') || [];\n let sixMenuItems: HTMLSixMenuItemElement[] =\n sixMenuElement\n ?.querySelector('slot')\n ?.assignedElements()\n .filter((el): el is HTMLSixMenuItemElement => isSixMenuItem(el)) || [];\n\n if (sixMenuItems.length === 0) {\n sixMenuItems = Array.from(sixMenuElement?.shadowRoot?.querySelectorAll('six-menu-item') || []);\n }\n\n if (selectionContainerItems.length > 0 || sixMenuItems.length > 0) {\n return { sixMenuItems, selectionContainerItems: [...selectionContainerItems] };\n } else {\n return {\n sixMenuItems: sixMenuElement ? Array.from(sixMenuElement.querySelectorAll('six-menu-item')) : [],\n selectionContainerItems: [],\n };\n }\n };\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n this.eventListeners.removeAll();\n void this.hide();\n this.popover?.destroy();\n this.popover = undefined;\n }\n\n /** Shows the dropdown panel */\n @Method()\n async show() {\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (this.isVisible || this.popover == null || this.panel == null) {\n return;\n }\n\n const sixShow = this.sixShow.emit();\n if (sixShow.defaultPrevented) {\n this.open = false;\n return;\n }\n\n this.eventListeners.add(this.panel, 'six-menu-item-selected', this.handlePanelSelect);\n this.eventListeners.add(document, 'keydown', this.handleDocumentKeyDown);\n this.eventListeners.add(document, 'mousedown', this.handleDocumentMouseDown);\n\n this.isVisible = true;\n this.open = true;\n\n if (this.trigger != null) {\n this.resizeObserver.observe(this.trigger);\n }\n this.updatePanelPosition();\n this.popover.show();\n\n if (this.filterEnabled && this.autofocusFilter) {\n requestAnimationFrame(() => {\n this.filterInputElement?.setFocus();\n });\n }\n }\n\n /**\n * Set min width of dropdown panel to the width of the trigger element\n */\n private updatePanelPosition() {\n if (!this.open) {\n return;\n }\n\n if (this.matchTriggerWidth && this.trigger != null && this.panel != null) {\n const width = this.trigger.getBoundingClientRect().width;\n this.panel.style.minWidth = `${width}px`;\n }\n\n if (this.popover != null) {\n this.popover.reposition();\n }\n }\n\n /** Hides the dropdown panel */\n @Method()\n async hide() {\n this.resizeObserver.disconnect();\n\n // Prevent subsequent calls to the method, whether manually or triggered by the `open` watcher\n if (!this.isVisible || this.panel == null || this.popover == null) {\n return;\n }\n\n const sixHide = this.sixHide.emit();\n if (sixHide.defaultPrevented) {\n this.open = true;\n return;\n }\n\n this.eventListeners.remove(this.panel, 'six-menu-item-selected', this.handlePanelSelect);\n this.eventListeners.remove(document, 'keydown', this.handleDocumentKeyDown);\n this.eventListeners.remove(document, 'mousedown', this.handleDocumentMouseDown);\n\n this.isVisible = false;\n this.open = false;\n this.popover.hide();\n }\n\n private focusOnTrigger() {\n if (this.trigger == null) return;\n const trigger = this.triggerSlot?.assignedElements({ flatten: true }).at(0) as HTMLSixButtonElement | undefined;\n if (trigger != null) {\n if (typeof trigger.setFocus === 'function') {\n trigger.setFocus();\n } else if (typeof trigger.focus === 'function') {\n trigger.focus();\n }\n }\n }\n\n private getMenu(): HTMLSixMenuElement | undefined {\n return this.panelSlot?.assignedElements({ flatten: true }).filter(isSixMenu).at(0) as\n | HTMLSixMenuElement\n | undefined;\n }\n\n /**\n * Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\n * is activated.\n *\n * @deprecated: use the property `matchTriggerWidth` instead.\n */\n @Method()\n async reposition() {\n if (this.open && this.popover != null) {\n this.popover.reposition();\n }\n }\n\n private handleDocumentKeyDown = (event: Event) => {\n const keyboardEvent = event as KeyboardEvent;\n // Close when escape is pressed\n if (keyboardEvent.key === 'Escape') {\n void this.hide();\n this.focusOnTrigger();\n return;\n }\n\n if (this.filterInputElement === this.host.shadowRoot?.activeElement) {\n if (keyboardEvent.key === 'ArrowDown') {\n const { sixMenuItems, selectionContainerItems } = this.getMenuItems();\n const item = [...selectionContainerItems, ...sixMenuItems].find((item) => item.style.display !== 'none');\n if (item != null) {\n item.setFocus();\n }\n }\n }\n\n // Handle tabbing\n if (keyboardEvent.key === 'Tab') {\n // Tabbing within an open menu should close the dropdown and refocus the trigger\n if (this.open && document.activeElement != null && isSixMenuItem(document.activeElement)) {\n keyboardEvent.preventDefault();\n void this.hide();\n this.focusOnTrigger();\n return;\n }\n\n // Tabbing outside the containing element closes the panel\n //\n // If the dropdown is used within a shadow DOM, we need to obtain the activeElement within that shadowRoot,\n // otherwise `document.activeElement` will only return the name of the parent shadow DOM element.\n setTimeout(() => {\n const activeElement =\n this.container.getRootNode() instanceof ShadowRoot\n ? document.activeElement?.shadowRoot?.activeElement\n : document.activeElement;\n\n if (activeElement?.closest(this.container.tagName.toLowerCase()) !== this.container) {\n void this.hide();\n return;\n }\n });\n }\n };\n\n private handleDocumentMouseDown = (event: Event) => {\n // Close when clicking outside the containing element\n const path = event.composedPath() as EventTarget[];\n if (!path.includes(this.container)) {\n void this.hide();\n return;\n }\n };\n\n private handlePanelSelect = (event: Event) => {\n const target = event.target as HTMLElement;\n\n // Hide the dropdown when a menu item is selected\n if (this.closeOnSelect && isSixMenu(target)) {\n void this.hide();\n this.focusOnTrigger();\n }\n };\n\n private handleTriggerClick = () => {\n this.open ? this.hide() : this.show();\n };\n\n private handleTriggerKeyDown = (event: KeyboardEvent) => {\n // Close when escape or tab is pressed\n if (event.key === 'Escape') {\n this.focusOnTrigger();\n void this.hide();\n return;\n }\n\n // When spacebar/enter is pressed, show the panel but don't focus on the menu. This let's the user press the same\n // key again to hide the menu in case they don't want to make a selection.\n if (!this.disableHideOnEnterAndSpace && [' ', 'Enter'].includes(event.key)) {\n event.preventDefault();\n this.open ? void this.hide() : void this.show();\n return;\n }\n\n const menu = this.getMenu();\n\n // When up/down is pressed, we make the assumption that the user is familiar with the menu and plans to make a\n // selection. Rather than toggle the panel, we focus on the menu (if one exists) and activate the first item for\n // faster navigation.\n if (['ArrowDown', 'ArrowUp'].includes(event.key)) {\n event.preventDefault();\n\n // Show the menu if it's not already open\n if (!this.open) {\n void this.show();\n }\n\n if (menu == null) {\n return;\n }\n const menuItems = [...menu.querySelectorAll('six-menu-item')];\n const firstMenuItem = menuItems.at(0);\n const lastMenuItem = menuItems.at(menuItems.length - 1);\n\n // Focus on a menu item\n if (event.key === 'ArrowDown' && firstMenuItem != null) {\n firstMenuItem.setFocus();\n return;\n }\n\n if (event.key === 'ArrowUp' && lastMenuItem != null) {\n lastMenuItem.setFocus();\n return;\n }\n }\n\n // Other keys bring focus to the menu and initiate type-to-select behavior\n const ignoredKeys = ['Tab', 'Shift', 'Meta', 'Ctrl', 'Alt'];\n if (this.open && menu != null && !ignoredKeys.includes(event.key)) {\n void menu.typeToSelect(event.key);\n return;\n }\n };\n\n private handleTriggerKeyUp = (event: KeyboardEvent) => {\n // Prevent space from triggering a click event in Firefox\n if (event.key === ' ') {\n event.preventDefault();\n }\n };\n\n private handleTriggerSlotChange = () => {\n this.updateAccessibleTrigger();\n };\n\n private handleDropdownScroll = () => {\n if (this.scrollPanel == null) return;\n\n this.sixScroll.emit({\n scrollHeight: this.scrollPanel.scrollHeight,\n scrollTop: this.scrollPanel.scrollTop,\n scrollbarHeight: this.scrollPanel.offsetHeight * (this.scrollPanel.offsetHeight / this.scrollPanel.scrollHeight),\n scrollRatio: this.scrollPanel.scrollTop / (this.scrollPanel.scrollHeight - this.scrollPanel.clientHeight),\n });\n };\n\n //\n // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and\n // `aria-expanded`. These must be applied to the \"accessible trigger\" (the tabbable portion of the trigger element\n // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,\n // a child of the slotted element, or an element in the slotted element's shadow root.\n //\n // For example, the accessible trigger of an <sl-button> is a <button> located inside its shadow root.\n //\n // To determine this, we assume the first tabbable element in the trigger slot is the \"accessible trigger.\"\n //\n private updateAccessibleTrigger() {\n if (this.trigger == null) return;\n const assignedElements = (this.triggerSlot?.assignedElements({ flatten: true }) || []) as HTMLElement[];\n const accessibleTrigger = assignedElements.map(getNearestTabbableElement).at(0);\n if (accessibleTrigger != null) {\n accessibleTrigger.setAttribute('aria-haspopup', 'true');\n accessibleTrigger.setAttribute('aria-expanded', this.open ? 'true' : 'false');\n }\n }\n\n render() {\n return (\n <div\n part=\"base\"\n id={this.componentId}\n class={{\n dropdown: true,\n 'dropdown--open': this.open,\n }}\n >\n <span\n part=\"trigger\"\n class=\"dropdown__trigger\"\n ref={(el) => (this.trigger = el)}\n onClick={this.handleTriggerClick}\n onKeyDown={this.handleTriggerKeyDown}\n onKeyUp={this.handleTriggerKeyUp}\n >\n <slot\n name=\"trigger\"\n ref={(el) => (this.triggerSlot = el as HTMLSlotElement)}\n onSlotchange={this.handleTriggerSlotChange}\n />\n </span>\n\n {/* Position the panel with a wrapper since the popover makes use of `translate`. This let's us add transitions\n on the panel without interfering with the position. */}\n <div\n ref={(el) => (this.positioner = el)}\n class={{\n dropdown__positioner: true,\n dropdown__positioner__filtered: (this.filter || this.asyncFilter) && !this.hoist,\n }}\n >\n <div\n ref={(el) => (this.panel = el)}\n part=\"panel\"\n class=\"dropdown__panel\"\n role=\"menu\"\n aria-hidden={this.open ? 'false' : 'true'}\n aria-labelledby={this.componentId}\n >\n {this.filterEnabled && (\n <six-input\n class={{\n filter: true,\n 'filter-hidden': !this.open,\n }}\n dropdown-search\n aria-hidden={this.open ? 'false' : 'true'}\n ref={(el) => (this.filterInputElement = el)}\n placeholder={this.filterPlaceholder}\n >\n <six-icon class=\"filter__icon\" slot=\"suffix\" size=\"small\">\n search\n </six-icon>\n </six-input>\n )}\n <div\n class={{\n dropdown__panel__scroll: true,\n 'dropdown__panel__scroll--virtual': this.virtualScroll,\n }}\n onScroll={this.handleDropdownScroll}\n ref={(el) => (this.scrollPanel = el)}\n >\n <slot ref={(el) => (this.panelSlot = el as HTMLSlotElement)} />\n {this.options.length > 0 && (\n <six-menu part=\"menu\" items={this.renderedOptions} virtualScroll={this.virtualScroll}></six-menu>\n )}\n </div>\n <slot name=\"dropdown-footer\"></slot>\n </div>\n </div>\n </div>\n );\n }\n}\n\nfunction isSixMenu(el?: Element): boolean {\n return el?.tagName.toLowerCase() === 'six-menu';\n}\nfunction isSixMenuItem(el?: Element): boolean {\n return el?.tagName.toLowerCase() === 'six-menu-item';\n}\nfunction isSelectionContainer(el?: Element): boolean {\n return el?.getAttribute('class')?.includes('selection-container') || false;\n}\nasync function containsFilterTerm(menuItem: HTMLSixMenuItemElement, lowerCaseFilterTerm: string): Promise<boolean> {\n return (\n menuItem.value.toLowerCase().includes(lowerCaseFilterTerm) ||\n (await menuItem.getTextLabel()).toLowerCase().includes(lowerCaseFilterTerm)\n );\n}\n","@import 'src/global/component';\n\n:host {\n display: block;\n}\n\n.menu {\n padding: var(--six-spacing-xx-small) 0;\n border: none;\n box-shadow: var(--six-shadow-small);\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.menu:focus {\n outline: none;\n}\n\n.no-shadow {\n box-shadow: none;\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State } from '@stencil/core';\nimport { getTextContent } from '../../utils/slot';\nimport { StyleDeclaration } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\nimport { debounce } from '../../utils/execution-control';\n\nexport interface SixMenuItemData {\n label: string;\n value: string;\n}\n\nexport interface SixMenuItemSelectedPayload {\n name: string;\n item: HTMLSixMenuItemElement;\n}\n\nconst isFocusedMenuItem = (menuItem: HTMLSixMenuItemElement) =>\n menuItem?.shadowRoot?.querySelector('.menu-item')?.classList?.contains('menu-item--focused');\n\nconst isSIXMenuItemElement = (el?: Element): el is HTMLSixMenuItemElement =>\n el?.tagName.toLowerCase() === 'six-menu-item';\n\nconst mapToMenuItem = ({ value, label }: SixMenuItemData) => (\n <six-menu-item key={value} value={value}>\n {label}\n </six-menu-item>\n);\n\nconst DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING = 5;\n\nconst DEFAULT_SIX_MENU_ITEM_HEIGHT = 64;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The menu's content, including menu items, menu dividers, and menu labels.\n *\n * @part base - The component's base wrapper.\n */\n@Component({\n tag: 'six-menu',\n styleUrl: 'six-menu.scss',\n shadow: true,\n})\nexport class SixMenu {\n private readonly eventListeners = new EventListeners();\n\n private menu?: HTMLElement;\n private menuWrapper?: HTMLElement;\n private typeToSelectString = '';\n private typeToSelectTimeout?: number;\n\n @Element() host!: HTMLSixMenuElement;\n\n /** Emitted when a menu item is selected. */\n @Event({ eventName: 'six-menu-item-selected' }) sixMenuItemSelected!: EventEmitter<SixMenuItemSelectedPayload>;\n\n /** Set to true to remove the box-shadow */\n @Prop() removeBoxShadow = false;\n\n /** Set the options to be shown in the dropdown */\n @Prop() items: SixMenuItemData[] | null = null;\n\n /** Defines how many items should be shown. If the number of items is larger than this property a scrollbar will be shown */\n @Prop() itemsShown?: number;\n\n /** Defines whether the menu list will be rendered virtually i.e. only the elements actually shown (and a couple around)\n * are actually rendered in the DOM. If you use virtual scrolling pass the elements via prop instead of via slot. */\n @Prop() virtualScroll = false;\n\n /**\n * Used for virtual scrolling\n * Define how many items should be rendered in the DOM when using virtual scrolling\n */\n @Prop() itemSize = 10;\n\n /**\n * Used for virtual scrolling\n * Define the debounce for listening on scrolling changes in milliseconds.\n * The lower the number the more sensitive the component reacts to scrolling changes.\n */\n @Prop() scrollingDebounce = 15;\n\n /**\n * Internal: Disables handling of key presses.\n */\n @Prop() disableKeyboardHandling = false;\n\n /**\n * Used to calculate which items should be rendered in the DOM\n */\n @State()\n private scrollingIndex = 0;\n\n // set a default item height, this variable will be updated with the real value after the first render.\n // However, it's necessary to have a default value because we can only fetch the proper height after the first render\n @State()\n sixMenuItemHeight = DEFAULT_SIX_MENU_ITEM_HEIGHT;\n\n connectedCallback() {\n this.handleClick = this.handleClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n componentWillLoad() {\n if (this.items === null) {\n return;\n }\n }\n\n private handleScrolling = () => {\n if (this.menuWrapper == null) return;\n // for performance improvements we only update the DOM if the scrollRatio change \"enough\"\n this.scrollingIndex = Math.floor(this.menuWrapper.scrollTop / this.sixMenuItemHeight);\n };\n\n componentDidLoad() {\n this.setupForVirtualScrollingAfterRendering();\n }\n\n disconnectedCallback() {\n this.eventListeners.removeAll();\n }\n\n /**\n * Initiates type-to-select logic, which automatically selects an option based on what the user is currently typing.\n * The key passed will be appended to the internal query and the selection will be updated. After a brief period, the\n * internal query is cleared automatically. This method is intended to be used with the keydown event. Useful for\n * enabling type-to-select when the menu doesn't have focus.\n */\n @Method()\n async typeToSelect(key: string) {\n clearTimeout(this.typeToSelectTimeout);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n this.typeToSelectTimeout = setTimeout(() => (this.typeToSelectString = ''), 750);\n this.typeToSelectString += key.toLowerCase();\n const items = this.getItems();\n for (const item of items) {\n const slot = item.shadowRoot?.querySelector('slot:not([name])') as HTMLSlotElement;\n const label = getTextContent(slot).toLowerCase().trim();\n if (label.substring(0, this.typeToSelectString.length) === this.typeToSelectString) {\n item.setFocus();\n break;\n }\n }\n }\n\n private getItemsShown(): number {\n const defaultItemsShown = this.virtualScroll ? DEFAULT_NUMBER_OF_ITEMS_SHOWN_FOR_VIRTUAL_SCROLLING : 0;\n return this.itemsShown ?? defaultItemsShown;\n }\n\n private setupForVirtualScrollingAfterRendering() {\n if (!this.virtualScroll || this.menuWrapper == null) return;\n\n this.eventListeners.add(this.menuWrapper, 'scroll', debounce(this.handleScrolling, this.scrollingDebounce));\n\n // set menu height to proper height once the item is rendered.\n const menuItemHeight = this.menu?.querySelector('six-menu-item')?.clientHeight;\n if (menuItemHeight != null && menuItemHeight > 0) {\n this.sixMenuItemHeight = menuItemHeight;\n }\n }\n\n private getItems(): HTMLSixMenuItemElement[] {\n if (this.menu == null) return [];\n\n if (this.items != null) {\n return this.items.map(mapToMenuItem);\n }\n\n const slot = this.menu.querySelector('slot');\n if (slot == null) return [];\n return [...slot.assignedElements({ flatten: true })].filter(\n (el): el is HTMLSixMenuItemElement => isSIXMenuItemElement(el) && !el.disabled\n );\n }\n\n private getActiveItemIndex() {\n const items = this.getItems();\n const selectedItem = this.getActiveItem();\n if (selectedItem != null) {\n const itemIndex = items.indexOf(selectedItem);\n if (itemIndex > -1) {\n return itemIndex;\n }\n }\n const sixMenuItems = this.extractItemsFromDOM();\n return sixMenuItems.findIndex(isFocusedMenuItem);\n }\n\n private getActiveItem(): HTMLSixMenuItemElement | undefined {\n const activeElement = this.getItems().find((i) => i === document.activeElement);\n if (activeElement != null) {\n return activeElement;\n }\n return this.extractItemsFromDOM()?.find(isFocusedMenuItem);\n }\n\n private extractItemsFromDOM() {\n return Array.from(this.host.shadowRoot?.querySelectorAll('six-menu-item') ?? []);\n }\n\n private setActiveItem(item: HTMLSixMenuItemElement) {\n item?.setFocus();\n }\n\n private handleClick(event: MouseEvent) {\n const target = event.target as HTMLElement;\n const clickedItem = target.closest('six-menu-item');\n if (clickedItem && !clickedItem.disabled) {\n this.sixMenuItemSelected.emit({ name: clickedItem.value, item: clickedItem });\n }\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n if (this.disableKeyboardHandling) {\n return;\n }\n\n // Make a selection when pressing enter\n if (event.key === 'Enter') {\n const activeItem = this.getActiveItem();\n event.preventDefault();\n\n if (activeItem != null) {\n this.sixMenuItemSelected.emit({ name: activeItem.value, item: activeItem });\n }\n }\n\n // Prevent scrolling when space is pressed\n if (event.key === ' ') {\n event.preventDefault();\n }\n\n // Move the selection when pressing down or up\n if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n const items = this.items === null ? this.getItems() : this.extractItemsFromDOM();\n\n let indexOfActiveItem = this.getActiveItemIndex();\n\n if (items.length > 0) {\n event.preventDefault();\n\n if (event.key === 'ArrowDown') {\n indexOfActiveItem++;\n } else if (event.key === 'ArrowUp') {\n indexOfActiveItem--;\n } else if (event.key === 'Home') {\n indexOfActiveItem = 0;\n } else if (event.key === 'End') {\n indexOfActiveItem = items.length - 1;\n }\n\n if (indexOfActiveItem < 0) indexOfActiveItem = 0;\n if (indexOfActiveItem > items.length - 1) indexOfActiveItem = items.length - 1;\n\n this.setActiveItem(items[indexOfActiveItem]);\n\n return;\n }\n }\n\n void this.typeToSelect(event.key);\n }\n\n private getMenuWrapperStyle() {\n const styles: Partial<StyleDeclaration> = {};\n if (this.getItemsShown() > 0) {\n // calculate the proper height to show the correct number of items\n styles.height = `${(this.getItemsShown() ?? 0) * this.sixMenuItemHeight}px`;\n }\n return {\n ...styles,\n };\n }\n\n private getMenuContainerStyle() {\n const styles: Partial<StyleDeclaration> = {};\n\n if (this.virtualScroll) {\n // calculate height of content are if all items would be rendered so the scrollbar has the proper size\n styles.transform = `translateY(${this.sixMenuItemHeight * this.scrollingIndex}px)`;\n }\n\n return {\n ...styles,\n };\n }\n\n private getScrollbarGhostStyle() {\n const styles: Partial<StyleDeclaration> = {};\n\n if (this.virtualScroll && this.items !== null) {\n styles.height = `${this.items.length * this.sixMenuItemHeight - this.itemSize * this.sixMenuItemHeight}px`;\n }\n\n return {\n ...styles,\n };\n }\n\n private renderItems() {\n if (this.items === undefined || this.items === null) {\n return;\n }\n\n if (!this.virtualScroll) {\n return this.items.map(mapToMenuItem);\n }\n\n return this.items\n .slice(this.scrollingIndex, Math.min(this.items.length, this.itemSize + this.scrollingIndex))\n .map(({ value, label }: SixMenuItemData) => (\n <six-menu-item checkType=\"check\" key={value} value={value}>\n {label}\n </six-menu-item>\n ));\n }\n\n render() {\n return (\n <div\n ref={(el) => (this.menuWrapper = el)}\n style={this.getMenuWrapperStyle()}\n part=\"wrapper\"\n class={{\n menu: true,\n '.no-shadow': this.removeBoxShadow,\n }}\n >\n <div\n ref={(el) => (this.menu = el)}\n part=\"base\"\n role=\"menu\"\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n tabIndex={0}\n style={this.getMenuContainerStyle()}\n >\n <slot />\n {this.renderItems()}\n </div>\n {this.virtualScroll && <div style={this.getScrollbarGhostStyle()} />}\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as a,c as r,h as i}from"./p-e8d5a789.js";import{a as s}from"./p-0cebf1d2.js";import{a as t}from"./p-a1502802.js";const o=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:inline-block;overflow:hidden}.tag{display:flex;align-items:center;border:solid 1px;font-family:var(--six-font-family);line-height:1;white-space:nowrap;user-select:none;cursor:default}.tag__content{text-overflow:ellipsis;overflow:hidden}.tag__clear::part(base){color:inherit;padding:0}.tag--info{color:var(--six-color-white);background-color:var(--six-color-web-rock-900);border-color:var(--six-color-web-rock-900)}.tag--success{color:var(--six-color-web-rock-900);border-color:var(--six-color-success-500);background-color:var(--six-color-success-500)}.tag--primary{color:var(--six-color-web-rock-900);border-color:var(--six-color-clay-50);background-color:var(--six-color-clay-50)}.tag--warning{color:var(--six-color-web-rock-900);border-color:var(--six-color-warning-700);background-color:var(--six-color-warning-700)}.tag--danger{color:var(--six-color-white);border-color:var(--six-color-danger-800);background-color:var(--six-color-danger-800)}.tag--action{color:var(--six-color-white);border-color:var(--six-color-action-500);background-color:var(--six-color-action-500)}.tag--small{font-size:var(--six-button-font-size-small);height:calc(var(--six-height-small) * 0.8);line-height:calc(var(--six-height-small) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-small);padding:0 var(--six-spacing-x-small)}.tag--small .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-xxx-small))}.tag--medium{font-size:var(--six-button-font-size-medium);height:calc(var(--six-height-medium) * 0.8);line-height:calc(var(--six-height-medium) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-medium);padding:0 var(--six-spacing-small)}.tag--medium .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-xx-small))}.tag--large{font-size:var(--six-button-font-size-large);height:calc(var(--six-height-large) * 0.8);line-height:calc(var(--six-height-large) - var(--six-border-width) * 2);border-radius:var(--six-input-border-radius-large);padding:0 var(--six-spacing-medium)}.tag--large .tag__clear{margin-left:var(--six-spacing-xx-small);margin-right:calc(-1 * var(--six-spacing-x-small))}.tag--pill{border-radius:var(--six-border-radius-pill)}";const e=o;const l=class{constructor(i){a(this,i);this.sixClear=r(this,"six-tag-clear",7);this.resizeObserver=new ResizeObserver(t((()=>this.updateTooltip())));this.updateTooltip=()=>{if(this.tooltipElement!=null&&this.contentSlotElement!=null&&this.contentElement!=null){this.tooltipElement.content=s(this.contentSlotElement);this.tooltipElement.disabled=!(this.contentElement.offsetWidth<this.contentElement.scrollWidth)}};this.handleClearClick=()=>{this.sixClear.emit()};this.type="primary";this.size="medium";this.pill=false;this.clearable=false}connectedCallback(){if(this.contentElement!=null){this.resizeObserver.observe(this.contentElement)}}componentDidLoad(){if(this.contentElement!=null){this.resizeObserver.observe(this.contentElement)}}disconnectedCallback(){this.resizeObserver.disconnect()}render(){return i("span",{key:"59306674f01f712bc2e9daa94716f53120855b5c",part:"base",class:{tag:true,"tag--primary":this.type==="primary","tag--success":this.type==="success","tag--info":this.type==="info","tag--warning":this.type==="warning","tag--danger":this.type==="danger","tag--action":this.type==="action","tag--text":this.type==="text","tag--small":this.size==="small","tag--medium":this.size==="medium","tag--large":this.size==="large","tag--pill":this.pill,"tag--clear":this.clearable}},i("six-tooltip",{key:"ed368646e7f65e5ad2976f22175512d48328da36",ref:a=>this.tooltipElement=a},i("span",{key:"21f45d81e1f0e4778d552b20d11cfcc88bec66ae",ref:a=>this.contentElement=a,part:"content",class:"tag__content"},i("slot",{key:"948620efe64b5a923cf8b65a2f8c3792bdf8e476",ref:a=>this.contentSlotElement=a}))),this.clearable&&i("six-icon-button",{exportparts:"base:clear-button",size:"xSmall",name:"clear",class:"tag__clear",onClick:this.handleClearClick}))}};l.style=e;export{l as six_tag};
2
+ //# sourceMappingURL=p-61c91764.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sixTagCss","SixTagStyle0","SixTag","this","resizeObserver","ResizeObserver","debounce","updateTooltip","tooltipElement","contentSlotElement","contentElement","content","getTextContent","disabled","offsetWidth","scrollWidth","handleClearClick","sixClear","emit","connectedCallback","observe","componentDidLoad","disconnectedCallback","disconnect","render","h","key","part","class","tag","type","size","pill","clearable","ref","el","exportparts","name","onClick"],"sources":["src/components/six-tag/six-tag.scss?tag=six-tag&encapsulation=shadow","src/components/six-tag/six-tag.tsx"],"sourcesContent":["@import 'src/global/component';\n\n:host {\n display: inline-block;\n overflow: hidden;\n}\n\n.tag {\n display: flex;\n align-items: center;\n border: solid 1px;\n font-family: var(--six-font-family);\n line-height: 1;\n white-space: nowrap;\n user-select: none;\n cursor: default;\n}\n\n.tag__content {\n text-overflow: ellipsis;\n overflow: hidden;\n}\n\n.tag__clear::part(base) {\n color: inherit;\n padding: 0;\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Type modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--info {\n color: var(--six-color-white);\n background-color: var(--six-color-web-rock-900);\n border-color: var(--six-color-web-rock-900);\n}\n\n.tag--success {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-success-500);\n background-color: var(--six-color-success-500);\n}\n\n.tag--primary {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-clay-50);\n background-color: var(--six-color-clay-50);\n}\n\n.tag--warning {\n color: var(--six-color-web-rock-900);\n border-color: var(--six-color-warning-700);\n background-color: var(--six-color-warning-700);\n}\n\n.tag--danger {\n color: var(--six-color-white);\n border-color: var(--six-color-danger-800);\n background-color: var(--six-color-danger-800);\n}\n\n.tag--action {\n color: var(--six-color-white);\n border-color: var(--six-color-action-500);\n background-color: var(--six-color-action-500);\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Size modifiers\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--small {\n font-size: var(--six-button-font-size-small);\n height: calc(var(--six-height-small) * 0.8);\n line-height: calc(var(--six-height-small) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-small);\n padding: 0 var(--six-spacing-x-small);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-xxx-small));\n }\n}\n\n.tag--medium {\n font-size: var(--six-button-font-size-medium);\n height: calc(var(--six-height-medium) * 0.8);\n line-height: calc(var(--six-height-medium) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-medium);\n padding: 0 var(--six-spacing-small);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-xx-small));\n }\n}\n\n.tag--large {\n font-size: var(--six-button-font-size-large);\n height: calc(var(--six-height-large) * 0.8);\n line-height: calc(var(--six-height-large) - var(--six-border-width) * 2);\n border-radius: var(--six-input-border-radius-large);\n padding: 0 var(--six-spacing-medium);\n\n .tag__clear {\n margin-left: var(--six-spacing-xx-small);\n margin-right: calc(-1 * var(--six-spacing-x-small));\n }\n}\n\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n// Pill modifier\n////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n.tag--pill {\n border-radius: var(--six-border-radius-pill);\n}\n","import { Component, Event, EventEmitter, h, Prop } from '@stencil/core';\nimport { EmptyPayload } from '../../utils/types';\nimport { getTextContent } from '../../utils/slot';\nimport { debounce } from '../../utils/execution-control';\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot - The tag's content.\n *\n * @part base - The component's base wrapper.\n * @part content - The tag content.\n * @part clear-button - The clear button.\n */\n\n@Component({\n tag: 'six-tag',\n styleUrl: 'six-tag.scss',\n shadow: true,\n})\nexport class SixTag {\n /** The tag's type. */\n @Prop({ reflect: true }) type: 'primary' | 'success' | 'info' | 'warning' | 'danger' | 'action' | 'text' = 'primary';\n\n /** The tag's size. */\n @Prop({ reflect: true }) size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Set to true to draw a pill-style tag with rounded edges. */\n @Prop({ reflect: true }) pill = false;\n\n /** Set to true to make the tag clearable. */\n @Prop({ reflect: true }) clearable = false;\n\n /** Emitted when the clear button is activated. */\n @Event({ eventName: 'six-tag-clear' }) sixClear!: EventEmitter<EmptyPayload>;\n\n private contentSlotElement: HTMLSlotElement | undefined;\n private tooltipElement: HTMLSixTooltipElement | undefined;\n private contentElement: HTMLElement | undefined;\n private resizeObserver = new ResizeObserver(debounce(() => this.updateTooltip()));\n\n connectedCallback() {\n if (this.contentElement != null) {\n this.resizeObserver.observe(this.contentElement);\n }\n }\n\n componentDidLoad() {\n if (this.contentElement != null) {\n this.resizeObserver.observe(this.contentElement);\n }\n }\n\n disconnectedCallback() {\n this.resizeObserver.disconnect();\n }\n\n private updateTooltip = () => {\n if (this.tooltipElement != null && this.contentSlotElement != null && this.contentElement != null) {\n this.tooltipElement.content = getTextContent(this.contentSlotElement);\n this.tooltipElement.disabled = !(this.contentElement.offsetWidth < this.contentElement.scrollWidth);\n }\n };\n\n private handleClearClick = () => {\n this.sixClear.emit();\n };\n\n render() {\n return (\n <span\n part=\"base\"\n class={{\n tag: true,\n\n // Types\n 'tag--primary': this.type === 'primary',\n 'tag--success': this.type === 'success',\n 'tag--info': this.type === 'info',\n 'tag--warning': this.type === 'warning',\n 'tag--danger': this.type === 'danger',\n 'tag--action': this.type === 'action',\n 'tag--text': this.type === 'text',\n\n // Sizes\n 'tag--small': this.size === 'small',\n 'tag--medium': this.size === 'medium',\n 'tag--large': this.size === 'large',\n\n // Modifers\n 'tag--pill': this.pill,\n 'tag--clear': this.clearable,\n }}\n >\n <six-tooltip ref={(el) => (this.tooltipElement = el)}>\n <span ref={(el) => (this.contentElement = el)} part=\"content\" class=\"tag__content\">\n <slot ref={(el) => (this.contentSlotElement = el as HTMLSlotElement)} />\n </span>\n </six-tooltip>\n\n {this.clearable && (\n <six-icon-button\n exportparts=\"base:clear-button\"\n size=\"xSmall\"\n name=\"clear\"\n class=\"tag__clear\"\n onClick={this.handleClearClick}\n />\n )}\n </span>\n );\n }\n}\n"],"mappings":"0HAAA,MAAMA,EAAY,60EAClB,MAAAC,EAAeD,E,MCsBFE,EAAM,M,iEAmBTC,KAAAC,eAAiB,IAAIC,eAAeC,GAAS,IAAMH,KAAKI,mBAkBxDJ,KAAAI,cAAgB,KACtB,GAAIJ,KAAKK,gBAAkB,MAAQL,KAAKM,oBAAsB,MAAQN,KAAKO,gBAAkB,KAAM,CACjGP,KAAKK,eAAeG,QAAUC,EAAeT,KAAKM,oBAClDN,KAAKK,eAAeK,WAAaV,KAAKO,eAAeI,YAAcX,KAAKO,eAAeK,Y,GAInFZ,KAAAa,iBAAmB,KACzBb,KAAKc,SAASC,MAAM,E,UA3CqF,U,UAG7C,S,UAG9B,M,eAGK,K,CAUrC,iBAAAC,GACE,GAAIhB,KAAKO,gBAAkB,KAAM,CAC/BP,KAAKC,eAAegB,QAAQjB,KAAKO,e,EAIrC,gBAAAW,GACE,GAAIlB,KAAKO,gBAAkB,KAAM,CAC/BP,KAAKC,eAAegB,QAAQjB,KAAKO,e,EAIrC,oBAAAY,GACEnB,KAAKC,eAAemB,Y,CActB,MAAAC,GACE,OACEC,EAAA,QAAAC,IAAA,2CACEC,KAAK,OACLC,MAAO,CACLC,IAAK,KAGL,eAAgB1B,KAAK2B,OAAS,UAC9B,eAAgB3B,KAAK2B,OAAS,UAC9B,YAAa3B,KAAK2B,OAAS,OAC3B,eAAgB3B,KAAK2B,OAAS,UAC9B,cAAe3B,KAAK2B,OAAS,SAC7B,cAAe3B,KAAK2B,OAAS,SAC7B,YAAa3B,KAAK2B,OAAS,OAG3B,aAAc3B,KAAK4B,OAAS,QAC5B,cAAe5B,KAAK4B,OAAS,SAC7B,aAAc5B,KAAK4B,OAAS,QAG5B,YAAa5B,KAAK6B,KAClB,aAAc7B,KAAK8B,YAGrBR,EAAA,eAAAC,IAAA,2CAAaQ,IAAMC,GAAQhC,KAAKK,eAAiB2B,GAC/CV,EAAA,QAAAC,IAAA,2CAAMQ,IAAMC,GAAQhC,KAAKO,eAAiByB,EAAKR,KAAK,UAAUC,MAAM,gBAClEH,EAAA,QAAAC,IAAA,2CAAMQ,IAAMC,GAAQhC,KAAKM,mBAAqB0B,MAIjDhC,KAAK8B,WACJR,EAAA,mBACEW,YAAY,oBACZL,KAAK,SACLM,KAAK,QACLT,MAAM,aACNU,QAASnC,KAAKa,mB"}
@@ -0,0 +1,2 @@
1
+ let t=[];class i{constructor(t,i){this.element=t;this.options=i;this.handleFocusIn=this.handleFocusIn.bind(this)}activate(){t.push(this.element);document.addEventListener("focusin",this.handleFocusIn)}deactivate(){t=t.filter((t=>t!==this.element));document.removeEventListener("focusin",this.handleFocusIn)}isActive(){return t[t.length-1]===this.element}handleFocusIn(t){var i,s;const h=t.target;const o=this.element.tagName.toLowerCase();if(this.isActive()&&h.closest(o)!==this.element&&typeof((i=this.options)===null||i===void 0?void 0:i.onFocusOut)==="function"){(s=this.options)===null||s===void 0?void 0:s.onFocusOut(t)}}}export{i as M};
2
+ //# sourceMappingURL=p-651293e7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["activeModals","Modal","constructor","element","options","this","handleFocusIn","bind","activate","push","document","addEventListener","deactivate","filter","modal","removeEventListener","isActive","length","event","target","tagName","toLowerCase","closest","_a","onFocusOut","_b"],"sources":["src/utils/modal.ts"],"sourcesContent":["interface ModalOptions {\n onFocusOut?: (event: Event) => void;\n}\n\nlet activeModals: HTMLElement[] = [];\n\nexport default class Modal {\n element: HTMLElement;\n options?: ModalOptions;\n\n constructor(element: HTMLElement, options?: ModalOptions) {\n this.element = element;\n this.options = options;\n this.handleFocusIn = this.handleFocusIn.bind(this);\n }\n\n activate() {\n activeModals.push(this.element);\n document.addEventListener('focusin', this.handleFocusIn);\n }\n\n deactivate() {\n activeModals = activeModals.filter((modal) => modal !== this.element);\n document.removeEventListener('focusin', this.handleFocusIn);\n }\n\n isActive() {\n // The \"active\" modal is always the most recent one shown\n return activeModals[activeModals.length - 1] === this.element;\n }\n\n handleFocusIn(event: Event) {\n const target = event.target as HTMLElement;\n const tagName = this.element.tagName.toLowerCase();\n\n // If focus is lost while the modal is active, run the onFocusOut callback\n if (this.isActive() && target.closest(tagName) !== this.element && typeof this.options?.onFocusOut === 'function') {\n this.options?.onFocusOut(event);\n }\n }\n}\n"],"mappings":"AAIA,IAAIA,EAA8B,G,MAEbC,EAInB,WAAAC,CAAYC,EAAsBC,GAChCC,KAAKF,QAAUA,EACfE,KAAKD,QAAUA,EACfC,KAAKC,cAAgBD,KAAKC,cAAcC,KAAKF,K,CAG/C,QAAAG,GACER,EAAaS,KAAKJ,KAAKF,SACvBO,SAASC,iBAAiB,UAAWN,KAAKC,c,CAG5C,UAAAM,GACEZ,EAAeA,EAAaa,QAAQC,GAAUA,IAAUT,KAAKF,UAC7DO,SAASK,oBAAoB,UAAWV,KAAKC,c,CAG/C,QAAAU,GAEE,OAAOhB,EAAaA,EAAaiB,OAAS,KAAOZ,KAAKF,O,CAGxD,aAAAG,CAAcY,G,QACZ,MAAMC,EAASD,EAAMC,OACrB,MAAMC,EAAUf,KAAKF,QAAQiB,QAAQC,cAGrC,GAAIhB,KAAKW,YAAcG,EAAOG,QAAQF,KAAaf,KAAKF,iBAAkBoB,EAAAlB,KAAKD,WAAO,MAAAmB,SAAA,SAAAA,EAAEC,cAAe,WAAY,EACjHC,EAAApB,KAAKD,WAAO,MAAAqB,SAAA,SAAAA,EAAED,WAAWN,E"}
@@ -1,2 +1,2 @@
1
- import{h as l}from"./p-af15381b.js";const r=(r,o)=>{var e,t,a,n,s,i,d,f;const m=(Array.isArray(r.errorText)?r.errorText:[r.errorText]).filter((l=>l!=null&&l.trim()!==""));const c=r.label!=null&&r.label.trim()!==""?true:(e=r.hasLabelSlot)!==null&&e!==void 0?e:false;const u=r.helpText!=null&&r.helpText.trim()!==""?true:(t=r.hasHelpTextSlot)!==null&&t!==void 0?t:false;const v=(m.length>0||((a=r.hasErrorTextSlot)!==null&&a!==void 0?a:false))&&((n=r.displayError)!==null&&n!==void 0?n:false);return l("div",{part:"form-control",class:{"form-control":true,"form-control--small":r.size==="small","form-control--medium":r.size==="medium","form-control--large":r.size==="large","form-control--has-label":c,"form-control--has-help-text":u,"form-control--has-error-text":v,"form-control--disabled":(s=r.disabled)!==null&&s!==void 0?s:false,"form-control--invalid":((i=r.displayError)!==null&&i!==void 0?i:false)&&!r.disabled}},l("label",{part:"label",id:r.labelId,class:{"form-control__label":true,"form-control__label__required":(d=r.required)!==null&&d!==void 0?d:false},htmlFor:r.inputId,"aria-hidden":c?"false":"true",onClick:r.onLabelClick},l("slot",{name:"label"},r.label)),l("div",{class:"form-control__input"},o),l("div",{part:"error-text",id:r.errorTextId,class:"form-control__error-text","aria-hidden":v?"false":"true"},l("slot",{name:"error-text"},m.slice(0,(f=r.errorTextCount)!==null&&f!==void 0?f:1).map((r=>l("six-error",null,r))))),l("div",{part:"help-text",id:r.helpTextId,class:"form-control__help-text","aria-hidden":u?"false":"true"},l("slot",{name:"help-text"},r.helpText)))};export{r as F};
2
- //# sourceMappingURL=p-61e66671.js.map
1
+ import{h as l}from"./p-e8d5a789.js";const r=(r,o)=>{var e,t,a,n,s,i,d,m;const c=(Array.isArray(r.errorText)?r.errorText:[r.errorText]).filter((l=>l!=null&&l.trim()!==""));const f=r.label!=null&&r.label.trim()!==""?true:(e=r.hasLabelSlot)!==null&&e!==void 0?e:false;const u=r.helpText!=null&&r.helpText.trim()!==""?true:(t=r.hasHelpTextSlot)!==null&&t!==void 0?t:false;const v=(c.length>0||((a=r.hasErrorTextSlot)!==null&&a!==void 0?a:false))&&((n=r.displayError)!==null&&n!==void 0?n:false);return l("div",{part:"form-control",class:{"form-control":true,"form-control--small":r.size==="small","form-control--medium":r.size==="medium","form-control--large":r.size==="large","form-control--has-label":f,"form-control--has-help-text":u,"form-control--has-error-text":v,"form-control--disabled":(s=r.disabled)!==null&&s!==void 0?s:false,"form-control--invalid":((i=r.displayError)!==null&&i!==void 0?i:false)&&!r.disabled}},l("label",{part:"label",id:r.labelId,class:{"form-control__label":true,"form-control__label__required":(d=r.required)!==null&&d!==void 0?d:false},htmlFor:r.inputId,"aria-hidden":f?"false":"true",onClick:r.onLabelClick},l("slot",{name:"label"},r.label)),l("div",{class:"form-control__input"},o),l("div",{part:"error-text",id:r.errorTextId,class:"form-control__error-text","aria-hidden":v?"false":"true"},l("slot",{name:"error-text"},c.slice(0,(m=r.errorTextCount)!==null&&m!==void 0?m:1).map((r=>l("six-error",null,r))))),l("div",{part:"help-text",id:r.helpTextId,class:"form-control__help-text","aria-hidden":u?"false":"true"},l("slot",{name:"help-text"},r.helpText)))};export{r as F};
2
+ //# sourceMappingURL=p-6ee48e81.js.map
@@ -1,2 +1,2 @@
1
- import{r as o,c as t,h as r,g as i}from"./p-af15381b.js";import{F as e}from"./p-61e66671.js";import{h as a}from"./p-0cebf1d2.js";import{E as s}from"./p-8bfb4bfc.js";const l=':host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:"*";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{--thumb-size:14px;--tooltip-offset-y:10px;--track-color:var(--six-color-web-rock-900);--thumb-color:var(--six-color-web-rock-900);--track-height:3px;display:block}.range{position:relative}.range .range__control{-webkit-appearance:none;width:100%;height:var(--six-input-height-medium);background:transparent;line-height:var(--six-input-height-medium);vertical-align:middle}.range .range__control::-webkit-slider-runnable-track{width:100%;height:var(--track-height);border-radius:3px;border:none}.range .range__control::-webkit-slider-thumb{border:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;background-color:var(--thumb-color);-webkit-appearance:none;margin-top:calc(var(--thumb-size) / -2 + var(--track-height) / 2);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color, var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;cursor:pointer}.range .range__control:not(:disabled)::-webkit-slider-thumb:hover{background-color:var(--thumb-color)}.range .range__control:not(:disabled):focus::-webkit-slider-thumb{background-color:var(--thumb-color)}.range .range__control:not(:disabled)::-webkit-slider-thumb:active{background-color:var(--thumb-color);cursor:grabbing}.range .range__control::-moz-focus-outer{border:0}.range .range__control::-moz-range-track{width:100%;height:var(--track-height);background-color:var(--six-progress-track-color);border-radius:3px;border:none}.range .range__control::-moz-range-progress{height:var(--track-height);border-radius:3px;background-color:var(--track-color);border:none}.range .range__control::-moz-range-thumb{border:none;height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;background-color:var(--thumb-color);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color, var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;cursor:pointer}.range .range__control:not(:disabled)::-moz-range-thumb:hover{background-color:var(--thumb-color)}.range .range__control:not(:disabled):focus::-moz-range-thumb{background-color:var(--thumb-color)}.range .range__control:not(:disabled)::-moz-range-thumb:active{background-color:var(--thumb-color);cursor:grabbing}.range .range__control:focus{outline:none}.range .range__control:disabled::-webkit-slider-thumb{cursor:not-allowed;color:var(--six-color-web-rock-300);border-color:var(--six-color-web-rock-300);background-color:var(--six-color-web-rock-300)}.range .range__control:disabled::-moz-range-thumb{cursor:not-allowed;color:var(--six-color-web-rock-300);border-color:var(--six-color-web-rock-300);background-color:var(--six-color-web-rock-300)}.range__tooltip{position:absolute;z-index:var(--six-z-index-tooltip);left:1px;border-radius:var(--six-border-radius-medium);background-color:var(--six-color-web-rock-900);font-family:var(--six-font-family);font-size:var(--six-tooltip-font-size);font-weight:var(--six-tooltip-font-weight);line-height:var(--six-tooltip-line-height);color:var(--six-color-white);opacity:0;padding:var(--six-spacing-xxx-small) var(--six-spacing-xx-small);transition:var(--six-transition-fast) opacity;pointer-events:none}.range__tooltip::after{content:"";position:absolute;width:0;height:0;left:50%;margin-left:calc(-1 * var(--six-tooltip-arrow-size))}.range--tooltip-visible .range__tooltip{opacity:1}.range--tooltip-top .range__tooltip{top:calc(-1 * var(--thumb-size) - var(--tooltip-offset-y))}.range--tooltip-top .range__tooltip::after{border-top:var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);border-left:var(--six-tooltip-arrow-size) solid transparent;border-right:var(--six-tooltip-arrow-size) solid transparent;top:100%}.range--tooltip-bottom .range__tooltip{bottom:calc(-1 * var(--thumb-size) - var(--tooltip-offset-y))}.range--tooltip-bottom .range__tooltip::after{border-bottom:var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);border-left:var(--six-tooltip-arrow-size) solid transparent;border-right:var(--six-tooltip-arrow-size) solid transparent;bottom:100%}';let n=0;const h=class{constructor(r){o(this,r);this.sixChange=t(this,"six-range-change",7);this.sixBlur=t(this,"six-range-blur",7);this.sixFocus=t(this,"six-range-focus",7);this.inputId=`input-${++n}`;this.labelId=`input-label-${n}`;this.helpTextId=`input-help-text-${n}`;this.errorTextId=`input-error-text-${n}`;this.eventListeners=new s;this.handleInput=()=>{if(this.nativeInput!=null){this.update(parseFloat(this.nativeInput.value))}requestAnimationFrame((()=>{this.sixChange.emit()}))};this.handleBlur=()=>{var o;this.hasFocus=false;this.hasTooltip=false;this.sixBlur.emit();if(this.nativeInput!=null){(o=this.resizeObserver)===null||o===void 0?void 0:o.unobserve(this.nativeInput)}};this.handleFocus=()=>{var o;this.hasFocus=true;this.hasTooltip=true;this.sixFocus.emit();if(this.nativeInput!=null){(o=this.resizeObserver)===null||o===void 0?void 0:o.observe(this.nativeInput)}};this.handleSlotChange=()=>{this.hasHelpTextSlot=a(this.host,"help-text");this.hasLabelSlot=a(this.host,"label");this.hasErrorTextSlot=a(this.host,"error-text")};this.handleTouchStart=()=>{this.setFocus()};this.hasFocus=false;this.hasHelpTextSlot=false;this.hasErrorTextSlot=false;this.hasLabelSlot=false;this.hasTooltip=false;this.name="";this.value=0;this.required=false;this.helpText="";this.disabled=false;this.label="";this.errorText="";this.errorTextCount=undefined;this.invalid=false;this.min=0;this.max=100;this.step=1;this.tooltip="top";this.tooltipFormatter=o=>o.toString()}handleLabelChange(){this.handleSlotChange()}handleValueChange(){this.update()}connectedCallback(){var o;(o=this.host.shadowRoot)===null||o===void 0?void 0:o.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.update();this.handleSlotChange()}componentDidLoad(){const o=this.nativeInput;if(o==null){return}this.update();this.resizeObserver=new ResizeObserver((()=>this.update()))}disconnectedCallback(){var o;(o=this.host.shadowRoot)===null||o===void 0?void 0:o.removeEventListener("slotchange",this.handleSlotChange);this.eventListeners.removeAll()}async setFocus(o){var t;(t=this.nativeInput)===null||t===void 0?void 0:t.focus(o)}async removeFocus(){var o;(o=this.nativeInput)===null||o===void 0?void 0:o.blur()}syncTooltip(o,t,r){if(this.tooltip!=="none"&&this.nativeInput!=null&&this.output!=null){const i=Math.max(0,(r-o)/(t-o));const e=this.nativeInput.offsetWidth;const a=this.output.offsetWidth;const s=getComputedStyle(this.nativeInput).getPropertyValue("--thumb-size");const l=`calc(${e*i}px - calc(calc(${i} * ${s}) - calc(${s} / 2)))`;this.output.style.transform=`translateX(${l})`;this.output.style.marginLeft=`-${a/2}px`}}isFirefox(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}update(o){var t,r;if(o!=null){this.value=o}const i=(t=Number(this.min))!==null&&t!==void 0?t:0;const e=(r=Number(this.max))!==null&&r!==void 0?r:0;let a;const s=parseFloat(this.value);if(isNaN(s)){a=this.getDefaultValue(i,e)}else{a=s}if(this.nativeInput!=null){this.nativeInput.value=a.toString();this.value=parseFloat(this.nativeInput.value)}else{this.value=a}this.calculateColorRunnableTrack(i,e,this.value);this.syncTooltip(i,e,this.value)}getDefaultValue(o,t){return t<o?o:o+(t-o)/2}calculateColorRunnableTrack(o,t,r){if(!this.isFirefox()&&this.nativeInput!=null){const i=Math.ceil((r-o)/(t-o)*100);this.nativeInput.style.background="-webkit-linear-gradient(left, var(--track-color) 0%, var(--track-color) "+i+"%, var(--six-color-web-rock-300) "+i+"%)"}}render(){return r(e,{inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,size:"medium",errorTextId:this.errorTextId,errorText:this.errorText,hasErrorTextSlot:this.hasErrorTextSlot,errorTextCount:this.errorTextCount,disabled:this.disabled,required:this.required,displayError:this.invalid},r("div",{part:"base",class:{range:true,"range--disabled":this.disabled,"range--focused":this.hasFocus,"range--tooltip-visible":this.hasTooltip,"range--tooltip-top":this.tooltip==="top","range--tooltip-bottom":this.tooltip==="bottom"},onTouchStart:this.handleTouchStart},r("input",{part:"input",ref:o=>this.nativeInput=o,type:"range",class:"range__control",name:this.name,disabled:this.disabled,min:this.min,max:this.max,step:this.step,value:this.value,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur}),this.tooltip!=="none"&&r("output",{part:"tooltip",ref:o=>this.output=o,class:"range__tooltip"},this.tooltipFormatter(this.value))))}get host(){return i(this)}static get watchers(){return{label:["handleLabelChange"],errorText:["handleLabelChange"],helpText:["handleLabelChange"],value:["handleValueChange"],min:["handleValueChange"],max:["handleValueChange"]}}};h.style=l;export{h as six_range};
2
- //# sourceMappingURL=p-50dae789.entry.js.map
1
+ import{r as o,c as t,h as r,g as i}from"./p-e8d5a789.js";import{F as e}from"./p-6ee48e81.js";import{h as a}from"./p-0cebf1d2.js";import{E as s}from"./p-8bfb4bfc.js";const l=':host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:"*";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{--thumb-size:14px;--tooltip-offset-y:10px;--track-color:var(--six-color-web-rock-900);--thumb-color:var(--six-color-web-rock-900);--track-height:3px;display:block}.range{position:relative}.range .range__control{-webkit-appearance:none;width:100%;height:var(--six-input-height-medium);background:transparent;line-height:var(--six-input-height-medium);vertical-align:middle}.range .range__control::-webkit-slider-runnable-track{width:100%;height:var(--track-height);border-radius:3px;border:none}.range .range__control::-webkit-slider-thumb{border:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;background-color:var(--thumb-color);-webkit-appearance:none;margin-top:calc(var(--thumb-size) / -2 + var(--track-height) / 2);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color, var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;cursor:pointer}.range .range__control:not(:disabled)::-webkit-slider-thumb:hover{background-color:var(--thumb-color)}.range .range__control:not(:disabled):focus::-webkit-slider-thumb{background-color:var(--thumb-color)}.range .range__control:not(:disabled)::-webkit-slider-thumb:active{background-color:var(--thumb-color);cursor:grabbing}.range .range__control::-moz-focus-outer{border:0}.range .range__control::-moz-range-track{width:100%;height:var(--track-height);background-color:var(--six-progress-track-color);border-radius:3px;border:none}.range .range__control::-moz-range-progress{height:var(--track-height);border-radius:3px;background-color:var(--track-color);border:none}.range .range__control::-moz-range-thumb{border:none;height:var(--thumb-size);width:var(--thumb-size);border-radius:50%;background-color:var(--thumb-color);transition:var(--six-transition-fast) border-color, var(--six-transition-fast) background-color, var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;cursor:pointer}.range .range__control:not(:disabled)::-moz-range-thumb:hover{background-color:var(--thumb-color)}.range .range__control:not(:disabled):focus::-moz-range-thumb{background-color:var(--thumb-color)}.range .range__control:not(:disabled)::-moz-range-thumb:active{background-color:var(--thumb-color);cursor:grabbing}.range .range__control:focus{outline:none}.range .range__control:disabled::-webkit-slider-thumb{cursor:not-allowed;color:var(--six-color-web-rock-300);border-color:var(--six-color-web-rock-300);background-color:var(--six-color-web-rock-300)}.range .range__control:disabled::-moz-range-thumb{cursor:not-allowed;color:var(--six-color-web-rock-300);border-color:var(--six-color-web-rock-300);background-color:var(--six-color-web-rock-300)}.range__tooltip{position:absolute;z-index:var(--six-z-index-tooltip);left:2px;border-radius:var(--six-border-radius-medium);background-color:var(--six-color-web-rock-900);font-family:var(--six-font-family);font-size:var(--six-tooltip-font-size);font-weight:var(--six-tooltip-font-weight);line-height:var(--six-tooltip-line-height);color:var(--six-color-white);opacity:0;padding:var(--six-spacing-xxx-small) var(--six-spacing-xx-small);transition:var(--six-transition-fast) opacity;pointer-events:none}.range__tooltip::after{content:"";position:absolute;width:0;height:0;left:50%;margin-left:calc(-1 * var(--six-tooltip-arrow-size))}.range--tooltip-visible .range__tooltip{opacity:1}.range--tooltip-top .range__tooltip{top:calc(-1 * var(--thumb-size) - var(--tooltip-offset-y))}.range--tooltip-top .range__tooltip::after{border-top:var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);border-left:var(--six-tooltip-arrow-size) solid transparent;border-right:var(--six-tooltip-arrow-size) solid transparent;top:100%}.range--tooltip-bottom .range__tooltip{bottom:calc(-1 * var(--thumb-size) - var(--tooltip-offset-y))}.range--tooltip-bottom .range__tooltip::after{border-bottom:var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);border-left:var(--six-tooltip-arrow-size) solid transparent;border-right:var(--six-tooltip-arrow-size) solid transparent;bottom:100%}';const n=l;let h=0;const c=class{constructor(r){o(this,r);this.sixChange=t(this,"six-range-change",7);this.sixBlur=t(this,"six-range-blur",7);this.sixFocus=t(this,"six-range-focus",7);this.inputId=`input-${++h}`;this.labelId=`input-label-${h}`;this.helpTextId=`input-help-text-${h}`;this.errorTextId=`input-error-text-${h}`;this.eventListeners=new s;this.handleInput=()=>{if(this.nativeInput!=null){this.update(parseFloat(this.nativeInput.value))}requestAnimationFrame((()=>{this.sixChange.emit()}))};this.handleBlur=()=>{var o;this.hasFocus=false;this.hasTooltip=false;this.sixBlur.emit();if(this.nativeInput!=null){(o=this.resizeObserver)===null||o===void 0?void 0:o.unobserve(this.nativeInput)}};this.handleFocus=()=>{var o;this.hasFocus=true;this.hasTooltip=true;this.sixFocus.emit();if(this.nativeInput!=null){(o=this.resizeObserver)===null||o===void 0?void 0:o.observe(this.nativeInput)}};this.handleSlotChange=()=>{this.hasHelpTextSlot=a(this.host,"help-text");this.hasLabelSlot=a(this.host,"label");this.hasErrorTextSlot=a(this.host,"error-text")};this.handleTouchStart=()=>{this.setFocus()};this.hasFocus=false;this.hasHelpTextSlot=false;this.hasErrorTextSlot=false;this.hasLabelSlot=false;this.hasTooltip=false;this.name="";this.value=0;this.required=false;this.helpText="";this.disabled=false;this.label="";this.errorText="";this.errorTextCount=undefined;this.invalid=false;this.min=0;this.max=100;this.step=1;this.tooltip="top";this.tooltipFormatter=o=>o.toString()}handleLabelChange(){this.handleSlotChange()}handleValueChange(){this.update()}connectedCallback(){var o;(o=this.host.shadowRoot)===null||o===void 0?void 0:o.addEventListener("slotchange",this.handleSlotChange)}componentWillLoad(){this.update();this.handleSlotChange()}componentDidLoad(){const o=this.nativeInput;if(o==null){return}this.update();this.resizeObserver=new ResizeObserver((()=>this.update()))}disconnectedCallback(){var o;(o=this.host.shadowRoot)===null||o===void 0?void 0:o.removeEventListener("slotchange",this.handleSlotChange);this.eventListeners.removeAll()}componentDidUpdate(){const{min:o,max:t}=this.getMinMax();this.syncTooltip(o,t,this.value)}getMinMax(){var o,t;const r=(o=Number(this.min))!==null&&o!==void 0?o:0;const i=(t=Number(this.max))!==null&&t!==void 0?t:0;return{min:r,max:i}}async setFocus(o){var t;(t=this.nativeInput)===null||t===void 0?void 0:t.focus(o)}async removeFocus(){var o;(o=this.nativeInput)===null||o===void 0?void 0:o.blur()}syncTooltip(o,t,r){if(this.tooltip!=="none"&&this.nativeInput!=null&&this.output!=null){const i=Math.max(0,(r-o)/(t-o));const e=this.nativeInput.offsetWidth;const a=this.output.offsetWidth;const s=getComputedStyle(this.nativeInput).getPropertyValue("--thumb-size");const l=`calc(${e*i}px - calc(calc(${i} * ${s}) - calc(${s} / 2)))`;this.output.style.transform=`translateX(${l})`;this.output.style.marginLeft=`-${a/2}px`}}isFirefox(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}update(o){var t,r;if(o!=null){this.value=o}const i=(t=Number(this.min))!==null&&t!==void 0?t:0;const e=(r=Number(this.max))!==null&&r!==void 0?r:0;let a;const s=parseFloat(this.value);if(isNaN(s)){a=this.getDefaultValue(i,e)}else{a=s}if(this.nativeInput!=null){this.nativeInput.value=a.toString();this.value=parseFloat(this.nativeInput.value)}else{this.value=a}this.calculateColorRunnableTrack(i,e,this.value);this.syncTooltip(i,e,this.value)}getDefaultValue(o,t){return t<o?o:o+(t-o)/2}calculateColorRunnableTrack(o,t,r){if(!this.isFirefox()&&this.nativeInput!=null){const i=Math.ceil((r-o)/(t-o)*100);this.nativeInput.style.background="-webkit-linear-gradient(left, var(--track-color) 0%, var(--track-color) "+i+"%, var(--six-color-web-rock-300) "+i+"%)"}}render(){return r(e,{key:"4bd9c413aa318930b38a57e8f76906b5c25c0961",inputId:this.inputId,label:this.label,labelId:this.labelId,hasLabelSlot:this.hasLabelSlot,helpTextId:this.helpTextId,helpText:this.helpText,hasHelpTextSlot:this.hasHelpTextSlot,size:"medium",errorTextId:this.errorTextId,errorText:this.errorText,hasErrorTextSlot:this.hasErrorTextSlot,errorTextCount:this.errorTextCount,disabled:this.disabled,required:this.required,displayError:this.invalid},r("div",{key:"2a5cd3d1b1bcc77813aacc5eb2971a5ef0e27e0f",part:"base",class:{range:true,"range--disabled":this.disabled,"range--focused":this.hasFocus,"range--tooltip-visible":this.hasTooltip,"range--tooltip-top":this.tooltip==="top","range--tooltip-bottom":this.tooltip==="bottom"},onTouchStart:this.handleTouchStart},r("input",{key:"448a9d9d41e466a09c4e00d9229b2971e99190b5",part:"input",ref:o=>this.nativeInput=o,type:"range",class:"range__control",name:this.name,disabled:this.disabled,min:this.min,max:this.max,step:this.step,value:this.value,onInput:this.handleInput,onFocus:this.handleFocus,onBlur:this.handleBlur}),this.tooltip!=="none"&&r("output",{part:"tooltip",ref:o=>this.output=o,class:"range__tooltip"},this.tooltipFormatter(this.value))))}get host(){return i(this)}static get watchers(){return{label:["handleLabelChange"],errorText:["handleLabelChange"],helpText:["handleLabelChange"],value:["handleValueChange"],min:["handleValueChange"],max:["handleValueChange"]}}};c.style=n;export{c as six_range};
2
+ //# sourceMappingURL=p-716019b6.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["sixRangeCss","SixRangeStyle0","id","SixRange","this","inputId","labelId","helpTextId","errorTextId","eventListeners","EventListeners","handleInput","nativeInput","update","parseFloat","value","requestAnimationFrame","sixChange","emit","handleBlur","hasFocus","hasTooltip","sixBlur","_a","resizeObserver","unobserve","handleFocus","sixFocus","observe","handleSlotChange","hasHelpTextSlot","hasSlot","host","hasLabelSlot","hasErrorTextSlot","handleTouchStart","setFocus","toString","handleLabelChange","handleValueChange","connectedCallback","shadowRoot","addEventListener","componentWillLoad","componentDidLoad","ResizeObserver","disconnectedCallback","removeEventListener","removeAll","componentDidUpdate","min","max","getMinMax","syncTooltip","Number","_b","options","focus","removeFocus","blur","tooltip","output","percent","Math","inputWidth","offsetWidth","tooltipWidth","thumbSize","getComputedStyle","getPropertyValue","x","style","transform","marginLeft","isFirefox","navigator","userAgent","toLowerCase","indexOf","updateValue","parsedValue","isNaN","getDefaultValue","calculateColorRunnableTrack","ceil","background","render","h","FormControl","key","label","helpText","size","errorText","errorTextCount","disabled","required","displayError","invalid","part","class","range","onTouchStart","ref","el","type","name","step","onInput","onFocus","onBlur","tooltipFormatter"],"sources":["src/components/six-range/six-range.scss?tag=six-range&encapsulation=shadow","src/components/six-range/six-range.tsx"],"sourcesContent":["@import 'src/global/component';\n@import '../../functional-components/form-control/form-control';\n\n:host {\n --thumb-size: 14px;\n --tooltip-offset-y: 10px;\n --track-color: var(--six-color-web-rock-900);\n --thumb-color: var(--six-color-web-rock-900);\n --track-height: 3px;\n\n display: block;\n}\n\n.range {\n position: relative;\n\n .range__control {\n -webkit-appearance: none;\n width: 100%;\n height: var(--six-input-height-medium);\n background: transparent;\n line-height: var(--six-input-height-medium);\n vertical-align: middle;\n\n &::-webkit-slider-runnable-track {\n width: 100%;\n height: var(--track-height);\n border-radius: 3px;\n border: none;\n }\n\n &::-webkit-slider-thumb {\n border: none;\n width: var(--thumb-size);\n height: var(--thumb-size);\n border-radius: 50%;\n background-color: var(--thumb-color);\n -webkit-appearance: none;\n margin-top: calc(var(--thumb-size) / -2 + var(--track-height) / 2);\n transition: var(--six-transition-fast) border-color, var(--six-transition-fast) background-color,\n var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;\n cursor: pointer;\n }\n\n &:not(:disabled)::-webkit-slider-thumb:hover {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled):focus::-webkit-slider-thumb {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled)::-webkit-slider-thumb:active {\n background-color: var(--thumb-color);\n cursor: grabbing;\n }\n\n // Firefox\n &::-moz-focus-outer {\n border: 0;\n }\n\n &::-moz-range-track {\n width: 100%;\n height: var(--track-height);\n background-color: var(--six-progress-track-color);\n border-radius: 3px;\n border: none;\n }\n\n &::-moz-range-progress {\n height: var(--track-height);\n border-radius: 3px;\n background-color: var(--track-color);\n border: none;\n }\n\n &::-moz-range-thumb {\n border: none;\n height: var(--thumb-size);\n width: var(--thumb-size);\n border-radius: 50%;\n background-color: var(--thumb-color);\n transition: var(--six-transition-fast) border-color, var(--six-transition-fast) background-color,\n var(--six-transition-fast) color, var(--six-transition-fast) box-shadow, var(--six-transition-fast) transform;\n cursor: pointer;\n }\n\n &:not(:disabled)::-moz-range-thumb:hover {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled):focus::-moz-range-thumb {\n background-color: var(--thumb-color);\n }\n\n &:not(:disabled)::-moz-range-thumb:active {\n background-color: var(--thumb-color);\n cursor: grabbing;\n }\n\n // States\n &:focus {\n outline: none;\n }\n\n &:disabled {\n &::-webkit-slider-thumb {\n cursor: not-allowed;\n color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-300);\n background-color: var(--six-color-web-rock-300);\n }\n\n &::-moz-range-thumb {\n cursor: not-allowed;\n color: var(--six-color-web-rock-300);\n border-color: var(--six-color-web-rock-300);\n background-color: var(--six-color-web-rock-300);\n }\n }\n }\n}\n\n// Tooltip\n.range__tooltip {\n position: absolute;\n z-index: var(--six-z-index-tooltip);\n left: 2px;\n border-radius: var(--six-border-radius-medium);\n background-color: var(--six-color-web-rock-900);\n font-family: var(--six-font-family);\n font-size: var(--six-tooltip-font-size);\n font-weight: var(--six-tooltip-font-weight);\n line-height: var(--six-tooltip-line-height);\n color: var(--six-color-white);\n opacity: 0;\n padding: var(--six-spacing-xxx-small) var(--six-spacing-xx-small);\n transition: var(--six-transition-fast) opacity;\n pointer-events: none;\n\n &::after {\n content: '';\n position: absolute;\n width: 0;\n height: 0;\n left: 50%;\n margin-left: calc(-1 * var(--six-tooltip-arrow-size));\n }\n}\n\n.range--tooltip-visible .range__tooltip {\n opacity: 1;\n}\n\n// Tooltip on top\n.range--tooltip-top .range__tooltip {\n top: calc(-1 * var(--thumb-size) - var(--tooltip-offset-y));\n\n &::after {\n border-top: var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);\n border-left: var(--six-tooltip-arrow-size) solid transparent;\n border-right: var(--six-tooltip-arrow-size) solid transparent;\n top: 100%;\n }\n}\n\n// Tooltip on bottom\n.range--tooltip-bottom .range__tooltip {\n bottom: calc(-1 * var(--thumb-size) - var(--tooltip-offset-y));\n\n &::after {\n border-bottom: var(--six-tooltip-arrow-size) solid var(--six-color-web-rock-900);\n border-left: var(--six-tooltip-arrow-size) solid transparent;\n border-right: var(--six-tooltip-arrow-size) solid transparent;\n bottom: 100%;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport FormControl from '../../functional-components/form-control/form-control';\nimport { hasSlot } from '../../utils/slot';\nimport { EmptyPayload } from '../../utils/types';\nimport { EventListeners } from '../../utils/event-listeners';\n\nlet id = 0;\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot label - The input's label. Alternatively, you can use the label prop.\n * @slot help-text - Help text that describes how to use the input. Alternatively, you can use the help-text prop.\n * @slot error-text - Error text that is shown for validation errors. Alternatively, you can use the error-text prop.\n *\n * @part base - The component's base wrapper.\n * @part input - The native range input.\n * @part tooltip - The range tooltip.\n */\n@Component({\n tag: 'six-range',\n styleUrl: 'six-range.scss',\n shadow: true,\n})\nexport class SixRange {\n private inputId = `input-${++id}`;\n private labelId = `input-label-${id}`;\n private helpTextId = `input-help-text-${id}`;\n private errorTextId = `input-error-text-${id}`;\n private eventListeners = new EventListeners();\n private resizeObserver?: ResizeObserver;\n\n private output?: HTMLElement;\n private nativeInput?: HTMLInputElement;\n\n @Element() host!: HTMLSixRangeElement;\n\n @State() hasFocus = false;\n @State() hasHelpTextSlot = false;\n @State() hasErrorTextSlot = false;\n @State() hasLabelSlot = false;\n @State() hasTooltip = false;\n\n /** The input's name attribute. */\n @Prop() name = '';\n\n /** The input's value attribute. */\n @Prop({ mutable: true }) value = 0;\n\n /** Set to true to show an asterisk beneath the label. */\n @Prop() required = false;\n\n /** The range's help text. Alternatively, you can use the help-text slot. */\n @Prop() helpText = '';\n\n /** Set to true to disable the input. */\n @Prop() disabled = false;\n\n /** The label text. */\n @Prop() label = '';\n\n /** The error message shown, if `invalid` is set to true. */\n @Prop() errorText: string | string[] = '';\n\n /** The number of error texts to be shown (if the error-text slot isn't used). Defaults to 1 */\n @Prop() errorTextCount?: number;\n\n /** If this property is set to true and an error message is provided by `errorText`, the error message is displayed. */\n @Prop({ reflect: true }) invalid = false;\n\n /** The input's min attribute. */\n @Prop() min = 0;\n\n /** The input's max attribute. */\n @Prop() max = 100;\n\n /** The input's step attribute. */\n @Prop() step = 1;\n\n /** The preferred placedment of the tooltip. */\n @Prop() tooltip: 'top' | 'bottom' | 'none' = 'top';\n\n /** A function used to format the tooltip's value. */\n @Prop() tooltipFormatter = (value: number) => value.toString();\n\n /** Emitted when the control's value changes. */\n @Event({ eventName: 'six-range-change' }) sixChange!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control loses focus. */\n @Event({ eventName: 'six-range-blur' }) sixBlur!: EventEmitter<EmptyPayload>;\n\n /** Emitted when the control gains focus. */\n @Event({ eventName: 'six-range-focus' }) sixFocus!: EventEmitter<EmptyPayload>;\n\n @Watch('label')\n @Watch('errorText')\n @Watch('helpText')\n handleLabelChange() {\n this.handleSlotChange();\n }\n\n @Watch('value')\n @Watch('min')\n @Watch('max')\n handleValueChange() {\n this.update();\n }\n\n connectedCallback() {\n this.host.shadowRoot?.addEventListener('slotchange', this.handleSlotChange);\n }\n\n componentWillLoad() {\n this.update();\n this.handleSlotChange();\n }\n\n componentDidLoad() {\n const nativeInput = this.nativeInput;\n if (nativeInput == null) {\n return;\n }\n this.update();\n this.resizeObserver = new ResizeObserver(() => this.update());\n }\n\n disconnectedCallback() {\n this.host.shadowRoot?.removeEventListener('slotchange', this.handleSlotChange);\n this.eventListeners.removeAll();\n }\n\n componentDidUpdate() {\n const { min, max } = this.getMinMax();\n this.syncTooltip(min, max, this.value);\n }\n\n private getMinMax() {\n const min = Number(this.min) ?? 0;\n const max = Number(this.max) ?? 0;\n return { min, max };\n }\n\n /** Sets focus on the input. */\n @Method()\n async setFocus(options?: FocusOptions) {\n this.nativeInput?.focus(options);\n }\n\n /** Removes focus from the input. */\n @Method()\n async removeFocus() {\n this.nativeInput?.blur();\n }\n\n private handleInput = () => {\n if (this.nativeInput != null) {\n this.update(parseFloat(this.nativeInput.value));\n }\n requestAnimationFrame(() => {\n this.sixChange.emit();\n });\n };\n\n private handleBlur = () => {\n this.hasFocus = false;\n this.hasTooltip = false;\n this.sixBlur.emit();\n if (this.nativeInput != null) {\n this.resizeObserver?.unobserve(this.nativeInput);\n }\n };\n\n private handleFocus = () => {\n this.hasFocus = true;\n this.hasTooltip = true;\n this.sixFocus.emit();\n if (this.nativeInput != null) {\n this.resizeObserver?.observe(this.nativeInput);\n }\n };\n\n private handleSlotChange = () => {\n this.hasHelpTextSlot = hasSlot(this.host, 'help-text');\n this.hasLabelSlot = hasSlot(this.host, 'label');\n this.hasErrorTextSlot = hasSlot(this.host, 'error-text');\n };\n\n private handleTouchStart = () => {\n this.setFocus();\n };\n\n private syncTooltip(min: number, max: number, value: number) {\n if (this.tooltip !== 'none' && this.nativeInput != null && this.output != null) {\n const percent = Math.max(0, (value - min) / (max - min));\n const inputWidth = this.nativeInput.offsetWidth;\n const tooltipWidth = this.output.offsetWidth;\n const thumbSize = getComputedStyle(this.nativeInput).getPropertyValue('--thumb-size');\n const x = `calc(${inputWidth * percent}px - calc(calc(${percent} * ${thumbSize}) - calc(${thumbSize} / 2)))`;\n this.output.style.transform = `translateX(${x})`;\n this.output.style.marginLeft = `-${tooltipWidth / 2}px`;\n }\n }\n\n private isFirefox() {\n return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n }\n\n private update(updateValue?: number) {\n if (updateValue != null) {\n this.value = updateValue;\n }\n\n const min = Number(this.min) ?? 0;\n const max = Number(this.max) ?? 0;\n let value;\n const parsedValue = parseFloat(this.value as never);\n if (isNaN(parsedValue)) {\n value = this.getDefaultValue(min, max);\n } else {\n value = parsedValue;\n }\n\n if (this.nativeInput != null) {\n // The value may have constraints, so we set the native control's\n // value and sync it back to ensure it adheres to min, max, and step\n // properly.\n this.nativeInput.value = value.toString();\n this.value = parseFloat(this.nativeInput.value);\n } else {\n this.value = value;\n }\n this.calculateColorRunnableTrack(min, max, this.value);\n this.syncTooltip(min, max, this.value);\n }\n\n /**\n * from https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/range#value\n */\n private getDefaultValue(min: number, max: number): number {\n return max < min ? min : min + (max - min) / 2;\n }\n\n /**\n * For Firefox this functionality is not needed because it is supported by standard CSS.\n */\n private calculateColorRunnableTrack(min: number, max: number, value: number) {\n if (!this.isFirefox() && this.nativeInput != null) {\n const percent = Math.ceil(((value - min) / (max - min)) * 100);\n this.nativeInput.style.background =\n '-webkit-linear-gradient(left, var(--track-color) 0%, var(--track-color) ' +\n percent +\n '%, var(--six-color-web-rock-300) ' +\n percent +\n '%)';\n }\n }\n\n render() {\n return (\n <FormControl\n inputId={this.inputId}\n label={this.label}\n labelId={this.labelId}\n hasLabelSlot={this.hasLabelSlot}\n helpTextId={this.helpTextId}\n helpText={this.helpText}\n hasHelpTextSlot={this.hasHelpTextSlot}\n size=\"medium\"\n errorTextId={this.errorTextId}\n errorText={this.errorText}\n hasErrorTextSlot={this.hasErrorTextSlot}\n errorTextCount={this.errorTextCount}\n disabled={this.disabled}\n required={this.required}\n displayError={this.invalid}\n >\n <div\n part=\"base\"\n class={{\n range: true,\n\n // States\n 'range--disabled': this.disabled,\n 'range--focused': this.hasFocus,\n 'range--tooltip-visible': this.hasTooltip,\n 'range--tooltip-top': this.tooltip === 'top',\n 'range--tooltip-bottom': this.tooltip === 'bottom',\n }}\n onTouchStart={this.handleTouchStart}\n >\n <input\n part=\"input\"\n ref={(el) => (this.nativeInput = el)}\n type=\"range\"\n class=\"range__control\"\n name={this.name}\n disabled={this.disabled}\n min={this.min}\n max={this.max}\n step={this.step}\n value={this.value}\n onInput={this.handleInput}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n />\n {this.tooltip !== 'none' && (\n <output part=\"tooltip\" ref={(el) => (this.output = el)} class=\"range__tooltip\">\n {this.tooltipFormatter(this.value)}\n </output>\n )}\n </div>\n </FormControl>\n );\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{r as t,c as o,h as i,g as r}from"./p-e8d5a789.js";import{s}from"./p-8227aaed.js";function a(t,o,i={duration:150,easing:"ease",fill:"both"}){const r=o.getBoundingClientRect();const s=t.getBoundingClientRect();const a=r.left-s.left;const e=r.top-s.top;const l=r.width/s.width;const n=r.height/s.height;t.animate([{transformOrigin:"top left",transform:`translate(${a}px, ${e}px) scale(${l}, ${n})`},{transformOrigin:"top left",transform:"none"}],i)}const e=":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}:host{display:block}.tab-group{display:flex;border:solid 1px transparent;border-radius:0}.tab-group .tab-group__tabs{display:flex;position:relative}.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}.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}.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}.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}.tab-group--right .tab-group__body{flex:1 1 auto;order:1}";const l=e;const n=class{constructor(i){t(this,i);this.sixTabShow=o(this,"six-tab-show",7);this.sixTabHide=o(this,"six-tab-hide",7);this.handleClick=t=>{const o=t.target;const i=o.closest("six-tab");const r=i===null||i===void 0?void 0:i.closest("six-tab-group");if(r!==this.host){return false}if(i!=null){this.setActiveTab(i)}};this.handleKeyDown=t=>{if(this.nav==null)return;const o=t.target;const i=o.closest("six-tab");const r=i===null||i===void 0?void 0:i.closest("six-tab-group");if(r!==this.host){return false}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t.key)){const o=document.activeElement;if(o&&o.tagName.toLowerCase()==="six-tab"){const i=this.getAllTabs();let r=i.indexOf(o);if(t.key==="Home"){r=0}else if(t.key==="End"){r=i.length-1}else if(t.key==="ArrowLeft"){r=Math.max(0,r-1)}else if(t.key==="ArrowRight"){r=Math.min(i.length-1,r+1)}i[r].setFocus({preventScroll:true});this.setActiveTab(i[r]);if(["top","bottom"].includes(this.placement)){s(i[r],this.nav,"horizontal")}t.preventDefault()}}};this.handleScrollLeft=()=>{if(this.nav==null)return;this.nav.scroll({left:this.nav.scrollLeft-this.nav.clientWidth,behavior:"smooth"})};this.handleScrollRight=()=>{if(this.nav==null)return;this.nav.scroll({left:this.nav.scrollLeft+this.nav.clientWidth,behavior:"smooth"})};this.hasLeftControl=false;this.hasRightControl=false;this.placement="top";this.noScrollControls=false}handleNoScrollControlsChange(){this.updateScrollControls()}componentDidLoad(){if(this.tabGroup==null||this.nav==null)return;const t=new IntersectionObserver(((t,o)=>{if(t[0].intersectionRatio>0){this.setAriaLabels();this.setActiveTab(this.getActiveTab()||this.getAllTabs()[0],false);o.unobserve(t[0].target)}}));t.observe(this.host);this.resizeObserver=new ResizeObserver((()=>this.updateScrollControls()));this.resizeObserver.observe(this.nav);requestAnimationFrame((()=>this.updateScrollControls()));this.nav.addEventListener("scroll",(()=>{if(this.nav==null){return}this.hasRightControl=this.calculateRightControlVisibility();this.hasLeftControl=this.calculateLeftControlVisibility()}));this.mutationObserver=new MutationObserver((t=>{if(t.some((t=>{var o;return!["aria-labelledby","aria-controls"].includes((o=t.attributeName)!==null&&o!==void 0?o:"")}))){setTimeout((()=>this.setAriaLabels()))}}));this.mutationObserver.observe(this.host,{attributes:true,childList:true,subtree:true})}disconnectedCallback(){if(this.mutationObserver==null||this.tabGroup==null||this.nav==null||this.resizeObserver==null){return}this.mutationObserver.disconnect();this.resizeObserver.unobserve(this.nav)}async show(t){const o=this.getAllTabs();const i=o.find((o=>o.panel===t));if(i!=null){this.setActiveTab(i)}}getAllTabs(t=false){var o;const i=(o=this.tabs)===null||o===void 0?void 0:o.querySelector("slot");if(i==null)return[];return[...i.assignedElements()].filter((o=>t?o.tagName.toLowerCase()==="six-tab":o.tagName.toLowerCase()==="six-tab"&&!o.disabled))}getAllPanels(){var t;const o=(t=this.body)===null||t===void 0?void 0:t.querySelector("slot");if(o==null)return[];return[...o.assignedElements()].filter((t=>t.tagName.toLowerCase()==="six-tab-panel"))}getActiveTab(){return this.getAllTabs().find((t=>t.active))}calculateRightControlVisibility(){var t,o,i;if(this.nav==null){return false}return Math.abs((t=this.nav)===null||t===void 0?void 0:t.scrollLeft)+((o=this.nav)===null||o===void 0?void 0:o.clientWidth)<((i=this.nav)===null||i===void 0?void 0:i.scrollWidth)-1}calculateLeftControlVisibility(){var t;if(this.nav==null){return false}return Math.abs((t=this.nav)===null||t===void 0?void 0:t.scrollLeft)>0}updateScrollControls(){if(this.nav==null)return;this.hasRightControl=this.noScrollControls?false:["top","bottom"].includes(this.placement)&&this.calculateRightControlVisibility();this.hasLeftControl=this.noScrollControls?false:["top","bottom"].includes(this.placement)&&this.calculateLeftControlVisibility()}setActiveTab(t,o=true){var i,r,e;if(this.nav==null)return;const l=(i=t===null||t===void 0?void 0:t.shadowRoot)===null||i===void 0?void 0:i.querySelector(".tab__indicator");const n=(e=(r=this.getActiveTab())===null||r===void 0?void 0:r.shadowRoot)===null||e===void 0?void 0:e.querySelector(".tab__indicator");if(n!=null&&l!=null){a(l,n)}if(t!==this.activeTab&&!t.disabled){const i=this.activeTab;this.activeTab=t;this.getAllTabs().map((t=>t.active=t===this.activeTab));this.getAllPanels().map((t=>{var o;return t.active=t.name===((o=this.activeTab)===null||o===void 0?void 0:o.panel)}));if(["top","bottom"].includes(this.placement)){s(this.activeTab,this.nav,"horizontal")}if(o){if(i!=null){this.sixTabHide.emit({name:i.panel})}this.sixTabShow.emit({name:this.activeTab.panel})}}}setAriaLabels(){const t=this.getAllTabs();const o=this.getAllPanels();t.map((t=>{var i,r;const s=o.find((o=>o.name===t.panel));if(s!=null){t.setAttribute("aria-controls",(i=s.getAttribute("id"))!==null&&i!==void 0?i:"");s.setAttribute("aria-labelledby",(r=t.getAttribute("id"))!==null&&r!==void 0?r:"")}}))}render(){return i("div",{key:"9f4e3129b3330d6393261e20c28e8f7ce859b431",part:"base",ref:t=>this.tabGroup=t,class:{"tab-group":true,"tab-group--top":this.placement==="top","tab-group--bottom":this.placement==="bottom","tab-group--left":this.placement==="left","tab-group--right":this.placement==="right","tab-group--has-scroll-controls":this.hasRightControl||this.hasLeftControl},onClick:this.handleClick,onKeyDown:this.handleKeyDown},i("div",{key:"d9367d79c9cba004d253a0b831874563af24df47",class:"tab-group__nav-container"},this.hasLeftControl&&i("six-icon-button",{class:"tab-group__scroll-button tab-group__scroll-button--left",exportparts:"base:scroll-button",name:"chevron_left",onClick:this.handleScrollLeft}),i("div",{ref:t=>this.nav=t,key:"nav",part:"nav",class:"tab-group__nav"},i("div",{key:"464cd0b03882b7c1a8e29e18dc9a170f3a31cd89",ref:t=>this.tabs=t,part:"tabs",class:"tab-group__tabs",role:"tablist"},i("slot",{key:"91bc9d0b4eb40596e5b3bbf39dd613ac7c338fb5",name:"nav"}))),this.hasRightControl&&i("six-icon-button",{class:"tab-group__scroll-button tab-group__scroll-button--right",exportparts:"base:scroll-button",name:"chevron_right",onClick:this.handleScrollRight})),i("div",{key:"adfcd725eb3ff69c9dc5cc346d4803598d66c84f",ref:t=>this.body=t,part:"body",class:"tab-group__body"},i("slot",{key:"84d4c9d5a263e4faaa9274eea7b208b7001f8ac7"})))}get host(){return r(this)}static get watchers(){return{noScrollControls:["handleNoScrollControlsChange"]}}};n.style=l;export{n as six_tab_group};
2
+ //# sourceMappingURL=p-71ff0e72.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["flipAnimate","element","fromElement","options","duration","easing","fill","dimensionsTo","getBoundingClientRect","dimensionsFrom","deltaX","left","deltaY","top","deltaW","width","deltaH","height","animate","transformOrigin","transform","sixTabGroupCss","SixTabGroupStyle0","SixTabGroup","this","handleClick","event","target","tab","closest","tabGroup","host","setActiveTab","handleKeyDown","nav","includes","key","activeEl","document","activeElement","tagName","toLowerCase","tabs","getAllTabs","index","indexOf","length","Math","max","min","setFocus","preventScroll","placement","scrollIntoView","preventDefault","handleScrollLeft","scroll","scrollLeft","clientWidth","behavior","handleScrollRight","handleNoScrollControlsChange","updateScrollControls","componentDidLoad","observer","IntersectionObserver","entries","intersectionRatio","setAriaLabels","getActiveTab","unobserve","observe","resizeObserver","ResizeObserver","requestAnimationFrame","addEventListener","hasRightControl","calculateRightControlVisibility","hasLeftControl","calculateLeftControlVisibility","mutationObserver","MutationObserver","mutations","some","mutation","_a","attributeName","setTimeout","attributes","childList","subtree","disconnectedCallback","disconnect","show","panel","find","el","includeDisabled","slot","querySelector","assignedElements","filter","disabled","getAllPanels","body","active","abs","_b","_c","scrollWidth","noScrollControls","emitEvents","newIndicator","shadowRoot","oldIndicator","activeTab","previousTab","map","name","sixTabHide","emit","sixTabShow","panels","setAttribute","getAttribute","render","h","part","ref","class","onClick","onKeyDown","exportparts","role"],"sources":["src/utils/animation.ts","src/components/six-tab-group/six-tab-group.scss?tag=six-tab-group&encapsulation=shadow","src/components/six-tab-group/six-tab-group.tsx"],"sourcesContent":["/**\n * Animates a given `element` from the position and dimension of `fromElement` to\n * its current position and dimension. Can be useful to implement the FLIP animation technique.\n *\n * @see {@link https://css-tricks.com/animating-layouts-with-the-flip-technique/} for details on the FLIP technique.\n *\n * @param {Element} element - The element to animate.\n * @param {Element} fromElement - The element representing the initial position and dimensions.\n * @param {KeyframeAnimationOptions} [options={ duration: 150, easing: 'ease', fill: 'both' }] - Optional animation parameters.\n *\n */\nexport function flipAnimate(\n element: Element,\n fromElement: Element,\n options: KeyframeAnimationOptions = {\n duration: 150,\n easing: 'ease',\n fill: 'both',\n }\n) {\n const dimensionsTo = fromElement.getBoundingClientRect();\n const dimensionsFrom = element.getBoundingClientRect();\n\n const deltaX = dimensionsTo.left - dimensionsFrom.left;\n const deltaY = dimensionsTo.top - dimensionsFrom.top;\n const deltaW = dimensionsTo.width / dimensionsFrom.width;\n const deltaH = dimensionsTo.height / dimensionsFrom.height;\n\n element.animate(\n [\n {\n transformOrigin: 'top left',\n transform: `translate(${deltaX}px, ${deltaY}px) scale(${deltaW}, ${deltaH})`,\n },\n {\n transformOrigin: 'top left',\n transform: 'none',\n },\n ],\n options\n );\n}\n","@import 'src/global/component';\n@import 'src/global/mixins/hide-scrollbar';\n\n:host {\n display: block;\n}\n\n.tab-group {\n display: flex;\n border: solid 1px transparent;\n border-radius: 0;\n\n .tab-group__tabs {\n display: flex;\n position: relative;\n }\n}\n\n.tab-group--has-scroll-controls .tab-group__nav-container {\n position: relative;\n padding: 0 var(--six-spacing-x-large);\n}\n\n.tab-group__scroll-button {\n display: flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--six-spacing-x-large);\n}\n\n.tab-group__scroll-button--left {\n left: 0;\n}\n\n.tab-group__scroll-button--right {\n right: 0;\n}\n\n// TOP\n.tab-group--top {\n flex-direction: column;\n\n .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group__nav {\n display: flex;\n overflow-x: auto;\n @include hide-scrollbar();\n }\n\n .tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n }\n\n .tab-group__body {\n order: 2;\n }\n}\n\n// Bottom\n.tab-group--bottom {\n flex-direction: column;\n\n .tab-group__nav-container {\n order: 2;\n }\n\n .tab-group__nav {\n display: flex;\n overflow-x: auto;\n @include hide-scrollbar();\n }\n\n .tab-group__tabs {\n flex: 1 1 auto;\n position: relative;\n flex-direction: row;\n }\n\n .tab-group__body {\n order: 1;\n }\n}\n\n// Left\n\n.tab-group--left {\n flex-direction: row;\n\n .tab-group__nav-container {\n order: 1;\n }\n\n .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n }\n\n .tab-group__body {\n flex: 1 1 auto;\n order: 2;\n }\n}\n\n// Right\n.tab-group--right {\n flex-direction: row;\n\n .tab-group__nav-container {\n order: 2;\n }\n\n .tab-group__tabs {\n flex: 0 0 auto;\n flex-direction: column;\n }\n\n .tab-group__body {\n flex: 1 1 auto;\n order: 1;\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, State, Watch } from '@stencil/core';\nimport { scrollIntoView } from '../../utils/scroll';\nimport { flipAnimate } from '../../utils/animation';\n\nexport interface SixTabShowPayload {\n name: string;\n}\n\nexport interface SixTabHidePayload {\n name: string;\n}\n\n/**\n * @since 1.0\n * @status stable\n *\n * Forked from https://github.com/shoelace-style/shoelace version v2.0.0-beta27.\n *\n * @slot nav - Used for grouping tabs in the tab group.\n * @slot - Used for grouping tab panels in the tab group.\n *\n * @part base - The component's base wrapper.\n * @part nav - The tab group navigation container.\n * @part tabs - The container that wraps the slotted tabs.\n * @part active-tab-indicator - An element that displays the currently selected tab. This is a child of the tab's container.\n * @part body - The tab group body where tab panels are slotted in.\n * @part scroll-button - The previous and next scroll buttons that appear when tabs are scrollable.\n */\n@Component({\n tag: 'six-tab-group',\n styleUrl: 'six-tab-group.scss',\n shadow: true,\n})\nexport class SixTabGroup {\n private activeTab?: HTMLSixTabElement;\n private body?: HTMLElement;\n private mutationObserver?: MutationObserver;\n private nav?: HTMLElement;\n private resizeObserver?: ResizeObserver;\n private tabGroup?: HTMLElement;\n private tabs?: HTMLElement;\n\n @Element() host!: HTMLSixTabGroupElement;\n\n @State() hasLeftControl = false;\n @State() hasRightControl = false;\n\n /** The placement of the tabs. */\n @Prop() placement: 'top' | 'bottom' | 'left' | 'right' = 'top';\n\n /** Disables the scroll arrows that appear when tabs overflow. */\n @Prop() noScrollControls = false;\n\n @Watch('noScrollControls')\n handleNoScrollControlsChange() {\n this.updateScrollControls();\n }\n\n /** Emitted when a tab is shown. */\n @Event({ eventName: 'six-tab-show' }) sixTabShow!: EventEmitter<SixTabShowPayload>;\n\n /** Emitted when a tab is hidden. */\n @Event({ eventName: 'six-tab-hide' }) sixTabHide!: EventEmitter<SixTabHidePayload>;\n\n componentDidLoad() {\n if (this.tabGroup == null || this.nav == null) return;\n\n // Set initial tab state when the tabs first become visible\n const observer = new IntersectionObserver((entries, observer) => {\n if (entries[0].intersectionRatio > 0) {\n this.setAriaLabels();\n this.setActiveTab(this.getActiveTab() || this.getAllTabs()[0], false);\n observer.unobserve(entries[0].target);\n }\n });\n observer.observe(this.host);\n this.resizeObserver = new ResizeObserver(() => this.updateScrollControls());\n this.resizeObserver.observe(this.nav);\n requestAnimationFrame(() => this.updateScrollControls());\n\n this.nav.addEventListener('scroll', () => {\n if (this.nav == null) {\n return;\n }\n this.hasRightControl = this.calculateRightControlVisibility();\n\n this.hasLeftControl = this.calculateLeftControlVisibility();\n });\n\n // Update aria labels if the DOM changes\n this.mutationObserver = new MutationObserver((mutations) => {\n if (\n mutations.some((mutation) => {\n return !['aria-labelledby', 'aria-controls'].includes(mutation.attributeName ?? '');\n })\n ) {\n setTimeout(() => this.setAriaLabels());\n }\n });\n this.mutationObserver.observe(this.host, { attributes: true, childList: true, subtree: true });\n }\n\n disconnectedCallback() {\n if (this.mutationObserver == null || this.tabGroup == null || this.nav == null || this.resizeObserver == null) {\n return;\n }\n this.mutationObserver.disconnect();\n this.resizeObserver.unobserve(this.nav);\n }\n\n /** Shows the specified tab panel. */\n @Method()\n async show(panel: string) {\n const tabs = this.getAllTabs();\n const tab = tabs.find((el) => el.panel === panel);\n\n if (tab != null) {\n this.setActiveTab(tab);\n }\n }\n\n private getAllTabs(includeDisabled = false): HTMLSixTabElement[] {\n const slot = this.tabs?.querySelector('slot');\n if (slot == null) return [];\n\n return [...slot.assignedElements()].filter((el: Element) => {\n return includeDisabled\n ? el.tagName.toLowerCase() === 'six-tab'\n : el.tagName.toLowerCase() === 'six-tab' && !(el as HTMLSixTabElement).disabled;\n }) as [HTMLSixTabElement];\n }\n\n private getAllPanels(): HTMLSixTabPanelElement[] {\n const slot = this.body?.querySelector('slot');\n if (slot == null) return [];\n return [...slot.assignedElements()].filter((el: Element) => el.tagName.toLowerCase() === 'six-tab-panel') as [\n HTMLSixTabPanelElement\n ];\n }\n\n private getActiveTab() {\n return this.getAllTabs().find((el) => el.active);\n }\n\n private handleClick = (event: MouseEvent) => {\n const target = event.target as HTMLElement;\n const tab = target.closest('six-tab');\n const tabGroup = tab?.closest('six-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this.host) {\n return false;\n }\n\n if (tab != null) {\n this.setActiveTab(tab);\n }\n };\n\n private handleKeyDown = (event: KeyboardEvent) => {\n if (this.nav == null) return;\n\n const target = event.target as HTMLElement;\n const tab = target.closest('six-tab');\n const tabGroup = tab?.closest('six-tab-group');\n\n // Ensure the target tab is in this tab group\n if (tabGroup !== this.host) {\n return false;\n }\n\n // Move focus left or right\n if (['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Home', 'End'].includes(event.key)) {\n const activeEl = document.activeElement as HTMLSixTabElement;\n\n if (activeEl && activeEl.tagName.toLowerCase() === 'six-tab') {\n const tabs = this.getAllTabs();\n let index = tabs.indexOf(activeEl);\n\n if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = tabs.length - 1;\n } else if (event.key === 'ArrowLeft') {\n index = Math.max(0, index - 1);\n } else if (event.key === 'ArrowRight') {\n index = Math.min(tabs.length - 1, index + 1);\n }\n\n tabs[index].setFocus({ preventScroll: true });\n this.setActiveTab(tabs[index]);\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(tabs[index], this.nav, 'horizontal');\n }\n\n event.preventDefault();\n }\n }\n };\n\n private handleScrollLeft = () => {\n if (this.nav == null) return;\n\n this.nav.scroll({\n left: this.nav.scrollLeft - this.nav.clientWidth,\n behavior: 'smooth',\n });\n };\n\n private handleScrollRight = () => {\n if (this.nav == null) return;\n\n this.nav.scroll({\n left: this.nav.scrollLeft + this.nav.clientWidth,\n behavior: 'smooth',\n });\n };\n\n private calculateRightControlVisibility() {\n if (this.nav == null) {\n return false;\n }\n return Math.abs(this.nav?.scrollLeft) + this.nav?.clientWidth < this.nav?.scrollWidth - 1;\n }\n\n private calculateLeftControlVisibility() {\n if (this.nav == null) {\n return false;\n }\n return Math.abs(this.nav?.scrollLeft) > 0;\n }\n\n private updateScrollControls() {\n if (this.nav == null) return;\n\n this.hasRightControl = this.noScrollControls\n ? false\n : ['top', 'bottom'].includes(this.placement) && this.calculateRightControlVisibility();\n\n this.hasLeftControl = this.noScrollControls\n ? false\n : ['top', 'bottom'].includes(this.placement) && this.calculateLeftControlVisibility();\n }\n\n private setActiveTab(tab: HTMLSixTabElement, emitEvents = true) {\n if (this.nav == null) return;\n\n const newIndicator = tab?.shadowRoot?.querySelector('.tab__indicator');\n const oldIndicator = this.getActiveTab()?.shadowRoot?.querySelector('.tab__indicator');\n\n if (oldIndicator != null && newIndicator != null) {\n flipAnimate(newIndicator, oldIndicator);\n }\n\n if (tab !== this.activeTab && !tab.disabled) {\n const previousTab = this.activeTab;\n this.activeTab = tab;\n\n // Sync tabs and panels\n this.getAllTabs().map((el) => (el.active = el === this.activeTab));\n this.getAllPanels().map((el) => (el.active = el.name === this.activeTab?.panel));\n\n if (['top', 'bottom'].includes(this.placement)) {\n scrollIntoView(this.activeTab, this.nav, 'horizontal');\n }\n\n // Emit events\n if (emitEvents) {\n if (previousTab != null) {\n this.sixTabHide.emit({ name: previousTab.panel });\n }\n\n this.sixTabShow.emit({ name: this.activeTab.panel });\n }\n }\n }\n\n private setAriaLabels() {\n const tabs = this.getAllTabs();\n const panels = this.getAllPanels();\n\n // Link each tab with its corresponding panel\n tabs.map((tab) => {\n const panel = panels.find((el) => el.name === tab.panel);\n if (panel != null) {\n tab.setAttribute('aria-controls', panel.getAttribute('id') ?? '');\n panel.setAttribute('aria-labelledby', tab.getAttribute('id') ?? '');\n }\n });\n }\n\n render() {\n return (\n <div\n part=\"base\"\n ref={(el) => (this.tabGroup = el)}\n class={{\n 'tab-group': true,\n\n // Placements\n 'tab-group--top': this.placement === 'top',\n 'tab-group--bottom': this.placement === 'bottom',\n 'tab-group--left': this.placement === 'left',\n 'tab-group--right': this.placement === 'right',\n\n 'tab-group--has-scroll-controls': this.hasRightControl || this.hasLeftControl,\n }}\n onClick={this.handleClick}\n onKeyDown={this.handleKeyDown}\n >\n <div class=\"tab-group__nav-container\">\n {this.hasLeftControl && (\n <six-icon-button\n class=\"tab-group__scroll-button tab-group__scroll-button--left\"\n exportparts=\"base:scroll-button\"\n name=\"chevron_left\"\n onClick={this.handleScrollLeft}\n />\n )}\n <div ref={(el) => (this.nav = el)} key=\"nav\" part=\"nav\" class=\"tab-group__nav\">\n <div ref={(el) => (this.tabs = el)} part=\"tabs\" class=\"tab-group__tabs\" role=\"tablist\">\n <slot name=\"nav\" />\n </div>\n </div>\n {this.hasRightControl && (\n <six-icon-button\n class=\"tab-group__scroll-button tab-group__scroll-button--right\"\n exportparts=\"base:scroll-button\"\n name=\"chevron_right\"\n onClick={this.handleScrollRight}\n />\n )}\n </div>\n\n <div ref={(el) => (this.body = el)} part=\"body\" class=\"tab-group__body\">\n <slot />\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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"}